h-agent-swap 1.9.0 → 1.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h-agent-swap",
3
- "version": "1.9.0",
3
+ "version": "1.9.6",
4
4
  "description": "agent-swap",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -1584,8 +1584,8 @@
1584
1584
  "type": "receive"
1585
1585
  }
1586
1586
  ],
1587
- "bytecode": "0x608060405262015180600a556000600b556305f5e1006012553480156200002557600080fd5b50604051620062f9380380620062f9833981016040819052620000489162000746565b620000533362000322565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007d8162000372565b600080734683b08798f3e30220c9d2018a4715f9f9532f5c738f689b86683004e20b938c60cc547f3ba23c283346606103620000e757735f0a0fd7b6e0fa043386158c801f82e20cecca939350738e8d0092879f6cd758b3ede480a40231be41817d92506200015e565b466201388103620001265773cf43b390dc89b36fd49267c646a73a0dfb7f3e4c93507385217dbb899f176f2533beb32d27b0e16aa2dd9592506200015e565b466089036200015e5773c2132d05d31c914a87c6611c10748aeb04b58e8f935073d34c03815039aded697d3e8cf94a7b371628383392505b6040805160a0808201835260008083526302faf08060208085018290528486018290526298968060608087018290526080968701859052600d859055600e849055600f9390935560108190556011849055865161018081018852600181528083018290526001600160a01b03808c16828a015262b71b008286018190526005838a015296820183905260c082019290925260e081019590955262e4e1c0610100860152624c4b406101208601526101408501849052620f423f196101608601528651958601875283865290850183905294840191909152928716928201929092526200024f9186918691906200047c565b620003168385604051806101800160405280866001600160a01b03168152602001621e84808152602001876001600160a01b031681526020016000815260200160058152602001621e848081526020016302faf08081526020016000815260200160008152602001624c4b408152602001624c4b3f19815260200160008152506040518060800160405280866001600160a01b0316815260200163017d7840815260200163017d78408152602001896001600160a01b03168152506200047c60201b60201c565b505050505050620007a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620003d95760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045991906200077e565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620004d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003d0565b6000826060015112156200052f5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401620003d0565b600082602001511215620005865760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401620003d0565b836001600160a01b031681606001516001600160a01b03161480620005c05750826001600160a01b031681606001516001600160a01b0316145b6200060e5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401620003d0565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b80516001600160a01b03811681146200074157600080fd5b919050565b600080604083850312156200075a57600080fd5b620007658362000729565b9150620007756020840162000729565b90509250929050565b6000602082840312156200079157600080fd5b6200079c8262000729565b9392505050565b615b4680620007b36000396000f3fe6080604052600436106102065760003560e01c80635ff530f2116101175780639bad44e8116100a5578063d96661ef1161006c578063d96661ef14610857578063eed8386c14610877578063f2fde38b146108b4578063f9848650146108d4578063fe8691b4146108f457005b80639bad44e8146107ce578063a6a3694a146107ee578063aa5d448f14610801578063b180198614610821578063d738eba11461083757005b8063744cfdd9116100e9578063744cfdd9146106ce5780637aaa9b02146106ee57806381f3fdc31461070e5780638da5cb5b1461073d5780639065a9af1461075b57005b80635ff530f21461064b57806362a766031461066b5780636f151a3814610699578063715018a6146106b957005b8063238ac9331161019457806334e3f92d1161016657806334e3f92d146105425780633fc8cef31461058d57806340216a83146105ad57806343d726d6146106155780635c8181211461062b57005b8063238ac933146103db57806327af9e38146104135780632926e5de146104295780632bd2c18d1461052257005b80630d83b1e4116101d85780630d83b1e4146103385780630fcc40c41461034e57806315aa89531461037b5780631b1534011461039b5780631f8c24de146103bb57005b8063016eb8a81461020f578063089aa04714610242578063089afeae14610262578063092e469f146102e957005b3661020d57005b005b34801561021b57600080fd5b5061022f61022a366004614b69565b610948565b6040519081526020015b60405180910390f35b34801561024e57600080fd5b5061020d61025d366004614bfa565b610969565b34801561026e57600080fd5b506102ba61027d366004614c8e565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b03958616815260208101949094528301919091529091166060820152608001610239565b3480156102f557600080fd5b50600d54600e54600f54601054601154610310949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b34801561034457600080fd5b5061022f60125481565b34801561035a57600080fd5b5061036e610369366004614d5e565b6109c2565b6040516102399190614dd6565b34801561038757600080fd5b5061022f610396366004614de9565b610a91565b3480156103a757600080fd5b5061020d6103b6366004614e4a565b610aa6565b3480156103c757600080fd5b5061020d6103d6366004614efa565b610b25565b3480156103e757600080fd5b506002546103fb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b34801561041f57600080fd5b5061022f600a5481565b34801561043557600080fd5b506104b8610444366004614c8e565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083015261014082015261016081019190915261018001610239565b34801561052e57600080fd5b5061022f61053d366004614f66565b610ba5565b34801561054e57600080fd5b5061057d61055d366004614fbc565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610239565b34801561059957600080fd5b506004546103fb906001600160a01b031681565b3480156105b957600080fd5b506105cd6105c8366004614c8e565b610bfa565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e001610239565b34801561062157600080fd5b5061022f600c5481565b34801561063757600080fd5b5061022f610646366004614ffe565b610dae565b34801561065757600080fd5b5061022f610666366004615037565b610df6565b34801561067757600080fd5b5061068b61068636600461507d565b610f13565b60405161023992919061518e565b3480156106a557600080fd5b5061020d6106b43660046151fb565b61123f565b3480156106c557600080fd5b5061020d611275565b3480156106da57600080fd5b5061022f6106e9366004615037565b6112ab565b3480156106fa57600080fd5b5061020d610709366004615290565b6113ad565b34801561071a57600080fd5b5061072e610729366004614de9565b611621565b6040516102399392919061538d565b34801561074957600080fd5b506000546001600160a01b03166103fb565b34801561076757600080fd5b506107ae610776366004614e4a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610239565b3480156107da57600080fd5b5061020d6107e936600461540a565b61196a565b61020d6107fc3660046154b6565b611b2c565b34801561080d57600080fd5b5061020d61081c3660046151fb565b611e3c565b34801561082d57600080fd5b5061022f600b5481565b34801561084357600080fd5b5061020d610852366004614b69565b611e6f565b34801561086357600080fd5b506005546103fb906001600160a01b031681565b34801561088357600080fd5b50610897610892366004614c8e565b611ea4565b604080519283526001600160a01b03909116602083015201610239565b3480156108c057600080fd5b5061020d6108cf3660046151fb565b612033565b3480156108e057600080fd5b506108976108ef36600461551a565b6120cb565b34801561090057600080fd5b5061093361090f366004614c8e565b60066020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610239565b6012546000906109629061095c858561220e565b90612220565b9392505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016109939061558e565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b80516060906000816001600160401b038111156109e1576109e1614b8b565b604051908082528060200260200182016040528015610a0a578160200160208202803683370190505b5090506000825b60018110610a875785610a256001836155d9565b81518110610a3557610a356155f0565b6020026020010151838381518110610a4f57610a4f6155f0565b6001600160a01b039092166020928302919091019091015281610a7181615606565b9250508080610a7f9061561f565b915050610a11565b5090949350505050565b6000610a9e84848461222c565b949350505050565b6000546001600160a01b03163314610ad05760405162461bcd60e51b81526004016109939061558e565b610adb838383612409565b610b205760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b6044820152606401610993565b505050565b610b2d612440565b610b3a8585858585612499565b610b4685858584612654565b814210610b955760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e0000006044820152606401610993565b610b9e60018055565b5050505050565b60008080848103610bd257610bba8787610df6565b9150610bc884836000610dae565b9150819250610bf0565b610bdc87876112ab565b9050610bea84826001610dae565b90508092505b5050949350505050565b600080610c2f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610c429190615636565b610c4c919061564e565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610d31578060200151945080606001519350610d6f565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b600060018215610dcc57601254610dc590866126c3565b9050610ddc565b601254610dd990866126cf565b90505b601254610ded9061095c868461220e565b95945050505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f90610e2d9087908790600401615670565b600060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e729190810190615689565b905080610e8a600183516126cf90919063ffffffff16565b81518110610e9a57610e9a6155f0565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b6064820152608401610993565b5092915050565b610f1b614af6565b610f65604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b600080610f74898989896126db565b60a088019290925260808701839052929650919350909150610f979087906126cf565b95506000610fa683600a6157fd565b60a08501516040516370a0823160e01b81526001600160a01b038981166004830152859291908e16906370a0823190602401602060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190615809565b6110239190615636565b61102d9190615822565b611037919061564e565b6001600160a01b038781166000908152600660209081526040808320938e16835292905290812060018101549054929350918390611076908b90615636565b6110809190615636565b90508082106110a457600060c087015261109a81836155d9565b60e08701526110bb565b600160c08701526110b582826155d9565b60e08701525b6001600160a01b03808d1660009081526008602090815260408083208f8516808552908352928190208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830181905203611227578660c00151156111d45760e087015160115411801590611141575060008760e00151115b156111c757898760e001511061119c5761115f8a8260400151610948565b60408801526020810151611174908b90610948565b8088526040880151611192919061118c908d906126cf565b906126cf565b606088015261122f565b6111ae8760e001518260400151610948565b604088015260e087015160208201516111749190610948565b606087018a90525b61122f565b6111e28a8260400151610948565b604088018190526111f4908b906126cf565b606088015260e087015160105411801590611213575060008760e00151115b156111cf5760e0870151602088015261122f565b606087018a90525b5050505050509550959350505050565b6000546001600160a01b031633146112695760405162461bcd60e51b81526004016109939061558e565b61127281612853565b50565b6000546001600160a01b0316331461129f5760405162461bcd60e51b81526004016109939061558e565b6112a960006128d7565b565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906112e29087908790600401615670565b600060405180830381865afa1580156112ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113279190810190615689565b90508060008151811061133c5761133c6155f0565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b6064820152608401610993565b6000546001600160a01b031633146113d75760405162461bcd60e51b81526004016109939061558e565b60008260600151121561142c5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401610993565b6000826020015112156114815760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401610993565b836001600160a01b031681606001516001600160a01b031614806114ba5750826001600160a01b031681606001516001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401610993565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b611629614af6565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190615841565b60ff16915061174961174383600a6157fd565b85610df6565b9050600080828560800151111561179b57610120850151608086015160125461177286836155d9565b61177c9190615822565b611786919061564e565b611790919061564e565b9050600091506117e4565b84608001518311156117e45761012085015160808601516012546117bf82876155d9565b6117c99190615822565b6117d3919061564e565b6117dd919061564e565b9050600191505b600081131561195f57608085018390526101408501516101608601518361181c5761180e82615864565b915061181981615864565b90505b6000821261185f5760208701516118338484615880565b61183d9190615905565b6020880181905260c0880151121561185a5760c087015160208801525b6118bb565b86602001518760a001518461187385612927565b61187d9190615880565b6118879190615905565b131561189c5760a087015160208801526118bb565b60208701516118ab8484615880565b6118b59190615905565b60208801525b600081126119005760608701516118d28483615880565b6118dc9190615905565b6060880181905261010088015112156118fb5761010087015160608801525b61195c565b86606001518760e001518461191484612927565b61191e9190615880565b6119289190615905565b131561193d5760e0870151606088015261195c565b606087015161194c8483615880565b6119569190615905565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146119945760405162461bcd60e51b81526004016109939061558e565b82518451146119b55760405162461bcd60e51b815260040161099390615946565b81518351146119d65760405162461bcd60e51b815260040161099390615946565b80518251146119f75760405162461bcd60e51b815260040161099390615946565b60005b8451811015610b9e57611a59838281518110611a1857611a186155f0565b6020026020010151858381518110611a3257611a326155f0565b6020026020010151848481518110611a4c57611a4c6155f0565b6020026020010151612943565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd0858281518110611a8c57611a8c6155f0565b6020026020010151858381518110611aa657611aa66155f0565b6020026020010151858481518110611ac057611ac06155f0565b6020026020010151858581518110611ada57611ada6155f0565b6020026020010151604051611b1294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611b2481615606565b9150506119fa565b611b34612440565b333214611b835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c657200000000006044820152606401610993565b333b15611bde5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b6064820152608401610993565b82600003611c0557611bf08587610df6565b9350611bfe81856000610dae565b9350611c20565b611c0f84876112ab565b9450611c1d81866001610dae565b94505b600086600081518110611c3557611c356155f0565b6020026020010151905060008760018951611c5091906155d9565b81518110611c6057611c606155f0565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611ca4908490615636565b90915550611cb6905082828a8a612a6d565b60006040518060400160405280611ccc85612c59565b8152602001846001600160a01b0316815250905060006040518060400160405280611cf685612c59565b81526001600160a01b0385166020909101528251909150600303611d2557611d208433308c612c92565b611d83565b883414611d835760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b6064820152608401610993565b611d9282828b8b8e8c8c612dc4565b6000611d9f85858b613008565b9050600080611db087878f8e6131b1565b91509150611dbf87878f6132bf565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611e3460018055565b505050505050565b6000546001600160a01b03163314611e665760405162461bcd60e51b81526004016109939061558e565b61127281613590565b6000546001600160a01b03163314611e995760405162461bcd60e51b81526004016109939061558e565b600a91909155600b55565b6000806000600a54600b5442611eba9190615636565b611ec4919061564e565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611fd35750600c54155b15611fe45780608001519450611ffc565b8151600003611ff757600c549450611ffc565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b0316331461205d5760405162461bcd60e51b81526004016109939061558e565b6001600160a01b0381166120c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b611272816128d7565b6001600160a01b03808516600090815260086020908152604080832087851684529091528120600301549091168161210487878761222c565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a9190615841565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa1580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121df9190615809565b90506121ec82600a6157fd565b6121f68483615822565b612200919061564e565b945050505094509492505050565b60006109628284615822565b92915050565b6000610962828461564e565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361231657846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f39190615841565b60ff16905061230f61230682600a6157fd565b610666866109c2565b9250612400565b81606001516001600160a01b0316856001600160a01b0316036123a857856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123959190615841565b60ff16905061230f61174382600a6157fd565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b6064820152608401610993565b50509392505050565b60006001600160a01b03841661242b576124238383613691565b506001610962565b612436848484612943565b5060019392505050565b6002600154036124925760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610993565b6002600155565b6003816040516124a991906159ad565b9081526040519081900360200190205460ff16156125095760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a636572746966696361746520657870697265646044820152606401610993565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906125ba90836137aa565b6002549091506001600160a01b0380831691161461261a5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c69642063657274696669636174656044820152606401610993565b600160038360405161262c91906159ad565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166126715761266c3383613691565b61267c565b61267c833384612943565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516126b5969594939291906159c9565b60405180910390a150505050565b60006109628284615636565b600061096282846155d9565b6126e3614af6565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b815290519394859485948594929363313ce5679381830193909290918290030181865afa1580156127ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ee9190615841565b60ff16915061280761280183600a6157fd565b88610df6565b90506000806128168b8b610bfa565b50602089018290526060890181905290925090506128348883610948565b9550612844888860600151610948565b94505050945094509450945094565b6001600160a01b0381166128b55760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b6064820152608401610993565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082121561293f5761293a82615864565b61221a565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161299f91906159ad565b6000604051808303816000865af19150503d80600081146129dc576040519150601f19603f3d011682016040523d82523d6000602084013e6129e1565b606091505b5091509150818015612a0b575080511580612a0b575080806020019051810190612a0b9190615a2b565b610b9e5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610993565b6001600160a01b03808516600081815260086020908152604080832088861684528252918290208251608081018452815486168152600182015492810192909252600281015492820192909252600390910154909216606083018190529003610b9e576000612adc8686610bfa565b925050506000612aee878787336120cb565b5090508382600001511115612b6b5760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c6520707572636861736500000000000000006064820152608401610993565b8382602001511015612be55760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c6520707572636861736500000000006064820152608401610993565b612bef8482615636565b82604001511015612c505760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b6064820152608401610993565b50505050505050565b600060036001600160a01b038316612c735750600161221a565b6004546001600160a01b039081169084160361221a5750600292915050565b600080856001600160a01b03166323b872dd868686604051602401612cb993929190615a48565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612cf291906159ad565b6000604051808303816000865af19150503d8060008114612d2f576040519150601f19603f3d011682016040523d82523d6000602084013e612d34565b606091505b5091509150818015612d5e575080511580612d5e575080806020019051810190612d5e9190615a2b565b611e345760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610993565b8651600303612de9576020870151600554612de991906001600160a01b0316876137ce565b86516003148015612dfb575085516003145b8015612e05575081155b15612e8f576005546040516338ed173960e01b81526001600160a01b03909116906338ed173990612e429088908890889030908890600401615a6c565b6000604051808303816000875af1158015612e61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e899190810190615689565b50612c50565b86516003148015612ea1575085516003145b8015612ead5750816001145b15612eea57600554604051634401edf760e11b81526001600160a01b0390911690638803dbee90612e429087908990889030908890600401615a6c565b86516003148015612f075750855160021480612f07575085516001145b8015612f135750816001145b15612f5057600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612e429087908990889030908890600401615a6c565b865160021480612f61575086516001145b8015612f6e575085516003145b8015612f7a5750816001145b15612c505760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612fb7908890889030908890600401615aa8565b60006040518083038185885af1158015612fd5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612ffe9190810190615689565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816130bf8686610bfa565b505090506130cd8482610948565b9250600060405180604001604052806130e588612c59565b81526001600160a01b038816602090910152805190915060030361318a5782516001600160a01b031630146131855761312386846000015186612943565b82516001600160a01b03161580613144575082516001600160a01b03166001145b15613185577fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945333878660405161317c93929190615a48565b60405180910390a15b6131a7565b82516001600160a01b031630146131a75782516131a790856138f6565b5050509392505050565b6001600160a01b038085166000908152600860209081526040808320878516845282528083208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830152908190818061321a898989896139d0565b606086015190985091935091506001600160a01b03808a1691160361326a5781156132565761324c898989848a613af9565b909550935061326e565b613263898989848a613dd9565b935061326e565b8593505b613279883386612943565b3360009081526006602090815260408083206001600160a01b038c168452909152812080548692906132ac908490615636565b9250508190555050505094509492505050565b6000600a54600b54426132d29190615636565b6132dc919061564e565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156133eb5750600c54155b1561344b576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b8552825280842096909655955193825285528381209181529084528281208782529093529120556134a5565b81516000036134a557600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b60006134b287878761222c565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506134f08888848489613fc6565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166135f15760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b6064820152608401610993565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561364a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366e9190615add565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b804710156136e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610993565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461372e576040519150601f19603f3d011682016040523d82523d6000602084013e613733565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610993565b60008060006137b9858561423d565b915091506137c681614282565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161382a91906159ad565b6000604051808303816000865af19150503d8060008114613867576040519150601f19603f3d011682016040523d82523d6000602084013e61386c565b606091505b50915091508180156138965750805115806138965750808060200190518101906138969190615a2b565b610b9e5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b6064820152608401610993565b604080516000808252602082019092526001600160a01b03841690839060405161392091906159ad565b60006040518083038185875af1925050503d806000811461395d576040519150601f19603f3d011682016040523d82523d6000602084013e613962565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610993565b60008060008060006139e4898989896143cc565b9194509250905060006139f882600a6157fd565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a629190615809565b613a6c9190615822565b613a76919061564e565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613ab1908890615636565b613abb9190615636565b9050808210613ad95760009750613ad281836155d9565b9650613aea565b60019750613ae782826155d9565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613b695750600086115b15613dc957848610613cae57613b96613b86868460400151610948565b613b8f896109c2565b6001614682565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613bcb93929190615a48565b60405180910390a1613be1858360200151610948565b9350613bf288836000015186612943565b613c00858360400151610948565b613c0a85876155d9565b613c1491906155d9565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613c4a908490615636565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613c839033908b908890615a48565b60405180910390a1613ca78461118c613ca0888660400151610948565b88906126cf565b9250613dcd565b613cbf613b86878460400151610948565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613cf493929190615a48565b60405180910390a1613d0a868360200151610948565b9350613d1b88836000015186612943565b613d29868360400151610948565b613d3385886155d9565b613d3d91906155d9565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613d73908490615636565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613dac9033908b908890615a48565b60405180910390a1613ca78461118c613ca0898660400151610948565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190613e41908690610948565b1115613eef57613e67613e58858460400151610948565b613e61886109c2565b33614682565b9050613e81613e7a858460400151610948565b85906126cf565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993388613eb4878660400151610948565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1613ef3565b8392505b6010548510801590613f055750600085115b15613fbb573360009081526006602090815260408083206001600160a01b038b16845290915281208054879290613f3d908490615636565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906140c45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e20300000006044820152606401610993565b6000851161410c5760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b6044820152606401610993565b8585111561415257610120810151601254869061412989836155d9565b6141339190615822565b61413d919061564e565b614147919061564e565b925060009150614194565b8486111561419457610120810151601254869061416f828a6155d9565b6141799190615822565b614183919061564e565b61418d919061564e565b9250600191505b6000806141a38a8a8787614773565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b83529052206002810183905560030181905590925090506141ee898b8787614773565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b60008082516041036142735760208301516040840151606085015160001a61426787828585614a35565b9450945050505061427b565b506000905060025b9250929050565b600081600481111561429657614296615afa565b0361429e5750565b60018160048111156142b2576142b2615afa565b036142ff5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610993565b600281600481111561431357614313615afa565b036143605760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610993565b600381600481111561437457614374615afa565b036112725760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610993565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806144888a8a610bfa565b50915091506144978782610948565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156144e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145059190615809565b101561456a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b6064820152608401610993565b60006145768883610948565b11156145dd5761459483604001513361458f8a85610948565b612943565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd3384604001516145c58a85610948565b6040516145d493929190615a48565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561461b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061463f9190615841565b60ff16935061465861465285600a6157fd565b89610df6565b945060006146668884610948565b905061467288826126cf565b9650505050509450945094915050565b60008083600081518110614698576146986155f0565b60200260200101519050600084600186516146b391906155d9565b815181106146c3576146c36155f0565b60200260200101519050600060405180604001604052806146e385612c59565b8152602001846001600160a01b031681525090506000604051806040016040528061470d85612c59565b8152602001846001600160a01b0316815250905061472b8888610df6565b945061473b612710866000610dae565b9450600061474a42600a615636565b905061475c83838b898c600087612dc4565b614767848888612943565b50505050509392505050565b60008060008413156149f9576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b90910154846147cb576147bd82615864565b91506147c881615864565b90505b60006147d683612927565b1315614881576147e68683615880565b935060008212614851576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015484131561484c576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b6148ad565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493506148ad565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b60006148b882612927565b13156149c6576001600160a01b038089166000908152600760209081526040808320938b16835292905220600301546148f18783615880565b6148fb9190615905565b925060008112614966576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614961576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b6149f2565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614961576001600160a01b038089166000908152600760208181526040808420948c168452939052919020015492506149f2565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614a2c565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614a6c5750600090506003614a2c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ac0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614ae957600060019250925050614a2c565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614b7c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614bc457614bc4614b8b565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614bf257614bf2614b8b565b604052919050565b600060a08284031215614c0c57600080fd5b60405160a081018181106001600160401b0382111715614c2e57614c2e614b8b565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b038116811461127257600080fd5b8035614c8981614c69565b919050565b60008060408385031215614ca157600080fd5b8235614cac81614c69565b91506020830135614cbc81614c69565b809150509250929050565b60006001600160401b03821115614ce057614ce0614b8b565b5060051b60200190565b600082601f830112614cfb57600080fd5b81356020614d10614d0b83614cc7565b614bca565b82815260059290921b84018101918181019086841115614d2f57600080fd5b8286015b84811015614d53578035614d4681614c69565b8352918301918301614d33565b509695505050505050565b600060208284031215614d7057600080fd5b81356001600160401b03811115614d8657600080fd5b610a9e84828501614cea565b600081518084526020808501945080840160005b83811015614dcb5781516001600160a01b031687529582019590820190600101614da6565b509495945050505050565b6020815260006109626020830184614d92565b600080600060608486031215614dfe57600080fd5b8335614e0981614c69565b92506020840135614e1981614c69565b915060408401356001600160401b03811115614e3457600080fd5b614e4086828701614cea565b9150509250925092565b600080600060608486031215614e5f57600080fd5b8335614e6a81614c69565b92506020840135614e7a81614c69565b929592945050506040919091013590565b600082601f830112614e9c57600080fd5b81356001600160401b03811115614eb557614eb5614b8b565b614ec8601f8201601f1916602001614bca565b818152846020838601011115614edd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614f1257600080fd5b853594506020860135614f2481614c69565b9350604086013592506060860135915060808601356001600160401b03811115614f4d57600080fd5b614f5988828901614e8b565b9150509295509295909350565b60008060008060808587031215614f7c57600080fd5b8435935060208501356001600160401b03811115614f9957600080fd5b614fa587828801614cea565b949794965050505060408301359260600135919050565b600060208284031215614fce57600080fd5b81356001600160401b03811115614fe457600080fd5b610a9e84828501614e8b565b801515811461127257600080fd5b60008060006060848603121561501357600080fd5b8335925060208401359150604084013561502c81614ff0565b809150509250925092565b6000806040838503121561504a57600080fd5b8235915060208301356001600160401b0381111561506757600080fd5b61507385828601614cea565b9150509250929050565b600080600080600060a0868803121561509557600080fd5b85356150a081614c69565b945060208601356150b081614c69565b935060408601356001600160401b038111156150cb57600080fd5b6150d788828901614cea565b9350506060860135915060808601356150ef81614c69565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161512e60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b610280810161519d82856150fd565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b60006020828403121561520d57600080fd5b813561096281614c69565b60006080828403121561522a57600080fd5b604051608081018181106001600160401b038211171561524c5761524c614b8b565b604052905080823561525d81614c69565b808252506020830135602082015260408301356040820152606083013561528381614c69565b6060919091015292915050565b6000806000808486036102408112156152a857600080fd5b85356152b381614c69565b945060208601356152c381614c69565b9350610180603f1982018113156152d957600080fd5b6152e1614ba1565b91506152ef60408801614c7e565b82526060870135602083015261530760808801614c7e565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050615382866101c08701615218565b905092959194509250565b6101c0810161539c82866150fd565b6101808201939093526101a00152919050565b600082601f8301126153c057600080fd5b813560206153d0614d0b83614cc7565b82815260059290921b840181019181810190868411156153ef57600080fd5b8286015b84811015614d5357803583529183019183016153f3565b6000806000806080858703121561542057600080fd5b84356001600160401b038082111561543757600080fd5b615443888389016153af565b9550602087013591508082111561545957600080fd5b61546588838901614cea565b9450604087013591508082111561547b57600080fd5b61548788838901614cea565b9350606087013591508082111561549d57600080fd5b506154aa878288016153af565b91505092959194509250565b60008060008060008060c087890312156154cf57600080fd5b86356001600160401b038111156154e557600080fd5b6154f189828a01614cea565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000806000806080858703121561553057600080fd5b843561553b81614c69565b9350602085013561554b81614c69565b925060408501356001600160401b0381111561556657600080fd5b61557287828801614cea565b925050606085013561558381614c69565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156155eb576155eb6155c3565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201615618576156186155c3565b5060010190565b60008161562e5761562e6155c3565b506000190190565b60008219821115615649576156496155c3565b500190565b60008261566b57634e487b7160e01b600052601260045260246000fd5b500490565b828152604060208201526000610a9e6040830184614d92565b6000602080838503121561569c57600080fd5b82516001600160401b038111156156b257600080fd5b8301601f810185136156c357600080fd5b80516156d1614d0b82614cc7565b81815260059190911b820183019083810190878311156156f057600080fd5b928401925b8284101561570e578351825292840192908401906156f5565b979650505050505050565b600181815b8085111561575457816000190482111561573a5761573a6155c3565b8085161561574757918102915b93841c939080029061571e565b509250929050565b60008261576b5750600161221a565b816157785750600061221a565b816001811461578e5760028114615798576157b4565b600191505061221a565b60ff8411156157a9576157a96155c3565b50506001821b61221a565b5060208310610133831016604e8410600b84101617156157d7575081810a61221a565b6157e18383615719565b80600019048211156157f5576157f56155c3565b029392505050565b6000610962838361575c565b60006020828403121561581b57600080fd5b5051919050565b600081600019048311821515161561583c5761583c6155c3565b500290565b60006020828403121561585357600080fd5b815160ff8116811461096257600080fd5b6000600160ff1b8201615879576158796155c3565b5060000390565b60006001600160ff1b03818413828413808216868404861116156158a6576158a66155c3565b600160ff1b60008712828116878305891216156158c5576158c56155c3565b600087129250878205871284841616156158e1576158e16155c3565b878505871281841616156158f7576158f76155c3565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615927576159276155c3565b600160ff1b8390038412811615615940576159406155c3565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b60005b83811015615998578181015183820152602001615980565b838111156159a7576000848401525b50505050565b600082516159bf81846020870161597d565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615a128160e085016020870161597d565b601f01601f19169190910160e001979650505050505050565b600060208284031215615a3d57600080fd5b815161096281614ff0565b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615a8b60a0830186614d92565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615ac16080830186614d92565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615aef57600080fd5b815161096281614c69565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220927f9252cf042abfd441550f8df4e9909ff7bfa60c4f74c483495df977283bec64736f6c634300080e0033",
1588
- "deployedBytecode": "0x6080604052600436106102065760003560e01c80635ff530f2116101175780639bad44e8116100a5578063d96661ef1161006c578063d96661ef14610857578063eed8386c14610877578063f2fde38b146108b4578063f9848650146108d4578063fe8691b4146108f457005b80639bad44e8146107ce578063a6a3694a146107ee578063aa5d448f14610801578063b180198614610821578063d738eba11461083757005b8063744cfdd9116100e9578063744cfdd9146106ce5780637aaa9b02146106ee57806381f3fdc31461070e5780638da5cb5b1461073d5780639065a9af1461075b57005b80635ff530f21461064b57806362a766031461066b5780636f151a3814610699578063715018a6146106b957005b8063238ac9331161019457806334e3f92d1161016657806334e3f92d146105425780633fc8cef31461058d57806340216a83146105ad57806343d726d6146106155780635c8181211461062b57005b8063238ac933146103db57806327af9e38146104135780632926e5de146104295780632bd2c18d1461052257005b80630d83b1e4116101d85780630d83b1e4146103385780630fcc40c41461034e57806315aa89531461037b5780631b1534011461039b5780631f8c24de146103bb57005b8063016eb8a81461020f578063089aa04714610242578063089afeae14610262578063092e469f146102e957005b3661020d57005b005b34801561021b57600080fd5b5061022f61022a366004614b69565b610948565b6040519081526020015b60405180910390f35b34801561024e57600080fd5b5061020d61025d366004614bfa565b610969565b34801561026e57600080fd5b506102ba61027d366004614c8e565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b03958616815260208101949094528301919091529091166060820152608001610239565b3480156102f557600080fd5b50600d54600e54600f54601054601154610310949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b34801561034457600080fd5b5061022f60125481565b34801561035a57600080fd5b5061036e610369366004614d5e565b6109c2565b6040516102399190614dd6565b34801561038757600080fd5b5061022f610396366004614de9565b610a91565b3480156103a757600080fd5b5061020d6103b6366004614e4a565b610aa6565b3480156103c757600080fd5b5061020d6103d6366004614efa565b610b25565b3480156103e757600080fd5b506002546103fb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b34801561041f57600080fd5b5061022f600a5481565b34801561043557600080fd5b506104b8610444366004614c8e565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083015261014082015261016081019190915261018001610239565b34801561052e57600080fd5b5061022f61053d366004614f66565b610ba5565b34801561054e57600080fd5b5061057d61055d366004614fbc565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610239565b34801561059957600080fd5b506004546103fb906001600160a01b031681565b3480156105b957600080fd5b506105cd6105c8366004614c8e565b610bfa565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e001610239565b34801561062157600080fd5b5061022f600c5481565b34801561063757600080fd5b5061022f610646366004614ffe565b610dae565b34801561065757600080fd5b5061022f610666366004615037565b610df6565b34801561067757600080fd5b5061068b61068636600461507d565b610f13565b60405161023992919061518e565b3480156106a557600080fd5b5061020d6106b43660046151fb565b61123f565b3480156106c557600080fd5b5061020d611275565b3480156106da57600080fd5b5061022f6106e9366004615037565b6112ab565b3480156106fa57600080fd5b5061020d610709366004615290565b6113ad565b34801561071a57600080fd5b5061072e610729366004614de9565b611621565b6040516102399392919061538d565b34801561074957600080fd5b506000546001600160a01b03166103fb565b34801561076757600080fd5b506107ae610776366004614e4a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610239565b3480156107da57600080fd5b5061020d6107e936600461540a565b61196a565b61020d6107fc3660046154b6565b611b2c565b34801561080d57600080fd5b5061020d61081c3660046151fb565b611e3c565b34801561082d57600080fd5b5061022f600b5481565b34801561084357600080fd5b5061020d610852366004614b69565b611e6f565b34801561086357600080fd5b506005546103fb906001600160a01b031681565b34801561088357600080fd5b50610897610892366004614c8e565b611ea4565b604080519283526001600160a01b03909116602083015201610239565b3480156108c057600080fd5b5061020d6108cf3660046151fb565b612033565b3480156108e057600080fd5b506108976108ef36600461551a565b6120cb565b34801561090057600080fd5b5061093361090f366004614c8e565b60066020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610239565b6012546000906109629061095c858561220e565b90612220565b9392505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016109939061558e565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b80516060906000816001600160401b038111156109e1576109e1614b8b565b604051908082528060200260200182016040528015610a0a578160200160208202803683370190505b5090506000825b60018110610a875785610a256001836155d9565b81518110610a3557610a356155f0565b6020026020010151838381518110610a4f57610a4f6155f0565b6001600160a01b039092166020928302919091019091015281610a7181615606565b9250508080610a7f9061561f565b915050610a11565b5090949350505050565b6000610a9e84848461222c565b949350505050565b6000546001600160a01b03163314610ad05760405162461bcd60e51b81526004016109939061558e565b610adb838383612409565b610b205760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b6044820152606401610993565b505050565b610b2d612440565b610b3a8585858585612499565b610b4685858584612654565b814210610b955760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e0000006044820152606401610993565b610b9e60018055565b5050505050565b60008080848103610bd257610bba8787610df6565b9150610bc884836000610dae565b9150819250610bf0565b610bdc87876112ab565b9050610bea84826001610dae565b90508092505b5050949350505050565b600080610c2f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610c429190615636565b610c4c919061564e565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610d31578060200151945080606001519350610d6f565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b600060018215610dcc57601254610dc590866126c3565b9050610ddc565b601254610dd990866126cf565b90505b601254610ded9061095c868461220e565b95945050505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f90610e2d9087908790600401615670565b600060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e729190810190615689565b905080610e8a600183516126cf90919063ffffffff16565b81518110610e9a57610e9a6155f0565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b6064820152608401610993565b5092915050565b610f1b614af6565b610f65604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b600080610f74898989896126db565b60a088019290925260808701839052929650919350909150610f979087906126cf565b95506000610fa683600a6157fd565b60a08501516040516370a0823160e01b81526001600160a01b038981166004830152859291908e16906370a0823190602401602060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190615809565b6110239190615636565b61102d9190615822565b611037919061564e565b6001600160a01b038781166000908152600660209081526040808320938e16835292905290812060018101549054929350918390611076908b90615636565b6110809190615636565b90508082106110a457600060c087015261109a81836155d9565b60e08701526110bb565b600160c08701526110b582826155d9565b60e08701525b6001600160a01b03808d1660009081526008602090815260408083208f8516808552908352928190208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830181905203611227578660c00151156111d45760e087015160115411801590611141575060008760e00151115b156111c757898760e001511061119c5761115f8a8260400151610948565b60408801526020810151611174908b90610948565b8088526040880151611192919061118c908d906126cf565b906126cf565b606088015261122f565b6111ae8760e001518260400151610948565b604088015260e087015160208201516111749190610948565b606087018a90525b61122f565b6111e28a8260400151610948565b604088018190526111f4908b906126cf565b606088015260e087015160105411801590611213575060008760e00151115b156111cf5760e0870151602088015261122f565b606087018a90525b5050505050509550959350505050565b6000546001600160a01b031633146112695760405162461bcd60e51b81526004016109939061558e565b61127281612853565b50565b6000546001600160a01b0316331461129f5760405162461bcd60e51b81526004016109939061558e565b6112a960006128d7565b565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906112e29087908790600401615670565b600060405180830381865afa1580156112ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113279190810190615689565b90508060008151811061133c5761133c6155f0565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b6064820152608401610993565b6000546001600160a01b031633146113d75760405162461bcd60e51b81526004016109939061558e565b60008260600151121561142c5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401610993565b6000826020015112156114815760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401610993565b836001600160a01b031681606001516001600160a01b031614806114ba5750826001600160a01b031681606001516001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401610993565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b611629614af6565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190615841565b60ff16915061174961174383600a6157fd565b85610df6565b9050600080828560800151111561179b57610120850151608086015160125461177286836155d9565b61177c9190615822565b611786919061564e565b611790919061564e565b9050600091506117e4565b84608001518311156117e45761012085015160808601516012546117bf82876155d9565b6117c99190615822565b6117d3919061564e565b6117dd919061564e565b9050600191505b600081131561195f57608085018390526101408501516101608601518361181c5761180e82615864565b915061181981615864565b90505b6000821261185f5760208701516118338484615880565b61183d9190615905565b6020880181905260c0880151121561185a5760c087015160208801525b6118bb565b86602001518760a001518461187385612927565b61187d9190615880565b6118879190615905565b131561189c5760a087015160208801526118bb565b60208701516118ab8484615880565b6118b59190615905565b60208801525b600081126119005760608701516118d28483615880565b6118dc9190615905565b6060880181905261010088015112156118fb5761010087015160608801525b61195c565b86606001518760e001518461191484612927565b61191e9190615880565b6119289190615905565b131561193d5760e0870151606088015261195c565b606087015161194c8483615880565b6119569190615905565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146119945760405162461bcd60e51b81526004016109939061558e565b82518451146119b55760405162461bcd60e51b815260040161099390615946565b81518351146119d65760405162461bcd60e51b815260040161099390615946565b80518251146119f75760405162461bcd60e51b815260040161099390615946565b60005b8451811015610b9e57611a59838281518110611a1857611a186155f0565b6020026020010151858381518110611a3257611a326155f0565b6020026020010151848481518110611a4c57611a4c6155f0565b6020026020010151612943565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd0858281518110611a8c57611a8c6155f0565b6020026020010151858381518110611aa657611aa66155f0565b6020026020010151858481518110611ac057611ac06155f0565b6020026020010151858581518110611ada57611ada6155f0565b6020026020010151604051611b1294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611b2481615606565b9150506119fa565b611b34612440565b333214611b835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c657200000000006044820152606401610993565b333b15611bde5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b6064820152608401610993565b82600003611c0557611bf08587610df6565b9350611bfe81856000610dae565b9350611c20565b611c0f84876112ab565b9450611c1d81866001610dae565b94505b600086600081518110611c3557611c356155f0565b6020026020010151905060008760018951611c5091906155d9565b81518110611c6057611c606155f0565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611ca4908490615636565b90915550611cb6905082828a8a612a6d565b60006040518060400160405280611ccc85612c59565b8152602001846001600160a01b0316815250905060006040518060400160405280611cf685612c59565b81526001600160a01b0385166020909101528251909150600303611d2557611d208433308c612c92565b611d83565b883414611d835760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b6064820152608401610993565b611d9282828b8b8e8c8c612dc4565b6000611d9f85858b613008565b9050600080611db087878f8e6131b1565b91509150611dbf87878f6132bf565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611e3460018055565b505050505050565b6000546001600160a01b03163314611e665760405162461bcd60e51b81526004016109939061558e565b61127281613590565b6000546001600160a01b03163314611e995760405162461bcd60e51b81526004016109939061558e565b600a91909155600b55565b6000806000600a54600b5442611eba9190615636565b611ec4919061564e565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611fd35750600c54155b15611fe45780608001519450611ffc565b8151600003611ff757600c549450611ffc565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b0316331461205d5760405162461bcd60e51b81526004016109939061558e565b6001600160a01b0381166120c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b611272816128d7565b6001600160a01b03808516600090815260086020908152604080832087851684529091528120600301549091168161210487878761222c565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a9190615841565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa1580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121df9190615809565b90506121ec82600a6157fd565b6121f68483615822565b612200919061564e565b945050505094509492505050565b60006109628284615822565b92915050565b6000610962828461564e565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361231657846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f39190615841565b60ff16905061230f61230682600a6157fd565b610666866109c2565b9250612400565b81606001516001600160a01b0316856001600160a01b0316036123a857856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123959190615841565b60ff16905061230f61174382600a6157fd565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b6064820152608401610993565b50509392505050565b60006001600160a01b03841661242b576124238383613691565b506001610962565b612436848484612943565b5060019392505050565b6002600154036124925760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610993565b6002600155565b6003816040516124a991906159ad565b9081526040519081900360200190205460ff16156125095760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a636572746966696361746520657870697265646044820152606401610993565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906125ba90836137aa565b6002549091506001600160a01b0380831691161461261a5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c69642063657274696669636174656044820152606401610993565b600160038360405161262c91906159ad565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166126715761266c3383613691565b61267c565b61267c833384612943565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516126b5969594939291906159c9565b60405180910390a150505050565b60006109628284615636565b600061096282846155d9565b6126e3614af6565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b815290519394859485948594929363313ce5679381830193909290918290030181865afa1580156127ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ee9190615841565b60ff16915061280761280183600a6157fd565b88610df6565b90506000806128168b8b610bfa565b50602089018290526060890181905290925090506128348883610948565b9550612844888860600151610948565b94505050945094509450945094565b6001600160a01b0381166128b55760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b6064820152608401610993565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082121561293f5761293a82615864565b61221a565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161299f91906159ad565b6000604051808303816000865af19150503d80600081146129dc576040519150601f19603f3d011682016040523d82523d6000602084013e6129e1565b606091505b5091509150818015612a0b575080511580612a0b575080806020019051810190612a0b9190615a2b565b610b9e5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610993565b6001600160a01b03808516600081815260086020908152604080832088861684528252918290208251608081018452815486168152600182015492810192909252600281015492820192909252600390910154909216606083018190529003610b9e576000612adc8686610bfa565b925050506000612aee878787336120cb565b5090508382600001511115612b6b5760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c6520707572636861736500000000000000006064820152608401610993565b8382602001511015612be55760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c6520707572636861736500000000006064820152608401610993565b612bef8482615636565b82604001511015612c505760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b6064820152608401610993565b50505050505050565b600060036001600160a01b038316612c735750600161221a565b6004546001600160a01b039081169084160361221a5750600292915050565b600080856001600160a01b03166323b872dd868686604051602401612cb993929190615a48565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612cf291906159ad565b6000604051808303816000865af19150503d8060008114612d2f576040519150601f19603f3d011682016040523d82523d6000602084013e612d34565b606091505b5091509150818015612d5e575080511580612d5e575080806020019051810190612d5e9190615a2b565b611e345760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610993565b8651600303612de9576020870151600554612de991906001600160a01b0316876137ce565b86516003148015612dfb575085516003145b8015612e05575081155b15612e8f576005546040516338ed173960e01b81526001600160a01b03909116906338ed173990612e429088908890889030908890600401615a6c565b6000604051808303816000875af1158015612e61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e899190810190615689565b50612c50565b86516003148015612ea1575085516003145b8015612ead5750816001145b15612eea57600554604051634401edf760e11b81526001600160a01b0390911690638803dbee90612e429087908990889030908890600401615a6c565b86516003148015612f075750855160021480612f07575085516001145b8015612f135750816001145b15612f5057600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612e429087908990889030908890600401615a6c565b865160021480612f61575086516001145b8015612f6e575085516003145b8015612f7a5750816001145b15612c505760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612fb7908890889030908890600401615aa8565b60006040518083038185885af1158015612fd5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612ffe9190810190615689565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816130bf8686610bfa565b505090506130cd8482610948565b9250600060405180604001604052806130e588612c59565b81526001600160a01b038816602090910152805190915060030361318a5782516001600160a01b031630146131855761312386846000015186612943565b82516001600160a01b03161580613144575082516001600160a01b03166001145b15613185577fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945333878660405161317c93929190615a48565b60405180910390a15b6131a7565b82516001600160a01b031630146131a75782516131a790856138f6565b5050509392505050565b6001600160a01b038085166000908152600860209081526040808320878516845282528083208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830152908190818061321a898989896139d0565b606086015190985091935091506001600160a01b03808a1691160361326a5781156132565761324c898989848a613af9565b909550935061326e565b613263898989848a613dd9565b935061326e565b8593505b613279883386612943565b3360009081526006602090815260408083206001600160a01b038c168452909152812080548692906132ac908490615636565b9250508190555050505094509492505050565b6000600a54600b54426132d29190615636565b6132dc919061564e565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156133eb5750600c54155b1561344b576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b8552825280842096909655955193825285528381209181529084528281208782529093529120556134a5565b81516000036134a557600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b60006134b287878761222c565b6001600160a01b038089166000908152600960209081526040808320938b168352928152828220888352905220549091506134f08888848489613fc6565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166135f15760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b6064820152608401610993565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561364a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366e9190615add565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b804710156136e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610993565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461372e576040519150601f19603f3d011682016040523d82523d6000602084013e613733565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610993565b60008060006137b9858561423d565b915091506137c681614282565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161382a91906159ad565b6000604051808303816000865af19150503d8060008114613867576040519150601f19603f3d011682016040523d82523d6000602084013e61386c565b606091505b50915091508180156138965750805115806138965750808060200190518101906138969190615a2b565b610b9e5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b6064820152608401610993565b604080516000808252602082019092526001600160a01b03841690839060405161392091906159ad565b60006040518083038185875af1925050503d806000811461395d576040519150601f19603f3d011682016040523d82523d6000602084013e613962565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610993565b60008060008060006139e4898989896143cc565b9194509250905060006139f882600a6157fd565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a629190615809565b613a6c9190615822565b613a76919061564e565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613ab1908890615636565b613abb9190615636565b9050808210613ad95760009750613ad281836155d9565b9650613aea565b60019750613ae782826155d9565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613b695750600086115b15613dc957848610613cae57613b96613b86868460400151610948565b613b8f896109c2565b6001614682565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613bcb93929190615a48565b60405180910390a1613be1858360200151610948565b9350613bf288836000015186612943565b613c00858360400151610948565b613c0a85876155d9565b613c1491906155d9565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613c4a908490615636565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613c839033908b908890615a48565b60405180910390a1613ca78461118c613ca0888660400151610948565b88906126cf565b9250613dcd565b613cbf613b86878460400151610948565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613cf493929190615a48565b60405180910390a1613d0a868360200151610948565b9350613d1b88836000015186612943565b613d29868360400151610948565b613d3385886155d9565b613d3d91906155d9565b3360009081526006602090815260408083206001600160a01b038d16845290915281206001018054909190613d73908490615636565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e90613dac9033908b908890615a48565b60405180910390a1613ca78461118c613ca0898660400151610948565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190613e41908690610948565b1115613eef57613e67613e58858460400151610948565b613e61886109c2565b33614682565b9050613e81613e7a858460400151610948565b85906126cf565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f60993388613eb4878660400151610948565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1613ef3565b8392505b6010548510801590613f055750600085115b15613fbb573360009081526006602090815260408083206001600160a01b038b16845290915281208054879290613f3d908490615636565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906140c45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e20300000006044820152606401610993565b6000851161410c5760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b6044820152606401610993565b8585111561415257610120810151601254869061412989836155d9565b6141339190615822565b61413d919061564e565b614147919061564e565b925060009150614194565b8486111561419457610120810151601254869061416f828a6155d9565b6141799190615822565b614183919061564e565b61418d919061564e565b9250600191505b6000806141a38a8a8787614773565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b83529052206002810183905560030181905590925090506141ee898b8787614773565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b60008082516041036142735760208301516040840151606085015160001a61426787828585614a35565b9450945050505061427b565b506000905060025b9250929050565b600081600481111561429657614296615afa565b0361429e5750565b60018160048111156142b2576142b2615afa565b036142ff5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610993565b600281600481111561431357614313615afa565b036143605760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610993565b600381600481111561437457614374615afa565b036112725760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610993565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806144888a8a610bfa565b50915091506144978782610948565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156144e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145059190615809565b101561456a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b6064820152608401610993565b60006145768883610948565b11156145dd5761459483604001513361458f8a85610948565b612943565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd3384604001516145c58a85610948565b6040516145d493929190615a48565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561461b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061463f9190615841565b60ff16935061465861465285600a6157fd565b89610df6565b945060006146668884610948565b905061467288826126cf565b9650505050509450945094915050565b60008083600081518110614698576146986155f0565b60200260200101519050600084600186516146b391906155d9565b815181106146c3576146c36155f0565b60200260200101519050600060405180604001604052806146e385612c59565b8152602001846001600160a01b031681525090506000604051806040016040528061470d85612c59565b8152602001846001600160a01b0316815250905061472b8888610df6565b945061473b612710866000610dae565b9450600061474a42600a615636565b905061475c83838b898c600087612dc4565b614767848888612943565b50505050509392505050565b60008060008413156149f9576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b90910154846147cb576147bd82615864565b91506147c881615864565b90505b60006147d683612927565b1315614881576147e68683615880565b935060008212614851576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015484131561484c576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b6148ad565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493506148ad565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b60006148b882612927565b13156149c6576001600160a01b038089166000908152600760209081526040808320938b16835292905220600301546148f18783615880565b6148fb9190615905565b925060008112614966576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614961576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b6149f2565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614961576001600160a01b038089166000908152600760208181526040808420948c168452939052919020015492506149f2565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614a2c565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614a6c5750600090506003614a2c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ac0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614ae957600060019250925050614a2c565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614b7c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614bc457614bc4614b8b565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614bf257614bf2614b8b565b604052919050565b600060a08284031215614c0c57600080fd5b60405160a081018181106001600160401b0382111715614c2e57614c2e614b8b565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b038116811461127257600080fd5b8035614c8981614c69565b919050565b60008060408385031215614ca157600080fd5b8235614cac81614c69565b91506020830135614cbc81614c69565b809150509250929050565b60006001600160401b03821115614ce057614ce0614b8b565b5060051b60200190565b600082601f830112614cfb57600080fd5b81356020614d10614d0b83614cc7565b614bca565b82815260059290921b84018101918181019086841115614d2f57600080fd5b8286015b84811015614d53578035614d4681614c69565b8352918301918301614d33565b509695505050505050565b600060208284031215614d7057600080fd5b81356001600160401b03811115614d8657600080fd5b610a9e84828501614cea565b600081518084526020808501945080840160005b83811015614dcb5781516001600160a01b031687529582019590820190600101614da6565b509495945050505050565b6020815260006109626020830184614d92565b600080600060608486031215614dfe57600080fd5b8335614e0981614c69565b92506020840135614e1981614c69565b915060408401356001600160401b03811115614e3457600080fd5b614e4086828701614cea565b9150509250925092565b600080600060608486031215614e5f57600080fd5b8335614e6a81614c69565b92506020840135614e7a81614c69565b929592945050506040919091013590565b600082601f830112614e9c57600080fd5b81356001600160401b03811115614eb557614eb5614b8b565b614ec8601f8201601f1916602001614bca565b818152846020838601011115614edd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614f1257600080fd5b853594506020860135614f2481614c69565b9350604086013592506060860135915060808601356001600160401b03811115614f4d57600080fd5b614f5988828901614e8b565b9150509295509295909350565b60008060008060808587031215614f7c57600080fd5b8435935060208501356001600160401b03811115614f9957600080fd5b614fa587828801614cea565b949794965050505060408301359260600135919050565b600060208284031215614fce57600080fd5b81356001600160401b03811115614fe457600080fd5b610a9e84828501614e8b565b801515811461127257600080fd5b60008060006060848603121561501357600080fd5b8335925060208401359150604084013561502c81614ff0565b809150509250925092565b6000806040838503121561504a57600080fd5b8235915060208301356001600160401b0381111561506757600080fd5b61507385828601614cea565b9150509250929050565b600080600080600060a0868803121561509557600080fd5b85356150a081614c69565b945060208601356150b081614c69565b935060408601356001600160401b038111156150cb57600080fd5b6150d788828901614cea565b9350506060860135915060808601356150ef81614c69565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161512e60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b610280810161519d82856150fd565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b60006020828403121561520d57600080fd5b813561096281614c69565b60006080828403121561522a57600080fd5b604051608081018181106001600160401b038211171561524c5761524c614b8b565b604052905080823561525d81614c69565b808252506020830135602082015260408301356040820152606083013561528381614c69565b6060919091015292915050565b6000806000808486036102408112156152a857600080fd5b85356152b381614c69565b945060208601356152c381614c69565b9350610180603f1982018113156152d957600080fd5b6152e1614ba1565b91506152ef60408801614c7e565b82526060870135602083015261530760808801614c7e565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050615382866101c08701615218565b905092959194509250565b6101c0810161539c82866150fd565b6101808201939093526101a00152919050565b600082601f8301126153c057600080fd5b813560206153d0614d0b83614cc7565b82815260059290921b840181019181810190868411156153ef57600080fd5b8286015b84811015614d5357803583529183019183016153f3565b6000806000806080858703121561542057600080fd5b84356001600160401b038082111561543757600080fd5b615443888389016153af565b9550602087013591508082111561545957600080fd5b61546588838901614cea565b9450604087013591508082111561547b57600080fd5b61548788838901614cea565b9350606087013591508082111561549d57600080fd5b506154aa878288016153af565b91505092959194509250565b60008060008060008060c087890312156154cf57600080fd5b86356001600160401b038111156154e557600080fd5b6154f189828a01614cea565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000806000806080858703121561553057600080fd5b843561553b81614c69565b9350602085013561554b81614c69565b925060408501356001600160401b0381111561556657600080fd5b61557287828801614cea565b925050606085013561558381614c69565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156155eb576155eb6155c3565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201615618576156186155c3565b5060010190565b60008161562e5761562e6155c3565b506000190190565b60008219821115615649576156496155c3565b500190565b60008261566b57634e487b7160e01b600052601260045260246000fd5b500490565b828152604060208201526000610a9e6040830184614d92565b6000602080838503121561569c57600080fd5b82516001600160401b038111156156b257600080fd5b8301601f810185136156c357600080fd5b80516156d1614d0b82614cc7565b81815260059190911b820183019083810190878311156156f057600080fd5b928401925b8284101561570e578351825292840192908401906156f5565b979650505050505050565b600181815b8085111561575457816000190482111561573a5761573a6155c3565b8085161561574757918102915b93841c939080029061571e565b509250929050565b60008261576b5750600161221a565b816157785750600061221a565b816001811461578e5760028114615798576157b4565b600191505061221a565b60ff8411156157a9576157a96155c3565b50506001821b61221a565b5060208310610133831016604e8410600b84101617156157d7575081810a61221a565b6157e18383615719565b80600019048211156157f5576157f56155c3565b029392505050565b6000610962838361575c565b60006020828403121561581b57600080fd5b5051919050565b600081600019048311821515161561583c5761583c6155c3565b500290565b60006020828403121561585357600080fd5b815160ff8116811461096257600080fd5b6000600160ff1b8201615879576158796155c3565b5060000390565b60006001600160ff1b03818413828413808216868404861116156158a6576158a66155c3565b600160ff1b60008712828116878305891216156158c5576158c56155c3565b600087129250878205871284841616156158e1576158e16155c3565b878505871281841616156158f7576158f76155c3565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615927576159276155c3565b600160ff1b8390038412811615615940576159406155c3565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b60005b83811015615998578181015183820152602001615980565b838111156159a7576000848401525b50505050565b600082516159bf81846020870161597d565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615a128160e085016020870161597d565b601f01601f19169190910160e001979650505050505050565b600060208284031215615a3d57600080fd5b815161096281614ff0565b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615a8b60a0830186614d92565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615ac16080830186614d92565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615aef57600080fd5b815161096281614c69565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220927f9252cf042abfd441550f8df4e9909ff7bfa60c4f74c483495df977283bec64736f6c634300080e0033",
1587
+ "bytecode": "0x608060405262015180600a556000600b556305f5e1006012553480156200002557600080fd5b506040516200678538038062006785833981016040819052620000489162000746565b620000533362000322565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007d8162000372565b600080734683b08798f3e30220c9d2018a4715f9f9532f5c738f689b86683004e20b938c60cc547f3ba23c283346606103620000e757735f0a0fd7b6e0fa043386158c801f82e20cecca939350738e8d0092879f6cd758b3ede480a40231be41817d92506200015e565b466201388103620001265773cf43b390dc89b36fd49267c646a73a0dfb7f3e4c93507385217dbb899f176f2533beb32d27b0e16aa2dd9592506200015e565b466089036200015e5773c2132d05d31c914a87c6611c10748aeb04b58e8f935073d34c03815039aded697d3e8cf94a7b371628383392505b6040805160a0808201835260008083526302faf08060208085018290528486018290526298968060608087018290526080968701859052600d859055600e849055600f9390935560108190556011849055865161018081018852600181528083018290526001600160a01b03808c16828a015262b71b008286018190526005838a015296820183905260c082019290925260e081019590955262e4e1c0610100860152624c4b406101208601526101408501849052620f423f196101608601528651958601875283865290850183905294840191909152928716928201929092526200024f9186918691906200047c565b620003168385604051806101800160405280866001600160a01b03168152602001621e84808152602001876001600160a01b031681526020016000815260200160058152602001621e848081526020016302faf08081526020016000815260200160008152602001624c4b408152602001624c4b3f19815260200160008152506040518060800160405280866001600160a01b0316815260200163017d7840815260200163017d78408152602001896001600160a01b03168152506200047c60201b60201c565b505050505050620007a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620003d95760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b60648201526084015b60405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045991906200077e565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620004d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003d0565b6000826060015112156200052f5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401620003d0565b600082602001511215620005865760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401620003d0565b836001600160a01b031681606001516001600160a01b03161480620005c05750826001600160a01b031681606001516001600160a01b0316145b6200060e5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401620003d0565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b80516001600160a01b03811681146200074157600080fd5b919050565b600080604083850312156200075a57600080fd5b620007658362000729565b9150620007756020840162000729565b90509250929050565b6000602082840312156200079157600080fd5b6200079c8262000729565b9392505050565b615fd280620007b36000396000f3fe6080604052600436106102065760003560e01c80635ff530f2116101175780639bad44e8116100a5578063d96661ef1161006c578063d96661ef14610857578063eed8386c14610877578063f2fde38b146108b4578063f9848650146108d4578063fe8691b4146108f457005b80639bad44e8146107ce578063a6a3694a146107ee578063aa5d448f14610801578063b180198614610821578063d738eba11461083757005b8063744cfdd9116100e9578063744cfdd9146106ce5780637aaa9b02146106ee57806381f3fdc31461070e5780638da5cb5b1461073d5780639065a9af1461075b57005b80635ff530f21461064b57806362a766031461066b5780636f151a3814610699578063715018a6146106b957005b8063238ac9331161019457806334e3f92d1161016657806334e3f92d146105425780633fc8cef31461058d57806340216a83146105ad57806343d726d6146106155780635c8181211461062b57005b8063238ac933146103db57806327af9e38146104135780632926e5de146104295780632bd2c18d1461052257005b80630d83b1e4116101d85780630d83b1e4146103385780630fcc40c41461034e57806315aa89531461037b5780631b1534011461039b5780631f8c24de146103bb57005b8063016eb8a81461020f578063089aa04714610242578063089afeae14610262578063092e469f146102e957005b3661020d57005b005b34801561021b57600080fd5b5061022f61022a366004614f99565b610948565b6040519081526020015b60405180910390f35b34801561024e57600080fd5b5061020d61025d36600461502a565b610969565b34801561026e57600080fd5b506102ba61027d3660046150be565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b03958616815260208101949094528301919091529091166060820152608001610239565b3480156102f557600080fd5b50600d54600e54600f54601054601154610310949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b34801561034457600080fd5b5061022f60125481565b34801561035a57600080fd5b5061036e61036936600461518e565b6109c2565b6040516102399190615206565b34801561038757600080fd5b5061022f610396366004615219565b610a91565b3480156103a757600080fd5b5061020d6103b636600461527a565b610aa6565b3480156103c757600080fd5b5061020d6103d636600461532a565b610b25565b3480156103e757600080fd5b506002546103fb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b34801561041f57600080fd5b5061022f600a5481565b34801561043557600080fd5b506104b86104443660046150be565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083015261014082015261016081019190915261018001610239565b34801561052e57600080fd5b5061022f61053d366004615396565b610ba5565b34801561054e57600080fd5b5061057d61055d3660046153ec565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610239565b34801561059957600080fd5b506004546103fb906001600160a01b031681565b3480156105b957600080fd5b506105cd6105c83660046150be565b610bfa565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e001610239565b34801561062157600080fd5b5061022f600c5481565b34801561063757600080fd5b5061022f61064636600461542e565b610dae565b34801561065757600080fd5b5061022f610666366004615467565b610df6565b34801561067757600080fd5b5061068b6106863660046154ad565b610f13565b6040516102399291906155be565b3480156106a557600080fd5b5061020d6106b436600461562b565b61123f565b3480156106c557600080fd5b5061020d611275565b3480156106da57600080fd5b5061022f6106e9366004615467565b6112ab565b3480156106fa57600080fd5b5061020d6107093660046156c0565b6113ad565b34801561071a57600080fd5b5061072e610729366004615219565b611621565b604051610239939291906157bd565b34801561074957600080fd5b506000546001600160a01b03166103fb565b34801561076757600080fd5b506107ae61077636600461527a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610239565b3480156107da57600080fd5b5061020d6107e936600461583a565b61196a565b61020d6107fc3660046158e6565b611b2c565b34801561080d57600080fd5b5061020d61081c36600461562b565b611e3c565b34801561082d57600080fd5b5061022f600b5481565b34801561084357600080fd5b5061020d610852366004614f99565b611e6f565b34801561086357600080fd5b506005546103fb906001600160a01b031681565b34801561088357600080fd5b506108976108923660046150be565b611ea4565b604080519283526001600160a01b03909116602083015201610239565b3480156108c057600080fd5b5061020d6108cf36600461562b565b612033565b3480156108e057600080fd5b506108976108ef36600461594a565b6120cb565b34801561090057600080fd5b5061093361090f3660046150be565b60066020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610239565b6012546000906109629061095c858561220e565b90612220565b9392505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b8152600401610993906159be565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b80516060906000816001600160401b038111156109e1576109e1614fbb565b604051908082528060200260200182016040528015610a0a578160200160208202803683370190505b5090506000825b60018110610a875785610a25600183615a09565b81518110610a3557610a35615a20565b6020026020010151838381518110610a4f57610a4f615a20565b6001600160a01b039092166020928302919091019091015281610a7181615a36565b9250508080610a7f90615a4f565b915050610a11565b5090949350505050565b6000610a9e84848461222c565b949350505050565b6000546001600160a01b03163314610ad05760405162461bcd60e51b8152600401610993906159be565b610adb838383612409565b610b205760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b6044820152606401610993565b505050565b610b2d612440565b610b3a8585858585612499565b610b4685858584612654565b814210610b955760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e0000006044820152606401610993565b610b9e60018055565b5050505050565b60008080848103610bd257610bba8787610df6565b9150610bc884836000610dae565b9150819250610bf0565b610bdc87876112ab565b9050610bea84826001610dae565b90508092505b5050949350505050565b600080610c2f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610c429190615a66565b610c4c9190615a7e565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610d31578060200151945080606001519350610d6f565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b600060018215610dcc57601254610dc590866126c3565b9050610ddc565b601254610dd990866126cf565b90505b601254610ded9061095c868461220e565b95945050505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f90610e2d9087908790600401615aa0565b600060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e729190810190615ab9565b905080610e8a600183516126cf90919063ffffffff16565b81518110610e9a57610e9a615a20565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b6064820152608401610993565b5092915050565b610f1b614f26565b610f65604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b600080610f74898989896126db565b60a088019290925260808701839052929650919350909150610f979087906126cf565b95506000610fa683600a615c2d565b60a08501516040516370a0823160e01b81526001600160a01b038981166004830152859291908e16906370a0823190602401602060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190615c39565b6110239190615a66565b61102d9190615c52565b6110379190615a7e565b6001600160a01b038781166000908152600660209081526040808320938e16835292905290812060018101549054929350918390611076908b90615a66565b6110809190615a66565b90508082106110a457600060c087015261109a8183615a09565b60e08701526110bb565b600160c08701526110b58282615a09565b60e08701525b6001600160a01b03808d1660009081526008602090815260408083208f8516808552908352928190208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830181905203611227578660c00151156111d45760e087015160115411801590611141575060008760e00151115b156111c757898760e001511061119c5761115f8a8260400151610948565b60408801526020810151611174908b90610948565b8088526040880151611192919061118c908d906126cf565b906126cf565b606088015261122f565b6111ae8760e001518260400151610948565b604088015260e087015160208201516111749190610948565b606087018a90525b61122f565b6111e28a8260400151610948565b604088018190526111f4908b906126cf565b606088015260e087015160105411801590611213575060008760e00151115b156111cf5760e0870151602088015261122f565b606087018a90525b5050505050509550959350505050565b6000546001600160a01b031633146112695760405162461bcd60e51b8152600401610993906159be565b611272816127ea565b50565b6000546001600160a01b0316331461129f5760405162461bcd60e51b8152600401610993906159be565b6112a9600061286e565b565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906112e29087908790600401615aa0565b600060405180830381865afa1580156112ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113279190810190615ab9565b90508060008151811061133c5761133c615a20565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b6064820152608401610993565b6000546001600160a01b031633146113d75760405162461bcd60e51b8152600401610993906159be565b60008260600151121561142c5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401610993565b6000826020015112156114815760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401610993565b836001600160a01b031681606001516001600160a01b031614806114ba5750826001600160a01b031681606001516001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401610993565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b611629614f26565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190615c71565b60ff16915061174961174383600a615c2d565b85610df6565b9050600080828560800151111561179b5761012085015160808601516012546117728683615a09565b61177c9190615c52565b6117869190615a7e565b6117909190615a7e565b9050600091506117e4565b84608001518311156117e45761012085015160808601516012546117bf8287615a09565b6117c99190615c52565b6117d39190615a7e565b6117dd9190615a7e565b9050600191505b600081131561195f57608085018390526101408501516101608601518361181c5761180e82615c94565b915061181981615c94565b90505b6000821261185f5760208701516118338484615cb0565b61183d9190615d35565b6020880181905260c0880151121561185a5760c087015160208801525b6118bb565b86602001518760a0015184611873856128be565b61187d9190615cb0565b6118879190615d35565b131561189c5760a087015160208801526118bb565b60208701516118ab8484615cb0565b6118b59190615d35565b60208801525b600081126119005760608701516118d28483615cb0565b6118dc9190615d35565b6060880181905261010088015112156118fb5761010087015160608801525b61195c565b86606001518760e0015184611914846128be565b61191e9190615cb0565b6119289190615d35565b131561193d5760e0870151606088015261195c565b606087015161194c8483615cb0565b6119569190615d35565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146119945760405162461bcd60e51b8152600401610993906159be565b82518451146119b55760405162461bcd60e51b815260040161099390615d76565b81518351146119d65760405162461bcd60e51b815260040161099390615d76565b80518251146119f75760405162461bcd60e51b815260040161099390615d76565b60005b8451811015610b9e57611a59838281518110611a1857611a18615a20565b6020026020010151858381518110611a3257611a32615a20565b6020026020010151848481518110611a4c57611a4c615a20565b60200260200101516128da565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd0858281518110611a8c57611a8c615a20565b6020026020010151858381518110611aa657611aa6615a20565b6020026020010151858481518110611ac057611ac0615a20565b6020026020010151858581518110611ada57611ada615a20565b6020026020010151604051611b1294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611b2481615a36565b9150506119fa565b611b34612440565b333214611b835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c657200000000006044820152606401610993565b333b15611bde5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b6064820152608401610993565b82600003611c0557611bf08587610df6565b9350611bfe81856000610dae565b9350611c20565b611c0f84876112ab565b9450611c1d81866001610dae565b94505b600086600081518110611c3557611c35615a20565b6020026020010151905060008760018951611c509190615a09565b81518110611c6057611c60615a20565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611ca4908490615a66565b90915550611cb6905082828a8a612a04565b60006040518060400160405280611ccc85612bf0565b8152602001846001600160a01b0316815250905060006040518060400160405280611cf685612bf0565b81526001600160a01b0385166020909101528251909150600303611d2557611d208433308c612c29565b611d83565b883414611d835760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b6064820152608401610993565b611d9282828b8b8e8c8c612d5b565b6000611d9f85858b612f9f565b9050600080611db087878f8e613148565b91509150611dbf87878f613256565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611e3460018055565b505050505050565b6000546001600160a01b03163314611e665760405162461bcd60e51b8152600401610993906159be565b61127281613527565b6000546001600160a01b03163314611e995760405162461bcd60e51b8152600401610993906159be565b600a91909155600b55565b6000806000600a54600b5442611eba9190615a66565b611ec49190615a7e565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611fd35750600c54155b15611fe45780608001519450611ffc565b8151600003611ff757600c549450611ffc565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b0316331461205d5760405162461bcd60e51b8152600401610993906159be565b6001600160a01b0381166120c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b6112728161286e565b6001600160a01b03808516600090815260086020908152604080832087851684529091528120600301549091168161210487878761222c565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a9190615c71565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa1580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121df9190615c39565b90506121ec82600a615c2d565b6121f68483615c52565b6122009190615a7e565b945050505094509492505050565b60006109628284615c52565b92915050565b60006109628284615a7e565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361231657846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f39190615c71565b60ff16905061230f61230682600a615c2d565b610666866109c2565b9250612400565b81606001516001600160a01b0316856001600160a01b0316036123a857856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123959190615c71565b60ff16905061230f61174382600a615c2d565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b6064820152608401610993565b50509392505050565b60006001600160a01b03841661242b576124238383613628565b506001610962565b6124368484846128da565b5060019392505050565b6002600154036124925760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610993565b6002600155565b6003816040516124a99190615ddd565b9081526040519081900360200190205460ff16156125095760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a636572746966696361746520657870697265646044820152606401610993565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906125ba9083613741565b6002549091506001600160a01b0380831691161461261a5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c69642063657274696669636174656044820152606401610993565b600160038360405161262c9190615ddd565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166126715761266c3383613628565b61267c565b61267c8333846128da565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516126b596959493929190615df9565b60405180910390a150505050565b60006109628284615a66565b60006109628284615a09565b6126e3614f26565b506001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015280808061279c8787613765565b925090506000806127ad8b8b610bfa565b50602089018290526060890181905290925090506127cb8883610948565b95506127db888860600151610948565b94505050945094509450945094565b6001600160a01b03811661284c5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b6064820152608401610993565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156128d6576128d182615c94565b61221a565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916129369190615ddd565b6000604051808303816000865af19150503d8060008114612973576040519150601f19603f3d011682016040523d82523d6000602084013e612978565b606091505b50915091508180156129a25750805115806129a25750808060200190518101906129a29190615e5b565b610b9e5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610993565b6001600160a01b03808516600081815260086020908152604080832088861684528252918290208251608081018452815486168152600182015492810192909252600281015492820192909252600390910154909216606083018190529003610b9e576000612a738686610bfa565b925050506000612a85878787336120cb565b5090508382600001511115612b025760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c6520707572636861736500000000000000006064820152608401610993565b8382602001511015612b7c5760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c6520707572636861736500000000006064820152608401610993565b612b868482615a66565b82604001511015612be75760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b6064820152608401610993565b50505050505050565b600060036001600160a01b038316612c0a5750600161221a565b6004546001600160a01b039081169084160361221a5750600292915050565b600080856001600160a01b03166323b872dd868686604051602401612c5093929190615e78565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612c899190615ddd565b6000604051808303816000865af19150503d8060008114612cc6576040519150601f19603f3d011682016040523d82523d6000602084013e612ccb565b606091505b5091509150818015612cf5575080511580612cf5575080806020019051810190612cf59190615e5b565b611e345760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610993565b8651600303612d80576020870151600554612d8091906001600160a01b031687613bfe565b86516003148015612d92575085516003145b8015612d9c575081155b15612e26576005546040516338ed173960e01b81526001600160a01b03909116906338ed173990612dd99088908890889030908890600401615e9c565b6000604051808303816000875af1158015612df8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e209190810190615ab9565b50612be7565b86516003148015612e38575085516003145b8015612e445750816001145b15612e8157600554604051634401edf760e11b81526001600160a01b0390911690638803dbee90612dd99087908990889030908890600401615e9c565b86516003148015612e9e5750855160021480612e9e575085516001145b8015612eaa5750816001145b15612ee757600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612dd99087908990889030908890600401615e9c565b865160021480612ef8575086516001145b8015612f05575085516003145b8015612f115750816001145b15612be75760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612f4e908890889030908890600401615ed8565b60006040518083038185885af1158015612f6c573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612f959190810190615ab9565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816130568686610bfa565b505090506130648482610948565b92506000604051806040016040528061307c88612bf0565b81526001600160a01b03881660209091015280519091506003036131215782516001600160a01b0316301461311c576130ba868460000151866128da565b82516001600160a01b031615806130db575082516001600160a01b03166001145b1561311c577fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945333878660405161311393929190615e78565b60405180910390a15b61313e565b82516001600160a01b0316301461313e57825161313e9085613d26565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806131b189898989613e00565b606086015190985091935091506001600160a01b03808a169116036132015781156131ed576131e3898989848a613f29565b9095509350613205565b6131fa898989848a614209565b9350613205565b8593505b6132108833866128da565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290613243908490615a66565b9250508190555050505094509492505050565b6000600a54600b54426132699190615a66565b6132739190615a7e565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156133825750600c54155b156133e2576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b85528252808420969096559551938252855283812091815290845282812087825290935291205561343c565b815160000361343c57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b600061344987878761222c565b6001600160a01b038089166000908152600960209081526040808320938b1683529281528282208883529052205490915061348788888484896143f6565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166135885760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b6064820152608401610993565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156135e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136059190615f0d565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b804710156136785760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610993565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146136c5576040519150601f19603f3d011682016040523d82523d6000602084013e6136ca565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610993565b6000806000613750858561466d565b9150915061375d816146b2565b509392505050565b600080600061377484866112ab565b90508460008151811061378957613789615a20565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137f29190615c71565b60ff169150600080600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138719190615f0d565b6001600160a01b031663e6a439058860008151811061389257613892615a20565b60200260200101518960018b516138a99190615a09565b815181106138b9576138b9615a20565b60200260200101516040518363ffffffff1660e01b81526004016138f39291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015613910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139349190615f0d565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139959190615f41565b506001600160701b031691506001600160701b03169150600087600189516139bd9190615a09565b815181106139cd576139cd615a20565b60200260200101516001600160a01b0316886000815181106139f1576139f1615a20565b60200260200101516001600160a01b031610613a4e578760018951613a169190615a09565b81518110613a2657613a26615a20565b602002602001015188600081518110613a4157613a41615a20565b6020026020010151613a91565b87600081518110613a6157613a61615a20565b60200260200101518860018a51613a789190615a09565b81518110613a8857613a88615a20565b60200260200101515b5090506000808960018b51613aa69190615a09565b81518110613ab657613ab6615a20565b60200260200101516001600160a01b03168a600081518110613ada57613ada615a20565b60200260200101516001600160a01b031610613af7578886613afa565b85895b91509150826001600160a01b03168a600081518110613b1b57613b1b615a20565b60200260200101516001600160a01b031603613b9957613b3b85836126c3565b9450613b4784826126cf565b9350613b75613b636126f7613b5d8a600a615c2d565b9061220e565b613b6f8761271061220e565b906126c3565b613b8885613b5d6126f7818c600a615c2d565b613b929190615a7e565b9750613bf1565b613ba384826126c3565b9350613baf85836126cf565b9450613bd1613bc56126f7613b5d8a600a615c2d565b613b6f8661271061220e565b613be486613b5d6126f7818c600a615c2d565b613bee9190615a7e565b97505b5050505050509250929050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691613c5a9190615ddd565b6000604051808303816000865af19150503d8060008114613c97576040519150601f19603f3d011682016040523d82523d6000602084013e613c9c565b606091505b5091509150818015613cc6575080511580613cc6575080806020019051810190613cc69190615e5b565b610b9e5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b6064820152608401610993565b604080516000808252602082019092526001600160a01b038416908390604051613d509190615ddd565b60006040518083038185875af1925050503d8060008114613d8d576040519150601f19603f3d011682016040523d82523d6000602084013e613d92565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610993565b6000806000806000613e14898989896147fc565b919450925090506000613e2882600a615c2d565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e929190615c39565b613e9c9190615c52565b613ea69190615a7e565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613ee1908890615a66565b613eeb9190615a66565b9050808210613f095760009750613f028183615a09565b9650613f1a565b60019750613f178282615a09565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613f995750600086115b156141f9578486106140de57613fc6613fb6868460400151610948565b613fbf896109c2565b6001614ab2565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613ffb93929190615e78565b60405180910390a1614011858360200151610948565b9350614022888360000151866128da565b614030858360400151610948565b61403a8587615a09565b6140449190615a09565b3360009081526006602090815260408083206001600160a01b038d1684529091528120600101805490919061407a908490615a66565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e906140b39033908b908890615e78565b60405180910390a16140d78461118c6140d0888660400151610948565b88906126cf565b92506141fd565b6140ef613fb6878460400151610948565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a8360405161412493929190615e78565b60405180910390a161413a868360200151610948565b935061414b888360000151866128da565b614159868360400151610948565b6141638588615a09565b61416d9190615a09565b3360009081526006602090815260408083206001600160a01b038d168452909152812060010180549091906141a3908490615a66565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e906141dc9033908b908890615e78565b60405180910390a16140d78461118c6140d0898660400151610948565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190614271908690610948565b111561431f57614297614288858460400151610948565b614291886109c2565b33614ab2565b90506142b16142aa858460400151610948565b85906126cf565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f609933886142e4878660400151610948565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1614323565b8392505b60105485108015906143355750600085115b156143eb573360009081526006602090815260408083206001600160a01b038b1684529091528120805487929061436d908490615a66565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906144f45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e20300000006044820152606401610993565b6000851161453c5760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b6044820152606401610993565b858511156145825761012081015160125486906145598983615a09565b6145639190615c52565b61456d9190615a7e565b6145779190615a7e565b9250600091506145c4565b848611156145c457610120810151601254869061459f828a615a09565b6145a99190615c52565b6145b39190615a7e565b6145bd9190615a7e565b9250600191505b6000806145d38a8a8787614ba3565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b835290522060028101839055600301819055909250905061461e898b8787614ba3565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b60008082516041036146a35760208301516040840151606085015160001a61469787828585614e65565b945094505050506146ab565b506000905060025b9250929050565b60008160048111156146c6576146c6615f86565b036146ce5750565b60018160048111156146e2576146e2615f86565b0361472f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610993565b600281600481111561474357614743615f86565b036147905760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610993565b60038160048111156147a4576147a4615f86565b036112725760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610993565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806148b88a8a610bfa565b50915091506148c78782610948565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015614911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149359190615c39565b101561499a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b6064820152608401610993565b60006149a68883610948565b1115614a0d576149c48360400151336149bf8a85610948565b6128da565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd3384604001516149f58a85610948565b604051614a0493929190615e78565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a6f9190615c71565b60ff169350614a88614a8285600a615c2d565b89610df6565b94506000614a968884610948565b9050614aa288826126cf565b9650505050509450945094915050565b60008083600081518110614ac857614ac8615a20565b6020026020010151905060008460018651614ae39190615a09565b81518110614af357614af3615a20565b6020026020010151905060006040518060400160405280614b1385612bf0565b8152602001846001600160a01b0316815250905060006040518060400160405280614b3d85612bf0565b8152602001846001600160a01b03168152509050614b5b8888610df6565b9450614b6b612710866000610dae565b94506000614b7a42600a615a66565b9050614b8c83838b898c600087612d5b565b614b978488886128da565b50505050509392505050565b6000806000841315614e29576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b9091015484614bfb57614bed82615c94565b9150614bf881615c94565b90505b6000614c06836128be565b1315614cb157614c168683615cb0565b935060008212614c81576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614c7c576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614cdd565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614cdd565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b6000614ce8826128be565b1315614df6576001600160a01b038089166000908152600760209081526040808320938b1683529290522060030154614d218783615cb0565b614d2b9190615d35565b925060008112614d96576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614d91576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614e22565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614d91576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614e22565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614e5c565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614e9c5750600090506003614e5c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ef0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f1957600060019250925050614e5c565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614fac57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614ff457614ff4614fbb565b60405290565b604051601f8201601f191681016001600160401b038111828210171561502257615022614fbb565b604052919050565b600060a0828403121561503c57600080fd5b60405160a081018181106001600160401b038211171561505e5761505e614fbb565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b038116811461127257600080fd5b80356150b981615099565b919050565b600080604083850312156150d157600080fd5b82356150dc81615099565b915060208301356150ec81615099565b809150509250929050565b60006001600160401b0382111561511057615110614fbb565b5060051b60200190565b600082601f83011261512b57600080fd5b8135602061514061513b836150f7565b614ffa565b82815260059290921b8401810191818101908684111561515f57600080fd5b8286015b8481101561518357803561517681615099565b8352918301918301615163565b509695505050505050565b6000602082840312156151a057600080fd5b81356001600160401b038111156151b657600080fd5b610a9e8482850161511a565b600081518084526020808501945080840160005b838110156151fb5781516001600160a01b0316875295820195908201906001016151d6565b509495945050505050565b60208152600061096260208301846151c2565b60008060006060848603121561522e57600080fd5b833561523981615099565b9250602084013561524981615099565b915060408401356001600160401b0381111561526457600080fd5b6152708682870161511a565b9150509250925092565b60008060006060848603121561528f57600080fd5b833561529a81615099565b925060208401356152aa81615099565b929592945050506040919091013590565b600082601f8301126152cc57600080fd5b81356001600160401b038111156152e5576152e5614fbb565b6152f8601f8201601f1916602001614ffa565b81815284602083860101111561530d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561534257600080fd5b85359450602086013561535481615099565b9350604086013592506060860135915060808601356001600160401b0381111561537d57600080fd5b615389888289016152bb565b9150509295509295909350565b600080600080608085870312156153ac57600080fd5b8435935060208501356001600160401b038111156153c957600080fd5b6153d58782880161511a565b949794965050505060408301359260600135919050565b6000602082840312156153fe57600080fd5b81356001600160401b0381111561541457600080fd5b610a9e848285016152bb565b801515811461127257600080fd5b60008060006060848603121561544357600080fd5b8335925060208401359150604084013561545c81615420565b809150509250925092565b6000806040838503121561547a57600080fd5b8235915060208301356001600160401b0381111561549757600080fd5b6154a38582860161511a565b9150509250929050565b600080600080600060a086880312156154c557600080fd5b85356154d081615099565b945060208601356154e081615099565b935060408601356001600160401b038111156154fb57600080fd5b6155078882890161511a565b93505060608601359150608086013561551f81615099565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161555e60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61028081016155cd828561552d565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b60006020828403121561563d57600080fd5b813561096281615099565b60006080828403121561565a57600080fd5b604051608081018181106001600160401b038211171561567c5761567c614fbb565b604052905080823561568d81615099565b80825250602083013560208201526040830135604082015260608301356156b381615099565b6060919091015292915050565b6000806000808486036102408112156156d857600080fd5b85356156e381615099565b945060208601356156f381615099565b9350610180603f19820181131561570957600080fd5b615711614fd1565b915061571f604088016150ae565b825260608701356020830152615737608088016150ae565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a0880135818401525050809250506157b2866101c08701615648565b905092959194509250565b6101c081016157cc828661552d565b6101808201939093526101a00152919050565b600082601f8301126157f057600080fd5b8135602061580061513b836150f7565b82815260059290921b8401810191818101908684111561581f57600080fd5b8286015b848110156151835780358352918301918301615823565b6000806000806080858703121561585057600080fd5b84356001600160401b038082111561586757600080fd5b615873888389016157df565b9550602087013591508082111561588957600080fd5b6158958883890161511a565b945060408701359150808211156158ab57600080fd5b6158b78883890161511a565b935060608701359150808211156158cd57600080fd5b506158da878288016157df565b91505092959194509250565b60008060008060008060c087890312156158ff57600080fd5b86356001600160401b0381111561591557600080fd5b61592189828a0161511a565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000806000806080858703121561596057600080fd5b843561596b81615099565b9350602085013561597b81615099565b925060408501356001600160401b0381111561599657600080fd5b6159a28782880161511a565b92505060608501356159b381615099565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015615a1b57615a1b6159f3565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201615a4857615a486159f3565b5060010190565b600081615a5e57615a5e6159f3565b506000190190565b60008219821115615a7957615a796159f3565b500190565b600082615a9b57634e487b7160e01b600052601260045260246000fd5b500490565b828152604060208201526000610a9e60408301846151c2565b60006020808385031215615acc57600080fd5b82516001600160401b03811115615ae257600080fd5b8301601f81018513615af357600080fd5b8051615b0161513b826150f7565b81815260059190911b82018301908381019087831115615b2057600080fd5b928401925b82841015615b3e57835182529284019290840190615b25565b979650505050505050565b600181815b80851115615b84578160001904821115615b6a57615b6a6159f3565b80851615615b7757918102915b93841c9390800290615b4e565b509250929050565b600082615b9b5750600161221a565b81615ba85750600061221a565b8160018114615bbe5760028114615bc857615be4565b600191505061221a565b60ff841115615bd957615bd96159f3565b50506001821b61221a565b5060208310610133831016604e8410600b8410161715615c07575081810a61221a565b615c118383615b49565b8060001904821115615c2557615c256159f3565b029392505050565b60006109628383615b8c565b600060208284031215615c4b57600080fd5b5051919050565b6000816000190483118215151615615c6c57615c6c6159f3565b500290565b600060208284031215615c8357600080fd5b815160ff8116811461096257600080fd5b6000600160ff1b8201615ca957615ca96159f3565b5060000390565b60006001600160ff1b0381841382841380821686840486111615615cd657615cd66159f3565b600160ff1b6000871282811687830589121615615cf557615cf56159f3565b60008712925087820587128484161615615d1157615d116159f3565b87850587128184161615615d2757615d276159f3565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615d5757615d576159f3565b600160ff1b8390038412811615615d7057615d706159f3565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b60005b83811015615dc8578181015183820152602001615db0565b83811115615dd7576000848401525b50505050565b60008251615def818460208701615dad565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615e428160e0850160208701615dad565b601f01601f19169190910160e001979650505050505050565b600060208284031215615e6d57600080fd5b815161096281615420565b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615ebb60a08301866151c2565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615ef160808301866151c2565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615f1f57600080fd5b815161096281615099565b80516001600160701b03811681146150b957600080fd5b600080600060608486031215615f5657600080fd5b615f5f84615f2a565b9250615f6d60208501615f2a565b9150604084015163ffffffff8116811461545c57600080fd5b634e487b7160e01b600052602160045260246000fdfea26469706673582212204f02507c13e0cc29fa30a1cddb56b312bf38f8b9163dfb2b670a96ce3cd3596e64736f6c634300080e0033",
1588
+ "deployedBytecode": "0x6080604052600436106102065760003560e01c80635ff530f2116101175780639bad44e8116100a5578063d96661ef1161006c578063d96661ef14610857578063eed8386c14610877578063f2fde38b146108b4578063f9848650146108d4578063fe8691b4146108f457005b80639bad44e8146107ce578063a6a3694a146107ee578063aa5d448f14610801578063b180198614610821578063d738eba11461083757005b8063744cfdd9116100e9578063744cfdd9146106ce5780637aaa9b02146106ee57806381f3fdc31461070e5780638da5cb5b1461073d5780639065a9af1461075b57005b80635ff530f21461064b57806362a766031461066b5780636f151a3814610699578063715018a6146106b957005b8063238ac9331161019457806334e3f92d1161016657806334e3f92d146105425780633fc8cef31461058d57806340216a83146105ad57806343d726d6146106155780635c8181211461062b57005b8063238ac933146103db57806327af9e38146104135780632926e5de146104295780632bd2c18d1461052257005b80630d83b1e4116101d85780630d83b1e4146103385780630fcc40c41461034e57806315aa89531461037b5780631b1534011461039b5780631f8c24de146103bb57005b8063016eb8a81461020f578063089aa04714610242578063089afeae14610262578063092e469f146102e957005b3661020d57005b005b34801561021b57600080fd5b5061022f61022a366004614f99565b610948565b6040519081526020015b60405180910390f35b34801561024e57600080fd5b5061020d61025d36600461502a565b610969565b34801561026e57600080fd5b506102ba61027d3660046150be565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b03958616815260208101949094528301919091529091166060820152608001610239565b3480156102f557600080fd5b50600d54600e54600f54601054601154610310949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610239565b34801561034457600080fd5b5061022f60125481565b34801561035a57600080fd5b5061036e61036936600461518e565b6109c2565b6040516102399190615206565b34801561038757600080fd5b5061022f610396366004615219565b610a91565b3480156103a757600080fd5b5061020d6103b636600461527a565b610aa6565b3480156103c757600080fd5b5061020d6103d636600461532a565b610b25565b3480156103e757600080fd5b506002546103fb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b34801561041f57600080fd5b5061022f600a5481565b34801561043557600080fd5b506104b86104443660046150be565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083015261014082015261016081019190915261018001610239565b34801561052e57600080fd5b5061022f61053d366004615396565b610ba5565b34801561054e57600080fd5b5061057d61055d3660046153ec565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610239565b34801561059957600080fd5b506004546103fb906001600160a01b031681565b3480156105b957600080fd5b506105cd6105c83660046150be565b610bfa565b6040805193845260208085019390935281518482015291810151606080850191909152918101516080808501919091529181015160a0840152015160c082015260e001610239565b34801561062157600080fd5b5061022f600c5481565b34801561063757600080fd5b5061022f61064636600461542e565b610dae565b34801561065757600080fd5b5061022f610666366004615467565b610df6565b34801561067757600080fd5b5061068b6106863660046154ad565b610f13565b6040516102399291906155be565b3480156106a557600080fd5b5061020d6106b436600461562b565b61123f565b3480156106c557600080fd5b5061020d611275565b3480156106da57600080fd5b5061022f6106e9366004615467565b6112ab565b3480156106fa57600080fd5b5061020d6107093660046156c0565b6113ad565b34801561071a57600080fd5b5061072e610729366004615219565b611621565b604051610239939291906157bd565b34801561074957600080fd5b506000546001600160a01b03166103fb565b34801561076757600080fd5b506107ae61077636600461527a565b600960209081526000938452604080852082529284528284209052825290208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610239565b3480156107da57600080fd5b5061020d6107e936600461583a565b61196a565b61020d6107fc3660046158e6565b611b2c565b34801561080d57600080fd5b5061020d61081c36600461562b565b611e3c565b34801561082d57600080fd5b5061022f600b5481565b34801561084357600080fd5b5061020d610852366004614f99565b611e6f565b34801561086357600080fd5b506005546103fb906001600160a01b031681565b34801561088357600080fd5b506108976108923660046150be565b611ea4565b604080519283526001600160a01b03909116602083015201610239565b3480156108c057600080fd5b5061020d6108cf36600461562b565b612033565b3480156108e057600080fd5b506108976108ef36600461594a565b6120cb565b34801561090057600080fd5b5061093361090f3660046150be565b60066020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610239565b6012546000906109629061095c858561220e565b90612220565b9392505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b8152600401610993906159be565b60405180910390fd5b8051600d556020810151600e556040810151600f55606081015160105560800151601155565b80516060906000816001600160401b038111156109e1576109e1614fbb565b604051908082528060200260200182016040528015610a0a578160200160208202803683370190505b5090506000825b60018110610a875785610a25600183615a09565b81518110610a3557610a35615a20565b6020026020010151838381518110610a4f57610a4f615a20565b6001600160a01b039092166020928302919091019091015281610a7181615a36565b9250508080610a7f90615a4f565b915050610a11565b5090949350505050565b6000610a9e84848461222c565b949350505050565b6000546001600160a01b03163314610ad05760405162461bcd60e51b8152600401610993906159be565b610adb838383612409565b610b205760405162461bcd60e51b8152602060048201526016602482015275151bdad95b93585c9ad95d0e8e9cd95b990819985a5b60521b6044820152606401610993565b505050565b610b2d612440565b610b3a8585858585612499565b610b4685858584612654565b814210610b955760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e0000006044820152606401610993565b610b9e60018055565b5050505050565b60008080848103610bd257610bba8787610df6565b9150610bc884836000610dae565b9150819250610bf0565b610bdc87876112ab565b9050610bea84826001610dae565b90508092505b5050949350505050565b600080610c2f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000600a54600b5442610c429190615a66565b610c4c9190615a7e565b6001600160a01b0380881660008181526007602081815260408084208c87168086529083528185208251610180810184528154891681526001820154818601526002820154909816888401526003810154606089015260048101546080890152600581015460a0890152600681015460c08901529384015460e08801526008840154610100880152600980850154610120890152600a850154610140890152600b909401546101608801529484529181528183209383529283528082208583529092529081205492935090919003610d31578060200151945080606001519350610d6f565b6001600160a01b038781166000908152600960209081526040808320938a168352928152828220858352905220600281015460039091015490955093505b50506040805160a081018252600d548152600e546020820152600f54918101919091526010546060820152601154608082015292959194509192509050565b600060018215610dcc57601254610dc590866126c3565b9050610ddc565b601254610dd990866126cf565b90505b601254610ded9061095c868461220e565b95945050505050565b60055460405163d06ca61f60e01b815260009182916001600160a01b039091169063d06ca61f90610e2d9087908790600401615aa0565b600060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e729190810190615ab9565b905080610e8a600183516126cf90919063ffffffff16565b81518110610e9a57610e9a615a20565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b6064820152608401610993565b5092915050565b610f1b614f26565b610f65604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b600080610f74898989896126db565b60a088019290925260808701839052929650919350909150610f979087906126cf565b95506000610fa683600a615c2d565b60a08501516040516370a0823160e01b81526001600160a01b038981166004830152859291908e16906370a0823190602401602060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190615c39565b6110239190615a66565b61102d9190615c52565b6110379190615a7e565b6001600160a01b038781166000908152600660209081526040808320938e16835292905290812060018101549054929350918390611076908b90615a66565b6110809190615a66565b90508082106110a457600060c087015261109a8183615a09565b60e08701526110bb565b600160c08701526110b58282615a09565b60e08701525b6001600160a01b03808d1660009081526008602090815260408083208f8516808552908352928190208151608081018352815486168152600182015493810193909352600281015491830191909152600301549092166060830181905203611227578660c00151156111d45760e087015160115411801590611141575060008760e00151115b156111c757898760e001511061119c5761115f8a8260400151610948565b60408801526020810151611174908b90610948565b8088526040880151611192919061118c908d906126cf565b906126cf565b606088015261122f565b6111ae8760e001518260400151610948565b604088015260e087015160208201516111749190610948565b606087018a90525b61122f565b6111e28a8260400151610948565b604088018190526111f4908b906126cf565b606088015260e087015160105411801590611213575060008760e00151115b156111cf5760e0870151602088015261122f565b606087018a90525b5050505050509550959350505050565b6000546001600160a01b031633146112695760405162461bcd60e51b8152600401610993906159be565b611272816127ea565b50565b6000546001600160a01b0316331461129f5760405162461bcd60e51b8152600401610993906159be565b6112a9600061286e565b565b6005546040516307c0329d60e21b815260009182916001600160a01b0390911690631f00ca74906112e29087908790600401615aa0565b600060405180830381865afa1580156112ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113279190810190615ab9565b90508060008151811061133c5761133c615a20565b6020026020010151915060008211610f0c5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201526d067726561746572207468616e20360941b6064820152608401610993565b6000546001600160a01b031633146113d75760405162461bcd60e51b8152600401610993906159be565b60008260600151121561142c5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d203000000000000000006044820152606401610993565b6000826020015112156114815760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d2030000000000000006044820152606401610993565b836001600160a01b031681606001516001600160a01b031614806114ba5750826001600160a01b031681606001516001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e67000000006044820152606401610993565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b166001600160a01b031991821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b611629614f26565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b0154610160870152805163313ce56760e01b8152905193948594909363313ce5679383820193909291908290030181865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190615c71565b60ff16915061174961174383600a615c2d565b85610df6565b9050600080828560800151111561179b5761012085015160808601516012546117728683615a09565b61177c9190615c52565b6117869190615a7e565b6117909190615a7e565b9050600091506117e4565b84608001518311156117e45761012085015160808601516012546117bf8287615a09565b6117c99190615c52565b6117d39190615a7e565b6117dd9190615a7e565b9050600191505b600081131561195f57608085018390526101408501516101608601518361181c5761180e82615c94565b915061181981615c94565b90505b6000821261185f5760208701516118338484615cb0565b61183d9190615d35565b6020880181905260c0880151121561185a5760c087015160208801525b6118bb565b86602001518760a0015184611873856128be565b61187d9190615cb0565b6118879190615d35565b131561189c5760a087015160208801526118bb565b60208701516118ab8484615cb0565b6118b59190615d35565b60208801525b600081126119005760608701516118d28483615cb0565b6118dc9190615d35565b6060880181905261010088015112156118fb5761010087015160608801525b61195c565b86606001518760e0015184611914846128be565b61191e9190615cb0565b6119289190615d35565b131561193d5760e0870151606088015261195c565b606087015161194c8483615cb0565b6119569190615d35565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146119945760405162461bcd60e51b8152600401610993906159be565b82518451146119b55760405162461bcd60e51b815260040161099390615d76565b81518351146119d65760405162461bcd60e51b815260040161099390615d76565b80518251146119f75760405162461bcd60e51b815260040161099390615d76565b60005b8451811015610b9e57611a59838281518110611a1857611a18615a20565b6020026020010151858381518110611a3257611a32615a20565b6020026020010151848481518110611a4c57611a4c615a20565b60200260200101516128da565b7fd854fbf5db341a7d003a14ee8ed089e806c8731c6aca5fb4b89095d0a230ccd0858281518110611a8c57611a8c615a20565b6020026020010151858381518110611aa657611aa6615a20565b6020026020010151858481518110611ac057611ac0615a20565b6020026020010151858581518110611ada57611ada615a20565b6020026020010151604051611b1294939291909384526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a180611b2481615a36565b9150506119fa565b611b34612440565b333214611b835760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c657200000000006044820152606401610993565b333b15611bde5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e74726163742063604482015263616c6c7360e01b6064820152608401610993565b82600003611c0557611bf08587610df6565b9350611bfe81856000610dae565b9350611c20565b611c0f84876112ab565b9450611c1d81866001610dae565b94505b600086600081518110611c3557611c35615a20565b6020026020010151905060008760018951611c509190615a09565b81518110611c6057611c60615a20565b6020908102919091018101513360009081526006835260408082206001600160a01b0387168352909352918220600101805491935089929091611ca4908490615a66565b90915550611cb6905082828a8a612a04565b60006040518060400160405280611ccc85612bf0565b8152602001846001600160a01b0316815250905060006040518060400160405280611cf685612bf0565b81526001600160a01b0385166020909101528251909150600303611d2557611d208433308c612c29565b611d83565b883414611d835760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201526563757261746560d01b6064820152608401610993565b611d9282828b8b8e8c8c612d5b565b6000611d9f85858b612f9f565b9050600080611db087878f8e613148565b91509150611dbf87878f613256565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a150505050505050611e3460018055565b505050505050565b6000546001600160a01b03163314611e665760405162461bcd60e51b8152600401610993906159be565b61127281613527565b6000546001600160a01b03163314611e995760405162461bcd60e51b8152600401610993906159be565b600a91909155600b55565b6000806000600a54600b5442611eba9190615a66565b611ec49190615a7e565b6001600160a01b0380871660008181526009602081815260408084208b871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b9091015461016082015281519293509091158015611fd35750600c54155b15611fe45780608001519450611ffc565b8151600003611ff757600c549450611ffc565b815194505b505050506001600160a01b039283166000908152600860209081526040808320948616835293905291909120600301549092911690565b6000546001600160a01b0316331461205d5760405162461bcd60e51b8152600401610993906159be565b6001600160a01b0381166120c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b6112728161286e565b6001600160a01b03808516600090815260086020908152604080832087851684529091528120600301549091168161210487878761222c565b90506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a9190615c71565b6040516370a0823160e01b81526001600160a01b03878116600483015260ff9290921692506000918916906370a0823190602401602060405180830381865afa1580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121df9190615c39565b90506121ec82600a615c2d565b6121f68483615c52565b6122009190615a7e565b945050505094509492505050565b60006109628284615c52565b92915050565b60006109628284615a7e565b6001600160a01b03808416600081815260086020908152604080832087861684528252808320815160808101835281548716815260018201549381019390935260028101549183019190915260030154909316606084018190529092918391900361231657846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f39190615c71565b60ff16905061230f61230682600a615c2d565b610666866109c2565b9250612400565b81606001516001600160a01b0316856001600160a01b0316036123a857856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123959190615c71565b60ff16905061230f61174382600a615c2d565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e2063604482015266757272656e637960c81b6064820152608401610993565b50509392505050565b60006001600160a01b03841661242b576124238383613628565b506001610962565b6124368484846128da565b5060019392505050565b6002600154036124925760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610993565b6002600155565b6003816040516124a99190615ddd565b9081526040519081900360200190205460ff16156125095760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a636572746966696361746520657870697265646044820152606401610993565b60408051466020808301919091528183018890526bffffffffffffffffffffffff1933606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906125ba9083613741565b6002549091506001600160a01b0380831691161461261a5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c69642063657274696669636174656044820152606401610993565b600160038360405161262c9190615ddd565b908152604051908190036020019020805491151560ff19909216919091179055505050505050565b6001600160a01b0383166126715761266c3383613628565b61267c565b61267c8333846128da565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d3385858542866040516126b596959493929190615df9565b60405180910390a150505050565b60006109628284615a66565b60006109628284615a09565b6126e3614f26565b506001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015280808061279c8787613765565b925090506000806127ad8b8b610bfa565b50602089018290526060890181905290925090506127cb8883610948565b95506127db888860600151610948565b94505050945094509450945094565b6001600160a01b03811661284c5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e67206164646044820152637265737360e01b6064820152608401610993565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156128d6576128d182615c94565b61221a565b5090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916129369190615ddd565b6000604051808303816000865af19150503d8060008114612973576040519150601f19603f3d011682016040523d82523d6000602084013e612978565b606091505b50915091508180156129a25750805115806129a25750808060200190518101906129a29190615e5b565b610b9e5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610993565b6001600160a01b03808516600081815260086020908152604080832088861684528252918290208251608081018452815486168152600182015492810192909252600281015492820192909252600390910154909216606083018190529003610b9e576000612a738686610bfa565b925050506000612a85878787336120cb565b5090508382600001511115612b025760405162461bcd60e51b815260206004820152603860248201527f546f6b656e4d61726b65743a3a4c657373207468616e20746865207175616e7460448201527f697479206f6620612073696e676c6520707572636861736500000000000000006064820152608401610993565b8382602001511015612b7c5760405162461bcd60e51b815260206004820152603b60248201527f546f6b656e4d61726b65743a3a47726561746572207468616e2074686520717560448201527f616e74697479206f6620612073696e676c6520707572636861736500000000006064820152608401610993565b612b868482615a66565b82604001511015612be75760405162461bcd60e51b815260206004820152602560248201527f546f6b656e4d61726b65743a3a457863656564696e6720706f736974696f6e206044820152641b1a5b5a5d60da1b6064820152608401610993565b50505050505050565b600060036001600160a01b038316612c0a5750600161221a565b6004546001600160a01b039081169084160361221a5750600292915050565b600080856001600160a01b03166323b872dd868686604051602401612c5093929190615e78565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612c899190615ddd565b6000604051808303816000865af19150503d8060008114612cc6576040519150601f19603f3d011682016040523d82523d6000602084013e612ccb565b606091505b5091509150818015612cf5575080511580612cf5575080806020019051810190612cf59190615e5b565b611e345760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610993565b8651600303612d80576020870151600554612d8091906001600160a01b031687613bfe565b86516003148015612d92575085516003145b8015612d9c575081155b15612e26576005546040516338ed173960e01b81526001600160a01b03909116906338ed173990612dd99088908890889030908890600401615e9c565b6000604051808303816000875af1158015612df8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e209190810190615ab9565b50612be7565b86516003148015612e38575085516003145b8015612e445750816001145b15612e8157600554604051634401edf760e11b81526001600160a01b0390911690638803dbee90612dd99087908990889030908890600401615e9c565b86516003148015612e9e5750855160021480612e9e575085516001145b8015612eaa5750816001145b15612ee757600554604051632512eca560e11b81526001600160a01b0390911690634a25d94a90612dd99087908990889030908890600401615e9c565b865160021480612ef8575086516001145b8015612f05575085516003145b8015612f115750816001145b15612be75760055460405163fb3bdb4160e01b81526001600160a01b039091169063fb3bdb41908790612f4e908890889030908890600401615ed8565b60006040518083038185885af1158015612f6c573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612f959190810190615ab9565b5050505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816130568686610bfa565b505090506130648482610948565b92506000604051806040016040528061307c88612bf0565b81526001600160a01b03881660209091015280519091506003036131215782516001600160a01b0316301461311c576130ba868460000151866128da565b82516001600160a01b031615806130db575082516001600160a01b03166001145b1561311c577fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945333878660405161311393929190615e78565b60405180910390a15b61313e565b82516001600160a01b0316301461313e57825161313e9085613d26565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806131b189898989613e00565b606086015190985091935091506001600160a01b03808a169116036132015781156131ed576131e3898989848a613f29565b9095509350613205565b6131fa898989848a614209565b9350613205565b8593505b6132108833866128da565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290613243908490615a66565b9250508190555050505094509492505050565b6000600a54600b54426132699190615a66565b6132739190615a7e565b6001600160a01b0380861660008181526009602081815260408084208a871680865290835281852088865283528185208251608080820185528254825260018084015483880152600280850154848801526003948501546060808601919091529a8a526007808952878b20968b529588529886902086516101808101885281548d1681529181015497820197909752978601549099169387019390935283015495850195909552600482015495840195909552600581015460a0840152600681015460c08401529283015460e08301526008830154610100830152820154610120820152600a820154610140820152600b90910154610160820152815192935090911580156133825750600c54155b156133e2576080810180516001600160a01b038089166000818152600960208181526040808420958d168085529582528084208b85528252808420969096559551938252855283812091815290845282812087825290935291205561343c565b815160000361343c57600c546001600160a01b038088166000818152600960208181526040808420958c168085529582528084208a8552825280842087905594835290815283822092825291825282812087825290915220555b600061344987878761222c565b6001600160a01b038089166000908152600960209081526040808320938b1683529281528282208883529052205490915061348788888484896143f6565b50506001600160a01b038881166000818152600960208181526040808420958d168085529582528084208b855282528084206001908101899055958452918152818320938352928352808220898352835290819020909201849055600c84905581518781529081018490527fb9362b96e28efbb7a7e63bb4a97faf9924ec0394635feff8588a6ae2a5f784fe910160405180910390a15050505050505050565b6001600160a01b0381166135885760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b6064820152608401610993565b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156135e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136059190615f0d565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b804710156136785760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610993565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146136c5576040519150601f19603f3d011682016040523d82523d6000602084013e6136ca565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610993565b6000806000613750858561466d565b9150915061375d816146b2565b509392505050565b600080600061377484866112ab565b90508460008151811061378957613789615a20565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137f29190615c71565b60ff169150600080600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138719190615f0d565b6001600160a01b031663e6a439058860008151811061389257613892615a20565b60200260200101518960018b516138a99190615a09565b815181106138b9576138b9615a20565b60200260200101516040518363ffffffff1660e01b81526004016138f39291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015613910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139349190615f0d565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139959190615f41565b506001600160701b031691506001600160701b03169150600087600189516139bd9190615a09565b815181106139cd576139cd615a20565b60200260200101516001600160a01b0316886000815181106139f1576139f1615a20565b60200260200101516001600160a01b031610613a4e578760018951613a169190615a09565b81518110613a2657613a26615a20565b602002602001015188600081518110613a4157613a41615a20565b6020026020010151613a91565b87600081518110613a6157613a61615a20565b60200260200101518860018a51613a789190615a09565b81518110613a8857613a88615a20565b60200260200101515b5090506000808960018b51613aa69190615a09565b81518110613ab657613ab6615a20565b60200260200101516001600160a01b03168a600081518110613ada57613ada615a20565b60200260200101516001600160a01b031610613af7578886613afa565b85895b91509150826001600160a01b03168a600081518110613b1b57613b1b615a20565b60200260200101516001600160a01b031603613b9957613b3b85836126c3565b9450613b4784826126cf565b9350613b75613b636126f7613b5d8a600a615c2d565b9061220e565b613b6f8761271061220e565b906126c3565b613b8885613b5d6126f7818c600a615c2d565b613b929190615a7e565b9750613bf1565b613ba384826126c3565b9350613baf85836126cf565b9450613bd1613bc56126f7613b5d8a600a615c2d565b613b6f8661271061220e565b613be486613b5d6126f7818c600a615c2d565b613bee9190615a7e565b97505b5050505050509250929050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691613c5a9190615ddd565b6000604051808303816000865af19150503d8060008114613c97576040519150601f19603f3d011682016040523d82523d6000602084013e613c9c565b606091505b5091509150818015613cc6575080511580613cc6575080806020019051810190613cc69190615e5b565b610b9e5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b6064820152608401610993565b604080516000808252602082019092526001600160a01b038416908390604051613d509190615ddd565b60006040518083038185875af1925050503d8060008114613d8d576040519150601f19603f3d011682016040523d82523d6000602084013e613d92565b606091505b5050905080610b205760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610993565b6000806000806000613e14898989896147fc565b919450925090506000613e2882600a615c2d565b6040516370a0823160e01b815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015613e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e929190615c39565b613e9c9190615c52565b613ea69190615a7e565b3360009081526006602090815260408083206001600160a01b038e168452909152812060018101549054929350918390613ee1908890615a66565b613eeb9190615a66565b9050808210613f095760009750613f028183615a09565b9650613f1a565b60019750613f178282615a09565b96505b50505050509450945094915050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301919091526003015490921660608301526011549091829182908610801590613f995750600086115b156141f9578486106140de57613fc6613fb6868460400151610948565b613fbf896109c2565b6001614ab2565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a83604051613ffb93929190615e78565b60405180910390a1614011858360200151610948565b9350614022888360000151866128da565b614030858360400151610948565b61403a8587615a09565b6140449190615a09565b3360009081526006602090815260408083206001600160a01b038d1684529091528120600101805490919061407a908490615a66565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e906140b39033908b908890615e78565b60405180910390a16140d78461118c6140d0888660400151610948565b88906126cf565b92506141fd565b6140ef613fb6878460400151610948565b90507fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453338a8360405161412493929190615e78565b60405180910390a161413a868360200151610948565b935061414b888360000151866128da565b614159868360400151610948565b6141638588615a09565b61416d9190615a09565b3360009081526006602090815260408083206001600160a01b038d168452909152812060010180549091906141a3908490615a66565b90915550506040517f88dcaca629d63d86330e97adc358b13dd0ebd703239aea96b7ea2fb331b16f4e906141dc9033908b908890615e78565b60405180910390a16140d78461118c6140d0898660400151610948565b8492505b50509550959350505050565b6001600160a01b0380861660009081526008602090815260408083208885168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152909182908190614271908690610948565b111561431f57614297614288858460400151610948565b614291886109c2565b33614ab2565b90506142b16142aa858460400151610948565b85906126cf565b92507f340b543910b47fe717183f8972077c5d42343802898948d4dffc9cc82a4f609933886142e4878660400151610948565b604080516001600160a01b0394851681529284166020840152820152908a1660608201526080810183905260a00160405180910390a1614323565b8392505b60105485108015906143355750600085115b156143eb573360009081526006602090815260408083206001600160a01b038b1684529091528120805487929061436d908490615a66565b90915550503360008181526006602090815260408083206001600160a01b038c1680855290835292819020600181015490548251958652928501939093528301889052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a00160405180910390a15b505095945050505050565b6001600160a01b038086166000908152600760208181526040808420898616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b9093015461016082015290918291906144f45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e20300000006044820152606401610993565b6000851161453c5760405162461bcd60e51b81526020600482015260156024820152740546f6b656e4d61726b65743a3a6f70656e203e203605c1b6044820152606401610993565b858511156145825761012081015160125486906145598983615a09565b6145639190615c52565b61456d9190615a7e565b6145779190615a7e565b9250600091506145c4565b848611156145c457610120810151601254869061459f828a615a09565b6145a99190615c52565b6145b39190615a7e565b6145bd9190615a7e565b9250600191505b6000806145d38a8a8787614ba3565b6001600160a01b038c81166000908152600960209081526040808320938f1683529281528282208b835290522060028101839055600301819055909250905061461e898b8787614ba3565b6001600160a01b039a8b1660009081526009602090815260408083209e909d1682529c8d528b812098815297909b52989095206002810198909855505060039095019590955550929391925050565b60008082516041036146a35760208301516040840151606085015160001a61469787828585614e65565b945094505050506146ab565b506000905060025b9250929050565b60008160048111156146c6576146c6615f86565b036146ce5750565b60018160048111156146e2576146e2615f86565b0361472f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610993565b600281600481111561474357614743615f86565b036147905760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610993565b60038160048111156147a4576147a4615f86565b036112725760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610993565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806148b88a8a610bfa565b50915091506148c78782610948565b60408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015614911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149359190615c39565b101561499a5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201526d696369656e742042616c616e636560901b6064820152608401610993565b60006149a68883610948565b1115614a0d576149c48360400151336149bf8a85610948565b6128da565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd3384604001516149f58a85610948565b604051614a0493929190615e78565b60405180910390a15b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a6f9190615c71565b60ff169350614a88614a8285600a615c2d565b89610df6565b94506000614a968884610948565b9050614aa288826126cf565b9650505050509450945094915050565b60008083600081518110614ac857614ac8615a20565b6020026020010151905060008460018651614ae39190615a09565b81518110614af357614af3615a20565b6020026020010151905060006040518060400160405280614b1385612bf0565b8152602001846001600160a01b0316815250905060006040518060400160405280614b3d85612bf0565b8152602001846001600160a01b03168152509050614b5b8888610df6565b9450614b6b612710866000610dae565b94506000614b7a42600a615a66565b9050614b8c83838b898c600087612d5b565b614b978488886128da565b50505050509392505050565b6000806000841315614e29576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b9091015484614bfb57614bed82615c94565b9150614bf881615c94565b90505b6000614c06836128be565b1315614cb157614c168683615cb0565b935060008212614c81576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614c7c576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614cdd565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101549350614cdd565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b6000614ce8826128be565b1315614df6576001600160a01b038089166000908152600760209081526040808320938b1683529290522060030154614d218783615cb0565b614d2b9190615d35565b925060008112614d96576001600160a01b038089166000908152600760209081526040808320938b1683529290522060080154831315614d91576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614e22565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614d91576001600160a01b038089166000908152600760208181526040808420948c16845293905291902001549250614e22565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015492505b5050614e5c565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614e9c5750600090506003614e5c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614ef0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f1957600060019250925050614e5c565b9660009650945050505050565b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060408385031215614fac57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614ff457614ff4614fbb565b60405290565b604051601f8201601f191681016001600160401b038111828210171561502257615022614fbb565b604052919050565b600060a0828403121561503c57600080fd5b60405160a081018181106001600160401b038211171561505e5761505e614fbb565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b6001600160a01b038116811461127257600080fd5b80356150b981615099565b919050565b600080604083850312156150d157600080fd5b82356150dc81615099565b915060208301356150ec81615099565b809150509250929050565b60006001600160401b0382111561511057615110614fbb565b5060051b60200190565b600082601f83011261512b57600080fd5b8135602061514061513b836150f7565b614ffa565b82815260059290921b8401810191818101908684111561515f57600080fd5b8286015b8481101561518357803561517681615099565b8352918301918301615163565b509695505050505050565b6000602082840312156151a057600080fd5b81356001600160401b038111156151b657600080fd5b610a9e8482850161511a565b600081518084526020808501945080840160005b838110156151fb5781516001600160a01b0316875295820195908201906001016151d6565b509495945050505050565b60208152600061096260208301846151c2565b60008060006060848603121561522e57600080fd5b833561523981615099565b9250602084013561524981615099565b915060408401356001600160401b0381111561526457600080fd5b6152708682870161511a565b9150509250925092565b60008060006060848603121561528f57600080fd5b833561529a81615099565b925060208401356152aa81615099565b929592945050506040919091013590565b600082601f8301126152cc57600080fd5b81356001600160401b038111156152e5576152e5614fbb565b6152f8601f8201601f1916602001614ffa565b81815284602083860101111561530d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561534257600080fd5b85359450602086013561535481615099565b9350604086013592506060860135915060808601356001600160401b0381111561537d57600080fd5b615389888289016152bb565b9150509295509295909350565b600080600080608085870312156153ac57600080fd5b8435935060208501356001600160401b038111156153c957600080fd5b6153d58782880161511a565b949794965050505060408301359260600135919050565b6000602082840312156153fe57600080fd5b81356001600160401b0381111561541457600080fd5b610a9e848285016152bb565b801515811461127257600080fd5b60008060006060848603121561544357600080fd5b8335925060208401359150604084013561545c81615420565b809150509250925092565b6000806040838503121561547a57600080fd5b8235915060208301356001600160401b0381111561549757600080fd5b6154a38582860161511a565b9150509250929050565b600080600080600060a086880312156154c557600080fd5b85356154d081615099565b945060208601356154e081615099565b935060408601356001600160401b038111156154fb57600080fd5b6155078882890161511a565b93505060608601359150608086013561551f81615099565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161555e60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61028081016155cd828561552d565b825161018083015260208301516101a083015260408301516101c083015260608301516101e0830152608083015161020083015260a083015161022083015260c0830151151561024083015260e08301516102608301529392505050565b60006020828403121561563d57600080fd5b813561096281615099565b60006080828403121561565a57600080fd5b604051608081018181106001600160401b038211171561567c5761567c614fbb565b604052905080823561568d81615099565b80825250602083013560208201526040830135604082015260608301356156b381615099565b6060919091015292915050565b6000806000808486036102408112156156d857600080fd5b85356156e381615099565b945060208601356156f381615099565b9350610180603f19820181131561570957600080fd5b615711614fd1565b915061571f604088016150ae565b825260608701356020830152615737608088016150ae565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a0880135818401525050809250506157b2866101c08701615648565b905092959194509250565b6101c081016157cc828661552d565b6101808201939093526101a00152919050565b600082601f8301126157f057600080fd5b8135602061580061513b836150f7565b82815260059290921b8401810191818101908684111561581f57600080fd5b8286015b848110156151835780358352918301918301615823565b6000806000806080858703121561585057600080fd5b84356001600160401b038082111561586757600080fd5b615873888389016157df565b9550602087013591508082111561588957600080fd5b6158958883890161511a565b945060408701359150808211156158ab57600080fd5b6158b78883890161511a565b935060608701359150808211156158cd57600080fd5b506158da878288016157df565b91505092959194509250565b60008060008060008060c087890312156158ff57600080fd5b86356001600160401b0381111561591557600080fd5b61592189828a0161511a565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b6000806000806080858703121561596057600080fd5b843561596b81615099565b9350602085013561597b81615099565b925060408501356001600160401b0381111561599657600080fd5b6159a28782880161511a565b92505060608501356159b381615099565b939692955090935050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015615a1b57615a1b6159f3565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201615a4857615a486159f3565b5060010190565b600081615a5e57615a5e6159f3565b506000190190565b60008219821115615a7957615a796159f3565b500190565b600082615a9b57634e487b7160e01b600052601260045260246000fd5b500490565b828152604060208201526000610a9e60408301846151c2565b60006020808385031215615acc57600080fd5b82516001600160401b03811115615ae257600080fd5b8301601f81018513615af357600080fd5b8051615b0161513b826150f7565b81815260059190911b82018301908381019087831115615b2057600080fd5b928401925b82841015615b3e57835182529284019290840190615b25565b979650505050505050565b600181815b80851115615b84578160001904821115615b6a57615b6a6159f3565b80851615615b7757918102915b93841c9390800290615b4e565b509250929050565b600082615b9b5750600161221a565b81615ba85750600061221a565b8160018114615bbe5760028114615bc857615be4565b600191505061221a565b60ff841115615bd957615bd96159f3565b50506001821b61221a565b5060208310610133831016604e8410600b8410161715615c07575081810a61221a565b615c118383615b49565b8060001904821115615c2557615c256159f3565b029392505050565b60006109628383615b8c565b600060208284031215615c4b57600080fd5b5051919050565b6000816000190483118215151615615c6c57615c6c6159f3565b500290565b600060208284031215615c8357600080fd5b815160ff8116811461096257600080fd5b6000600160ff1b8201615ca957615ca96159f3565b5060000390565b60006001600160ff1b0381841382841380821686840486111615615cd657615cd66159f3565b600160ff1b6000871282811687830589121615615cf557615cf56159f3565b60008712925087820587128484161615615d1157615d116159f3565b87850587128184161615615d2757615d276159f3565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615615d5757615d576159f3565b600160ff1b8390038412811615615d7057615d706159f3565b50500190565b60208082526017908201527f546f6b656e4d61726b65743a3a206c656e67746820213d000000000000000000604082015260600190565b60005b83811015615dc8578181015183820152602001615db0565b83811115615dd7576000848401525b50505050565b60008251615def818460208701615dad565b9190910192915050565b600060018060a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152615e428160e0850160208701615dad565b601f01601f19169190910160e001979650505050505050565b600060208284031215615e6d57600080fd5b815161096281615420565b6001600160a01b039384168152919092166020820152604081019190915260600190565b85815284602082015260a060408201526000615ebb60a08301866151c2565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000615ef160808301866151c2565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215615f1f57600080fd5b815161096281615099565b80516001600160701b03811681146150b957600080fd5b600080600060608486031215615f5657600080fd5b615f5f84615f2a565b9250615f6d60208501615f2a565b9150604084015163ffffffff8116811461545c57600080fd5b634e487b7160e01b600052602160045260246000fdfea26469706673582212204f02507c13e0cc29fa30a1cddb56b312bf38f8b9163dfb2b670a96ce3cd3596e64736f6c634300080e0033",
1589
1589
  "linkReferences": {},
1590
1590
  "deployedLinkReferences": {}
1591
1591
  }
package/src/agent-swap.js CHANGED
@@ -151,7 +151,7 @@ class AgentSwap extends HI {
151
151
 
152
152
 
153
153
 
154
- async updateConfig({ tokenIn,tokenOut,config,tax }) {
154
+ async updateConfig({ tokenIn,tokenOut,config,tax,usdt = '' }) {
155
155
 
156
156
  config.feeRate = multiplication(division(config.feeRate,100),this.pointMax)
157
157
  config.reward = multiplication(division(config.reward,100),this.pointMax)
@@ -165,7 +165,7 @@ class AgentSwap extends HI {
165
165
  tax.tax = multiplication(division(tax.tax,100),this.pointMax)
166
166
  tax.backBuy = multiplication(division(tax.backBuy,100),this.pointMax)
167
167
 
168
- let symbol = new HERC20({ ...this.network, contract: tokenOut })
168
+ let symbol = new HERC20({ ...this.network, contract: usdt ? usdt : tokenOut })
169
169
  config.price = await symbol.toAmount(config.price)
170
170
 
171
171
  let params = [
@@ -223,10 +223,10 @@ class AgentSwap extends HI {
223
223
  }
224
224
 
225
225
 
226
- async getConfig({ tokenIn,tokenOut }) {
226
+ async getConfig({ tokenIn,tokenOut,usdt = '' }) {
227
227
  let result1 = await this.SC.methods.runConfig(tokenIn,tokenOut).call()
228
228
  let result2 = await this.SC.methods.taxConfig(tokenIn,tokenOut).call()
229
- let outToken = new HERC20({ ...this.network, contract: tokenOut })
229
+ let usdtToken = new HERC20({ ...this.network, contract: usdt ? usdt : tokenOut })
230
230
  let result = {
231
231
  ...result1,
232
232
  ...result2
@@ -237,7 +237,7 @@ class AgentSwap extends HI {
237
237
  result.feeMin = multiplication(division(result.feeMin,this.pointMax),100)
238
238
  result.feeRate = multiplication(division(result.feeRate,this.pointMax),100)
239
239
  result.range = multiplication(division(result.range,this.pointMax),100)
240
- result.price = await outToken.fromAmount(result.price)
240
+ result.price = await usdtToken.fromAmount(result.price)
241
241
  result.reward = multiplication(division(result.reward,this.pointMax),100)
242
242
 
243
243
  result.rewardMax = multiplication(division(result.rewardMax,this.pointMax),100)
@@ -366,6 +366,7 @@ class AgentSwap extends HI {
366
366
  }
367
367
  let user = this.web3.eth.defaultAccount
368
368
  let result = await this.SC.methods.fundRead(inToken,outToken,path,outAmount,user).call()
369
+ console.log(result)
369
370
 
370
371
  let decimals = await OToken.decimals()
371
372
  result.feeAmount = toSmall(result.group.feeAmount,decimals)