0x608060405234801561000f575f80fd5b50612f2b8061001d5f395ff3fe60806040526004361061008f575f3560e01c8063194594dc146100bb5780636419f77b146100ff5780638ec9766b1461012c5780638f100b5a14610173578063aca74f90146101a7578063c842871f146101c7578063c93135ca146101e8578063d5c5826c14610222578063d8da26f614610243578063dbfb774f14610262578063fa81224b1461028157610096565b3661009657005b3480156100a1575f80fd5b50604051635de7f98b60e11b815260040160405180910390fd5b3480156100c6575f80fd5b506100da6100d53660046120b9565b610294565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561010a575f80fd5b5061011e6101193660046121b1565b610377565b6040519081526020016100f6565b348015610137575f80fd5b5061014b6101463660046120b9565b610526565b604080519586526020860194909452928401919091526060830152608082015260a0016100f6565b34801561017e575f80fd5b5061019261018d366004612286565b610642565b604080519283526020830191909152016100f6565b6101ba6101b536600461233b565b6106c2565b6040516100f691906123c6565b3480156101d2575f80fd5b506101e66101e136600461243c565b6108fa565b005b3480156101f3575f80fd5b50610207610202366004612473565b610937565b604080519384526020840192909252908201526060016100f6565b610235610230366004612560565b6109fd565b6040516100f692919061263d565b34801561024e575f80fd5b5061020761025d366004612473565b610b7a565b34801561026d575f80fd5b5061011e61027c36600461265f565b610c17565b61023561028f366004612700565b610e45565b5f808080806102ac6001600160a01b038a1682610eb8565b90506103076040518060c001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b6001600160a01b031681526020018a6001600160a01b0316815260200189815260200188815250610ee4565b90955093505f6103206001600160a01b038b1682610eb8565b61032a908361276f565b90505f610337828761276f565b90506103468b888360016110b7565b945061036561035f6001600160a01b038d166001611302565b8661132a565b93505050509650965096509692505050565b5f8082602001516001600160a01b0316636f283ebb8460400151856060015186608001516040518463ffffffff1660e01b81526004016103b993929190612782565b602060405180830381865afa1580156103d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f891906127a6565b90505f6040518060c0016040528085604001516001600160a01b0316815260200185606001516001600160a01b0316815260200185608001518152602001612710600a612710610448919061276f565b61045290866127bd565b61045c91906127e8565b8152602001306001600160a01b031681526020014281525090505f61048d85606001516001600160a01b03166113bb565b610497575f61049d565b84608001515b90505f826040516024016104b19190612842565b60408051601f198184030181529190526020810180516001600160e01b03166367d4d3df60e01b179052865160608801519192505f9182916104f4918686610e45565b915091508161050657610506816113dd565b8080602001905181019061051a91906127a6565b98975050505050505050565b5f805f805f6105846040518060c001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b6001600160a01b031681526020018a6001600160a01b03168152602001898152602001888152506113e5565b919650945092505f6105a06001600160a01b038b166001611302565b90505f8460405163597fa89560e01b8152600481018890526001600160a01b0384169063597fa89590602401602060405180830381865afa1580156105e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060b91906127a6565b610615919061276f565b90506106248b878360016110b7565b9350610630828561132a565b92505050965096509650965096915050565b5f805f6040518060e001604052808c6001600160a01b031681526020018b6001600160a01b031681526020018a61067890612850565b8152602001610687898b6128fc565b8152602001878152602001866001600160a01b031681526020018581525090506106b08161168f565b92509250509850989650505050505050565b6060816001600160401b038111156106dc576106dc612123565b60405190808252806020026020018201604052801561072157816020015b604080518082019091525f8152606060208201528152602001906001900390816106fa5790505b5090505f5b8083146108f35783838281811061073f5761073f6129b8565b905060200281019061075191906129cc565b604001354710156107b7576040805180820182525f8152905160208083019161078391639ca3ddd760e01b91016129ea565b6040516020818303038152906040528152508282815181106107a7576107a76129b8565b60200260200101819052506108e1565b8383828181106107c9576107c96129b8565b90506020028101906107db91906129cc565b6107e99060208101906129ff565b6001600160a01b0316848483818110610804576108046129b8565b905060200281019061081691906129cc565b6040013585858481811061082c5761082c6129b8565b905060200281019061083e91906129cc565b61084c906020810190612a1a565b60405161085a929190612a5c565b5f6040518083038185875af1925050503d805f8114610894576040519150601f19603f3d011682016040523d82523d5f602084013e610899565b606091505b508383815181106108ac576108ac6129b8565b60200260200101515f018484815181106108c8576108c86129b8565b6020026020010151602001829052821515151581525050505b806108eb81612a6b565b915050610726565b5092915050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03831614610933576109336001600160a01b038316825f196118bb565b5050565b5f80808061094e6001600160a01b03881682610eb8565b90506109a36040518060a001604052808b6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b0316815260200187815250611905565b93505f6109b96001600160a01b03891682610eb8565b90505f6109c6828461276f565b90506109d48988835f6110b7565b94506109ed61035f6001600160a01b038b166001611302565b9350505050955095509592505050565b5f60605f5b85518114610ad757306001600160a01b031663c842871f878381518110610a2b57610a2b6129b8565b6020026020010151896040518363ffffffff1660e01b8152600401610a669291906001600160a01b0392831681529116602082015260400190565b5f604051808303815f87803b158015610a7d575f80fd5b505af1925050508015610a8e575060015b610ac5576040515f90610aac90637acb925760e11b906020016129ea565b6040516020818303038152906040529250925050610b71565b80610acf81612a6b565b915050610a02565b5083471015610b12576040515f90610afa90639ca3ddd760e01b906020016129ea565b60405160208183030381529060405291509150610b71565b856001600160a01b03168484604051610b2b9190612a83565b5f6040518083038185875af1925050503d805f8114610b65576040519150601f19603f3d011682016040523d82523d5f602084013e610b6a565b606091505b5090925090505b94509492505050565b5f808080610b916001600160a01b03881682610eb8565b9050610be66040518060a001604052808b6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b0316815260200187815250610377565b93505f610bfc6001600160a01b03891682610eb8565b90505f610c09838361276f565b90506109d48987835f6110b7565b5f866001600160a01b031663b77b47a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c789190612a94565b604051633e6ead0560e11b81526001600160a01b0386811660048301529190911690637cdd5a0a90602401602060405180830381865afa158015610cbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce29190612aaf565b610cff5760405163490fb98f60e11b815260040160405180910390fd5b428611610d1f5760405163bdbe945160e01b815260040160405180910390fd5b5f610d5f8585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611a6692505050565b90506001600160a01b038116610d885760405163165bd9df60e01b815260040160405180910390fd5b5f816001600160a01b031663f51e181a6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610de3575060408051601f3d908101601f19168201909252610de0918101906127a6565b60015b610e005760405163165bd9df60e01b815260040160405180910390fd5b90505f610e0d428a61276f565b905081670de0b6b3a7640000610e238a84611a91565b610e2d91906127bd565b610e3791906127e8565b9a9950505050505050505050565b6040805160018082528183019092525f9160609183916020808301908036833701905050905085815f81518110610e7e57610e7e6129b8565b60200260200101906001600160a01b031690816001600160a01b031681525050610eaa878287876109fd565b925092505094509492505050565b5f81602052634903b0d15f5260205f6024601c865afa601f3d1116610edb575f80fd5b50505f51919050565b5f806127108360a001511115610f0d5760405163a6cced7160e01b815260040160405180910390fd5b5f6127108460a00151612710610f23919061276f565b8560800151610f3291906127bd565b610f3c91906127e8565b905083602001516001600160a01b031663475b912885604001518660600151846040518463ffffffff1660e01b8152600401610f7a93929190612782565b606060405180830381865afa158015610f95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb99190612ace565b6040805160c081018252888201516001600160a01b0390811682526060808b015190911660208301526080808b0151838501525f91830182905230908301524260a08301529151929650935091506110179083908690602401612af9565b60408051601f198184030181529190526020810180516001600160e01b031663303d194560e21b17905260608701519091505f9061105d906001600160a01b03166113bb565b611067575f61106d565b86608001515b90505f80611084895f01518a606001518587610e45565b915091508161109657611096816113dd565b808060200190518101906110aa91906127a6565b9750505050505050915091565b5f806110cd6001600160a01b0387166001611302565b90505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111309190612b14565b60ff1690505f6111496001600160a01b03891682611302565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a89190612b14565b60ff1690505f670de0b6b3a7640000846001600160a01b031663a199bf726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112179190612a94565b6001600160a01b031663f51e181a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611252573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127691906127a6565b61128090896127bd565b61128a91906127e8565b90508782611299856012612b34565b6112a3919061276f565b6112ae90600a612c27565b6112b890836127bd565b6112c291906127e8565b945060018660018111156112d8576112d8612c32565b036112f6576112f3670de0b6b3a76400008680821191030290565b94505b50505050949350505050565b5f8160205263c66106575f52600160205f6024601c87612710fa601f3d111603519392505050565b5f80836001600160a01b031663204f83f96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611368573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138c91906127a6565b905042811161139e575f9150506113b5565b6113b1836113ac428461276f565b611aea565b9150505b92915050565b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b805181602001fd5b5f805f6127108460a00151111561140f5760405163a6cced7160e01b815260040160405180910390fd5b60408401515f9061142a906001600160a01b03166001611302565b90505f816001600160a01b0316635b5936966040518163ffffffff1660e01b8152600401602060405180830381865afa158015611469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148d9190612a94565b90505f61149a8230611b63565b90506114ea6040518060c001604052805f6001600160a01b031681526020015f81526020015f6001600160a01b031681526020015f81526020015f6001600160a01b031681526020015f81525090565b5f88602001516001600160a01b031663e4963f538a604001518b606001518c608001516040518463ffffffff1660e01b815260040161152b93929190612782565b606060405180830381865afa158015611546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156a9190612ace565b925050506127108960a00151612710611583919061276f565b61158d90836127bd565b61159791906127e8565b95506040518060c001604052808a604001516001600160a01b031681526020018a6080015181526020018a606001516001600160a01b031681526020015f8152602001306001600160a01b03168152602001428152509150505f8186604051602401611604929190612c8d565b60408051601f198184030181529190526020810180516001600160e01b0316633014aa8d60e21b17905289519091505f90819061164390878386610e45565b915091508161165557611655816113dd565b8080602001905181019061166991906127a6565b99506116758630611b63565b61167f908661276f565b9850505050505050509193909250565b5f805f835f01516001600160a01b031663b77b47a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f59190612a94565b6001600160a01b0316635b39fc6b8560400151866060015187608001518860a001516040518563ffffffff1660e01b81526004016117369493929190612d1a565b6060604051808303815f875af1158015611752573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117769190612dc0565b92505f915061179090506001600160a01b03831682611302565b90505f6040518060e00160405280846001600160a01b03168152602001836001600160a01b031681526020018760c0015181526020015f81526020015f8152602001306001600160a01b031681526020014281525090505f80611886885f0151855f86604051602401611857919081516001600160a01b03908116825260208084015182169083015260408084015190830152606080840151908301526080808401519083015260a0838101519091169082015260c0918201519181019190915260e00190565b60408051601f198184030181529190526020810180516001600160e01b03166308bb28d960e01b179052610e45565b915091508161189857611898816113dd565b808060200190518101906118ac9190612e0a565b90999098509650505050505050565b816014528060345263095ea7b360601b5f5260205f604460105f875af18060015f5114166118fb57803d853b1517106118fb57633e3f8f735f526004601cfd5b505f603452505050565b5f8082602001516001600160a01b031663d7b03a628460400151856060015186608001516040518463ffffffff1660e01b815260040161194793929190612782565b602060405180830381865afa158015611962573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061198691906127a6565b90505f6040518060c0016040528085604001516001600160a01b031681526020018560800151815260200185606001516001600160a01b03168152602001612710600a6127106119d6919061276f565b6119e090866127bd565b6119ea91906127e8565b815230602082015242604091820152519091505f90611a0d908390602401612e2c565b60408051601f198184030181529181526020820180516001600160e01b031663c34e646760e01b1790528601519091505f90611a53906001600160a01b03166001611302565b90505f806104f4885f0151845f87610e45565b5f80611a7184611b8d565b90505f611a7e8285611c15565b90508051602082015ff095945050505050565b5f806301e13380611aaa670de0b6b3a7640000856127bd565b611ab491906127e8565b90506113b1611ae5611ace86670de0b6b3a7640000612e3a565b611ad784611c70565b611ae090612e61565b611c89565b611c70565b5f825f03611af957505f6113b5565b5f611b0c670de0b6b3a764000085611cc0565b90505f83611b26670de0b6b3a76400006301e133806127bd565b611b3091906127e8565b9050670de0b6b3a7640000611b50611b4784611c70565b611ae084611c70565b611b5a9190612e7b565b95945050505050565b5f816014526370a0823160601b5f5260208060246010865afa601f3d111660205102905092915050565b6060813b6003808211611bb357604051633b69e2c760e11b815260040160405180910390fd5b5f611bbe828461276f565b9050806001600160401b03811115611bd857611bd8612123565b6040519080825280601f01601f191660200182016040528015611c02576020820181803683370190505b509350808260208601873c505050919050565b6040518251601f19906020810182165b8581015184820152820180611c25575083518184018360208301165b8681015182820152840180611c415750505f910183810160208101929092528352604090810190525092915050565b5f808212611c7c575090565b611c84611d02565b919050565b5f611cb9670de0b6b3a764000083611ca086611d0f565b611caa9190612e9a565b611cb49190612ec9565b611f1d565b9392505050565b5f7812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f2283108202611cf057637c5f487d5f526004601cfd5b50670de0b6b3a7640000919091020490565b6335278d125f526004601cfd5b6001600160801b03811160071b81811c6001600160401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b175f8213611d6257631615e6385f526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d6c8c3f38e95a6b1ff2ab1c3b343619018302821d6d02384773bdf1ac5676facced60901901830290911d6cb9a025d814b29c212b8b1a07cd190190910260016c0504a838426634cdd8738f543560611b03190105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b5f68023f2fa8f6da5b9d28198213611f3457919050565b680755bf798b4a1bf1e58212611f515763a37bfec95f526004601cfd5b6503782dace9d9604e83901b0591505f60606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6001600160a01b03811681146120ab575f80fd5b50565b8035611c8481612097565b5f805f805f8060c087890312156120ce575f80fd5b86356120d981612097565b955060208701356120e981612097565b945060408701356120f981612097565b9350606087013561210981612097565b9598949750929560808101359460a0909101359350915050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561215957612159612123565b60405290565b604051606081016001600160401b038111828210171561215957612159612123565b604051601f8201601f191681016001600160401b03811182821017156121a9576121a9612123565b604052919050565b5f60a082840312156121c1575f80fd5b60405160a081016001600160401b03811182821017156121e3576121e3612123565b60405282356121f181612097565b8152602083013561220181612097565b6020820152604083013561221481612097565b6040820152606083013561222781612097565b60608201526080928301359281019290925250919050565b5f8083601f84011261224f575f80fd5b5081356001600160401b03811115612265575f80fd5b6020830191508360208260051b850101111561227f575f80fd5b9250929050565b5f805f805f805f8060e0898b03121561229d575f80fd5b88356122a881612097565b975060208901356122b881612097565b965060408901356001600160401b03808211156122d3575f80fd5b908a019060c0828d0312156122e6575f80fd5b90965060608a013590808211156122fb575f80fd5b506123088b828c0161223f565b9096509450506080890135925060a089013561232381612097565b8092505060c089013590509295985092959890939650565b5f806020838503121561234c575f80fd5b82356001600160401b03811115612361575f80fd5b61236d8582860161223f565b90969095509350505050565b5f5b8381101561239357818101518382015260200161237b565b50505f910152565b5f81518084526123b2816020860160208601612379565b601f01601f19169290920160200192915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101561242e57888303603f19018552815180511515845287015187840187905261241b8785018261239b565b95880195935050908601906001016123ed565b509098975050505050505050565b5f806040838503121561244d575f80fd5b823561245881612097565b9150602083013561246881612097565b809150509250929050565b5f805f805f60a08688031215612487575f80fd5b853561249281612097565b945060208601356124a281612097565b935060408601356124b281612097565b925060608601356124c281612097565b949793965091946080013592915050565b5f6001600160401b038211156124eb576124eb612123565b5060051b60200190565b5f82601f830112612504575f80fd5b81356001600160401b0381111561251d5761251d612123565b612530601f8201601f1916602001612181565b818152846020838601011115612544575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215612573575f80fd5b843561257e81612097565b93506020858101356001600160401b038082111561259a575f80fd5b818801915088601f8301126125ad575f80fd5b81356125c06125bb826124d3565b612181565b81815260059190911b8301840190848101908b8311156125de575f80fd5b938501935b828510156126055784356125f681612097565b825293850193908501906125e3565b97505050604088013594506060880135925080831115612623575f80fd5b5050612631878288016124f5565b91505092959194509250565b8215158152604060208201525f612657604083018461239b565b949350505050565b5f805f805f8060a08789031215612674575f80fd5b863561267f81612097565b95506020870135945060408701359350606087013561269d81612097565b925060808701356001600160401b03808211156126b8575f80fd5b818901915089601f8301126126cb575f80fd5b8135818111156126d9575f80fd5b8a60208285010111156126ea575f80fd5b6020830194508093505050509295509295509295565b5f805f8060808587031215612713575f80fd5b843561271e81612097565b9350602085013561272e81612097565b92506040850135915060608501356001600160401b0381111561274f575f80fd5b612631878288016124f5565b634e487b7160e01b5f52601160045260245ffd5b818103818111156113b5576113b561275b565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156127b6575f80fd5b5051919050565b80820281158282048414176113b5576113b561275b565b634e487b7160e01b5f52601260045260245ffd5b5f826127f6576127f66127d4565b500490565b80516001600160a01b03908116835260208083015182169084015260408083015190840152606080830151908401526080808301519091169083015260a090810151910152565b60c081016113b582846127fb565b5f60c08236031215612860575f80fd5b612868612137565b612871836120ae565b815261287f602084016120ae565b6020820152612890604084016120ae565b60408201526128a1606084016120ae565b606082015260808301356001600160401b03808211156128bf575f80fd5b6128cb368387016124f5565b608084015260a08501359150808211156128e3575f80fd5b506128f0368286016124f5565b60a08301525092915050565b5f6129096125bb846124d3565b80848252602080830192508560051b850136811115612926575f80fd5b855b818110156129ac5780356001600160401b0380821115612946575f80fd5b81890191506060823603121561295a575f80fd5b61296261215f565b823581528583013561297381612097565b8187015260408381013583811115612989575f80fd5b612995368287016124f5565b918301919091525087525050938201938201612928565b50919695505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126129e0575f80fd5b9190910192915050565b6001600160e01b031991909116815260200190565b5f60208284031215612a0f575f80fd5b8135611cb981612097565b5f808335601e19843603018112612a2f575f80fd5b8301803591506001600160401b03821115612a48575f80fd5b60200191503681900382131561227f575f80fd5b818382375f9101908152919050565b5f60018201612a7c57612a7c61275b565b5060010190565b5f82516129e0818460208701612379565b5f60208284031215612aa4575f80fd5b8151611cb981612097565b5f60208284031215612abf575f80fd5b81518015158114611cb9575f80fd5b5f805f60608486031215612ae0575f80fd5b8351925060208401519150604084015190509250925092565b60e08101612b0782856127fb565b8260c08301529392505050565b5f60208284031215612b24575f80fd5b815160ff81168114611cb9575f80fd5b808201808211156113b5576113b561275b565b600181815b80851115612b8157815f1904821115612b6757612b6761275b565b80851615612b7457918102915b93841c9390800290612b4c565b509250929050565b5f82612b97575060016113b5565b81612ba357505f6113b5565b8160018114612bb95760028114612bc357612bdf565b60019150506113b5565b60ff841115612bd457612bd461275b565b50506001821b6113b5565b5060208310610133831016604e8410600b8410161715612c02575081810a6113b5565b612c0c8383612b47565b805f1904821115612c1f57612c1f61275b565b029392505050565b5f611cb98383612b89565b634e487b7160e01b5f52602160045260245ffd5b80516001600160a01b03908116835260208083015190840152604080830151821690840152606080830151908401526080808301519091169083015260a090810151910152565b60e08101612b078285612c46565b5f82825180855260208086019550808260051b8401018186015f5b84811015612d0d57858303601f19018952815180518452848101516001600160a01b031685850152604090810151606091850182905290612cf98186018361239b565b9a86019a9450505090830190600101612cb6565b5090979650505050505050565b608081525f60018060a01b038087511660808401528060208801511660a08401528060408801511660c08401528060608801511660e084015250608086015160c0610100840152612d6f61014084018261239b565b905060a0870151607f1984830301610120850152612d8d828261239b565b9150508281036020840152612da28187612c9b565b915050836040830152611b5a60608301846001600160a01b03169052565b5f805f60608486031215612dd2575f80fd5b8351612ddd81612097565b6020850151909350612dee81612097565b6040850151909250612dff81612097565b809150509250925092565b5f8060408385031215612e1b575f80fd5b505080516020909101519092909150565b60c081016113b58284612c46565b8082018281125f831280158216821582161715612e5957612e5961275b565b505092915050565b5f600160ff1b8201612e7557612e7561275b565b505f0390565b8181035f8312801583831316838312821617156108f3576108f361275b565b8082025f8212600160ff1b84141615612eb557612eb561275b565b81810583148215176113b5576113b561275b565b5f82612ed757612ed76127d4565b600160ff1b82145f1984141615612ef057612ef061275b565b50059056fea2646970667358221220de03ab624d49e82705276310c965f7f50d2bb2b043c9ff4d5635efa25aadba0964736f6c63430008180033