0x608060405234801562000010575f80fd5b50620000216200002760201b60201c565b62000191565b5f620000386200012b60201b60201c565b9050805f0160089054906101000a900460ff161562000083576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1614620001285767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516200011f919062000176565b60405180910390a15b50565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b5f67ffffffffffffffff82169050919050565b620001708162000152565b82525050565b5f6020820190506200018b5f83018462000165565b92915050565b6154a0806200019f5f395ff3fe608060405234801561000f575f80fd5b5060043610610230575f3560e01c8063715018a61161012e5780639ab24eb0116100b6578063d505accf1161007a578063d505accf146106a4578063d9d98ce4146106c0578063dd62ed3e146106f0578063f1127ed814610720578063f2fde38b1461075057610230565b80639ab24eb0146105f05780639d9e465c14610620578063a9059cbb1461063c578063c3cda5201461066c578063c4d66de81461068857610230565b806384b0196e116100fd57806384b0196e146105425780638da5cb5b146105665780638e539e8c1461058457806391ddadf4146105b457806395d89b41146105d257610230565b8063715018a6146104e257806379cc6790146104ec5780637ecebe00146105085780638456cb591461053857610230565b806342966c68116101bc5780635cffe9de116101805780635cffe9de146104065780635f74bbde14610436578063613255ab146104525780636fcfff451461048257806370a08231146104b257610230565b806342966c68146103625780634bf5d7e91461037e578063587cde1e1461039c5780635c19a95c146103cc5780635c975abb146103e857610230565b8063313ce56711610203578063313ce567146102d05780633644e515146102ee5780633a46b1a81461030c5780633f4ba83a1461033c57806340c10f191461034657610230565b806306fdde0314610234578063095ea7b31461025257806318160ddd1461028257806323b872dd146102a0575b5f80fd5b61023c61076c565b6040516102499190613e16565b60405180910390f35b61026c60048036038101906102679190613ecb565b6107a9565b6040516102799190613f23565b60405180910390f35b61028a6107bc565b6040516102979190613f4b565b60405180910390f35b6102ba60048036038101906102b59190613f64565b6107d3565b6040516102c79190613f23565b60405180910390f35b6102d8610856565b6040516102e59190613fcf565b60405180910390f35b6102f661085e565b6040516103039190614000565b60405180910390f35b61032660048036038101906103219190613ecb565b61086c565b6040516103339190613f4b565b60405180910390f35b610344610950565b005b610360600480360381019061035b9190613ecb565b610962565b005b61037c60048036038101906103779190614019565b610978565b005b610386610985565b6040516103939190613e16565b60405180910390f35b6103b660048036038101906103b19190614044565b610a19565b6040516103c3919061407e565b60405180910390f35b6103e660048036038101906103e19190614044565b610a8b565b005b6103f0610aa4565b6040516103fd9190613f23565b60405180910390f35b610420600480360381019061041b9190614133565b610ac6565b60405161042d9190613f23565b60405180910390f35b610450600480360381019061044b9190613ecb565b610cbb565b005b61046c60048036038101906104679190614044565b610e2a565b6040516104799190613f4b565b60405180910390f35b61049c60048036038101906104979190614044565b610e9f565b6040516104a991906141d5565b60405180910390f35b6104cc60048036038101906104c79190614044565b610eb0565b6040516104d99190613f4b565b60405180910390f35b6104ea610ec1565b005b61050660048036038101906105019190613ecb565b610ed4565b005b610522600480360381019061051d9190614044565b610ef4565b60405161052f9190613f4b565b60405180910390f35b610540610f05565b005b61054a610f17565b60405161055d97969594939291906142df565b60405180910390f35b61056e611020565b60405161057b919061407e565b60405180910390f35b61059e60048036038101906105999190614019565b611055565b6040516105ab9190613f4b565b60405180910390f35b6105bc6110fd565b6040516105c99190614381565b60405180910390f35b6105da61110b565b6040516105e79190613e16565b60405180910390f35b61060a60048036038101906106059190614044565b611148565b6040516106179190613f4b565b60405180910390f35b61063a60048036038101906106359190613ecb565b6111bf565b005b61065660048036038101906106519190613ecb565b611269565b6040516106639190613f23565b60405180910390f35b610686600480360381019061068191906143ee565b6112ea565b005b6106a2600480360381019061069d9190614044565b6113af565b005b6106be60048036038101906106b99190614477565b61162e565b005b6106da60048036038101906106d59190613ecb565b611773565b6040516106e79190613f4b565b60405180910390f35b61070a60048036038101906107059190614514565b6117f6565b6040516107179190613f4b565b60405180910390f35b61073a6004803603810190610735919061457c565b611809565b604051610747919061462a565b60405180910390f35b61076a60048036038101906107659190614044565b611823565b005b60606040518060400160405280600c81526020017f4c61696e546f6b656e3030330000000000000000000000000000000000000000815250905090565b5f6107b483836118a7565b905092915050565b5f806107c66118c9565b9050806002015491505090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610839906146b3565b60405180910390fd5b61084d8484846118f0565b90509392505050565b5f6012905090565b5f61086761191e565b905090565b5f8061087661192c565b90505f6108816110fd565b90508065ffffffffffff1684106108d15783816040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004016108c89291906146d1565b60405180910390fd5b61092a6108dd85611953565b836001015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206119ac90919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff169250505092915050565b610958611a99565b610960611b20565b565b61096a611a99565b6109748282611b8e565b5050565b6109823382611c0d565b50565b606061098f611c8c565b65ffffffffffff1661099f6110fd565b65ffffffffffff16146109de576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280601d81526020017f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000815250905090565b5f80610a2361192c565b9050805f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b5f610a94611c9b565b9050610aa08183611ca2565b5050565b5f80610aae611dbf565b9050805f015f9054906101000a900460ff1691505090565b5f80610ad186610e2a565b905080851115610b1857806040517ffd9a7609000000000000000000000000000000000000000000000000000000008152600401610b0f9190613f4b565b60405180910390fd5b5f610b238787611773565b9050610b2f8887611b8e565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98873ffffffffffffffffffffffffffffffffffffffff166323e30c8b610b74611c9b565b8a8a868b8b6040518763ffffffff1660e01b8152600401610b9a96959493929190614742565b6020604051808303815f875af1158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda91906147b0565b14610c1c57876040517f678c5b00000000000000000000000000000000000000000000000000000000008152600401610c13919061407e565b60405180910390fd5b5f610c25611de6565b9050610c3d8930848a610c389190614808565b611dea565b5f821480610c7657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610c9557610c90898389610c8b9190614808565b611c0d565b610cab565b610c9f8988611c0d565b610caa898284611e7c565b5b6001935050505095945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2090614885565b60405180910390fd5b5f8111610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d62906148ed565b60405180910390fd5b80610d7533610eb0565b1015610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90614955565b60405180910390fd5b610dc1338383611e7c565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc83604051610e1e9190613f4b565b60405180910390a35050565b5f3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610e64575f610e98565b610e6c6107bc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e979190614973565b5b9050919050565b5f610ea982611f6c565b9050919050565b5f610eba82611fcf565b9050919050565b610ec9611a99565b610ed25f612022565b565b610ee682610ee0611c9b565b83611dea565b610ef08282611c0d565b5050565b5f610efe826120f3565b9050919050565b610f0d611a99565b610f15612104565b565b5f6060805f805f60605f610f29612173565b90505f801b815f0154148015610f4457505f801b8160010154145b610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906149f0565b60405180910390fd5b610f8b61219a565b610f93612238565b46305f801b5f67ffffffffffffffff811115610fb257610fb1614a0e565b5b604051908082528060200260200182016040528015610fe05781602001602082028036833780820191505090505b507f0f0000000000000000000000000000000000000000000000000000000000000095949392919097509750975097509750975097505090919293949596565b5f8061102a6122d6565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f8061105f61192c565b90505f61106a6110fd565b90508065ffffffffffff1684106110ba5783816040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004016110b19291906146d1565b60405180910390fd5b6110d86110c685611953565b836002016119ac90919063ffffffff16565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff1692505050919050565b5f611106611c8c565b905090565b60606040518060400160405280600a81526020017f4d544b4c41494e30303300000000000000000000000000000000000000000000815250905090565b5f8061115261192c565b905061119b816001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206122fd565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b5f6111c983610eb0565b90508181101561120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590614aab565b60405180910390fd5b611219833084611e7c565b8061122384610eb0565b1015611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90614b13565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf906146b3565b60405180910390fd5b6112e2838361235f565b905092915050565b8342111561132f57836040517f4683af0e0000000000000000000000000000000000000000000000000000000081526004016113269190613f4b565b60405180910390fd5b5f6113906113887fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf89898960405160200161136d9493929190614b31565b60405160208183030381529060405280519060200120612381565b85858561239a565b905061139c81876123c8565b6113a68188611ca2565b50505050505050565b5f6113b861241f565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f808267ffffffffffffffff161480156114005750825b90505f60018367ffffffffffffffff1614801561143357505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611441575080155b15611478576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156114c5576001855f0160086101000a81548160ff0219169083151502179055505b6115396040518060400160405280600c81526020017f4c61696e546f6b656e30303300000000000000000000000000000000000000008152506040518060400160405280600a81526020017f4d544b4c41494e30303300000000000000000000000000000000000000000000815250612446565b61154161245c565b611549612466565b61155286612478565b6115906040518060400160405280600c81526020017f4c61696e546f6b656e303033000000000000000000000000000000000000000081525061248c565b6115986124d6565b6115a06124e0565b6115cc336115ac610856565b600a6115b89190614ca3565b6307554b1c6115c79190614ced565b611b8e565b8315611626575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161161d9190614d83565b60405180910390a15b505050505050565b8342111561167357836040517f6279130200000000000000000000000000000000000000000000000000000000815260040161166a9190613f4b565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886116a18c6124ea565b896040516020016116b796959493929190614d9c565b6040516020818303038152906040528051906020012090505f6116d982612381565b90505f6116e88287878761239a565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461175c57808a6040517f4b800e46000000000000000000000000000000000000000000000000000000008152600401611753929190614dfb565b60405180910390fd5b6117678a8a8a61254a565b50505050505050505050565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117e457826040517fb5a7db920000000000000000000000000000000000000000000000000000000081526004016117db919061407e565b60405180910390fd5b6117ee838361255c565b905092915050565b5f6118018383612563565b905092915050565b611811613d50565b61181b83836125f3565b905092915050565b61182b611a99565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361189b575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611892919061407e565b60405180910390fd5b6118a481612022565b50565b5f806118b1611c9b565b90506118be81858561254a565b600191505092915050565b5f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00905090565b5f806118fa611c9b565b9050611907858285611dea565b611912858585611e7c565b60019150509392505050565b5f611927612660565b905090565b5f7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00905090565b5f65ffffffffffff80168211156119a4576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161199b929190614e5b565b60405180910390fd5b819050919050565b5f80835f018054905090505f808290506005831115611a2d575f6119cf846126c3565b846119da9190614973565b90506119e8875f01826127b9565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff168665ffffffffffff161015611a1b57809150611a2b565b600181611a289190614808565b92505b505b5f611a3c875f018785856127cb565b90505f8114611a8b57611a5d875f01600183611a589190614973565b6127b9565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16611a8d565b5f5b94505050505092915050565b611aa1611c9b565b73ffffffffffffffffffffffffffffffffffffffff16611abf611020565b73ffffffffffffffffffffffffffffffffffffffff1614611b1e57611ae2611c9b565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611b15919061407e565b60405180910390fd5b565b611b28612840565b5f611b31611dbf565b90505f815f015f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b76611c9b565b604051611b83919061407e565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bfe575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611bf5919061407e565b60405180910390fd5b611c095f8383612880565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7d575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611c74919061407e565b60405180910390fd5b611c88825f83612880565b5050565b5f611c9643611953565b905090565b5f33905090565b5f611cab61192c565b90505f611cb784610a19565b905082825f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611db98184611db487612890565b6128a1565b50505050565b5f7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300905090565b5f90565b5f611df584846117f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e765781811015611e67578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611e5e93929190614e82565b60405180910390fd5b611e7584848484035f612b21565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eec575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ee3919061407e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f5c575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f53919061407e565b60405180910390fd5b611f67838383612880565b505050565b5f80611f7661192c565b9050611fc7611fc2826001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20612cfe565b612d0d565b915050919050565b5f80611fd96118c9565b9050805f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054915050919050565b5f61202b6122d6565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b5f6120fd82612d64565b9050919050565b61210c612db7565b5f612115611dbf565b90506001815f015f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861215b611c9b565b604051612168919061407e565b60405180910390a150565b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100905090565b60605f6121a5612173565b90508060020180546121b690614ee4565b80601f01602080910402602001604051908101604052809291908181526020018280546121e290614ee4565b801561222d5780601f106122045761010080835404028352916020019161222d565b820191905f5260205f20905b81548152906001019060200180831161221057829003601f168201915b505050505091505090565b60605f612243612173565b905080600301805461225490614ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461228090614ee4565b80156122cb5780601f106122a2576101008083540402835291602001916122cb565b820191905f5260205f20905b8154815290600101906020018083116122ae57829003601f168201915b505050505091505090565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f80825f018054905090505f811461235557612327835f016001836123229190614973565b6127b9565b5f0160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff16612357565b5f5b915050919050565b5f80612369611c9b565b9050612376818585611e7c565b600191505092915050565b5f61239361238d61191e565b83612df8565b9050919050565b5f805f806123aa88888888612e38565b9250925092506123ba8282612f1f565b829350505050949350505050565b5f6123d2836124ea565b905080821461241a5782816040517f752d88c0000000000000000000000000000000000000000000000000000000008152600401612411929190614f14565b60405180910390fd5b505050565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b61244e613081565b61245882826130c1565b5050565b612464613081565b565b61246e613081565b6124766130fd565b565b612480613081565b6124898161312d565b50565b612494613081565b6124d3816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506131b1565b50565b6124de613081565b565b6124e8613081565b565b5f806124f4613202565b9050805f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81548092919060010191905055915050919050565b6125578383836001612b21565b505050565b5f92915050565b5f8061256d6118c9565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b6125fb613d50565b5f61260461192c565b905061265783826001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2061322990919063ffffffff16565b91505092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61268a6132f8565b61269261336e565b46306040516020016126a8959493929190614f3b565b60405160208183030381529060405280519060200120905090565b5f8082036126d3575f90506127b4565b5f60016126df846133e5565b901c6001901b905060018184816126f9576126f8614f8c565b5b048201901c9050600181848161271257612711614f8c565b5b048201901c9050600181848161272b5761272a614f8c565b5b048201901c9050600181848161274457612743614f8c565b5b048201901c9050600181848161275d5761275c614f8c565b5b048201901c9050600181848161277657612775614f8c565b5b048201901c9050600181848161278f5761278e614f8c565b5b048201901c90506127b0818285816127aa576127a9614f8c565b5b046134bc565b9150505b919050565b5f825f528160205f2001905092915050565b5f5b81831015612835575f6127e084846134d4565b90508465ffffffffffff166127f587836127b9565b5f015f9054906101000a900465ffffffffffff1665ffffffffffff16111561281f5780925061282f565b60018161282c9190614808565b93505b506127cd565b819050949350505050565b612848610aa4565b61287e576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61288b8383836134f9565b505050565b5f61289a82610eb0565b9050919050565b5f6128aa61192c565b90508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156128e757505f82115b15612b1b575f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612a03575f80612974836001015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206135a761296f876135bc565b613629565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508573ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516129f8929190614fb9565b60405180910390a250505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b1a575f80612a8b836001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20613668612a86876135bc565b613629565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff16915079ffffffffffffffffffffffffffffffffffffffffffffffffffff1691508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612b0f929190614fb9565b60405180910390a250505b5b50505050565b5f612b2a6118c9565b90505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612b9c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401612b93919061407e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612c0c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401612c03919061407e565b60405180910390fd5b82816001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508115612cf7578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051612cee9190613f4b565b60405180910390a35b5050505050565b5f815f01805490509050919050565b5f63ffffffff8016821115612d5c576020826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401612d53929190615019565b60405180910390fd5b819050919050565b5f80612d6e613202565b9050805f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054915050919050565b612dbf610aa4565b15612df6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115612e74575f600385925092509250612f15565b5f6001888888886040515f8152602001604052604051612e979493929190615040565b6020604051602081039080840390855afa158015612eb7573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612f08575f60015f801b93509350935050612f15565b805f805f1b935093509350505b9450945094915050565b5f6003811115612f3257612f31615083565b5b826003811115612f4557612f44615083565b5b031561307d5760016003811115612f5f57612f5e615083565b5b826003811115612f7257612f71615083565b5b03612fa9576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115612fbd57612fbc615083565b5b826003811115612fd057612fcf615083565b5b0361301457805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161300b9190613f4b565b60405180910390fd5b60038081111561302757613026615083565b5b82600381111561303a57613039615083565b5b0361307c57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016130739190614000565b60405180910390fd5b5b5050565b61308961367d565b6130bf576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6130c9613081565b5f6130d26118c9565b9050828160030190816130e59190615244565b50818160040190816130f79190615244565b50505050565b613105613081565b5f61310e611dbf565b90505f815f015f6101000a81548160ff02191690831515021790555050565b613135613081565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036131a5575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161319c919061407e565b60405180910390fd5b6131ae81612022565b50565b6131b9613081565b5f6131c2612173565b9050828160020190816131d59190615244565b50818160030190816131e79190615244565b505f801b815f01819055505f801b8160010181905550505050565b5f7f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00905090565b613231613d50565b825f018263ffffffff168154811061324c5761324b615313565b5b905f5260205f20016040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b5f80613302612173565b90505f61330d61219a565b90505f815111156133295780805190602001209250505061336b565b5f825f015490505f801b81146133445780935050505061336b565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47093505050505b90565b5f80613378612173565b90505f613383612238565b90505f8151111561339f578080519060200120925050506133e2565b5f826001015490505f801b81146133bb578093505050506133e2565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47093505050505b90565b5f805f90505f608084901c111561340457608083901c92506080810190505b5f604084901c111561341e57604083901c92506040810190505b5f602084901c111561343857602083901c92506020810190505b5f601084901c111561345257601083901c92506010810190505b5f600884901c111561346c57600883901c92506008810190505b5f600484901c111561348657600483901c92506004810190505b5f600284901c11156134a057600283901c92506002810190505b5f600184901c11156134b3576001810190505b80915050919050565b5f8183106134ca57816134cc565b825b905092915050565b5f60028284186134e49190615340565b8284166134f19190614808565b905092915050565b61350483838361369b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613597575f6135406107bc565b90505f61354b6136b3565b9050808211156135945781816040517f1cb15d2600000000000000000000000000000000000000000000000000000000815260040161358b929190614fb9565b60405180910390fd5b50505b6135a28383836136d6565b505050565b5f81836135b49190615370565b905092915050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff80168211156136215760d0826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016136189291906153f6565b60405180910390fd5b819050919050565b5f8061365c6136366110fd565b61364c613642886122fd565b868863ffffffff16565b8761379e9092919063ffffffff16565b91509150935093915050565b5f8183613675919061541d565b905092915050565b5f61368661241f565b5f0160089054906101000a900460ff16905090565b6136a3612db7565b6136ae8383836137b9565b505050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff8016905090565b5f6136df61192c565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361372f5761372c81600201613668613727856135bc565b613629565b50505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361377d5761377a816002016135a7613775856135bc565b613629565b50505b61379861378985610a19565b61379285610a19565b846128a1565b50505050565b5f806137ad855f0185856139e8565b91509150935093915050565b5f6137c26118c9565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036138165781816002015f82825461380a9190614808565b925050819055506138e8565b5f815f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156138a1578481846040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161389893929190614e82565b60405180910390fd5b828103825f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036139315781816002015f828254039250508190555061397d565b81815f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139da9190613f4b565b60405180910390a350505050565b5f805f858054905090505f811115613c68575f613a1187600184613a0c9190614973565b6127b9565b6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900479ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff1679ffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508565ffffffffffff16815f015165ffffffffffff161115613afc576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8565ffffffffffff16815f015165ffffffffffff1603613b7e5784613b2d88600185613b289190614973565b6127b9565b5f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550613c57565b8660405180604001604052808865ffffffffffff1681526020018779ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b806020015185935093505050613d48565b8560405180604001604052808765ffffffffffff1681526020018679ffffffffffffffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f20015f909190919091505f820151815f015f6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506020820151815f0160066101000a81548179ffffffffffffffffffffffffffffffffffffffffffffffffffff021916908379ffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505f8492509250505b935093915050565b60405180604001604052805f65ffffffffffff1681526020015f79ffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613dc3578082015181840152602081019050613da8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613de882613d8c565b613df28185613d96565b9350613e02818560208601613da6565b613e0b81613dce565b840191505092915050565b5f6020820190508181035f830152613e2e8184613dde565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613e6782613e3e565b9050919050565b613e7781613e5d565b8114613e81575f80fd5b50565b5f81359050613e9281613e6e565b92915050565b5f819050919050565b613eaa81613e98565b8114613eb4575f80fd5b50565b5f81359050613ec581613ea1565b92915050565b5f8060408385031215613ee157613ee0613e36565b5b5f613eee85828601613e84565b9250506020613eff85828601613eb7565b9150509250929050565b5f8115159050919050565b613f1d81613f09565b82525050565b5f602082019050613f365f830184613f14565b92915050565b613f4581613e98565b82525050565b5f602082019050613f5e5f830184613f3c565b92915050565b5f805f60608486031215613f7b57613f7a613e36565b5b5f613f8886828701613e84565b9350506020613f9986828701613e84565b9250506040613faa86828701613eb7565b9150509250925092565b5f60ff82169050919050565b613fc981613fb4565b82525050565b5f602082019050613fe25f830184613fc0565b92915050565b5f819050919050565b613ffa81613fe8565b82525050565b5f6020820190506140135f830184613ff1565b92915050565b5f6020828403121561402e5761402d613e36565b5b5f61403b84828501613eb7565b91505092915050565b5f6020828403121561405957614058613e36565b5b5f61406684828501613e84565b91505092915050565b61407881613e5d565b82525050565b5f6020820190506140915f83018461406f565b92915050565b5f6140a182613e5d565b9050919050565b6140b181614097565b81146140bb575f80fd5b50565b5f813590506140cc816140a8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126140f3576140f26140d2565b5b8235905067ffffffffffffffff8111156141105761410f6140d6565b5b60208301915083600182028301111561412c5761412b6140da565b5b9250929050565b5f805f805f6080868803121561414c5761414b613e36565b5b5f614159888289016140be565b955050602061416a88828901613e84565b945050604061417b88828901613eb7565b935050606086013567ffffffffffffffff81111561419c5761419b613e3a565b5b6141a8888289016140de565b92509250509295509295909350565b5f63ffffffff82169050919050565b6141cf816141b7565b82525050565b5f6020820190506141e85f8301846141c6565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b614222816141ee565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61425a81613e98565b82525050565b5f61426b8383614251565b60208301905092915050565b5f602082019050919050565b5f61428d82614228565b6142978185614232565b93506142a283614242565b805f5b838110156142d25781516142b98882614260565b97506142c483614277565b9250506001810190506142a5565b5085935050505092915050565b5f60e0820190506142f25f83018a614219565b81810360208301526143048189613dde565b905081810360408301526143188188613dde565b90506143276060830187613f3c565b614334608083018661406f565b61434160a0830185613ff1565b81810360c08301526143538184614283565b905098975050505050505050565b5f65ffffffffffff82169050919050565b61437b81614361565b82525050565b5f6020820190506143945f830184614372565b92915050565b6143a381613fb4565b81146143ad575f80fd5b50565b5f813590506143be8161439a565b92915050565b6143cd81613fe8565b81146143d7575f80fd5b50565b5f813590506143e8816143c4565b92915050565b5f805f805f8060c0878903121561440857614407613e36565b5b5f61441589828a01613e84565b965050602061442689828a01613eb7565b955050604061443789828a01613eb7565b945050606061444889828a016143b0565b935050608061445989828a016143da565b92505060a061446a89828a016143da565b9150509295509295509295565b5f805f805f805f60e0888a03121561449257614491613e36565b5b5f61449f8a828b01613e84565b97505060206144b08a828b01613e84565b96505060406144c18a828b01613eb7565b95505060606144d28a828b01613eb7565b94505060806144e38a828b016143b0565b93505060a06144f48a828b016143da565b92505060c06145058a828b016143da565b91505092959891949750929550565b5f806040838503121561452a57614529613e36565b5b5f61453785828601613e84565b925050602061454885828601613e84565b9150509250929050565b61455b816141b7565b8114614565575f80fd5b50565b5f8135905061457681614552565b92915050565b5f806040838503121561459257614591613e36565b5b5f61459f85828601613e84565b92505060206145b085828601614568565b9150509250929050565b6145c381614361565b82525050565b5f79ffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6145f7816145c9565b82525050565b604082015f8201516146115f8501826145ba565b50602082015161462460208501826145ee565b50505050565b5f60408201905061463d5f8301846145fd565b92915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f657373206973206e6f7420616c6c6f7765640000000000000000000000000000602082015250565b5f61469d603283613d96565b91506146a882614643565b604082019050919050565b5f6020820190508181035f8301526146ca81614691565b9050919050565b5f6040820190506146e45f830185613f3c565b6146f16020830184614372565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f61472183856146f8565b935061472e838584614708565b61473783613dce565b840190509392505050565b5f60a0820190506147555f83018961406f565b614762602083018861406f565b61476f6040830187613f3c565b61477c6060830186613f3c565b818103608083015261478f818486614716565b9050979650505050505050565b5f815190506147aa816143c4565b92915050565b5f602082840312156147c5576147c4613e36565b5b5f6147d28482850161479c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61481282613e98565b915061481d83613e98565b9250828201905080821115614835576148346147db565b5b92915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f61486f600f83613d96565b915061487a8261483b565b602082019050919050565b5f6020820190508181035f83015261489c81614863565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f6148d7602083613d96565b91506148e2826148a3565b602082019050919050565b5f6020820190508181035f830152614904816148cb565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320746f20766f7465000000000000005f82015250565b5f61493f601983613d96565b915061494a8261490b565b602082019050919050565b5f6020820190508181035f83015261496c81614933565b9050919050565b5f61497d82613e98565b915061498883613e98565b92508282039050818111156149a05761499f6147db565b5b92915050565b7f4549503731323a20556e696e697469616c697a656400000000000000000000005f82015250565b5f6149da601583613d96565b91506149e5826149a6565b602082019050919050565b5f6020820190508181035f830152614a07816149ce565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f496e73756666696369656e742062616c616e636520666f7220666c617368206c5f8201527f6f616e0000000000000000000000000000000000000000000000000000000000602082015250565b5f614a95602383613d96565b9150614aa082614a3b565b604082019050919050565b5f6020820190508181035f830152614ac281614a89565b9050919050565b7f466c617368206c6f616e206e6f742070616964206261636b00000000000000005f82015250565b5f614afd601883613d96565b9150614b0882614ac9565b602082019050919050565b5f6020820190508181035f830152614b2a81614af1565b9050919050565b5f608082019050614b445f830187613ff1565b614b51602083018661406f565b614b5e6040830185613f3c565b614b6b6060830184613f3c565b95945050505050565b5f8160011c9050919050565b5f808291508390505b6001851115614bc957808604811115614ba557614ba46147db565b5b6001851615614bb45780820291505b8081029050614bc285614b74565b9450614b89565b94509492505050565b5f82614be15760019050614c9c565b81614bee575f9050614c9c565b8160018114614c045760028114614c0e57614c3d565b6001915050614c9c565b60ff841115614c2057614c1f6147db565b5b8360020a915084821115614c3757614c366147db565b5b50614c9c565b5060208310610133831016604e8410600b8410161715614c725782820a905083811115614c6d57614c6c6147db565b5b614c9c565b614c7f8484846001614b80565b92509050818404811115614c9657614c956147db565b5b81810290505b9392505050565b5f614cad82613e98565b9150614cb883613fb4565b9250614ce57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614bd2565b905092915050565b5f614cf782613e98565b9150614d0283613e98565b9250828202614d1081613e98565b91508282048414831517614d2757614d266147db565b5b5092915050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f819050919050565b5f614d6d614d68614d6384614d2e565b614d4a565b614d37565b9050919050565b614d7d81614d53565b82525050565b5f602082019050614d965f830184614d74565b92915050565b5f60c082019050614daf5f830189613ff1565b614dbc602083018861406f565b614dc9604083018761406f565b614dd66060830186613f3c565b614de36080830185613f3c565b614df060a0830184613f3c565b979650505050505050565b5f604082019050614e0e5f83018561406f565b614e1b602083018461406f565b9392505050565b5f819050919050565b5f614e45614e40614e3b84614e22565b614d4a565b613fb4565b9050919050565b614e5581614e2b565b82525050565b5f604082019050614e6e5f830185614e4c565b614e7b6020830184613f3c565b9392505050565b5f606082019050614e955f83018661406f565b614ea26020830185613f3c565b614eaf6040830184613f3c565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614efb57607f821691505b602082108103614f0e57614f0d614eb7565b5b50919050565b5f604082019050614f275f83018561406f565b614f346020830184613f3c565b9392505050565b5f60a082019050614f4e5f830188613ff1565b614f5b6020830187613ff1565b614f686040830186613ff1565b614f756060830185613f3c565b614f82608083018461406f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050614fcc5f830185613f3c565b614fd96020830184613f3c565b9392505050565b5f819050919050565b5f615003614ffe614ff984614fe0565b614d4a565b613fb4565b9050919050565b61501381614fe9565b82525050565b5f60408201905061502c5f83018561500a565b6150396020830184613f3c565b9392505050565b5f6080820190506150535f830187613ff1565b6150606020830186613fc0565b61506d6040830185613ff1565b61507a6060830184613ff1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261510c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826150d1565b61511686836150d1565b95508019841693508086168417925050509392505050565b5f61514861514361513e84613e98565b614d4a565b613e98565b9050919050565b5f819050919050565b6151618361512e565b61517561516d8261514f565b8484546150dd565b825550505050565b5f90565b61518961517d565b615194818484615158565b505050565b5b818110156151b7576151ac5f82615181565b60018101905061519a565b5050565b601f8211156151fc576151cd816150b0565b6151d6846150c2565b810160208510156151e5578190505b6151f96151f1856150c2565b830182615199565b50505b505050565b5f82821c905092915050565b5f61521c5f1984600802615201565b1980831691505092915050565b5f615234838361520d565b9150826002028217905092915050565b61524d82613d8c565b67ffffffffffffffff81111561526657615265614a0e565b5b6152708254614ee4565b61527b8282856151bb565b5f60209050601f8311600181146152ac575f841561529a578287015190505b6152a48582615229565b86555061530b565b601f1984166152ba866150b0565b5f5b828110156152e1578489015182556001820191506020850194506020810190506152bc565b868310156152fe57848901516152fa601f89168261520d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61534a82613e98565b915061535583613e98565b92508261536557615364614f8c565b5b828204905092915050565b5f61537a826145c9565b9150615385836145c9565b9250828203905079ffffffffffffffffffffffffffffffffffffffffffffffffffff8111156153b7576153b66147db565b5b92915050565b5f819050919050565b5f6153e06153db6153d6846153bd565b614d4a565b613fb4565b9050919050565b6153f0816153c6565b82525050565b5f6040820190506154095f8301856153e7565b6154166020830184613f3c565b9392505050565b5f615427826145c9565b9150615432836145c9565b9250828201905079ffffffffffffffffffffffffffffffffffffffffffffffffffff811115615464576154636147db565b5b9291505056fea26469706673582212204b03cafb92796387310319a23e9721f6d4f1bb2695c01a41b4b695a22d74149264736f6c63430008160033