6080604052348015600e575f80fd5b5060156019565b60d3565b5f54610100900460ff161560835760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161460d1575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615e94806100e05f395ff3fe608060405234801561000f575f80fd5b506004361061049a575f3560e01c806395d89b4111610263578063cf9496991161014b578063e48f6faf116100ca578063e9f2838e1161008f578063e9f2838e14610a6d578063ef8b30f7146108ab578063f2fde38b14610a7f578063f3cbf47c14610a92578063fe575a8714610aa5578063ff3c63c014610ac7575f80fd5b8063e48f6faf14610a29578063e74a4bca14610a3c578063e75c7a0914610a44578063e91e918314610a57578063e976d43114610a64575f80fd5b8063d961b58c11610110578063d961b58c1461095d578063da354efa14610966578063dc68a93a14610979578063dd62ed3e146109de578063e2eb36b914610a16575f80fd5b8063cf94969914610927578063d2c35ce81461093a578063d3a8d7181461094d578063d5abeb0114610955578063d905777e14610731575f80fd5b8063ba4bb7a4116101e2578063c6e6f592116101a7578063c6e6f592146108ab578063c8796572146108be578063ca55a557146108c6578063cc0e3f2c146108ee578063cc1d047114610901578063ce96cb7714610914575f80fd5b8063ba4bb7a4146105a1578063baaa19fb14610867578063be1f92141461087a578063c42834701461088d578063c63d75b614610896575f80fd5b8063b3c6501511610228578063b3c6501514610824578063b3c9e83d1461082e578063b3d7f6b914610841578063b460af9414610854578063ba08765214610854575f80fd5b806395d89b41146107da5780639cb43f81146107e25780639cf160f6146107eb578063a2aa660f146107fe578063a9059cbb14610811575f80fd5b806344337ea1116103865780636e553f65116103055780638bc7e8c4116102ca5780638bc7e8c4146107885780638c0190e3146107915780638da5cb5b146107a45780638ed83271146107b55780638fa243c6146107be57806394bf804d146107c7575f80fd5b80636e553f651461071e57806370a082311461073157806373f351c8146107595780637d41c86e14610762578063835e9eb414610775575f80fd5b8063569b8e2c1161034b578063569b8e2c146106b05780635d9cc548146106c357806360da3e83146106d65780636382d9ad146106e35780636c46407b146106f6575f80fd5b806344337ea11461065157806344caa1221461066457806348d36c74146106775780634cdad5061461068a578063537df3b61461069d575f80fd5b806324e86d671161041d578063339eeb68116103e2578063339eeb68146105db57806334c16b5c146105ee57806338867fd41461060157806338d52e0f14610614578063402d267d1461062b57806342fe09801461063e575f80fd5b806324e86d671461058557806327d9ef5f1461058e5780632a33cf05146105a15780632f865568146105a9578063313ce567146105bc575f80fd5b8063095ea7b311610463578063095ea7b3146105215780630a28a4771461054457806318160ddd14610557578063184466c91461055f57806323b872dd14610572575f80fd5b806251e6111461049e57806301e1d114146104ce578063030d624a146104e457806306fdde03146104f957806307a2d13a1461050e575b5f80fd5b6104b16104ac36600461543d565b610b20565b6040516001600160a01b0390911681526020015b60405180910390f35b6104d6610d79565b6040519081526020016104c5565b6104f76104f23660046155bd565b610d87565b005b610501610e2e565b6040516104c59190615602565b6104d661051c3660046155bd565b610eba565b61053461052f366004615614565b610ecb565b60405190151581526020016104c5565b6104d66105523660046155bd565b610eec565b6005546104d6565b6104f761056d3660046155bd565b610ef8565b61053461058036600461563e565b611075565b6104d660105481565b601f546104b1906001600160a01b031681565b6104f761116b565b6104f76105b736600461567c565b611233565b6002546105c99060ff1681565b60405160ff90911681526020016104c5565b6104f76105e936600461567c565b6112e7565b6104f76105fc366004615697565b611392565b6104f761060f366004615697565b611468565b600a546201000090046001600160a01b03166104b1565b6104d661063936600461567c565b611507565b6104f761064c3660046156d7565b611530565b6104f761065f36600461567c565b61166a565b601c546104b1906001600160a01b031681565b6104f7610685366004615760565b611726565b6104d66106983660046155bd565b61196d565b6104f76106ab36600461567c565b611977565b6104f76106be3660046155bd565b611a01565b6104f76106d13660046155bd565b611a93565b600a546105349060ff1681565b6104f76106f1366004615810565b611b6a565b610709610704366004615847565b611cf9565b604080519283526020830191909152016104c5565b6104d661072c366004615870565b611d5f565b6104d661073f36600461567c565b6001600160a01b03165f9081526007602052604090205490565b6104d660225481565b610709610770366004615893565b611ec9565b6104d66107833660046158d2565b611fea565b6104d6600e5481565b6104f761079f3660046158f2565b612030565b601b546001600160a01b03166104b1565b6104d6600c5481565b6104d6601d5481565b6104d66107d5366004615870565b6120a5565b610501612212565b6104d660115481565b600b546104b1906001600160a01b031681565b6104f761080c366004615614565b61221f565b61053461081f366004615614565b6122e9565b5f5460ff166105c9565b61070961083c36600461591e565b612308565b6104d661084f3660046155bd565b6123de565b6104d6610862366004615893565b6123ea565b6104f7610875366004615847565b612404565b6104d661088836600461591e565b61247a565b6104d660235481565b6104d66108a436600461567c565b5060065490565b6104d66108b93660046155bd565b6124d3565b6104f76124de565b6108ce61254a565b6040805194855260208501939093529183015260608201526080016104c5565b6013546104b1906001600160a01b031681565b6104f761090f366004615614565b612598565b6104d661092236600461567c565b612630565b6104f761093536600461567c565b612652565b6104f761094836600461567c565b612714565b6104f76127c4565b6006546104d6565b6104d660125481565b6104b16109743660046155bd565b6128a6565b6104d661098736600461591e565b604080516020808201969096528082019490945260608085019390935280518085039093018352608090930183528151918401919091205f908152601784528281206001600160a01b039092168152925290205490565b6104d66109ec366004615810565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b6021546104b1906001600160a01b031681565b6104f7610a3736600461567c565b6128ce565b6020546104d6565b6104f7610a523660046158d2565b612bad565b600f546105c99060ff1681565b6104d6600d5481565b600a5461053490610100900460ff1681565b6104f7610a8d36600461567c565b612cae565b6104f7610aa036600461595c565b612ea3565b610534610ab336600461567c565b60096020525f908152604090205460ff1681565b610709610ad5366004615847565b604080516020808201959095528082019390935260608084019290925280518084039092018252608090920182528051908301205f9081526014909252902080546001909101549091565b5f610b296134c7565b600a546201000090046001600160a01b0316610b5857604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b03163314610b835760405163d0e46ccb60e01b815260040160405180910390fd5b30610160830152601f546040516251e61160e01b81525f916001600160a01b0316906251e61190610bb890869060040161598b565b6020604051808303815f875af1158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190615aea565b6001600160a01b0381165f908152601e602052604090206002015490915060ff1615610c37576040516361ef5ed760e11b815260040160405180910390fd5b5f816001600160a01b0316636acc83026040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190615b05565b604080516060810182528281525f602080830182815260018486018181526001600160a01b038a16808652601e855287862096518755925186830155516002909501805460ff19169515159590951790945581549384018255918190527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90920180546001600160a01b0319168217905560808801518351918252918101919091529192507f91e8e0724fa073d770149830b6e9c1f6027b484a27617dc901ac8795338e4b49910160405180910390a1509050610d7460018055565b919050565b5f610d82613520565b905090565b610d8f6134c7565b600a546201000090046001600160a01b0316610dbe57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b03163314610de957604051630b2db9b760e31b815260040160405180910390fd5b60228190556040518181527f2147e2bc8c39e67f74b1a9e08896ea1485442096765942206af1f4bc8bcde917906020015b60405180910390a1610e2b60018055565b50565b60048054610e3b90615b1c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6790615b1c565b8015610eb25780601f10610e8957610100808354040283529160200191610eb2565b820191905f5260205f20905b815481529060010190602001808311610e9557829003601f168201915b505050505081565b5f610ec5825f61359d565b92915050565b5f610ed46134c7565b610edf3384846135c9565b5060015b610ec560018055565b5f610ec58260016136d5565b610f006134c7565b600a546201000090046001600160a01b0316610f2f57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b03163314610f5a57604051630b2db9b760e31b815260040160405180910390fd5b6010548111610faf5760115415610faf5760405162461bcd60e51b8152602060048201526014602482015273141c9bd8d95cdcc818db185a5b5cc8199a5c9cdd60621b60448201526064015b60405180910390fd5b6010819055604051602481018290525f9060440160408051601f19818403018152918152602080830180516001600160e01b031663184466c960e01b1790529051610ffb929101615602565b60408051808303601f1901815290829052805160209091012060215463af6f8c1b60e01b8352600483018290529092506001600160a01b03169063af6f8c1b906024015f604051808303815f87803b158015611055575f80fd5b505af1158015611067573d5f803e3d5ffd5b5050505050610e2b60018055565b5f61107e6134c7565b6001600160a01b0384165f908152600860209081526040808320338452909152902054828110156110f15760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206578636565647320616c6c6f77616e636500000000000000006044820152606401610fa6565b6110fc8585856136fe565b6111485760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2065786563757465207472616e7366657246726f6d00006044820152606401610fa6565b61115c85336111578685615b68565b6135c9565b505060018080555b9392505050565b6111736134c7565b600a546201000090046001600160a01b03166111a257604051636b271baf60e11b815260040160405180910390fd5b335f908152601e602052604090206002015460ff166111d45760405163a2df1a7b60e01b815260040160405180910390fd5b335f908152601e60205260409020600101541561121657335f908152601e6020526040812060010154601d805491929091611210908490615b68565b90915550505b335f908152601e602052604081206001015561123160018055565b565b600a546201000090046001600160a01b031661126257604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b0316331461128d5760405163d0e46ccb60e01b815260040160405180910390fd5b61129681613910565b806001600160a01b03166328a070256040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156112ce575f80fd5b505af11580156112e0573d5f803e3d5ffd5b5050505050565b6112ef6134c7565b600a546201000090046001600160a01b031661131e57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b0316331461134957604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b0381166113705760405163e6c4247b60e01b815260040160405180910390fd5b601380546001600160a01b0319166001600160a01b0383161790556001805550565b61139a6134c7565b600a546201000090046001600160a01b03166113c957604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146113f45760405163d0e46ccb60e01b815260040160405180910390fd5b6113fd83613910565b604051632140fc7760e11b815260048101839052602481018290526001600160a01b03841690634281f8ee906044015b5f604051808303815f87803b158015611444575f80fd5b505af1158015611456573d5f803e3d5ffd5b5050505061146360018055565b505050565b6114706134c7565b600a546201000090046001600160a01b031661149f57604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146114ca5760405163d0e46ccb60e01b815260040160405180910390fd5b6114d383613910565b604051633b8fc6f760e21b815260048101839052602481018290526001600160a01b0384169063ee3f1bdc9060440161142d565b5f6005545f148061151e57505f61151c613520565b115b611528575f610ec5565b5050600c5490565b5f54600290610100900460ff1615801561155057505f5460ff8083169116105b61156c5760405162461bcd60e51b8152600401610fa690615b7b565b5f805461ffff191660ff8316176101001790556001600160a01b0385166115a657604051638b50645160e01b815260040160405180910390fd5b601b546001600160a01b0316156115d05760405163012fa17760e61b815260040160405180910390fd5b6002805460ff191660ff861617905560036115eb8482615c0d565b5060046115f88382615c0d565b50600a805461ffff1916610101179055601b80546001600160a01b0319166001600160a01b0387161790555f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6116726134c7565b600a546201000090046001600160a01b03166116a157604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b031633146116cc57604051630b2db9b760e31b815260040160405180910390fd5b601b546001600160a01b03908116908216036116fb576040516339b9e47160e21b815260040160405180910390fd5b6001600160a01b0381165f908152600960205260409020805460ff19166001179055610e2b60018055565b61172e6134c7565b600a546201000090046001600160a01b03161561175e576040516346a4055d60e01b815260040160405180910390fd5b601b546001600160a01b0316331461178957604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b0385166117b057604051637e4cfdd760e01b815260040160405180910390fd5b6001600160a01b0384166117d757604051632e2bcb6360e01b815260040160405180910390fd5b6001600160a01b0383166117fe57604051632e947acb60e01b815260040160405180910390fd5b60188160ff1610611822576040516370d79de560e11b815260040160405180910390fd5b600a805462010000600160b01b031916620100006001600160a01b0389160217905561184f8a8a8a61394b565b601c80546001600160a01b03199081166001600160a01b0388811691909117909255601f80548216878416179055600b8054821686841617905560108d9055600f805460ff191660ff8516179055600a805461ffff19169055602180549091169184169190911790556022879055426023556040518781527f2147e2bc8c39e67f74b1a9e08896ea1485442096765942206af1f4bc8bcde9179060200160405180910390a1601b54604051636e998e1760e11b81526001600160a01b0391821660048201526201518060248201529083169063dd331c2e906044015f604051808303815f87803b158015611941575f80fd5b505af1158015611953573d5f803e3d5ffd5b5050505061196060018055565b5050505050505050505050565b5f611164826139a0565b61197f6134c7565b600a546201000090046001600160a01b03166119ae57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b031633146119d957604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b0381165f908152600960205260409020805460ff19169055610e2b60018055565b611a096134c7565b600a546201000090046001600160a01b0316611a3857604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b03163314611a6357604051630b2db9b760e31b815260040160405180910390fd5b6126ac8110611a855760405163cd4e616760e01b815260040160405180910390fd5b600e819055610e2b60018055565b5f54600290610100900460ff16158015611ab357505f5460ff8083169116105b611acf5760405162461bcd60e51b8152600401610fa690615b7b565b5f805461ffff191660ff8316176101001790556022829055426023556040517f2147e2bc8c39e67f74b1a9e08896ea1485442096765942206af1f4bc8bcde91790611b1d9084815260200190565b60405180910390a15f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b611b726134c7565b600a546201000090046001600160a01b0316611ba157604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b03163314611bcc57604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b0381165f9081526009602052604090205460ff1615611c0557604051631f7b776b60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6d9190615b05565b600a549091506001600160a01b0362010000909104811690841603611c9757611c976001806139ec565b611ca2838383613a51565b604080518281526001600160a01b03858116602083015284168183015290517f853009bb99110572d2d914b6a40e1d763158ebac968d169d09e41bf6c15fc97a9181900360600190a150611cf560018055565b5050565b604080516020808201869052818301859052606080830185905283518084039091018152608090920183528151918101919091205f818152601590925291812054600f54909290611d549087908790879060ff168680613ab4565b915050935093915050565b5f611d686134c7565b600a546201000090046001600160a01b0316611d9757604051636b271baf60e11b815260040160405180910390fd5b600a5460ff1615611dbb5760405163deeb694360e01b815260040160405180910390fd5b6001600160a01b0382161580611dd957506001600160a01b03821630145b15611df757604051631e4ec46b60e01b815260040160405180910390fd5b335f9081526009602052604090205460ff1680611e2b57506001600160a01b0382165f9081526009602052604090205460ff165b15611e4957604051631f7b776b60e01b815260040160405180910390fd5b825f03611e6957604051637edcaddf60e01b815260040160405180910390fd5b611e7282611507565b831115611e9257604051632484557960e01b815260040160405180910390fd5b611e9b836124d3565b9050805f03611ebd576040516334d1b1a560e11b815260040160405180910390fd5b610ee333838584613b0f565b5f80611ed36134c7565b600a546201000090046001600160a01b0316611f0257604051636b271baf60e11b815260040160405180910390fd5b600a54610100900460ff1615611f2b57604051636022a9e760e01b815260040160405180910390fd5b335f9081526009602052604090205460ff1680611f5f57506001600160a01b0384165f9081526009602052604090205460ff165b80611f8157506001600160a01b0383165f9081526009602052604090205460ff165b15611f9f57604051631f7b776b60e01b815260040160405180910390fd5b5f805f611fae88878933613c9f565b601054909950939750919550935091505f03611fd657429350611fd38383838a6140ba565b50505b505050611fe260018055565b935093915050565b5f6127106301e13380611ffd8585615b68565b602254612008613520565b6120129190615cc8565b61201c9190615cc8565b6120269190615cf3565b6111649190615cf3565b6120386134c7565b600a546201000090046001600160a01b031661206757604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b0316331461209257604051630b2db9b760e31b815260040160405180910390fd5b61209c82826139ec565b611cf560018055565b5f6120ae6134c7565b600a546201000090046001600160a01b03166120dd57604051636b271baf60e11b815260040160405180910390fd5b600a5460ff16156121015760405163deeb694360e01b815260040160405180910390fd5b6001600160a01b038216158061211f57506001600160a01b03821630145b1561213d57604051631e4ec46b60e01b815260040160405180910390fd5b335f9081526009602052604090205460ff168061217157506001600160a01b0382165f9081526009602052604090205460ff165b1561218f57604051631f7b776b60e01b815260040160405180910390fd5b825f036121af576040516334d1b1a560e11b815260040160405180910390fd5b6006548311156121d25760405163fc3fc71f60e01b815260040160405180910390fd5b6121db836123de565b90506121e682611507565b81111561220657604051632484557960e01b815260040160405180910390fd5b610ee333838386613b0f565b60038054610e3b90615b1c565b6122276134c7565b600a546201000090046001600160a01b031661225657604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146122815760405163d0e46ccb60e01b815260040160405180910390fd5b61228a82613910565b60405163354ead1160e11b8152600481018290526001600160a01b03831690636a9d5a22906024015b5f604051808303815f87803b1580156122ca575f80fd5b505af11580156122dc573d5f803e3d5ffd5b50505050611cf560018055565b5f6122f26134c7565b6122fd3384846136fe565b9050610ec560018055565b5f806123126134c7565b600a546201000090046001600160a01b031661234157604051636b271baf60e11b815260040160405180910390fd5b600a54610100900460ff161561236a57604051636022a9e760e01b815260040160405180910390fd5b335f9081526009602052604090205460ff168061239e57506001600160a01b0383165f9081526009602052604090205460ff165b156123bc57604051631f7b776b60e01b815260040160405180910390fd5b6123c8868686866140ba565b915091506123d560018055565b94509492505050565b5f610ec582600161359d565b5f604051633af6971f60e11b815260040160405180910390fd5b61240c6134c7565b600a546201000090046001600160a01b031661243b57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b0316331461246657604051630b2db9b760e31b815260040160405180910390fd5b61247183838361394b565b61146360018055565b604080516020808201879052818301869052606080830186905283518084039091018152608090920183528151918101919091205f908152601882528281206001600160a01b038516825290915220545b949350505050565b5f610ec5825f6136d5565b6124e66134c7565b600a546201000090046001600160a01b031661251557604051636b271baf60e11b815260040160405180910390fd5b601280545f909155600a54600b54612540916001600160a01b03620100009091048116911683613a51565b5061123160018055565b5f805f8061257160105461012c426125629190615d06565b61256c9190615d06565b61443c565b600f5492965090945092506125909085908590859060ff165f80613ab4565b905090919293565b6125a06134c7565b600a546201000090046001600160a01b03166125cf57604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146125fa5760405163d0e46ccb60e01b815260040160405180910390fd5b61260382613910565b604051636140e50d60e01b8152600481018290526001600160a01b03831690636140e50d906024016122b3565b6001600160a01b0381165f90815260076020526040812054610ec5908261359d565b61265a6134c7565b600a546201000090046001600160a01b031661268957604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146126b45760405163d0e46ccb60e01b815260040160405180910390fd5b6126bd81613910565b806001600160a01b0316637c007bb56040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156126f5575f80fd5b505af1158015612707573d5f803e3d5ffd5b50505050610e2b60018055565b61271c6134c7565b600a546201000090046001600160a01b031661274b57604051636b271baf60e11b815260040160405180910390fd5b601b546001600160a01b0316331461277657604051630b2db9b760e31b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90602001610e1a565b6127cc6134c7565b600a546201000090046001600160a01b03166127fb57604051636b271baf60e11b815260040160405180910390fd5b6023545f0361281d5760405163393c99bb60e01b815260040160405180910390fd5b5f61282a60235442611fea565b9050805f0361284c57604051630e2c8a8960e31b815260040160405180910390fd5b426023819055508060125f8282546128649190615d06565b90915550506040518181527f2d46e156a9ac545bd5f27832a0e6293d21c92faf9237534c6b18c51e9cca59df9060200160405180910390a15061123160018055565b602081815481106128b5575f80fd5b5f918252602090912001546001600160a01b0316905081565b6128d66134c7565b600a546201000090046001600160a01b031661290557604051636b271baf60e11b815260040160405180910390fd5b601c546001600160a01b031633146129305760405163d0e46ccb60e01b815260040160405180910390fd5b61293981613910565b6001600160a01b0381165f908152601e6020526040812080546001909101819055601d80549192839261296d908490615d06565b92505081905550600260ff16826001600160a01b03166325af34cd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129d99190615d19565b60ff16146129fa5760405163046c4b6360e51b815260040160405180910390fd5b600a54612a17906201000090046001600160a01b03168383614461565b816001600160a01b0316638db579946040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612a4f575f80fd5b505af1158015612a61573d5f803e3d5ffd5b5050600a54612a8392506201000090046001600160a01b03169050835f614461565b600460ff16826001600160a01b03166325af34cd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae89190615d19565b60ff1614612b0957604051631025cc2560e01b815260040160405180910390fd5b600a54604051636eb1769f60e11b81523060048201526001600160a01b0384811660248301525f92620100009004169063dd62ed3e90604401602060405180830381865afa158015612b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b819190615b05565b1115612ba3576040516001622e27f760e11b0319815260040160405180910390fd5b50610e2b60018055565b612bb56134c7565b600a546201000090046001600160a01b0316612be457604051636b271baf60e11b815260040160405180910390fd5b335f908152601e602052604090206002015460ff16612c165760405163a2df1a7b60e01b815260040160405180910390fd5b5f828210612c24575f612c2e565b612c2e8284615b68565b335f908152601e602052604090206001015490915015612c7357335f908152601e6020526040812060010154601d805491929091612c6d908490615b68565b90915550505b335f908152601e602052604090206001018190558015612ca45780601d5f828254612c9e9190615d06565b90915550505b50611cf560018055565b612cb66134c7565b601b546001600160a01b03163314612ce157604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b0381161580612cff57506001600160a01b03811630145b15612d1d576040516349e27cff60e01b815260040160405180910390fd5b601c546001600160a01b0390811690821603612d4c57604051630912536f60e01b815260040160405180910390fd5b601f546001600160a01b0390811690821603612d7b5760405163038d998760e31b815260040160405180910390fd5b6001600160a01b0381165f9081526009602052604090205460ff1615612db457604051631f7b776b60e01b815260040160405180910390fd5b601b546001600160a01b0316612dc982614574565b6040516001600160a01b03831660248201525f9060440160408051601f19818403018152918152602080830180516001600160e01b031663f2fde38b60e01b1790529051612e18929101615602565b60408051808303601f19018152908290528051602090910120602154631f229a2f60e31b8352600483018290526001600160a01b0385811660248501528681166044850152919350169063f914d178906064015f604051808303815f87803b158015612e82575f80fd5b505af1158015612e94573d5f803e3d5ffd5b505050505050610e2b60018055565b612eab6134c7565b600a546201000090046001600160a01b0316612eda57604051636b271baf60e11b815260040160405180910390fd5b600a54610100900460ff1615612f0357604051636022a9e760e01b815260040160405180910390fd5b805f03612f23576040516334e33ddb60e01b815260040160405180910390fd5b335f9081526009602052604090205460ff1615612f5357604051631f7b776b60e01b815260040160405180910390fd5b6013546001600160a01b0316612f7c57604051631c202a9560e01b815260040160405180910390fd5b6040805160208101869052908101849052606081018390525f9060800160405160208183030381529060405280519060200120905060145f8281526020019081526020015f20600101545f03612fe557604051630683f18b60e41b815260040160405180910390fd5b600f54612ffc9086908690869060ff165f80613ab4565b61300861012c42615d06565b10156130275760405163085de62560e01b815260040160405180910390fd5b5f81815260156020526040812054831061304e575f82815260156020526040902054613050565b825b5f838152601560205260408120549192508267ffffffffffffffff81111561307a5761307a61533d565b6040519080825280602002602001820160405280156130a3578160200160208202803683370190505b5090505f8367ffffffffffffffff8111156130c0576130c061533d565b6040519080825280602002602001820160405280156130e9578160200160208202803683370190505b5090505f80808681875b6130fd8a8a615b68565b8111156132f8575f8b815260156020526040902061311c600183615b68565b8154811061312c5761312c615d34565b5f918252602090912001546001600160a01b031691508261314c81615d48565b9350508188848151811061316257613162615d34565b6001600160a01b039283166020918202929092018101919091525f8d8152601782526040808220938616825292909152205487518890859081106131a8576131a8615d34565b6020026020010181815250508683815181106131c6576131c6615d34565b6020026020010151846131d99190615d06565b5f8c81526018602090815260408083206001600160a01b03871684529091529020549094506132089086615d06565b5f8c81526019602090815260408083206001600160a01b03871684529091529020549095506132379087615d06565b5f8c81526017602090815260408083206001600160a01b0387168085529083528184208490558f84526018835281842081855283528184208490558f84526019835281842090845282528083208390558e835260159091529020805491975090806132a4576132a4615d5d565b5f828152602080822083015f1990810180546001600160a01b03191690559092019092558c82526016815260408083206001600160a01b0386168452909152812055806132f081615d48565b9150506130f3565b508360115f82825461330a9190615b68565b925050819055508460125f8282546133229190615d06565b90915550505f8a81526014602052604081206001018054859290613347908490615b68565b90915550505f8a81526014602052604081208054869290613369908490615b68565b9091555050600a546040516370a0823160e01b81523060048201525f916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156133ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133de9190615b05565b90508381101561340157604051631e9acf1760e31b815260040160405180910390fd5b61340b30866145c5565b6134168b89896146f5565b6134208482615b68565b600a546040516370a0823160e01b8152306004820152620100009091046001600160a01b0316906370a0823190602401602060405180830381865afa15801561346b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061348f9190615b05565b146134ad57604051630a85404160e11b815260040160405180910390fd5b50505050505050505050506134c160018055565b50505050565b6002600154036135195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fa6565b6002600155565b600a546040516370a0823160e01b81523060048201525f916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561356c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135909190615b05565b601d54610d829190615d06565b5f6005545f146135c3576135be6135b2613520565b600554859190856148bb565b611164565b82611164565b6001600160a01b03821661361f5760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f207370656e646572207265717569726564000000000000006044820152606401610fa6565b6001600160a01b0383166136755760405162461bcd60e51b815260206004820152601760248201527f6e6f6e2d7a65726f206f776e65722072657175697265640000000000000000006044820152606401610fa6565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8215806136e35750600554155b6135c3576135be6005546136f5613520565b859190856148bb565b5f6001600160a01b0383166137555760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f2061646472657373207265717569726564000000000000006044820152606401610fa6565b6001600160a01b0384166137ab5760405162461bcd60e51b815260206004820152601860248201527f6e6f6e2d7a65726f2073656e64657220726571756972656400000000000000006044820152606401610fa6565b5f82116137f25760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b6044820152606401610fa6565b6001600160a01b0384165f908152600760205260409020548211156138595760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564732073656e6465722062616c616e63650000006044820152606401610fa6565b6001600160a01b0384165f9081526007602052604090205461387c908390615b68565b6001600160a01b038086165f9081526007602052604080822093909355908516815220546138ab908390615d06565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906138fe9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0381165f908152601e602052604090206002015460ff16610e2b5760405163a2df1a7b60e01b815260040160405180910390fd5b825f0361396b57604051637fb1277b60e01b815260040160405180910390fd5b815f0361398b5760405163e8498be360e01b815260040160405180910390fd5b61399481614916565b50600c91909155600d55565b5f806139ac835f61359d565b91508190505f80600e5411156139e65761271083600e546139cd9190615cc8565b6139d79190615cf3565b90506139e38184615b68565b91505b50915091565b600a805461ffff191683151561ff00191617610100831515810291909117918290556040805160ff8085161515825292909304909116151560208301527f559628b27717ff2f5863f3a218839e17c6bc1b900e9de0dc2b3dc365068841d79101611b5e565b6040516001600160a01b03831660248201526044810182905261146390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526149a5565b5f81613ac1603c85615cc8565b613acd610e1087615cc8565b62015180613adc8b8b8b614a76565b613ae69190615cc8565b613af09190615d06565b613afa9190615d06565b613b049190615d06565b979650505050505050565b600a546040516370a0823160e01b81523060048201525f916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015613b5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b7f9190615b05565b613b899084615d06565b600a54909150613baa906201000090046001600160a01b0316863086614bdc565b600a546040516370a0823160e01b815230600482015282916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015613bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c1a9190615b05565b14613c3857604051630a85404160e11b815260040160405180910390fd5b613c428483614c14565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78585604051613c90929190918252602082015260400190565b60405180910390a35050505050565b5f80808080306001600160a01b03891603613ccd57604051634971ba2d60e01b815260040160405180910390fd5b885f03613ced576040516334d1b1a560e11b815260040160405180910390fd5b6001600160a01b0388165f90815260076020526040902054891115613d2557604051633999656760e01b815260040160405180910390fd5b5f80613d308b6139a0565b91509150613d3d8a612630565b821115613d5d57604051631b6132ab60e31b815260040160405180910390fd5b805f03613d7d57604051631fbaba3560e01b815260040160405180910390fd5b5f613d888284615b68565b9050819350613da160105461012c426125629190615d06565b60408051602080820186905281830185905260608083018590528351808403909101815260809092019092528051910120600f54939a50919850965090613df29089908990899060ff165f80613ab4565b98508b6001600160a01b03168a6001600160a01b031614613e1857613e188c8b8f614d28565b613e238c308f6136fe565b505f8181526014602052604081206001018054869290613e44908490615d06565b90915550505f81815260146020526040812080548f9290613e66908490615d06565b925050819055508c60115f828254613e7e9190615d06565b90915550505f8181526017602090815260408083206001600160a01b038f1684529091528120549003613f4c5760155f8281526020019081526020015f208b908060018154018082558091505060019003905f5260205f20015f9091909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555060155f8281526020019081526020015f208054905060165f8381526020019081526020015f205f8d6001600160a01b03166001600160a01b031681526020019081526020015f20819055505b5f8181526017602090815260408083206001600160a01b038f16845290915281208054859290613f7d908490615d06565b90915550505f8181526018602090815260408083206001600160a01b038f168452909152812080548f9290613fb3908490615d06565b90915550505f8181526019602090815260408083206001600160a01b038f16845290915281208054849290613fe9908490615d06565b9250508190555042601a5f8381526020019081526020015f205f8d6001600160a01b03166001600160a01b031681526020019081526020015f20819055507ff60d67b14614c8984f880fd3b3bc7ddc3c2913656340f454bf0c7431152bbda68c8c8f87868d8d8d6040516140a39897969594939291906001600160a01b03988916815296909716602087015260408601949094526060850192909252608084015260a083015260c082015260e08101919091526101000190565b60405180910390a150505050945094509450945094565b604080516020808201879052818301869052606080830186905283518084039091018152608090920183528151918101919091205f818152601883528381206001600160a01b03861682529092529181205490918291808303614130576040516339c556cd60e11b815260040160405180910390fd5b5f8281526017602090815260408083206001600160a01b0389168085529083528184205486855260198452828520918552925290912054601054156141b157600f54614186908b908b908b9060ff165f80613ab4565b61419261012c42615d06565b10156141b15760405163085de62560e01b815260040160405180910390fd5b5f8481526017602090815260408083206001600160a01b038b1680855290835281842084905587845260188352818420818552835281842084905587845260198352818420908452825280832083905586835260149091528120805485929061421b908490615b68565b9091555061422b90508183615d06565b5f858152601460205260408120600101805490919061424b908490615b68565b925050819055508260115f8282546142639190615b68565b925050819055508060125f82825461427b9190615d06565b9091555061428b90508488614db4565b61429530846145c5565b5f848152601a602090815260408083206001600160a01b038b16808552908352818420548251878152429481019490945291830152606082015260808101919091527fa6f30f7bcb55dd97fe6efdedd57aa5ee608cf66171304f643b791c6f37f495899060a00160405180910390a1600a546040516370a0823160e01b81523060048201525f916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015614350573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143749190615b05565b600a54909150614394906201000090046001600160a01b03168985613a51565b600a546040516370a0823160e01b8152306004820152620100009091046001600160a01b0316906370a0823190602401602060405180830381865afa1580156143df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144039190615b05565b61440d8483615b68565b101561442c57604051630a85404160e11b815260040160405180910390fd5b5091999098509650505050505050565b5f808061445461444f6201518086615cf3565b614f99565b9196909550909350915050565b8015806144d95750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156144b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144d79190615b05565b155b6145445760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610fa6565b6040516001600160a01b03831660248201526044810182905261146390849063095ea7b360e01b90606401613a7d565b601b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81116146055760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610fa6565b6001600160a01b0382165f9081526007602052604090205481111561466c5760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e636500000000006044820152606401610fa6565b6001600160a01b0382165f9081526007602052604081208054839290614693908490615b68565b925050819055508060055f8282546146ab9190615b68565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b5f805b83518110156112e05760095f85838151811061471657614716615d34565b6020908102919091018101516001600160a01b031682528101919091526040015f205460ff1661475f5783818151811061475257614752615d34565b602002602001015161476c565b6013546001600160a01b03165b91507fa6f30f7bcb55dd97fe6efdedd57aa5ee608cf66171304f643b791c6f37f495898382815181106147a1576147a1615d34565b6020026020010151428684815181106147bc576147bc615d34565b6020026020010151601a5f8a81526020019081526020015f205f8987815181106147e8576147e8615d34565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205460095f8a888151811061482557614825615d34565b6020908102919091018101516001600160a01b0390811683528282019390935260409182015f2054825197885290870195909552921684830152606084015260ff90911615156080830152519081900360a00190a16148b3600a60029054906101000a90046001600160a01b0316838584815181106148a6576148a6615d34565b6020026020010151613a51565b6001016146f8565b5f806148c8868686615108565b905060018360028111156148de576148de615d71565b1480156148fa57505f84806148f5576148f5615cdf565b868809115b1561490d5761490a600182615d06565b90505b95945050505050565b5f81118015614926575060055481115b6149675760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206d617820737570706c7960701b6044820152606401610fa6565b600680549082905560408051828152602081018490527fe4fd3e707c42fe7e4405214e86e4f796ecfa58dfe4d17def31221e34e2e4b2b59101611b5e565b5f6149f9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166151b19092919063ffffffff16565b8051909150156114635780806020019051810190614a179190615d85565b6114635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610fa6565b5f6107b2841015614ab15760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610fa6565b8383835f62253d8c60046064600c614aca600e88615da0565b614ad49190615dc6565b614ae088611324615df2565b614aea9190615df2565b614af49190615dc6565b614aff906003615e19565b614b099190615dc6565b600c80614b17600e88615da0565b614b219190615dc6565b614b2c90600c615e19565b614b37600288615da0565b614b419190615da0565b614b4d9061016f615e19565b614b579190615dc6565b6004600c614b66600e89615da0565b614b709190615dc6565b614b7c896112c0615df2565b614b869190615df2565b614b92906105b5615e19565b614b9c9190615dc6565b614ba8617d4b87615da0565b614bb29190615df2565b614bbc9190615df2565b614bc69190615da0565b614bd09190615da0565b98975050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526134c19085906323b872dd60e01b90608401613a7d565b5f8111614c545760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610fa6565b614c5d816151bf565b614ca95760405162461bcd60e51b815260206004820152601860248201527f4d617820737570706c79206c696d6974207265616368656400000000000000006044820152606401610fa6565b8060055f828254614cba9190615d06565b90915550506001600160a01b0382165f9081526007602052604081208054839290614ce6908490615d06565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016146e9565b6001600160a01b038084165f908152600860209081526040808320938616835292905220545f1981146134c15781811015614da55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610fa6565b6134c184846111578585615b68565b5f8281526016602090815260408083206001600160a01b0385168452909152812054614de290600190615b68565b5f8481526015602052604081208054929350614dff600184615b68565b81548110614e0f57614e0f615d34565b5f918252602090912001546001600160a01b03908116915084168114614f33575f858152601560205260409020805484908110614e4e57614e4e615d34565b5f918252602080832090910154878352601590915260409091206001600160a01b0390911690614e7f600185615b68565b81548110614e8f57614e8f615d34565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508060155f8781526020019081526020015f208481548110614edd57614edd615d34565b5f91825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055614f10836001615d06565b5f8681526016602090815260408083206001600160a01b03861684529091529020555b5f858152601560205260409020805480614f4f57614f4f615d5d565b5f828152602080822083015f1990810180546001600160a01b03191690559092019092559581526016865260408082206001600160a01b0396909616825294909552505050812055565b5f8080838162253d8c614faf8362010bd9615df2565b614fb99190615df2565b90505f62023ab1614fcb836004615e19565b614fd59190615dc6565b90506004614fe68262023ab1615e19565b614ff1906003615df2565b614ffb9190615dc6565b6150059083615da0565b91505f62164b09615017846001615df2565b61502390610fa0615e19565b61502d9190615dc6565b9050600461503d826105b5615e19565b6150479190615dc6565b6150519084615da0565b61505c90601f615df2565b92505f61098f61506d856050615e19565b6150779190615dc6565b90505f60506150888361098f615e19565b6150929190615dc6565b61509c9086615da0565b90506150a9600b83615dc6565b94506150b685600c615e19565b6150c1836002615df2565b6150cb9190615da0565b915084836150da603187615da0565b6150e5906064615e19565b6150ef9190615df2565b6150f99190615df2565b9a919950975095505050505050565b5f80805f19858709858702925082811083820303915050805f0361513f5783828161513557615135615cdf565b0492505050611164565b80841161514a575f80fd5b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b60606124cb84845f856151d9565b5f816005546006546151d19190615b68565b101592915050565b60608247101561523a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610fa6565b5f80866001600160a01b031685876040516152559190615e48565b5f6040518083038185875af1925050503d805f811461528f576040519150601f19603f3d011682016040523d82523d5f602084013e615294565b606091505b5091509150613b04878383876060831561530e5782515f03615307576001600160a01b0385163b6153075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610fa6565b50816124cb565b6124cb83838151156153235781518083602001fd5b8060405162461bcd60e51b8152600401610fa69190615602565b634e487b7160e01b5f52604160045260245ffd5b604051610280810167ffffffffffffffff811182821017156153755761537561533d565b60405290565b5f82601f83011261538a575f80fd5b813567ffffffffffffffff8111156153a4576153a461533d565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156153d3576153d361533d565b6040528181528382016020018510156153ea575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160a01b0381168114610e2b575f80fd5b8035610d7481615406565b8015158114610e2b575f80fd5b8035610d7481615425565b5f6020828403121561544d575f80fd5b813567ffffffffffffffff811115615463575f80fd5b82016102808185031215615475575f80fd5b61547d615351565b813581526020808301359082015260408083013590820152606080830135908201526080808301359082015260a0808301359082015260c0808301359082015260e080830135908201526101008083013590820152610120808301359082015261014082013567ffffffffffffffff8111156154f7575f80fd5b6155038682850161537b565b61014083015250615517610160830161541a565b61016082015261552a610180830161541a565b61018082015261553d6101a0830161541a565b6101a08201526155506101c0830161541a565b6101c08201526155636101e0830161541a565b6101e0820152615576610200830161541a565b610200820152615589610220830161541a565b61022082015261559c610240830161541a565b6102408201526155af6102608301615432565b610260820152949350505050565b5f602082840312156155cd575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61116460208301846155d4565b5f8060408385031215615625575f80fd5b823561563081615406565b946020939093013593505050565b5f805f60608486031215615650575f80fd5b833561565b81615406565b9250602084013561566b81615406565b929592945050506040919091013590565b5f6020828403121561568c575f80fd5b813561116481615406565b5f805f606084860312156156a9575f80fd5b83356156b481615406565b95602085013595506040909401359392505050565b60ff81168114610e2b575f80fd5b5f805f80608085870312156156ea575f80fd5b84356156f581615406565b93506020850135615705816156c9565b9250604085013567ffffffffffffffff811115615720575f80fd5b61572c8782880161537b565b925050606085013567ffffffffffffffff811115615748575f80fd5b6157548782880161537b565b91505092959194509250565b5f805f805f805f805f805f6101608c8e03121561577b575f80fd5b8b359a5060208c0135995060408c0135985060608c0135975060808c0135965060a08c01356157a981615406565b955060c08c01356157b981615406565b945060e08c01356157c981615406565b93506101008c01356157da81615406565b92506101208c01356157eb81615406565b91506101408c01356157fc816156c9565b809150509295989b509295989b9093969950565b5f8060408385031215615821575f80fd5b823561582c81615406565b9150602083013561583c81615406565b809150509250929050565b5f805f60608486031215615859575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215615881575f80fd5b82359150602083013561583c81615406565b5f805f606084860312156158a5575f80fd5b8335925060208401356158b781615406565b915060408401356158c781615406565b809150509250925092565b5f80604083850312156158e3575f80fd5b50508035926020909101359150565b5f8060408385031215615903575f80fd5b823561590e81615425565b9150602083013561583c81615425565b5f805f8060808587031215615931575f80fd5b843593506020850135925060408501359150606085013561595181615406565b939692955090935050565b5f805f806080858703121561596f575f80fd5b5050823594602084013594506040840135936060013592509050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e082015260e08201516101008201526101008201516101208201526101208201516101408201525f610140830151610280610160840152615a136102a08401826155d4565b9050610160840151615a316101808501826001600160a01b03169052565b506101808401516001600160a01b0381166101a0850152506101a08401516001600160a01b0381166101c0850152506101c08401516001600160a01b0381166101e0850152506101e08401516001600160a01b038116610200850152506102008401516001600160a01b038116610220850152506102208401516001600160a01b038116610240850152506102408401516001600160a01b03811661026085015250610260840151801515610280850152509392505050565b5f60208284031215615afa575f80fd5b815161116481615406565b5f60208284031215615b15575f80fd5b5051919050565b600181811c90821680615b3057607f821691505b602082108103615b4e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ec557610ec5615b54565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b601f82111561146357805f5260205f20601f840160051c81016020851015615bee5750805b601f840160051c820191505b818110156112e0575f8155600101615bfa565b815167ffffffffffffffff811115615c2757615c2761533d565b615c3b81615c358454615b1c565b84615bc9565b6020601f821160018114615c6d575f8315615c565750848201515b5f19600385901b1c1916600184901b1784556112e0565b5f84815260208120601f198516915b82811015615c9c5787850151825560209485019460019092019101615c7c565b5084821015615cb957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082028115828204841417610ec557610ec5615b54565b634e487b7160e01b5f52601260045260245ffd5b5f82615d0157615d01615cdf565b500490565b80820180821115610ec557610ec5615b54565b5f60208284031215615d29575f80fd5b8151611164816156c9565b634e487b7160e01b5f52603260045260245ffd5b5f81615d5657615d56615b54565b505f190190565b634e487b7160e01b5f52603160045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215615d95575f80fd5b815161116481615425565b8181035f831280158383131683831282161715615dbf57615dbf615b54565b5092915050565b5f82615dd457615dd4615cdf565b600160ff1b82145f1984141615615ded57615ded615b54565b500590565b8082018281125f831280158216821582161715615e1157615e11615b54565b505092915050565b8082025f8212600160ff1b84141615615e3457615e34615b54565b8181058314821517610ec557610ec5615b54565b5f82518060208501845e5f92019182525091905056fea2646970667358221220dff29675998dfb1f9dd44ef38b791b7f6feace8f2802c8cfe8d420449ab71cc064736f6c634300081a0033