0x608060405234801561000f575f80fd5b50610c658061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80630cb10cc21461002d575b5f80fd5b61004061003b3660046107aa565b610042565b005b5f61004f828401846108e7565b905061005a8161005f565b505050565b60208101516001600160f81b0319165f036100a3575f815f015180602001905181019061008c91906109fb565b905061009f815f015182602001516101e8565b5050565b60208101516001600160f81b031916600160f81b036100e7575f815f01518060200190518101906100d491906109fb565b905061009f815f01518260200151610404565b60208101516001600160f81b031916600160f91b0361012b575f815f015180602001905181019061011891906109fb565b905061005a815f0151826020015161048a565b60208101516001600160f81b031916600360f81b0361016f575f815f015180602001905181019061015c91906109fb565b905061005a815f0151826020015161056c565b60208101516001600160f81b031916600160fa1b036101ae575f815f01518060200190518101906101a09190610a15565b905061009f815f0151610608565b60405162461bcd60e51b81526004016101df90602080825260049082015263494e565360e01b604082015260600190565b60405180910390fd5b6040516335ea6a7560e01b81526001600160a01b03831660048201525f907387870bca3f3fd6335c3f4ce8392d69350b4fa4e2906335ea6a75906024016101e060405180830381865afa158015610241573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102659190610aac565b61010001516040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156102b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d59190610bcd565b111561034b57604051635a3b74b960e01b81526001600160a01b0384166004820152600160248201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e290635a3b74b9906044015f604051808303815f87803b158015610334575f80fd5b505af1158015610346573d5f803e3d5ffd5b505050505b61036a837387870bca3f3fd6335c3f4ce8392d69350b4fa4e28461066d565b60405163617ba03760e01b81526001600160a01b0384166004820152602481018390523060448201525f60648201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e29063617ba037906084015f604051808303815f87803b1580156103cf575f80fd5b505af11580156103e1573d5f803e3d5ffd5b5050505061005a837387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f61066d565b60405163a415bcad60e01b81526001600160a01b038316600482015260248101829052600260448201525f60648201523060848201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e29063a415bcad9060a4015f604051808303815f87803b158015610470575f80fd5b505af1158015610482573d5f803e3d5ffd5b505050505050565b5f815f03610497575f1991505b6104b6837387870bca3f3fd6335c3f4ce8392d69350b4fa4e28461066d565b60405163573ade8160e01b81526001600160a01b038416600482015260248101839052600260448201523060648201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e29063573ade81906084016020604051808303815f875af1158015610521573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105459190610bcd565b9050610566837387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f61066d565b92915050565b5f815f03610579575f1991505b604051631a4ca37b60e21b81526001600160a01b0384166004820152602481018390523060448201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e2906369328dec906064016020604051808303815f875af11580156105dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106019190610bcd565b9392505050565b6040516328530a4760e01b815260ff821660048201527387870bca3f3fd6335c3f4ce8392d69350b4fa4e2906328530a47906024015f604051808303815f87803b158015610654575f80fd5b505af1158015610666573d5f803e3d5ffd5b5050505050565b5f8061067a858585610703565b915091508180156106a35750805115806106a35750808060200190518101906106a39190610be4565b6106665760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016101df565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f926060929087169161075f9190610c03565b5f604051808303815f865af19150503d805f8114610798576040519150601f19603f3d011682016040523d82523d5f602084013e61079d565b606091505b5091509150935093915050565b5f80602083850312156107bb575f80fd5b823567ffffffffffffffff808211156107d2575f80fd5b818501915085601f8301126107e5575f80fd5b8135818111156107f3575f80fd5b866020828501011115610804575f80fd5b60209290920196919550909350505050565b634e487b7160e01b5f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561084d5761084d610816565b60405290565b6040516020810167ffffffffffffffff8111828210171561084d5761084d610816565b6040516101e0810167ffffffffffffffff8111828210171561084d5761084d610816565b604051601f8201601f1916810167ffffffffffffffff811182821017156108c3576108c3610816565b604052919050565b80356001600160f81b0319811681146108e2575f80fd5b919050565b5f60208083850312156108f8575f80fd5b823567ffffffffffffffff8082111561090f575f80fd5b9084019060408287031215610922575f80fd5b61092a61082a565b823582811115610938575f80fd5b8301601f81018813610948575f80fd5b80358381111561095a5761095a610816565b61096c601f8201601f1916870161089a565b93508084528886828401011115610981575f80fd5b80868301878601375f9084018601525081815261099f8385016108cb565b848201528094505050505092915050565b80516001600160a01b03811681146108e2575f80fd5b5f604082840312156109d6575f80fd5b6109de61082a565b90506109e9826109b0565b81526020820151602082015292915050565b5f60408284031215610a0b575f80fd5b61060183836109c6565b5f60208284031215610a25575f80fd5b610a2d610853565b825160ff81168114610a3d575f80fd5b81529392505050565b5f60208284031215610a56575f80fd5b610a5e610853565b9151825250919050565b80516fffffffffffffffffffffffffffffffff811681146108e2575f80fd5b805164ffffffffff811681146108e2575f80fd5b805161ffff811681146108e2575f80fd5b5f6101e08284031215610abd575f80fd5b610ac5610876565b610acf8484610a46565b8152610add60208401610a68565b6020820152610aee60408401610a68565b6040820152610aff60608401610a68565b6060820152610b1060808401610a68565b6080820152610b2160a08401610a68565b60a0820152610b3260c08401610a87565b60c0820152610b4360e08401610a9b565b60e0820152610100610b568185016109b0565b90820152610120610b688482016109b0565b90820152610140610b7a8482016109b0565b90820152610160610b8c8482016109b0565b90820152610180610b9e848201610a68565b908201526101a0610bb0848201610a68565b908201526101c0610bc2848201610a68565b908201529392505050565b5f60208284031215610bdd575f80fd5b5051919050565b5f60208284031215610bf4575f80fd5b81518015158114610601575f80fd5b5f82515f5b81811015610c225760208186018101518583015201610c08565b505f92019182525091905056fea26469706673582212202d4a476da82c656cdffd0ebfdf6f9a588a6e3008e6eac3f7d2411b3cfa37824964736f6c63430008150033