608060405234801561000f575f80fd5b5060405161349438038061349483398101604081905261002e916103d1565b8484838380825f335f80546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061008833610175565b6100986301ffc9a760e01b6101b6565b6100a8632dde656160e21b6101b6565b60036100b48282610519565b506100c563e8a3d48560e01b6101b6565b5060046100d28282610519565b506100e590506380ac58cd60e01b6101b6565b6100f563780e9d6360e01b6101b6565b600e6101018582610519565b50600f61010e8482610519565b5061011f635b5e139f60e01b6101b6565b61012f630a85bd0160e11b6101b6565b505050506101627fe37243f27916e395706434720b54132b80ef5cc8c56f39b0df6485e8dfb697cf6101b660201b60201c565b61016b83610175565b50505050506105d8565b610180600182610239565b6040516001600160a01b038216907f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24905f90a250565b6001600160e01b031980821690036102155760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319165f908152600260205260409020805460ff19166001179055565b61024382826102b4565b156102905760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640161020c565b6001600160a01b03165f90815260209190915260409020805460ff19166001179055565b5f6001600160a01b0382166103165760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840161020c565b506001600160a01b03165f908152602091909152604090205460ff1690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610358575f80fd5b81516001600160401b038082111561037257610372610335565b604051601f8301601f19908116603f0116810190828211818310171561039a5761039a610335565b816040528381528660208588010111156103b2575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f805f805f60a086880312156103e5575f80fd5b85516001600160401b03808211156103fb575f80fd5b61040789838a01610349565b9650602088015191508082111561041c575f80fd5b61042889838a01610349565b604089015190965091506001600160a01b0382168214610446575f80fd5b60608801519194508082111561045a575f80fd5b61046689838a01610349565b9350608088015191508082111561047b575f80fd5b5061048888828901610349565b9150509295509295909350565b600181811c908216806104a957607f821691505b6020821081036104c757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561051457805f5260205f20601f840160051c810160208510156104f25750805b601f840160051c820191505b81811015610511575f81556001016104fe565b50505b505050565b81516001600160401b0381111561053257610532610335565b610546816105408454610495565b846104cd565b602080601f831160018114610579575f84156105625750858301515b5f19600386901b1c1916600185901b1785556105d0565b5f85815260208120601f198616915b828110156105a757888601518255948401946001909101908401610588565b50858210156105c457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b612eaf806105e55f395ff3fe608060405234801561000f575f80fd5b50600436106101f2575f3560e01c8063715018a611610114578063b88d4fde116100a9578063e5c8b03d11610079578063e5c8b03d14610468578063e8a3d48514610470578063e985e9c514610478578063eb12d61e146104b3578063f2fde38b146104c6575f80fd5b8063b88d4fde1461041a578063b9c4d9fb1461042d578063c0ac99831461044d578063c87b56dd14610455575f80fd5b8063938e3d7b116100e4578063938e3d7b146103d957806395d89b41146103ec57806399e0dd7c146103f4578063a22cb46514610407575f80fd5b8063715018a61461039b5780637df73e27146103a35780638636217a146103b65780638da5cb5b146103c9575f80fd5b80632f745c591161018a5780636308f1cd1161015a5780636308f1cd146103305780636352211e14610362578063672a94001461037557806370a0823114610388575f80fd5b80632f745c59146102e457806342842e0e146102f757806342966c681461030a5780634f6ccce71461031d575f80fd5b80630e316ab7116101c55780630e316ab71461028c5780630ebd4c7f1461029f57806318160ddd146102bf57806323b872dd146102d1575f80fd5b806301ffc9a7146101f657806306fdde0314610237578063081812fc1461024c578063095ea7b314610277575b5f80fd5b610222610204366004612558565b6001600160e01b0319165f9081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61023f6104d9565b60405161022e91906125a1565b61025f61025a3660046125b3565b610565565b6040516001600160a01b03909116815260200161022e565b61028a6102853660046125de565b6105fd565b005b61028a61029a366004612608565b61075d565b6102b26102ad3660046125b3565b610792565b60405161022e919061265d565b600c545b60405190815260200161022e565b61028a6102df36600461266f565b6108a5565b6102c36102f23660046125de565b6108dc565b61028a61030536600461266f565b610983565b61028a6103183660046125b3565b61099d565b6102c361032b3660046125b3565b610a14565b61034361033e3660046126ad565b610aa4565b604080516001600160a01b03909316835260208301919091520161022e565b61025f6103703660046125b3565b610ae6565b61028a610383366004612867565b610b5c565b6102c3610396366004612608565b610ca1565b61028a610d28565b6102226103b1366004612608565b610d99565b61028a6103c43660046128f0565b610da5565b5f546001600160a01b031661025f565b61028a6103e73660046129c7565b610f24565b61023f610f56565b61028a6104023660046129c7565b610f63565b61028a6104153660046129f8565b610f95565b61028a610428366004612a33565b611058565b61044061043b3660046125b3565b611090565b60405161022e9190612aad565b61023f6111a7565b61023f6104633660046125b3565b6111b4565b61028a61123b565b61023f611246565b610222610486366004612aed565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205460ff1690565b61028a6104c1366004612608565b611253565b61028a6104d4366004612608565b611285565b600e80546104e690612b19565b80601f016020809104026020016040519081016040528092919081815260200182805461051290612b19565b801561055d5780601f106105345761010080835404028352916020019161055d565b820191905f5260205f20905b81548152906001019060200180831161054057829003601f168201915b505050505081565b5f818152600660205260408120546001600160a01b03166105e25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b505f908152600760205260409020546001600160a01b031690565b5f61060782610ae6565b9050806001600160a01b0316836001600160a01b0316036106745760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016105d9565b336001600160a01b038216148061069057506106908133610486565b6107025760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016105d9565b5f8281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f546001600160a01b031633146107865760405162461bcd60e51b81526004016105d990612b51565b61078f8161136c565b50565b5f818152601060209081526040808320805482518185028101850190935280835260609493849084015b82821015610803575f848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016107bc565b5050505090505f81516001600160401b03811115610823576108236126e2565b60405190808252806020026020018201604052801561084c578160200160208202803683370190505b5090505f5b825181101561089d5782818151811061086c5761086c612b86565b60200260200101516020015182828151811061088a5761088a612b86565b6020908102919091010152600101610851565b509392505050565b6108b0335b826113ad565b6108cc5760405162461bcd60e51b81526004016105d990612b9a565b6108d78383836114a1565b505050565b5f6108e683610ca1565b82106109485760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016105d9565b6001600160a01b0383165f908152600a6020526040902080548390811061097157610971612b86565b905f5260205f20015490505b92915050565b6108d783838360405180602001604052805f815250611058565b6109a6336108aa565b610a0b5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016105d9565b61078f816114c0565b5f610a1e600c5490565b8210610a815760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016105d9565b600c8281548110610a9457610a94612b86565b905f5260205f2001549050919050565b6010602052815f5260405f208181548110610abd575f80fd5b5f918252602090912060029091020180546001909101546001600160a01b039091169250905082565b5f818152600660205260408120546001600160a01b03168061097d5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016105d9565b6040516bffffffffffffffffffffffff193060601b16602082015260348101879052610c3c9060019060540160408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f1981840301815282825280516020918201205f84529083018083525260ff891690820152606081018790526080810186905260a0015b6020604051602081039080840390855afa158015610c2d573d5f803e3d5ffd5b50505060206040510351610d99565b610c845760405162461bcd60e51b81526020600482015260196024820152781bdddb995c881cda1bdd5b19081cda59db881d1bdad95b9259603a1b60448201526064016105d9565b610c8f3387846114d2565b610c998682611795565b505050505050565b5f6001600160a01b038216610d0b5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016105d9565b6001600160a01b0382165f9081526008602052604090205461097d565b5f546001600160a01b03163314610d515760405162461bcd60e51b81526004016105d990612b51565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61097d60018361181b565b5f5b86811015610f1a57610e856001308a8a85818110610dc757610dc7612b86565b90506020020135604051602001610dfc92919060609290921b6bffffffffffffffffffffffff19168252601482015260340190565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f1981840301815282825280516020918201205f84529083018083525260ff8a1690820152606081018890526080810187905260a001610c0d565b610ecd5760405162461bcd60e51b81526020600482015260196024820152781bdddb995c881cda1bdd5b19081cda59db881d1bdad95b9259603a1b60448201526064016105d9565b610ef033898984818110610ee357610ee3612b86565b90506020020135856114d2565b610f12888883818110610f0557610f05612b86565b9050602002013583611795565b600101610da7565b5050505050505050565b5f546001600160a01b03163314610f4d5760405162461bcd60e51b81526004016105d990612b51565b61078f8161189c565b600f80546104e690612b19565b5f546001600160a01b03163314610f8c5760405162461bcd60e51b81526004016105d990612b51565b61078f816118a8565b336001600160a01b03831603610fed5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105d9565b335f8181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61106233836113ad565b61107e5760405162461bcd60e51b81526004016105d990612b9a565b61108a848484846118b4565b50505050565b5f818152601060209081526040808320805482518185028101850190935280835260609493849084015b82821015611101575f848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016110ba565b5050505090505f81516001600160401b03811115611121576111216126e2565b60405190808252806020026020018201604052801561114a578160200160208202803683370190505b5090505f5b825181101561089d5782818151811061116a5761116a612b86565b60200260200101515f015182828151811061118757611187612b86565b6001600160a01b039092166020928302919091019091015260010161114f565b600480546104e690612b19565b5f818152600660205260409020546060906001600160a01b03166112325760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016105d9565b61097d826118e7565b6112443361136c565b565b600380546104e690612b19565b5f546001600160a01b0316331461127c5760405162461bcd60e51b81526004016105d990612b51565b61078f81611a19565b5f546001600160a01b031633146112ae5760405162461bcd60e51b81526004016105d990612b51565b6001600160a01b0381166113135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b611377600182611a5a565b6040516001600160a01b038216907f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b905f90a250565b5f818152600660205260408120546001600160a01b03166114255760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105d9565b5f61142f83610ae6565b9050806001600160a01b0316846001600160a01b0316148061146a5750836001600160a01b031661145f84610565565b6001600160a01b0316145b8061149957506001600160a01b038082165f9081526009602090815260408083209388168352929052205460ff165b949350505050565b6114ac838383611adb565b6114b68382611c5c565b6108d78282611d5e565b61078f6114cc82610ae6565b82611d9b565b6114dc8383611dae565b5f81516001600160401b038111156114f6576114f66126e2565b60405190808252806020026020018201604052801561151f578160200160208202803683370190505b5090505f82516001600160401b0381111561153c5761153c6126e2565b604051908082528060200260200182016040528015611565578160200160208202803683370190505b5090505f5b835181101561174a575f6001600160a01b031684828151811061158f5761158f612b86565b60200260200101515f01516001600160a01b0316036115e85760405162461bcd60e51b8152602060048201526015602482015274149958da5c1a595b9d08081899481c1c995cd95b9d605a1b60448201526064016105d9565b8381815181106115fa576115fa612b86565b6020026020010151602001515f0361164d5760405162461bcd60e51b81526020600482015260166024820152754665652076616c75652020626520706f73697469766560501b60448201526064016105d9565b5f858152601060205260409020845185908390811061166e5761166e612b86565b6020908102919091018101518254600180820185555f94855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015583518490829081106116ca576116ca612b86565b60200260200101515f01518382815181106116e7576116e7612b86565b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061171957611719612b86565b60200260200101516020015182828151811061173757611737612b86565b602090810291909101015260010161156a565b5082511561178e577f99aba1d63749cfd5ad1afda7c4663840924d54eb5f005bbbeadedc6ec13674b284838360405161178593929190612beb565b60405180910390a15b5050505050565b5f828152600660205260409020546001600160a01b031661180d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105d9565b6118178282611e09565b5050565b5f6001600160a01b03821661187d5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016105d9565b506001600160a01b03165f908152602091909152604090205460ff1690565b60036118178282612c99565b60046118178282612c99565b6118bf8484846114a1565b6118cb84848484611e20565b61108a5760405162461bcd60e51b81526004016105d990612d54565b5f818152600560205260409020805460609161097d9161190690612b19565b80601f016020809104026020016040519081016040528092919081815260200182805461193290612b19565b801561197d5780601f106119545761010080835404028352916020019161197d565b820191905f5260205f20905b81548152906001019060200180831161196057829003601f168201915b50505050506004805461198f90612b19565b80601f01602080910402602001604051908101604052809291908181526020018280546119bb90612b19565b8015611a065780601f106119dd57610100808354040283529160200191611a06565b820191905f5260205f20905b8154815290600101906020018083116119e957829003601f168201915b5050505050611f4490919063ffffffff16565b611a2460018261207b565b6040516001600160a01b038216907f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24905f90a250565b611a64828261181b565b611aba5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016105d9565b6001600160a01b03165f90815260209190915260409020805460ff19169055565b826001600160a01b0316611aee82610ae6565b6001600160a01b031614611b565760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016105d9565b6001600160a01b038216611bb85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105d9565b611bc1816120f6565b6001600160a01b0383165f908152600860205260409020611be19061212f565b6001600160a01b0382165f908152600860205260409020611c0190612140565b5f8181526006602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b0382165f908152600a6020526040812054611c7f90600161215b565b5f838152600b6020526040902054909150808214611d1f576001600160a01b0384165f908152600a60205260408120805484908110611cc057611cc0612b86565b905f5260205f200154905080600a5f876001600160a01b03166001600160a01b031681526020019081526020015f208381548110611d0057611d00612b86565b5f918252602080832090910192909255918252600b9052604090208190555b6001600160a01b0384165f908152600a60205260409020805480611d4557611d45612da6565b600190038181905f5260205f20015f9055905550505050565b6001600160a01b039091165f908152600a602081815260408084208054868652600b84529185208290559282526001810183559183529091200155565b611da582826121bd565b611817816121e8565b611db8828261221d565b611dc28282611d5e565b61181781600c80545f838152600d60205260408120829055600182018355919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70155565b5f8281526005602052604090206108d78282612c99565b5f6001600160a01b0384163b611e3857506001611499565b5f806001600160a01b038616630a85bd0160e11b33898888604051602401611e639493929190612dba565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611ea19190612df6565b5f604051808303815f865af19150503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f1157805115611ef95780518082602001fd5b60405162461bcd60e51b81526004016105d990612d54565b5f81806020019051810190611f269190612e0c565b6001600160e01b031916630a85bd0160e11b14935061149992505050565b80518251606091849184915f91611f5b9190612e3b565b6001600160401b03811115611f7257611f726126e2565b6040519080825280601f01601f191660200182016040528015611f9c576020820181803683370190505b5090505f805b845181101561200757848181518110611fbd57611fbd612b86565b01602001516001600160f81b0319168383611fd781612e4e565b945081518110611fe957611fe9612b86565b60200101906001600160f81b03191690815f1a905350600101611fa2565b505f5b835181101561206f5783818151811061202557612025612b86565b01602001516001600160f81b031916838361203f81612e4e565b94508151811061205157612051612b86565b60200101906001600160f81b03191690815f1a90535060010161200a565b50909695505050505050565b612085828261181b565b156120d25760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016105d9565b6001600160a01b03165f90815260209190915260409020805460ff19166001179055565b5f818152600760205260409020546001600160a01b03161561078f575f90815260076020526040902080546001600160a01b0319169055565b805461213c90600161215b565b9055565b6001815f015f8282546121539190612e3b565b909155505050565b5f828211156121ac5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016105d9565b6121b68284612e66565b9392505050565b6121c78282612350565b6121d18282611c5c565b5f818152600b602052604081205561181781612444565b5f818152600560205260409020805461220090612b19565b15905061078f575f81815260056020526040812061078f916124f9565b6001600160a01b0382166122735760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105d9565b5f818152600660205260409020546001600160a01b0316156122d75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d9565b5f81815260066020908152604080832080546001600160a01b0319166001600160a01b03871690811790915583526008909152902061231590612140565b60405181906001600160a01b038416905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b031661236382610ae6565b6001600160a01b0316146123c75760405162461bcd60e51b815260206004820152602560248201527f4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f6044820152643a1037bbb760d91b60648201526084016105d9565b6123d0816120f6565b6001600160a01b0382165f9081526008602052604090206123f09061212f565b5f8181526006602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600c545f9061245490600161215b565b5f838152600d6020526040812054600c805493945090928490811061247b5761247b612b86565b905f5260205f200154905080600c838154811061249a5761249a612b86565b5f918252602080832090910192909255828152600d90915260409020829055600c8054806124ca576124ca612da6565b600190038181905f5260205f20015f905590555f600d5f8681526020019081526020015f208190555050505050565b50805461250590612b19565b5f825580601f10612514575050565b601f0160209004905f5260205f209081019061078f91905b8082111561253f575f815560010161252c565b5090565b6001600160e01b03198116811461078f575f80fd5b5f60208284031215612568575f80fd5b81356121b681612543565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6121b66020830184612573565b5f602082840312156125c3575f80fd5b5035919050565b6001600160a01b038116811461078f575f80fd5b5f80604083850312156125ef575f80fd5b82356125fa816125ca565b946020939093013593505050565b5f60208284031215612618575f80fd5b81356121b6816125ca565b5f815180845260208085019450602084015f5b8381101561265257815187529582019590820190600101612636565b509495945050505050565b602081525f6121b66020830184612623565b5f805f60608486031215612681575f80fd5b833561268c816125ca565b9250602084013561269c816125ca565b929592945050506040919091013590565b5f80604083850312156126be575f80fd5b50508035926020909101359150565b803560ff811681146126dd575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612718576127186126e2565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612746576127466126e2565b604052919050565b5f82601f83011261275d575f80fd5b813560206001600160401b03821115612778576127786126e2565b612786818360051b0161271e565b82815260069290921b840181019181810190868411156127a4575f80fd5b8286015b848110156127ea57604081890312156127bf575f80fd5b6127c76126f6565b81356127d2816125ca565b815281850135858201528352918301916040016127a8565b509695505050505050565b5f6001600160401b0383111561280d5761280d6126e2565b612820601f8401601f191660200161271e565b9050828152838383011115612833575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112612858575f80fd5b6121b6838335602085016127f5565b5f805f805f8060c0878903121561287c575f80fd5b8635955061288c602088016126cd565b9450604087013593506060870135925060808701356001600160401b03808211156128b5575f80fd5b6128c18a838b0161274e565b935060a08901359150808211156128d6575f80fd5b506128e389828a01612849565b9150509295509295509295565b5f805f805f805f60c0888a031215612906575f80fd5b87356001600160401b038082111561291c575f80fd5b818a0191508a601f83011261292f575f80fd5b81358181111561293d575f80fd5b8b60208260051b8501011115612951575f80fd5b6020830199508098505061296760208b016126cd565b965060408a0135955060608a0135945060808a013591508082111561298a575f80fd5b6129968b838c0161274e565b935060a08a01359150808211156129ab575f80fd5b506129b88a828b01612849565b91505092959891949750929550565b5f602082840312156129d7575f80fd5b81356001600160401b038111156129ec575f80fd5b61149984828501612849565b5f8060408385031215612a09575f80fd5b8235612a14816125ca565b915060208301358015158114612a28575f80fd5b809150509250929050565b5f805f8060808587031215612a46575f80fd5b8435612a51816125ca565b93506020850135612a61816125ca565b92506040850135915060608501356001600160401b03811115612a82575f80fd5b8501601f81018713612a92575f80fd5b612aa1878235602084016127f5565b91505092959194509250565b602080825282518282018190525f9190848201906040850190845b8181101561206f5783516001600160a01b031683529284019291840191600101612ac8565b5f8060408385031215612afe575f80fd5b8235612b09816125ca565b91506020830135612a28816125ca565b600181811c90821680612b2d57607f821691505b602082108103612b4b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b5f606082018583526020606060208501528186518084526080860191506020880193505f5b81811015612c355784516001600160a01b031683529383019391830191600101612c10565b50508481036040860152612c498187612623565b98975050505050505050565b601f8211156108d757805f5260205f20601f840160051c81016020851015612c7a5750805b601f840160051c820191505b8181101561178e575f8155600101612c86565b81516001600160401b03811115612cb257612cb26126e2565b612cc681612cc08454612b19565b84612c55565b602080601f831160018114612cf9575f8415612ce25750858301515b5f19600386901b1c1916600185901b178555610c99565b5f85815260208120601f198616915b82811015612d2757888601518255948401946001909101908401612d08565b5085821015612d4457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b5f52603160045260245ffd5b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612dec90830184612573565b9695505050505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215612e1c575f80fd5b81516121b681612543565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561097d5761097d612e27565b5f60018201612e5f57612e5f612e27565b5060010190565b8181038181111561097d5761097d612e2756fea26469706673582212207efb157e0700f6fe8c657bd3bb3aa4785c5c6c5f861d7bf172691cd705d25c1f64736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000002f516a6d97c9dafd81fd3a8601baab32724cb74a00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000d636f6e74726163745f6e616d6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000337323100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006697066733a2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006697066733a2f0000000000000000000000000000000000000000000000000000