From bd880c18d11a07c53aa8b9914809868594752c4c Mon Sep 17 00:00:00 2001 From: sascha Date: Tue, 16 Sep 2025 22:14:31 +0200 Subject: [PATCH] Resync --- .../CunaFinanceBsc.sol/CunaFinanceBsc.json | 22 ++------------- contracts/CunaFinanceBsc.sol | 28 ++++--------------- 2 files changed, 8 insertions(+), 42 deletions(-) diff --git a/artifacts/contracts/CunaFinanceBsc.sol/CunaFinanceBsc.json b/artifacts/contracts/CunaFinanceBsc.sol/CunaFinanceBsc.json index 494f9fb..103a04a 100644 --- a/artifacts/contracts/CunaFinanceBsc.sol/CunaFinanceBsc.json +++ b/artifacts/contracts/CunaFinanceBsc.sol/CunaFinanceBsc.json @@ -495,24 +495,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "createUserStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -2151,8 +2133,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615df580620000e66000396000f3fe608060405234801561001057600080fd5b50600436106103635760003560e01c8062159da614610368578063013745181461038e578063022914a7146103c45780630519da32146103f7578063092c7610146104005780630a84096a146104205780630a910a6d146104335780630c7d63861461043c57806313baee5b14610446578063173825d9146104665780631764303d146104795780631aefa2d11461048c5780631eb9e53e1461049f5780632ded58aa146104b25780632e46fed8146104bb5780633ba8396e146104e45780633c92f98d146105075780633f35e7221461052957806343a32f891461053c57806343c7c011146105b7578063441a4175146105ca5780634a61f1e5146105eb57806351e624721461060b57806351f6cf2f1461061e578063549e61d31461063f5780635811622714610652578063592d1dd11461066557806361d1080b1461068557806362cd6a091461068d57806367a74ddc146106a45780636ef569a5146106b75780637065cb48146106c057806374d1c8e3146106d357806375060a0b146106e65780637a0c6dc0146107065780637bc221ac146107265780637e6d99261461073957806380ca0ecf146107625780638129fc1c1461077557806382b756811461077d57806384e8520a14610790578063853e0df2146107b05780638851ec0f146107c35780638939d787146107d65780638f82818f146107df5780639437e32e146107ff578063953d16bf1461081257806396fd111a146108255780639cb6f556146108455780639f3a676c14610858578063a0d46758146108a4578063aaf4b04d146108c4578063ac97b417146108d7578063b6c3dc4c146108ea578063b92a349f1461090a578063bc0bc6ba1461091d578063bd84477d1461093d578063bed9757e146109a5578063c2676603146109c6578063c32d3ae2146109ce578063c6b61e4c14610a01578063c7b530b014610a71578063cc573a9114610a91578063ce13d09014610acd578063ce3432c314610ae0578063cfcf331914610b00578063d532bdfe14610b13578063da1b436414610b26578063e88f8e6614610b46578063eacdc5ff14610b59578063eb44e0a314610b62578063ef5d9ae814610b75578063f109208f14610b95578063f2bb563014610ba8578063fe2f50d014610bbb578063ffecf51614610bc4575b600080fd5b61037b6103763660046153c8565b610bd7565b6040519081526020015b60405180910390f35b6103b761039c3660046153c8565b6004602052600090815260409020546001600160a01b031681565b60405161038591906153ea565b6103e76103d23660046153c8565b60006020819052908152604090205460ff1681565b6040519015158152602001610385565b61037b60075481565b61037b61040e3660046153c8565b60066020526000908152604090205481565b61037b61042e3660046153fe565b610c71565b61037b60125481565b610444610da9565b005b61037b6104543660046153c8565b600c6020526000908152604090205481565b6104446104743660046153c8565b610f6f565b61044461048736600461546c565b611060565b61044461049a3660046154ad565b61129e565b61037b6104ad3660046153c8565b6112d2565b61037b60115481565b61037b6104c93660046153c8565b6001600160a01b03166000908152601c602052604090205490565b6103e76104f23660046153c8565b60016020526000908152604090205460ff1681565b61051a61051536600461546c565b611316565b60405161038593929190615501565b6104446105373660046153fe565b611507565b61058861054a3660046153fe565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610385949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b6104446105c53660046153c8565b61157c565b6105dd6105d83660046154ad565b6118ea565b604051610385929190615537565b61037b6105f93660046153c8565b60186020526000908152604090205481565b6104446106193660046154ad565b611922565b61063161062c3660046153fe565b611956565b604051610385929190615550565b61044461064d36600461555e565b611992565b6104446106603660046155c9565b611c49565b61037b6106733660046153c8565b60056020526000908152604090205481565b601b5461037b565b610695611eb3565b60405161038593929190615617565b6104446106b23660046156b9565b6120da565b61037b60165481565b6104446106ce3660046153c8565b612137565b6104446106e13660046156ec565b612209565b61037b6106f43660046153c8565b600a6020526000908152604090205481565b6107196107143660046153c8565b6123ec565b6040516103859190615757565b61037b6107343660046153c8565b6124d3565b61037b6107473660046153c8565b6001600160a01b031660009081526017602052604090205490565b61037b6107703660046153fe565b6126a7565b6104446127b3565b61044461078b3660046154ad565b6129dc565b61037b61079e3660046153c8565b600d6020526000908152604090205481565b6104446107be3660046154ad565b612a6e565b6104446107d1366004615805565b612aec565b61037b60135481565b61037b6107ed3660046153c8565b60176020526000908152604090205481565b61044461080d366004615831565b612c78565b6104446108203660046154ad565b612cbf565b6108386108333660046155c9565b612fac565b60405161038591906158c3565b6104446108533660046154ad565b61314b565b61086b6108663660046154ad565b6133da565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610385565b6108b76108b23660046153fe565b61342d565b6040516103859190615911565b6104446108d23660046154ad565b613491565b6104446108e53660046154ad565b613517565b6108fd6108f83660046153fe565b613909565b604051610385919061594b565b610444610918366004615959565b613a1b565b61093061092b3660046154ad565b613be4565b604051610385919061598c565b61095061094b3660046153fe565b613c88565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e0840152151561010083015261012082015261014001610385565b6109b86109b33660046153fe565b613d06565b60405161038592919061599a565b6103e761037b565b6109e16109dc3660046153c8565b613eac565b604080519485526020850193909352918301526060820152608001610385565b610a44610a0f3660046154ad565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610385565b610a84610a7f3660046153c8565b613f00565b60405161038591906159bf565b610aa4610a9f3660046153fe565b613f95565b604080519485526020850193909352918301526001600160a01b03166060820152608001610385565b610444610adb3660046154ad565b613fe4565b610af3610aee3660046153c8565b614018565b6040516103859190615a01565b610af3610b0e3660046155c9565b6142d8565b610444610b2136600461546c565b61445e565b61037b610b343660046153c8565b600e6020526000908152604090205481565b61051a610b543660046153c8565b6146a9565b61037b60105481565b610444610b703660046153fe565b614884565b61037b610b833660046153c8565b601c6020526000908152604090205481565b610444610ba33660046153fe565b614dd4565b610444610bb63660046155c9565b614eff565b61037b60155481565b610444610bd23660046153c8565b614fb9565b600080610be3836112d2565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610c69578215610c57576000818152600b602052604081206004015461271090610c319086615a91565b610c3b9190615aa8565b9050610c478186615aca565b9450610c538185615add565b9350505b80610c6181615af0565b915050610c01565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610c9e57610c9e615b09565b906000526020600020906009020190506000816006015442610cc09190615add565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d9c576001600160a01b0383166000908152600360205260408120805483908110610d1f57610d1f615b09565b6000918252602082206002909102018054600182015460088a015492945090929091606490610d5090600a90615a91565b610d5a9190615aa8565b9050828810610d8757612710610d708383615a91565b610d7a9190615aa8565b610d849087615aca565b95505b5050505080610d9590615af0565b9050610cd5565b5093505050505b92915050565b610db1615035565b6000610dbc33610bd7565b905060008111610de75760405162461bcd60e51b8152600401610dde90615b1f565b60405180910390fd5b336000908152600c602052604081208054839290610e06908490615add565b925050819055508060116000828254610e1f9190615add565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610e54908490615aca565b909155505060088054906000610e6983615af0565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610ea69042615aca565b8152600080516020615d60833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615d008339815191528054839290610f3c908490615aca565b90915550506040518181523390600080516020615d208339815191529060200160405180910390a250610f6d61506b565b565b3360009081526020819052604090205460ff16610f9e5760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811660009081526020819052604090205460ff16610ff25760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610dde565b336001600160a01b0382160361103f5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610dde565b6001600160a01b03166000908152602081905260409020805460ff19169055565b611068615035565b6000805b8281101561121757600084848381811061108857611088615b09565b336000908152600260209081526040909120549102929092013592505081106110b15750611205565b3360009081526002602052604081208054839081106110d2576110d2615b09565b9060005260206000209060090201905060006110ee3384610c71565b9050816004015481101561110457505050611205565b60008260040154826111169190615add565b9050806000036111295750505050611205565b8083600401600082825461113d9190615aca565b9091555061114d90508187615aca565b336000908152600f6020526040908190208151608081019092529197508061117887620f4240615aca565b8152602001838152602001600754426111919190615aca565b8152600080516020615d60833981519152602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b8061120f81615af0565b91505061106c565b50801561129157600080516020615d608339815191526000908152600a602052600080516020615d008339815191528054839290611256908490615aca565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b5061129a61506b565b5050565b3360009081526020819052604090205460ff166112cd5760405162461bcd60e51b8152600401610dde90615b49565b601655565b6001600160a01b0381166000908152600c6020908152604080832054601890925282205480821161130457600061130e565b61130e8183615add565b949350505050565b606080600083806001600160401b0381111561133457611334615b71565b60405190808252806020026020018201604052801561135d578160200160208202803683370190505b509350806001600160401b0381111561137857611378615b71565b6040519080825280602002602001820160405280156113a1578160200160208202803683370190505b50925060005b818110156114fe5760008787838181106113c3576113c3615b09565b90506020020160208101906113d891906153c8565b6001600160a01b038116600090815260066020526040902054875191925090819088908590811061140b5761140b615b09565b6020908102919091018101919091526001600160a01b03808416600090815260049283905260408082205490516302c68be360e31b815291939216916316345f1891611459918791016153ea565b602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615b87565b90506000670de0b6b3a76400006114b18484615a91565b6114bb9190615aa8565b9050808886815181106114d0576114d0615b09565b60209081029190910101526114e58188615aca565b96505050505080806114f690615af0565b9150506113a7565b50509250925092565b3360009081526020819052604090205460ff166115365760405162461bcd60e51b8152600401610dde90615b49565b61154a6001600160a01b038316338361507c565b6040518181526001600160a01b038316903390600080516020615da08339815191529060200160405180910390a35050565b611584615035565b6000805b3360009081526002602052604090205481101561168f573360009081526002602052604081208054839081106115c0576115c0615b09565b6000918252602090912060099091020160078101549091506001600160a01b0385811691161480156115fe57506007810154600160a01b900460ff16155b1561167c57600061160f33846126a7565b9050816003015481111561167a57600082600301548261162f9190615add565b905061163b8186615aca565b9450808360030160008282546116519190615aca565b909155505082546003840154106116785760078301805460ff60a01b1916600160a01b1790555b505b505b508061168781615af0565b915050611588565b50600081116116b05760405162461bcd60e51b8152600401610dde90615b1f565b33600090815260056020526040902054156117bd576001600160a01b0380831660009081526004602081905260408083205490516302c68be360e31b81529293670de0b6b3a764000093869392909116916316345f1891611713918991016153ea565b602060405180830381865afa158015611730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117549190615b87565b61175e9190615a91565b6117689190615aa8565b33600090815260056020526040902054909150811061179657336000908152600560205260408120556117bb565b33600090815260056020526040812080548392906117b5908490615add565b90915550505b505b6001600160a01b038216600090815260066020526040812080548392906117e5908490615add565b9091555050336000908152600f60205260408082208151608081019092526009805491938392919061181683615af0565b919050558152602001838152602001600754426118339190615aca565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a9052812080548392906118ae908490615aca565b90915550506040513390600080516020615d40833981519152906118d6908490600090615550565b60405180910390a2506118e761506b565b50565b601981815481106118fa57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff166119515760405162461bcd60e51b8152600401610dde90615b49565b601555565b6003602052816000526040600020818154811061197257600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff166119c15760405162461bcd60e51b8152600401610dde90615b49565b828114611a085760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610dde565b82611a445760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610dde565b6000805b84811015611c2a576000868683818110611a6457611a64615b09565b9050602002016020810190611a7991906153c8565b6001600160a01b031603611a9f5760405162461bcd60e51b8152600401610dde90615ba0565b6000848483818110611ab357611ab3615b09565b9050602002013511611ad75760405162461bcd60e51b8152600401610dde90615bc9565b838382818110611ae957611ae9615b09565b90506020020135600c6000888885818110611b0657611b06615b09565b9050602002016020810190611b1b91906153c8565b6001600160a01b03168152602081019190915260400160002054611b3f9084615add565b611b499190615aca565b9150838382818110611b5d57611b5d615b09565b90506020020135600c6000888885818110611b7a57611b7a615b09565b9050602002016020810190611b8f91906153c8565b6001600160a01b03168152602081019190915260400160002055858582818110611bbb57611bbb615b09565b9050602002016020810190611bd091906153c8565b6001600160a01b0316600080516020615ce0833981519152858584818110611bfa57611bfa615b09565b90506020020135604051611c1091815260200190565b60405180910390a280611c2281615af0565b915050611a48565b508060116000828254611c3d9190615aca565b90915550505050505050565b611c51615035565b60008211611c915760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610dde565b60008111611cb15760405162461bcd60e51b8152600401610dde90615bf1565b601554821015611cf95760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610dde565b6000611d04336112d2565b905080831115611d265760405162461bcd60e51b8152600401610dde90615c1d565b60088054906000611d3683615af0565b90915550506008543360009081526018602052604081208054869290611d5d908490615aca565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9696909101559054611e629190615add565b336000818152601a6020908152604080832086845290915290819020929092559051600080516020615d8083398151915290611ea19086908590615550565b60405180910390a2505061129a61506b565b60195460609081908190806001600160401b03811115611ed557611ed5615b71565b604051908082528060200260200182016040528015611efe578160200160208202803683370190505b509350806001600160401b03811115611f1957611f19615b71565b604051908082528060200260200182016040528015611f42578160200160208202803683370190505b509250806001600160401b03811115611f5d57611f5d615b71565b604051908082528060200260200182016040528015611f9657816020015b611f836152bd565b815260200190600190039081611f7b5790505b50915060005b818110156120d357600060198281548110611fb957611fb9615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b031680835260019091015492820192909252875190925087908490811061200657612006615b09565b60200260200101906001600160a01b031690816001600160a01b031681525050806020015185838151811061203d5761203d615b09565b60209081029190910181019190915281516001600160a01b03908116600090815260148352604080822085850151835284529081902081516080810183528154815260018201549481019490945260028101549092169083015260030154606082015284518590849081106120b4576120b4615b09565b60200260200101819052505080806120cb90615af0565b915050611f9c565b5050909192565b3360009081526020819052604090205460ff166121095760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff166121665760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811661218c5760405162461bcd60e51b8152600401610dde90615ba0565b6001600160a01b03811660009081526020819052604090205460ff16156121e55760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610dde565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b3360009081526001602052604090205460ff166122385760405162461bcd60e51b8152600401610dde90615b49565b60026000896001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808981526020018881526020018781526020016000815260200160008152602001848152602001838152602001866001600160a01b03168152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505082600560008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546123b09190615aca565b90915550506001600160a01b038416600090815260066020526040812080548992906123dd908490615aca565b90915550505050505050505050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156124c857600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff161515610100840152600801546101208301529083529092019101612424565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b818110156126a0576001600160a01b038416600090815260026020526040812080548390811061252057612520615b09565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b9091041615156101008201819052600890920154610120820152915061268d5760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f189261260192016153ea565b602060405180830381865afa15801561261e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126429190615b87565b905060008260600151836000015161265a9190615add565b90506000670de0b6b3a76400006126718385615a91565b61267b9190615aa8565b90506126878188615aca565b96505050505b508061269881615af0565b9150506124ee565b5050919050565b6001600160a01b03821660009081526002602052604081208054829190849081106126d4576126d4615b09565b9060005260206000209060090201905060008160060154426126f69190615add565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d9c576001600160a01b038316600090815260036020526040812080548390811061275557612755615b09565b60009182526020909120600290910201805460018201549192509081871061279f57875461271090612788908390615a91565b6127929190615aa8565b61279c9086615aca565b94505b505050806127ac90615af0565b905061270b565b60006127bd6150d9565b805490915060ff600160401b82041615906001600160401b03166000811580156127e45750825b90506000826001600160401b031660011480156128005750303b155b90508115801561280e575080155b1561282c5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561285557845460ff60401b1916600160401b1785555b61285d615102565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c580548216831790557f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548216831790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054821683179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e84527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc80549091169091179055600c905269021e19e0c9bab24000007f649cbac87391465cfe24c65b052f0edf3b8486f136e0b91262d76d1f34d7826b819055601180549192909161297e908490615aca565b90915550506201fa40600755606460135583156129d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b3360009081526020819052604090205460ff16612a0b5760405162461bcd60e51b8152600401610dde90615b49565b60008111612a695760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610dde565b601355565b3360009081526020819052604090205460ff16612a9d5760405162461bcd60e51b8152600401610dde90615b49565b612ab6600080516020615d60833981519152338361507c565b604051818152600080516020615d60833981519152903390600080516020615da08339815191529060200160405180910390a350565b3360009081526020819052604090205460ff16612b1b5760405162461bcd60e51b8152600401610dde90615b49565b60105460009015612b66576000600b60006001601054612b3b9190615add565b81526020019081526020016000209050612b62846011548360010154846002015487615112565b9150505b601354811115612bb15760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610dde565b6040805160c08101825285815260208082018681526011548385019081526060808501888152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518781529182018590529281018590527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a260108054906000612c6d83615af0565b919050555050505050565b3360009081526001602052604090205460ff16612ca75760405162461bcd60e51b8152600401610dde90615b49565b612cb78686868686864242612209565b505050505050565b33600090815260146020908152604080832084845290915290208054612cf75760405162461bcd60e51b8152600401610dde90615c4d565b60028101546001600160a01b03163314612d235760405162461bcd60e51b8152600401610dde90615c78565b805460165460009061271090612d399084615a91565b612d439190615aa8565b33600090815260186020526040812080549293508492909190612d67908490615add565b90915550508015612db057336000908152600c602052604081208054839290612d91908490615add565b925050819055508060116000828254612daa9190615add565b90915550505b8015612dfa57336001600160a01b03167f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f98286604051612df1929190615550565b60405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a82528083208884529091528120546019549092612e5a91615add565b9050808214612f1b57600060198281548110612e7857612e78615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110612ec457612ec4615b09565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480612f2c57612f2c615ca0565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d910160405180910390a2505050505050565b606081831115612fee5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610dde565b60105482106130355760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610dde565b60006130418484615add565b61304c906001615aca565b90506000816001600160401b0381111561306857613068615b71565b6040519080825280602002602001820160405280156130a157816020015b61308e6152ee565b8152602001906001900390816130865790505b50905060005b8281101561314257600b60006130bd8389615aca565b81526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505082828151811061312457613124615b09565b6020026020010181905250808061313a90615af0565b9150506130a7565b50949350505050565b613153615035565b600081116131735760405162461bcd60e51b8152600401610dde90615bc9565b6000601254116131bc5760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610dde565b60006131c7336112d2565b9050808211156131e95760405162461bcd60e51b8152600401610dde90615c1d565b6127106131f8826109c4615a91565b6132029190615aa8565b8210156132425760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610dde565b6000612710601254846132559190615a91565b61325f9190615aa8565b336000908152600c6020526040812080549293508592909190613283908490615add565b92505081905550826011600082825461329c9190615add565b9091555050336000908152601c6020526040812080548392906132c0908490615aca565b9091555050600880549060006132d583615af0565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906133129042615aca565b8152600080516020615d60833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615d0083398151915280548392906133a8908490615aca565b90915550506040518181523390600080516020615d208339815191529060200160405180910390a250506118e761506b565b601b81815481106133ea57600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b6134356152bd565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166134c05760405162461bcd60e51b8152600401610dde90615b49565b6127108111156135125760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610dde565b601255565b61351f615035565b3360009081526002602052604090205481106135755760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610dde565b33600090815260026020526040812080548390811061359657613596615b09565b906000526020600020906009020190508060070160149054906101000a900460ff16156135f85760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610dde565b600061360433846126a7565b905081600301548110156136515760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610dde565b60008260030154826136639190615add565b9050600081116136855760405162461bcd60e51b8152600401610dde90615b1f565b808360030160008282546136999190615aca565b909155505082546003840154106136c05760078301805460ff60a01b1916600160a01b1790555b33600090815260056020526040902054156137d15760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b81529294670de0b6b3a764000094879492909116926316345f18926137279291016153ea565b602060405180830381865afa158015613744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137689190615b87565b6137729190615a91565b61377c9190615aa8565b3360009081526005602052604090205490915081106137aa57336000908152600560205260408120556137cf565b33600090815260056020526040812080548392906137c9908490615add565b90915550505b505b60078301546001600160a01b0316600090815260066020526040812080548392906137fd908490615add565b9091555050336000908152600f60205260408082208151608081019092526009805491938392919061382e83615af0565b9190505581526020018381526020016007544261384b9190615aca565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a9052812080548392906138ce908490615aca565b90915550506040513390600080516020615d40833981519152906138f6908490600090615550565b60405180910390a25050506118e761506b565b61393d604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613a02578382828154811061397357613973615b09565b906000526020600020906004020160000154036139f05781818154811061399c5761399c615b09565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610da3915050565b806139fa81615af0565b915050613957565b5060405162461bcd60e51b8152600401610dde90615cb6565b3360009081526020819052604090205460ff16613a4a5760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b038316613a985760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610dde565b600081118015613aaa57506127108111155b613aeb5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610dde565b6001600160a01b0383166000908152600360205260408120613b0c91615324565b6000825b612710821015613ba95782612710613b288285615aca565b1115613b3d57613b3a83612710615add565b90505b6001600160a01b0386166000908152600360209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155613b958184615aca565b9250613ba18583615aca565b915050613b10565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b613bec6152ee565b6010548210613c2f5760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610dde565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b60026020528160005260406000208181548110613ca457600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b038216600090815260026020526040812080546060928392909185908110613d3757613d37615b09565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115613d7f57613d7f615b71565b604051908082528060200260200182016040528015613da8578160200160208202803683370190505b5090506000826001600160401b03811115613dc557613dc5615b71565b604051908082528060200260200182016040528015613dee578160200160208202803683370190505b50905060005b83811015613e9b576001600160a01b0385166000908152600360205260408120805483908110613e2657613e26615b09565b9060005260206000209060020201905080600001548760060154613e4a9190615aca565b848381518110613e5c57613e5c615b09565b6020026020010181815250508060010154838381518110613e7f57613e7f615b09565b602090810291909101015250613e9481615af0565b9050613df4565b5090955093505050505b9250929050565b6000806000806000613ebd86610bd7565b90506000613eca876112d2565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b828210156124c857600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b031660608301529083529092019101613f38565b600f6020528160005260406000208181548110613fb157600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166140135760405162461bcd60e51b8152600401610dde90615b49565b600755565b60606001600160a01b0382166140405760405162461bcd60e51b8152600401610dde90615ba0565b6000805b601b548110156140f057836001600160a01b0316601b828154811061406b5761406b615b09565b60009182526020909120600460069092020101546001600160a01b031614806140cb5750836001600160a01b0316601b82815481106140ac576140ac615b09565b60009182526020909120600560069092020101546001600160a01b0316145b156140de57816140da81615af0565b9250505b806140e881615af0565b915050614044565b508060000361413257604080516000808252602082019092529061412a565b614117615345565b81526020019060019003908161410f5790505b509392505050565b6000816001600160401b0381111561414c5761414c615b71565b60405190808252806020026020018201604052801561418557816020015b614172615345565b81526020019060019003908161416a5790505b5090506000805b601b548110156142ce57856001600160a01b0316601b82815481106141b3576141b3615b09565b60009182526020909120600460069092020101546001600160a01b031614806142135750856001600160a01b0316601b82815481106141f4576141f4615b09565b60009182526020909120600560069092020101546001600160a01b0316145b156142bc57601b818154811061422b5761422b615b09565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a082015283518490849081106142a2576142a2615b09565b602002602001018190525081806142b890615af0565b9250505b806142c681615af0565b91505061418c565b5090949350505050565b601b5460609083106143285760405162461bcd60e51b8152602060048201526019602482015278537461727420696e646578206f7574206f6620626f756e647360381b6044820152606401610dde565b60006143348385615aca565b601b549091508111156143465750601b545b60006143528583615add565b6001600160401b0381111561436957614369615b71565b6040519080825280602002602001820160405280156143a257816020015b61438f615345565b8152602001906001900390816143875790505b509050845b8281101561314257601b81815481106143c2576143c2615b09565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826144308884615add565b8151811061444057614440615b09565b6020026020010181905250808061445690615af0565b9150506143a7565b614466615035565b336000908152600f6020526040902080546144b95760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610dde565b816144fe5760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610dde565b60005b8281101561469f57600084848381811061451d5761451d615b09565b9050602002013590506000805b845481101561466c57600085828154811061454757614547615b09565b9060005260206000209060040201905083816000015414801561456e575060008160010154115b156146595780600201544210156145b65760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610dde565b60018101805460038301546000928390556001600160a01b0316808352600a602052604083208054929391928492906145f0908490615add565b9091555061460a90506001600160a01b038216338461507c565b336001600160a01b03167f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef8388604051614645929190615550565b60405180910390a26001945050505061466c565b508061466481615af0565b91505061452a565b508061468a5760405162461bcd60e51b8152600401610dde90615cb6565b5050808061469790615af0565b915050614501565b505061129a61506b565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205460105460609384939092909183906146e6908390615add565b90508060000361471757505060408051600080825260208201818152828401909352909550909350915061487d9050565b806001600160401b0381111561472f5761472f615b71565b604051908082528060200260200182016040528015614758578160200160208202803683370190505b509550806001600160401b0381111561477357614773615b71565b60405190808252806020026020018201604052801561479c578160200160208202803683370190505b50945060005b818110156148785760006147b68285615aca565b9050808883815181106147cb576147cb615b09565b60209081029190910101528415614844576000818152600b6020526040812060040154612710906147fc9088615a91565b6148069190615aa8565b90508088848151811061481b5761481b615b09565b60209081029190910101526148308188615aca565b965061483c8187615add565b955050614865565b600087838151811061485857614858615b09565b6020026020010181815250505b508061487081615af0565b9150506147a2565b505050505b9193909250565b61488c615035565b6001600160a01b0382166000908152601460209081526040808320848452909152902080546148cd5760405162461bcd60e51b8152600401610dde90615c4d565b336001600160a01b0384160361491e5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610dde565b805460018201546003830154600082841161493a576000614944565b6149448385615add565b905060008461495583612710615a91565b61495f9190615aa8565b905060006127106149708380615a91565b61497a9190615aa8565b9050600061271061498b8389615a91565b6149959190615aa8565b905060006149a38289615add565b90506149bf600080516020615d60833981519152338d8a6151ab565b6001600160a01b038b166000908152600c6020526040812080548a92906149e7908490615add565b9091555050336000908152600c602052604081208054839290614a0b908490615aca565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614a38908490615add565b925050819055508160116000828254614a519190615add565b90915550506001600160a01b038b1660009081526017602052604081208054899290614a7e908490615aca565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c815260200190815260200160002054905060006001601980549050614c2d9190615add565b9050808214614cee57600060198281548110614c4b57614c4b615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110614c9757614c97615b09565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480614cff57614cff615ca0565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f604051614db9929190615550565b60405180910390a3505050505050505050505061129a61506b565b3360009081526001602052604090205460ff16614e035760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b038216614e295760405162461bcd60e51b8152600401610dde90615ba0565b60008111614e495760405162461bcd60e51b8152600401610dde90615bc9565b6001600160a01b0382166000908152600c60205260409020546011548291614e7091615add565b614e7a9190615aca565b6011556001600160a01b0382166000908152600d60205260408120549003614eb8576001600160a01b0382166000908152600d602052604090208190555b6001600160a01b0382166000818152600c60205260409081902083905551600080516020615ce083398151915290614ef39084815260200190565b60405180910390a25050565b33600090815260146020908152604080832085845290915290208054614f375760405162461bcd60e51b8152600401610dde90615c4d565b60028101546001600160a01b03163314614f635760405162461bcd60e51b8152600401610dde90615c78565b60008211614f835760405162461bcd60e51b8152600401610dde90615bf1565b600181018290556040513390600080516020615d8083398151915290614fac9085908790615550565b60405180910390a2505050565b3360009081526020819052604090205460ff16614fe85760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811661500e5760405162461bcd60e51b8152600401610dde90615ba0565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600061503f6151ea565b80549091506001190161506557604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60006150756151ea565b6001905550565b6150d483846001600160a01b031663a9059cbb85856040516024016150a2929190615537565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061520e565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610da3565b61510a615276565b610f6d61529b565b600082158061511f575084155b1561512c575060006151a2565b60008561513b88612710615a91565b6151459190615aa8565b905060008461515687612710615a91565b6151609190615aa8565b9050808211615174576000925050506151a2565b60006151808284615add565b905060006127106151918784615a91565b61519b9190615aa8565b9450505050505b95945050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526151e49186918216906323b872dd906084016150a2565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b600080602060008451602086016000885af180615231576040513d6000823e3d81fd5b50506000513d91508115615249578060011415615256565b6001600160a01b0384163b155b156151e45783604051635274afe760e01b8152600401610dde91906153ea565b61527e6152a3565b610f6d57604051631afcd79f60e31b815260040160405180910390fd5b61506b615276565b60006152ad6150d9565b54600160401b900460ff16919050565b6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50805460008255600202906000526020600020908101906118e7919061538d565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b5b808211156153a8576000808255600182015560020161538e565b5090565b80356001600160a01b03811681146153c357600080fd5b919050565b6000602082840312156153da57600080fd5b6153e3826153ac565b9392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561541157600080fd5b61541a836153ac565b946020939093013593505050565b60008083601f84011261543a57600080fd5b5081356001600160401b0381111561545157600080fd5b6020830191508360208260051b8501011115613ea557600080fd5b6000806020838503121561547f57600080fd5b82356001600160401b0381111561549557600080fd5b6154a185828601615428565b90969095509350505050565b6000602082840312156154bf57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156154f6578151875295820195908201906001016154da565b509495945050505050565b60608152600061551460608301866154c6565b828103602084015261552681866154c6565b915050826040830152949350505050565b6001600160a01b03929092168252602082015260400190565b918252602082015260400190565b6000806000806040858703121561557457600080fd5b84356001600160401b038082111561558b57600080fd5b61559788838901615428565b909650945060208701359150808211156155b057600080fd5b506155bd87828801615428565b95989497509550505050565b600080604083850312156155dc57600080fd5b50508035926020909101359150565b80518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b60608082528451908201819052600090608090818401906020808901855b8381101561565a5781516001600160a01b031685529382019390820190600101615635565b50508583038187015261566d83896154c6565b868103604088015287518082528289019450908201925060005b818110156156aa5761569a8486516155eb565b9382019392850192600101615687565b50919998505050505050505050565b600080604083850312156156cc57600080fd5b6156d5836153ac565b91506156e3602084016153ac565b90509250929050565b600080600080600080600080610100898b03121561570957600080fd5b615712896153ac565b975060208901359650604089013595506060890135945061573560808a016153ac565b979a969950949793969560a0850135955060c08501359460e001359350915050565b602080825282518282018190526000919060409081850190868401855b828110156157f85781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b0316908601526101008082015115159086015261012090810151908501526101409093019290850190600101615774565b5091979650505050505050565b60008060006060848603121561581a57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561584a57600080fd5b615853876153ac565b9550602087013594506040870135935060608701359250615876608088016153ac565b915060a087013590509295509295509295565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020808252825182820181905260009190848201906040850190845b81811015615905576158f2838551615889565b9284019260c092909201916001016158df565b50909695505050505050565b60808101610da382846155eb565b8051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b60808101610da3828461591f565b60008060006060848603121561596e57600080fd5b615977846153ac565b95602085013595506040909401359392505050565b60c08101610da38284615889565b6040815260006159ad60408301856154c6565b82810360208401526151a281856154c6565b6020808252825182820181905260009190848201906040850190845b81811015615905576159ee83855161591f565b92840192608092909201916001016159db565b602080825282518282018190526000919060409081850190868401855b828110156157f85781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c09093019290850190600101615a1e565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610da357610da3615a7b565b600082615ac557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610da357610da3615a7b565b81810381811115610da357610da3615a7b565b600060018201615b0257615b02615a7b565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215615b9957600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260129082015271496e76616c69642073616c6520707269636560701b604082015260600190565b602080825260169082015275496e73756666696369656e74206e6574207374616b6560501b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b6020808252600e908201526d2737ba103a34329039b2b63632b960911b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6020808252600f908201526e14dd185ad9481b9bdd08199bdd5b99608a1b60408201526060019056feec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b15839b0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0a65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172100000000000000000000000055d398326f99059ff775485246999027b31979558e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031ca92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8aa2646970667358221220e8bbf14a16da2f6d39b0f9c64d46f6b295834da658f2286fd19f2d8da4be85f064736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103635760003560e01c8062159da614610368578063013745181461038e578063022914a7146103c45780630519da32146103f7578063092c7610146104005780630a84096a146104205780630a910a6d146104335780630c7d63861461043c57806313baee5b14610446578063173825d9146104665780631764303d146104795780631aefa2d11461048c5780631eb9e53e1461049f5780632ded58aa146104b25780632e46fed8146104bb5780633ba8396e146104e45780633c92f98d146105075780633f35e7221461052957806343a32f891461053c57806343c7c011146105b7578063441a4175146105ca5780634a61f1e5146105eb57806351e624721461060b57806351f6cf2f1461061e578063549e61d31461063f5780635811622714610652578063592d1dd11461066557806361d1080b1461068557806362cd6a091461068d57806367a74ddc146106a45780636ef569a5146106b75780637065cb48146106c057806374d1c8e3146106d357806375060a0b146106e65780637a0c6dc0146107065780637bc221ac146107265780637e6d99261461073957806380ca0ecf146107625780638129fc1c1461077557806382b756811461077d57806384e8520a14610790578063853e0df2146107b05780638851ec0f146107c35780638939d787146107d65780638f82818f146107df5780639437e32e146107ff578063953d16bf1461081257806396fd111a146108255780639cb6f556146108455780639f3a676c14610858578063a0d46758146108a4578063aaf4b04d146108c4578063ac97b417146108d7578063b6c3dc4c146108ea578063b92a349f1461090a578063bc0bc6ba1461091d578063bd84477d1461093d578063bed9757e146109a5578063c2676603146109c6578063c32d3ae2146109ce578063c6b61e4c14610a01578063c7b530b014610a71578063cc573a9114610a91578063ce13d09014610acd578063ce3432c314610ae0578063cfcf331914610b00578063d532bdfe14610b13578063da1b436414610b26578063e88f8e6614610b46578063eacdc5ff14610b59578063eb44e0a314610b62578063ef5d9ae814610b75578063f109208f14610b95578063f2bb563014610ba8578063fe2f50d014610bbb578063ffecf51614610bc4575b600080fd5b61037b6103763660046153c8565b610bd7565b6040519081526020015b60405180910390f35b6103b761039c3660046153c8565b6004602052600090815260409020546001600160a01b031681565b60405161038591906153ea565b6103e76103d23660046153c8565b60006020819052908152604090205460ff1681565b6040519015158152602001610385565b61037b60075481565b61037b61040e3660046153c8565b60066020526000908152604090205481565b61037b61042e3660046153fe565b610c71565b61037b60125481565b610444610da9565b005b61037b6104543660046153c8565b600c6020526000908152604090205481565b6104446104743660046153c8565b610f6f565b61044461048736600461546c565b611060565b61044461049a3660046154ad565b61129e565b61037b6104ad3660046153c8565b6112d2565b61037b60115481565b61037b6104c93660046153c8565b6001600160a01b03166000908152601c602052604090205490565b6103e76104f23660046153c8565b60016020526000908152604090205460ff1681565b61051a61051536600461546c565b611316565b60405161038593929190615501565b6104446105373660046153fe565b611507565b61058861054a3660046153fe565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610385949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b6104446105c53660046153c8565b61157c565b6105dd6105d83660046154ad565b6118ea565b604051610385929190615537565b61037b6105f93660046153c8565b60186020526000908152604090205481565b6104446106193660046154ad565b611922565b61063161062c3660046153fe565b611956565b604051610385929190615550565b61044461064d36600461555e565b611992565b6104446106603660046155c9565b611c49565b61037b6106733660046153c8565b60056020526000908152604090205481565b601b5461037b565b610695611eb3565b60405161038593929190615617565b6104446106b23660046156b9565b6120da565b61037b60165481565b6104446106ce3660046153c8565b612137565b6104446106e13660046156ec565b612209565b61037b6106f43660046153c8565b600a6020526000908152604090205481565b6107196107143660046153c8565b6123ec565b6040516103859190615757565b61037b6107343660046153c8565b6124d3565b61037b6107473660046153c8565b6001600160a01b031660009081526017602052604090205490565b61037b6107703660046153fe565b6126a7565b6104446127b3565b61044461078b3660046154ad565b6129dc565b61037b61079e3660046153c8565b600d6020526000908152604090205481565b6104446107be3660046154ad565b612a6e565b6104446107d1366004615805565b612aec565b61037b60135481565b61037b6107ed3660046153c8565b60176020526000908152604090205481565b61044461080d366004615831565b612c78565b6104446108203660046154ad565b612cbf565b6108386108333660046155c9565b612fac565b60405161038591906158c3565b6104446108533660046154ad565b61314b565b61086b6108663660046154ad565b6133da565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610385565b6108b76108b23660046153fe565b61342d565b6040516103859190615911565b6104446108d23660046154ad565b613491565b6104446108e53660046154ad565b613517565b6108fd6108f83660046153fe565b613909565b604051610385919061594b565b610444610918366004615959565b613a1b565b61093061092b3660046154ad565b613be4565b604051610385919061598c565b61095061094b3660046153fe565b613c88565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e0840152151561010083015261012082015261014001610385565b6109b86109b33660046153fe565b613d06565b60405161038592919061599a565b6103e761037b565b6109e16109dc3660046153c8565b613eac565b604080519485526020850193909352918301526060820152608001610385565b610a44610a0f3660046154ad565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610385565b610a84610a7f3660046153c8565b613f00565b60405161038591906159bf565b610aa4610a9f3660046153fe565b613f95565b604080519485526020850193909352918301526001600160a01b03166060820152608001610385565b610444610adb3660046154ad565b613fe4565b610af3610aee3660046153c8565b614018565b6040516103859190615a01565b610af3610b0e3660046155c9565b6142d8565b610444610b2136600461546c565b61445e565b61037b610b343660046153c8565b600e6020526000908152604090205481565b61051a610b543660046153c8565b6146a9565b61037b60105481565b610444610b703660046153fe565b614884565b61037b610b833660046153c8565b601c6020526000908152604090205481565b610444610ba33660046153fe565b614dd4565b610444610bb63660046155c9565b614eff565b61037b60155481565b610444610bd23660046153c8565b614fb9565b600080610be3836112d2565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610c69578215610c57576000818152600b602052604081206004015461271090610c319086615a91565b610c3b9190615aa8565b9050610c478186615aca565b9450610c538185615add565b9350505b80610c6181615af0565b915050610c01565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610c9e57610c9e615b09565b906000526020600020906009020190506000816006015442610cc09190615add565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d9c576001600160a01b0383166000908152600360205260408120805483908110610d1f57610d1f615b09565b6000918252602082206002909102018054600182015460088a015492945090929091606490610d5090600a90615a91565b610d5a9190615aa8565b9050828810610d8757612710610d708383615a91565b610d7a9190615aa8565b610d849087615aca565b95505b5050505080610d9590615af0565b9050610cd5565b5093505050505b92915050565b610db1615035565b6000610dbc33610bd7565b905060008111610de75760405162461bcd60e51b8152600401610dde90615b1f565b60405180910390fd5b336000908152600c602052604081208054839290610e06908490615add565b925050819055508060116000828254610e1f9190615add565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610e54908490615aca565b909155505060088054906000610e6983615af0565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610ea69042615aca565b8152600080516020615d60833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615d008339815191528054839290610f3c908490615aca565b90915550506040518181523390600080516020615d208339815191529060200160405180910390a250610f6d61506b565b565b3360009081526020819052604090205460ff16610f9e5760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811660009081526020819052604090205460ff16610ff25760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610dde565b336001600160a01b0382160361103f5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610dde565b6001600160a01b03166000908152602081905260409020805460ff19169055565b611068615035565b6000805b8281101561121757600084848381811061108857611088615b09565b336000908152600260209081526040909120549102929092013592505081106110b15750611205565b3360009081526002602052604081208054839081106110d2576110d2615b09565b9060005260206000209060090201905060006110ee3384610c71565b9050816004015481101561110457505050611205565b60008260040154826111169190615add565b9050806000036111295750505050611205565b8083600401600082825461113d9190615aca565b9091555061114d90508187615aca565b336000908152600f6020526040908190208151608081019092529197508061117887620f4240615aca565b8152602001838152602001600754426111919190615aca565b8152600080516020615d60833981519152602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b8061120f81615af0565b91505061106c565b50801561129157600080516020615d608339815191526000908152600a602052600080516020615d008339815191528054839290611256908490615aca565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b5061129a61506b565b5050565b3360009081526020819052604090205460ff166112cd5760405162461bcd60e51b8152600401610dde90615b49565b601655565b6001600160a01b0381166000908152600c6020908152604080832054601890925282205480821161130457600061130e565b61130e8183615add565b949350505050565b606080600083806001600160401b0381111561133457611334615b71565b60405190808252806020026020018201604052801561135d578160200160208202803683370190505b509350806001600160401b0381111561137857611378615b71565b6040519080825280602002602001820160405280156113a1578160200160208202803683370190505b50925060005b818110156114fe5760008787838181106113c3576113c3615b09565b90506020020160208101906113d891906153c8565b6001600160a01b038116600090815260066020526040902054875191925090819088908590811061140b5761140b615b09565b6020908102919091018101919091526001600160a01b03808416600090815260049283905260408082205490516302c68be360e31b815291939216916316345f1891611459918791016153ea565b602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615b87565b90506000670de0b6b3a76400006114b18484615a91565b6114bb9190615aa8565b9050808886815181106114d0576114d0615b09565b60209081029190910101526114e58188615aca565b96505050505080806114f690615af0565b9150506113a7565b50509250925092565b3360009081526020819052604090205460ff166115365760405162461bcd60e51b8152600401610dde90615b49565b61154a6001600160a01b038316338361507c565b6040518181526001600160a01b038316903390600080516020615da08339815191529060200160405180910390a35050565b611584615035565b6000805b3360009081526002602052604090205481101561168f573360009081526002602052604081208054839081106115c0576115c0615b09565b6000918252602090912060099091020160078101549091506001600160a01b0385811691161480156115fe57506007810154600160a01b900460ff16155b1561167c57600061160f33846126a7565b9050816003015481111561167a57600082600301548261162f9190615add565b905061163b8186615aca565b9450808360030160008282546116519190615aca565b909155505082546003840154106116785760078301805460ff60a01b1916600160a01b1790555b505b505b508061168781615af0565b915050611588565b50600081116116b05760405162461bcd60e51b8152600401610dde90615b1f565b33600090815260056020526040902054156117bd576001600160a01b0380831660009081526004602081905260408083205490516302c68be360e31b81529293670de0b6b3a764000093869392909116916316345f1891611713918991016153ea565b602060405180830381865afa158015611730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117549190615b87565b61175e9190615a91565b6117689190615aa8565b33600090815260056020526040902054909150811061179657336000908152600560205260408120556117bb565b33600090815260056020526040812080548392906117b5908490615add565b90915550505b505b6001600160a01b038216600090815260066020526040812080548392906117e5908490615add565b9091555050336000908152600f60205260408082208151608081019092526009805491938392919061181683615af0565b919050558152602001838152602001600754426118339190615aca565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a9052812080548392906118ae908490615aca565b90915550506040513390600080516020615d40833981519152906118d6908490600090615550565b60405180910390a2506118e761506b565b50565b601981815481106118fa57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff166119515760405162461bcd60e51b8152600401610dde90615b49565b601555565b6003602052816000526040600020818154811061197257600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff166119c15760405162461bcd60e51b8152600401610dde90615b49565b828114611a085760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610dde565b82611a445760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610dde565b6000805b84811015611c2a576000868683818110611a6457611a64615b09565b9050602002016020810190611a7991906153c8565b6001600160a01b031603611a9f5760405162461bcd60e51b8152600401610dde90615ba0565b6000848483818110611ab357611ab3615b09565b9050602002013511611ad75760405162461bcd60e51b8152600401610dde90615bc9565b838382818110611ae957611ae9615b09565b90506020020135600c6000888885818110611b0657611b06615b09565b9050602002016020810190611b1b91906153c8565b6001600160a01b03168152602081019190915260400160002054611b3f9084615add565b611b499190615aca565b9150838382818110611b5d57611b5d615b09565b90506020020135600c6000888885818110611b7a57611b7a615b09565b9050602002016020810190611b8f91906153c8565b6001600160a01b03168152602081019190915260400160002055858582818110611bbb57611bbb615b09565b9050602002016020810190611bd091906153c8565b6001600160a01b0316600080516020615ce0833981519152858584818110611bfa57611bfa615b09565b90506020020135604051611c1091815260200190565b60405180910390a280611c2281615af0565b915050611a48565b508060116000828254611c3d9190615aca565b90915550505050505050565b611c51615035565b60008211611c915760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610dde565b60008111611cb15760405162461bcd60e51b8152600401610dde90615bf1565b601554821015611cf95760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610dde565b6000611d04336112d2565b905080831115611d265760405162461bcd60e51b8152600401610dde90615c1d565b60088054906000611d3683615af0565b90915550506008543360009081526018602052604081208054869290611d5d908490615aca565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9696909101559054611e629190615add565b336000818152601a6020908152604080832086845290915290819020929092559051600080516020615d8083398151915290611ea19086908590615550565b60405180910390a2505061129a61506b565b60195460609081908190806001600160401b03811115611ed557611ed5615b71565b604051908082528060200260200182016040528015611efe578160200160208202803683370190505b509350806001600160401b03811115611f1957611f19615b71565b604051908082528060200260200182016040528015611f42578160200160208202803683370190505b509250806001600160401b03811115611f5d57611f5d615b71565b604051908082528060200260200182016040528015611f9657816020015b611f836152bd565b815260200190600190039081611f7b5790505b50915060005b818110156120d357600060198281548110611fb957611fb9615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b031680835260019091015492820192909252875190925087908490811061200657612006615b09565b60200260200101906001600160a01b031690816001600160a01b031681525050806020015185838151811061203d5761203d615b09565b60209081029190910181019190915281516001600160a01b03908116600090815260148352604080822085850151835284529081902081516080810183528154815260018201549481019490945260028101549092169083015260030154606082015284518590849081106120b4576120b4615b09565b60200260200101819052505080806120cb90615af0565b915050611f9c565b5050909192565b3360009081526020819052604090205460ff166121095760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff166121665760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811661218c5760405162461bcd60e51b8152600401610dde90615ba0565b6001600160a01b03811660009081526020819052604090205460ff16156121e55760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610dde565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b3360009081526001602052604090205460ff166122385760405162461bcd60e51b8152600401610dde90615b49565b60026000896001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808981526020018881526020018781526020016000815260200160008152602001848152602001838152602001866001600160a01b03168152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505082600560008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546123b09190615aca565b90915550506001600160a01b038416600090815260066020526040812080548992906123dd908490615aca565b90915550505050505050505050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156124c857600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff161515610100840152600801546101208301529083529092019101612424565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b818110156126a0576001600160a01b038416600090815260026020526040812080548390811061252057612520615b09565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b9091041615156101008201819052600890920154610120820152915061268d5760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f189261260192016153ea565b602060405180830381865afa15801561261e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126429190615b87565b905060008260600151836000015161265a9190615add565b90506000670de0b6b3a76400006126718385615a91565b61267b9190615aa8565b90506126878188615aca565b96505050505b508061269881615af0565b9150506124ee565b5050919050565b6001600160a01b03821660009081526002602052604081208054829190849081106126d4576126d4615b09565b9060005260206000209060090201905060008160060154426126f69190615add565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d9c576001600160a01b038316600090815260036020526040812080548390811061275557612755615b09565b60009182526020909120600290910201805460018201549192509081871061279f57875461271090612788908390615a91565b6127929190615aa8565b61279c9086615aca565b94505b505050806127ac90615af0565b905061270b565b60006127bd6150d9565b805490915060ff600160401b82041615906001600160401b03166000811580156127e45750825b90506000826001600160401b031660011480156128005750303b155b90508115801561280e575080155b1561282c5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561285557845460ff60401b1916600160401b1785555b61285d615102565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c580548216831790557f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548216831790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054821683179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e84527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc80549091169091179055600c905269021e19e0c9bab24000007f649cbac87391465cfe24c65b052f0edf3b8486f136e0b91262d76d1f34d7826b819055601180549192909161297e908490615aca565b90915550506201fa40600755606460135583156129d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b3360009081526020819052604090205460ff16612a0b5760405162461bcd60e51b8152600401610dde90615b49565b60008111612a695760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610dde565b601355565b3360009081526020819052604090205460ff16612a9d5760405162461bcd60e51b8152600401610dde90615b49565b612ab6600080516020615d60833981519152338361507c565b604051818152600080516020615d60833981519152903390600080516020615da08339815191529060200160405180910390a350565b3360009081526020819052604090205460ff16612b1b5760405162461bcd60e51b8152600401610dde90615b49565b60105460009015612b66576000600b60006001601054612b3b9190615add565b81526020019081526020016000209050612b62846011548360010154846002015487615112565b9150505b601354811115612bb15760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610dde565b6040805160c08101825285815260208082018681526011548385019081526060808501888152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518781529182018590529281018590527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a260108054906000612c6d83615af0565b919050555050505050565b3360009081526001602052604090205460ff16612ca75760405162461bcd60e51b8152600401610dde90615b49565b612cb78686868686864242612209565b505050505050565b33600090815260146020908152604080832084845290915290208054612cf75760405162461bcd60e51b8152600401610dde90615c4d565b60028101546001600160a01b03163314612d235760405162461bcd60e51b8152600401610dde90615c78565b805460165460009061271090612d399084615a91565b612d439190615aa8565b33600090815260186020526040812080549293508492909190612d67908490615add565b90915550508015612db057336000908152600c602052604081208054839290612d91908490615add565b925050819055508060116000828254612daa9190615add565b90915550505b8015612dfa57336001600160a01b03167f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f98286604051612df1929190615550565b60405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a82528083208884529091528120546019549092612e5a91615add565b9050808214612f1b57600060198281548110612e7857612e78615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110612ec457612ec4615b09565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480612f2c57612f2c615ca0565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d910160405180910390a2505050505050565b606081831115612fee5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610dde565b60105482106130355760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610dde565b60006130418484615add565b61304c906001615aca565b90506000816001600160401b0381111561306857613068615b71565b6040519080825280602002602001820160405280156130a157816020015b61308e6152ee565b8152602001906001900390816130865790505b50905060005b8281101561314257600b60006130bd8389615aca565b81526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505082828151811061312457613124615b09565b6020026020010181905250808061313a90615af0565b9150506130a7565b50949350505050565b613153615035565b600081116131735760405162461bcd60e51b8152600401610dde90615bc9565b6000601254116131bc5760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610dde565b60006131c7336112d2565b9050808211156131e95760405162461bcd60e51b8152600401610dde90615c1d565b6127106131f8826109c4615a91565b6132029190615aa8565b8210156132425760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610dde565b6000612710601254846132559190615a91565b61325f9190615aa8565b336000908152600c6020526040812080549293508592909190613283908490615add565b92505081905550826011600082825461329c9190615add565b9091555050336000908152601c6020526040812080548392906132c0908490615aca565b9091555050600880549060006132d583615af0565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906133129042615aca565b8152600080516020615d60833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615d0083398151915280548392906133a8908490615aca565b90915550506040518181523390600080516020615d208339815191529060200160405180910390a250506118e761506b565b601b81815481106133ea57600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b6134356152bd565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166134c05760405162461bcd60e51b8152600401610dde90615b49565b6127108111156135125760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610dde565b601255565b61351f615035565b3360009081526002602052604090205481106135755760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610dde565b33600090815260026020526040812080548390811061359657613596615b09565b906000526020600020906009020190508060070160149054906101000a900460ff16156135f85760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610dde565b600061360433846126a7565b905081600301548110156136515760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610dde565b60008260030154826136639190615add565b9050600081116136855760405162461bcd60e51b8152600401610dde90615b1f565b808360030160008282546136999190615aca565b909155505082546003840154106136c05760078301805460ff60a01b1916600160a01b1790555b33600090815260056020526040902054156137d15760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b81529294670de0b6b3a764000094879492909116926316345f18926137279291016153ea565b602060405180830381865afa158015613744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137689190615b87565b6137729190615a91565b61377c9190615aa8565b3360009081526005602052604090205490915081106137aa57336000908152600560205260408120556137cf565b33600090815260056020526040812080548392906137c9908490615add565b90915550505b505b60078301546001600160a01b0316600090815260066020526040812080548392906137fd908490615add565b9091555050336000908152600f60205260408082208151608081019092526009805491938392919061382e83615af0565b9190505581526020018381526020016007544261384b9190615aca565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a9052812080548392906138ce908490615aca565b90915550506040513390600080516020615d40833981519152906138f6908490600090615550565b60405180910390a25050506118e761506b565b61393d604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613a02578382828154811061397357613973615b09565b906000526020600020906004020160000154036139f05781818154811061399c5761399c615b09565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610da3915050565b806139fa81615af0565b915050613957565b5060405162461bcd60e51b8152600401610dde90615cb6565b3360009081526020819052604090205460ff16613a4a5760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b038316613a985760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610dde565b600081118015613aaa57506127108111155b613aeb5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610dde565b6001600160a01b0383166000908152600360205260408120613b0c91615324565b6000825b612710821015613ba95782612710613b288285615aca565b1115613b3d57613b3a83612710615add565b90505b6001600160a01b0386166000908152600360209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155613b958184615aca565b9250613ba18583615aca565b915050613b10565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b613bec6152ee565b6010548210613c2f5760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610dde565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b60026020528160005260406000208181548110613ca457600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b038216600090815260026020526040812080546060928392909185908110613d3757613d37615b09565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115613d7f57613d7f615b71565b604051908082528060200260200182016040528015613da8578160200160208202803683370190505b5090506000826001600160401b03811115613dc557613dc5615b71565b604051908082528060200260200182016040528015613dee578160200160208202803683370190505b50905060005b83811015613e9b576001600160a01b0385166000908152600360205260408120805483908110613e2657613e26615b09565b9060005260206000209060020201905080600001548760060154613e4a9190615aca565b848381518110613e5c57613e5c615b09565b6020026020010181815250508060010154838381518110613e7f57613e7f615b09565b602090810291909101015250613e9481615af0565b9050613df4565b5090955093505050505b9250929050565b6000806000806000613ebd86610bd7565b90506000613eca876112d2565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b828210156124c857600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b031660608301529083529092019101613f38565b600f6020528160005260406000208181548110613fb157600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166140135760405162461bcd60e51b8152600401610dde90615b49565b600755565b60606001600160a01b0382166140405760405162461bcd60e51b8152600401610dde90615ba0565b6000805b601b548110156140f057836001600160a01b0316601b828154811061406b5761406b615b09565b60009182526020909120600460069092020101546001600160a01b031614806140cb5750836001600160a01b0316601b82815481106140ac576140ac615b09565b60009182526020909120600560069092020101546001600160a01b0316145b156140de57816140da81615af0565b9250505b806140e881615af0565b915050614044565b508060000361413257604080516000808252602082019092529061412a565b614117615345565b81526020019060019003908161410f5790505b509392505050565b6000816001600160401b0381111561414c5761414c615b71565b60405190808252806020026020018201604052801561418557816020015b614172615345565b81526020019060019003908161416a5790505b5090506000805b601b548110156142ce57856001600160a01b0316601b82815481106141b3576141b3615b09565b60009182526020909120600460069092020101546001600160a01b031614806142135750856001600160a01b0316601b82815481106141f4576141f4615b09565b60009182526020909120600560069092020101546001600160a01b0316145b156142bc57601b818154811061422b5761422b615b09565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a082015283518490849081106142a2576142a2615b09565b602002602001018190525081806142b890615af0565b9250505b806142c681615af0565b91505061418c565b5090949350505050565b601b5460609083106143285760405162461bcd60e51b8152602060048201526019602482015278537461727420696e646578206f7574206f6620626f756e647360381b6044820152606401610dde565b60006143348385615aca565b601b549091508111156143465750601b545b60006143528583615add565b6001600160401b0381111561436957614369615b71565b6040519080825280602002602001820160405280156143a257816020015b61438f615345565b8152602001906001900390816143875790505b509050845b8281101561314257601b81815481106143c2576143c2615b09565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826144308884615add565b8151811061444057614440615b09565b6020026020010181905250808061445690615af0565b9150506143a7565b614466615035565b336000908152600f6020526040902080546144b95760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610dde565b816144fe5760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610dde565b60005b8281101561469f57600084848381811061451d5761451d615b09565b9050602002013590506000805b845481101561466c57600085828154811061454757614547615b09565b9060005260206000209060040201905083816000015414801561456e575060008160010154115b156146595780600201544210156145b65760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610dde565b60018101805460038301546000928390556001600160a01b0316808352600a602052604083208054929391928492906145f0908490615add565b9091555061460a90506001600160a01b038216338461507c565b336001600160a01b03167f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef8388604051614645929190615550565b60405180910390a26001945050505061466c565b508061466481615af0565b91505061452a565b508061468a5760405162461bcd60e51b8152600401610dde90615cb6565b5050808061469790615af0565b915050614501565b505061129a61506b565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205460105460609384939092909183906146e6908390615add565b90508060000361471757505060408051600080825260208201818152828401909352909550909350915061487d9050565b806001600160401b0381111561472f5761472f615b71565b604051908082528060200260200182016040528015614758578160200160208202803683370190505b509550806001600160401b0381111561477357614773615b71565b60405190808252806020026020018201604052801561479c578160200160208202803683370190505b50945060005b818110156148785760006147b68285615aca565b9050808883815181106147cb576147cb615b09565b60209081029190910101528415614844576000818152600b6020526040812060040154612710906147fc9088615a91565b6148069190615aa8565b90508088848151811061481b5761481b615b09565b60209081029190910101526148308188615aca565b965061483c8187615add565b955050614865565b600087838151811061485857614858615b09565b6020026020010181815250505b508061487081615af0565b9150506147a2565b505050505b9193909250565b61488c615035565b6001600160a01b0382166000908152601460209081526040808320848452909152902080546148cd5760405162461bcd60e51b8152600401610dde90615c4d565b336001600160a01b0384160361491e5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610dde565b805460018201546003830154600082841161493a576000614944565b6149448385615add565b905060008461495583612710615a91565b61495f9190615aa8565b905060006127106149708380615a91565b61497a9190615aa8565b9050600061271061498b8389615a91565b6149959190615aa8565b905060006149a38289615add565b90506149bf600080516020615d60833981519152338d8a6151ab565b6001600160a01b038b166000908152600c6020526040812080548a92906149e7908490615add565b9091555050336000908152600c602052604081208054839290614a0b908490615aca565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614a38908490615add565b925050819055508160116000828254614a519190615add565b90915550506001600160a01b038b1660009081526017602052604081208054899290614a7e908490615aca565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c815260200190815260200160002054905060006001601980549050614c2d9190615add565b9050808214614cee57600060198281548110614c4b57614c4b615b09565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110614c9757614c97615b09565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480614cff57614cff615ca0565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f604051614db9929190615550565b60405180910390a3505050505050505050505061129a61506b565b3360009081526001602052604090205460ff16614e035760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b038216614e295760405162461bcd60e51b8152600401610dde90615ba0565b60008111614e495760405162461bcd60e51b8152600401610dde90615bc9565b6001600160a01b0382166000908152600c60205260409020546011548291614e7091615add565b614e7a9190615aca565b6011556001600160a01b0382166000908152600d60205260408120549003614eb8576001600160a01b0382166000908152600d602052604090208190555b6001600160a01b0382166000818152600c60205260409081902083905551600080516020615ce083398151915290614ef39084815260200190565b60405180910390a25050565b33600090815260146020908152604080832085845290915290208054614f375760405162461bcd60e51b8152600401610dde90615c4d565b60028101546001600160a01b03163314614f635760405162461bcd60e51b8152600401610dde90615c78565b60008211614f835760405162461bcd60e51b8152600401610dde90615bf1565b600181018290556040513390600080516020615d8083398151915290614fac9085908790615550565b60405180910390a2505050565b3360009081526020819052604090205460ff16614fe85760405162461bcd60e51b8152600401610dde90615b49565b6001600160a01b03811661500e5760405162461bcd60e51b8152600401610dde90615ba0565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600061503f6151ea565b80549091506001190161506557604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60006150756151ea565b6001905550565b6150d483846001600160a01b031663a9059cbb85856040516024016150a2929190615537565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061520e565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610da3565b61510a615276565b610f6d61529b565b600082158061511f575084155b1561512c575060006151a2565b60008561513b88612710615a91565b6151459190615aa8565b905060008461515687612710615a91565b6151609190615aa8565b9050808211615174576000925050506151a2565b60006151808284615add565b905060006127106151918784615a91565b61519b9190615aa8565b9450505050505b95945050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526151e49186918216906323b872dd906084016150a2565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b600080602060008451602086016000885af180615231576040513d6000823e3d81fd5b50506000513d91508115615249578060011415615256565b6001600160a01b0384163b155b156151e45783604051635274afe760e01b8152600401610dde91906153ea565b61527e6152a3565b610f6d57604051631afcd79f60e31b815260040160405180910390fd5b61506b615276565b60006152ad6150d9565b54600160401b900460ff16919050565b6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50805460008255600202906000526020600020908101906118e7919061538d565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b5b808211156153a8576000808255600182015560020161538e565b5090565b80356001600160a01b03811681146153c357600080fd5b919050565b6000602082840312156153da57600080fd5b6153e3826153ac565b9392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561541157600080fd5b61541a836153ac565b946020939093013593505050565b60008083601f84011261543a57600080fd5b5081356001600160401b0381111561545157600080fd5b6020830191508360208260051b8501011115613ea557600080fd5b6000806020838503121561547f57600080fd5b82356001600160401b0381111561549557600080fd5b6154a185828601615428565b90969095509350505050565b6000602082840312156154bf57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156154f6578151875295820195908201906001016154da565b509495945050505050565b60608152600061551460608301866154c6565b828103602084015261552681866154c6565b915050826040830152949350505050565b6001600160a01b03929092168252602082015260400190565b918252602082015260400190565b6000806000806040858703121561557457600080fd5b84356001600160401b038082111561558b57600080fd5b61559788838901615428565b909650945060208701359150808211156155b057600080fd5b506155bd87828801615428565b95989497509550505050565b600080604083850312156155dc57600080fd5b50508035926020909101359150565b80518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b60608082528451908201819052600090608090818401906020808901855b8381101561565a5781516001600160a01b031685529382019390820190600101615635565b50508583038187015261566d83896154c6565b868103604088015287518082528289019450908201925060005b818110156156aa5761569a8486516155eb565b9382019392850192600101615687565b50919998505050505050505050565b600080604083850312156156cc57600080fd5b6156d5836153ac565b91506156e3602084016153ac565b90509250929050565b600080600080600080600080610100898b03121561570957600080fd5b615712896153ac565b975060208901359650604089013595506060890135945061573560808a016153ac565b979a969950949793969560a0850135955060c08501359460e001359350915050565b602080825282518282018190526000919060409081850190868401855b828110156157f85781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b0316908601526101008082015115159086015261012090810151908501526101409093019290850190600101615774565b5091979650505050505050565b60008060006060848603121561581a57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561584a57600080fd5b615853876153ac565b9550602087013594506040870135935060608701359250615876608088016153ac565b915060a087013590509295509295509295565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020808252825182820181905260009190848201906040850190845b81811015615905576158f2838551615889565b9284019260c092909201916001016158df565b50909695505050505050565b60808101610da382846155eb565b8051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b60808101610da3828461591f565b60008060006060848603121561596e57600080fd5b615977846153ac565b95602085013595506040909401359392505050565b60c08101610da38284615889565b6040815260006159ad60408301856154c6565b82810360208401526151a281856154c6565b6020808252825182820181905260009190848201906040850190845b81811015615905576159ee83855161591f565b92840192608092909201916001016159db565b602080825282518282018190526000919060409081850190868401855b828110156157f85781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c09093019290850190600101615a1e565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610da357610da3615a7b565b600082615ac557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610da357610da3615a7b565b81810381811115610da357610da3615a7b565b600060018201615b0257615b02615a7b565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215615b9957600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260129082015271496e76616c69642073616c6520707269636560701b604082015260600190565b602080825260169082015275496e73756666696369656e74206e6574207374616b6560501b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b6020808252600e908201526d2737ba103a34329039b2b63632b960911b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6020808252600f908201526e14dd185ad9481b9bdd08199bdd5b99608a1b60408201526060019056feec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b15839b0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0a65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172100000000000000000000000055d398326f99059ff775485246999027b31979558e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031ca92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8aa2646970667358221220e8bbf14a16da2f6d39b0f9c64d46f6b295834da658f2286fd19f2d8da4be85f064736f6c63430008140033", + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615d4d80620000e66000396000f3fe608060405234801561001057600080fd5b50600436106103585760003560e01c8062159da61461035d5780630137451814610383578063022914a7146103b95780630519da32146103ec578063092c7610146103f55780630a84096a146104155780630a910a6d146104285780630c7d63861461043157806313baee5b1461043b578063173825d91461045b5780631764303d1461046e5780631aefa2d1146104815780631eb9e53e146104945780632ded58aa146104a75780632e46fed8146104b05780633ba8396e146104d95780633c92f98d146104fc5780633f35e7221461051e57806343a32f891461053157806343c7c011146105ac578063441a4175146105bf5780634a61f1e5146105e057806351e624721461060057806351f6cf2f14610613578063549e61d3146106345780635811622714610647578063592d1dd11461065a57806361d1080b1461067a57806362cd6a091461068257806367a74ddc146106995780636ef569a5146106ac5780637065cb48146106b557806374d1c8e3146106c857806375060a0b146106db5780637a0c6dc0146106fb5780637bc221ac1461071b5780637e6d99261461072e57806380ca0ecf146107575780638129fc1c1461076a57806382b756811461077257806384e8520a14610785578063853e0df2146107a55780638851ec0f146107b85780638939d787146107cb5780638f82818f146107d45780639437e32e146107f4578063953d16bf1461080757806396fd111a1461081a5780639cb6f5561461083a5780639f3a676c1461084d578063a0d4675814610899578063aaf4b04d146108b9578063ac97b417146108cc578063b6c3dc4c146108df578063b92a349f146108ff578063bc0bc6ba14610912578063bd84477d14610932578063bed9757e1461099a578063c2676603146109bb578063c32d3ae2146109c3578063c6b61e4c146109f6578063c7b530b014610a66578063cc573a9114610a86578063ce13d09014610ac2578063ce3432c314610ad5578063cfcf331914610af5578063d532bdfe14610b08578063da1b436414610b1b578063e88f8e6614610b3b578063eacdc5ff14610b4e578063eb44e0a314610b57578063ef5d9ae814610b6a578063f2bb563014610b8a578063fe2f50d014610b9d578063ffecf51614610ba6575b600080fd5b61037061036b366004615340565b610bb9565b6040519081526020015b60405180910390f35b6103ac610391366004615340565b6004602052600090815260409020546001600160a01b031681565b60405161037a9190615362565b6103dc6103c7366004615340565b60006020819052908152604090205460ff1681565b604051901515815260200161037a565b61037060075481565b610370610403366004615340565b60066020526000908152604090205481565b610370610423366004615376565b610c53565b61037060125481565b610439610d8b565b005b610370610449366004615340565b600c6020526000908152604090205481565b610439610469366004615340565b610f51565b61043961047c3660046153e4565b611042565b61043961048f366004615425565b611280565b6103706104a2366004615340565b6112b4565b61037060115481565b6103706104be366004615340565b6001600160a01b03166000908152601c602052604090205490565b6103dc6104e7366004615340565b60016020526000908152604090205460ff1681565b61050f61050a3660046153e4565b6112f8565b60405161037a93929190615479565b61043961052c366004615376565b6114e9565b61057d61053f366004615376565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b60405161037a949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b6104396105ba366004615340565b61155e565b6105d26105cd366004615425565b6118cc565b60405161037a9291906154af565b6103706105ee366004615340565b60186020526000908152604090205481565b61043961060e366004615425565b611904565b610626610621366004615376565b611938565b60405161037a9291906154c8565b6104396106423660046154d6565b611974565b610439610655366004615541565b611cef565b610370610668366004615340565b60056020526000908152604090205481565b601b54610370565b61068a611f59565b60405161037a9392919061558f565b6104396106a7366004615631565b612180565b61037060165481565b6104396106c3366004615340565b6121dd565b6104396106d6366004615664565b6122af565b6103706106e9366004615340565b600a6020526000908152604090205481565b61070e610709366004615340565b612492565b60405161037a91906156cf565b610370610729366004615340565b612579565b61037061073c366004615340565b6001600160a01b031660009081526017602052604090205490565b610370610765366004615376565b61274d565b610439612859565b610439610780366004615425565b612a82565b610370610793366004615340565b600d6020526000908152604090205481565b6104396107b3366004615425565b612b14565b6104396107c636600461577d565b612b92565b61037060135481565b6103706107e2366004615340565b60176020526000908152604090205481565b6104396108023660046157a9565b612d1e565b610439610815366004615425565b612d65565b61082d610828366004615541565b613052565b60405161037a919061583b565b610439610848366004615425565b6131f1565b61086061085b366004615425565b613480565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c00161037a565b6108ac6108a7366004615376565b6134d3565b60405161037a9190615889565b6104396108c7366004615425565b613537565b6104396108da366004615425565b6135bd565b6108f26108ed366004615376565b6139af565b60405161037a91906158c3565b61043961090d3660046158d1565b613ac1565b610925610920366004615425565b613c8a565b60405161037a9190615904565b610945610940366004615376565b613d2e565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e084015215156101008301526101208201526101400161037a565b6109ad6109a8366004615376565b613dac565b60405161037a929190615912565b6103e7610370565b6109d66109d1366004615340565b613f52565b60408051948552602085019390935291830152606082015260800161037a565b610a39610a04366004615425565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c00161037a565b610a79610a74366004615340565b613fa6565b60405161037a9190615937565b610a99610a94366004615376565b61403b565b604080519485526020850193909352918301526001600160a01b0316606082015260800161037a565b610439610ad0366004615425565b61408a565b610ae8610ae3366004615340565b6140be565b60405161037a9190615979565b610ae8610b03366004615541565b61437e565b610439610b163660046153e4565b614504565b610370610b29366004615340565b600e6020526000908152604090205481565b61050f610b49366004615340565b61474f565b61037060105481565b610439610b65366004615376565b614927565b610370610b78366004615340565b601c6020526000908152604090205481565b610439610b98366004615541565b614e77565b61037060155481565b610439610bb4366004615340565b614f31565b600080610bc5836112b4565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610c4b578215610c39576000818152600b602052604081206004015461271090610c139086615a09565b610c1d9190615a20565b9050610c298186615a42565b9450610c358185615a55565b9350505b80610c4381615a68565b915050610be3565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610c8057610c80615a81565b906000526020600020906009020190506000816006015442610ca29190615a55565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d7e576001600160a01b0383166000908152600360205260408120805483908110610d0157610d01615a81565b6000918252602082206002909102018054600182015460088a015492945090929091606490610d3290600a90615a09565b610d3c9190615a20565b9050828810610d6957612710610d528383615a09565b610d5c9190615a20565b610d669087615a42565b95505b5050505080610d7790615a68565b9050610cb7565b5093505050505b92915050565b610d93614fad565b6000610d9e33610bb9565b905060008111610dc95760405162461bcd60e51b8152600401610dc090615a97565b60405180910390fd5b336000908152600c602052604081208054839290610de8908490615a55565b925050819055508060116000828254610e019190615a55565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610e36908490615a42565b909155505060088054906000610e4b83615a68565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610e889042615a42565b8152600080516020615cb8833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615c588339815191528054839290610f1e908490615a42565b90915550506040518181523390600080516020615c788339815191529060200160405180910390a250610f4f614fe3565b565b3360009081526020819052604090205460ff16610f805760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b03811660009081526020819052604090205460ff16610fd45760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610dc0565b336001600160a01b038216036110215760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610dc0565b6001600160a01b03166000908152602081905260409020805460ff19169055565b61104a614fad565b6000805b828110156111f957600084848381811061106a5761106a615a81565b3360009081526002602090815260409091205491029290920135925050811061109357506111e7565b3360009081526002602052604081208054839081106110b4576110b4615a81565b9060005260206000209060090201905060006110d03384610c53565b905081600401548110156110e6575050506111e7565b60008260040154826110f89190615a55565b90508060000361110b57505050506111e7565b8083600401600082825461111f9190615a42565b9091555061112f90508187615a42565b336000908152600f6020526040908190208151608081019092529197508061115a87620f4240615a42565b8152602001838152602001600754426111739190615a42565b8152600080516020615cb8833981519152602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b806111f181615a68565b91505061104e565b50801561127357600080516020615cb88339815191526000908152600a602052600080516020615c588339815191528054839290611238908490615a42565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b5061127c614fe3565b5050565b3360009081526020819052604090205460ff166112af5760405162461bcd60e51b8152600401610dc090615ac1565b601655565b6001600160a01b0381166000908152600c602090815260408083205460189092528220548082116112e65760006112f0565b6112f08183615a55565b949350505050565b606080600083806001600160401b0381111561131657611316615ae9565b60405190808252806020026020018201604052801561133f578160200160208202803683370190505b509350806001600160401b0381111561135a5761135a615ae9565b604051908082528060200260200182016040528015611383578160200160208202803683370190505b50925060005b818110156114e05760008787838181106113a5576113a5615a81565b90506020020160208101906113ba9190615340565b6001600160a01b03811660009081526006602052604090205487519192509081908890859081106113ed576113ed615a81565b6020908102919091018101919091526001600160a01b03808416600090815260049283905260408082205490516302c68be360e31b815291939216916316345f189161143b91879101615362565b602060405180830381865afa158015611458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147c9190615aff565b90506000670de0b6b3a76400006114938484615a09565b61149d9190615a20565b9050808886815181106114b2576114b2615a81565b60209081029190910101526114c78188615a42565b96505050505080806114d890615a68565b915050611389565b50509250925092565b3360009081526020819052604090205460ff166115185760405162461bcd60e51b8152600401610dc090615ac1565b61152c6001600160a01b0383163383614ff4565b6040518181526001600160a01b038316903390600080516020615cf88339815191529060200160405180910390a35050565b611566614fad565b6000805b33600090815260026020526040902054811015611671573360009081526002602052604081208054839081106115a2576115a2615a81565b6000918252602090912060099091020160078101549091506001600160a01b0385811691161480156115e057506007810154600160a01b900460ff16155b1561165e5760006115f1338461274d565b9050816003015481111561165c5760008260030154826116119190615a55565b905061161d8186615a42565b9450808360030160008282546116339190615a42565b9091555050825460038401541061165a5760078301805460ff60a01b1916600160a01b1790555b505b505b508061166981615a68565b91505061156a565b50600081116116925760405162461bcd60e51b8152600401610dc090615a97565b336000908152600560205260409020541561179f576001600160a01b0380831660009081526004602081905260408083205490516302c68be360e31b81529293670de0b6b3a764000093869392909116916316345f18916116f591899101615362565b602060405180830381865afa158015611712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117369190615aff565b6117409190615a09565b61174a9190615a20565b336000908152600560205260409020549091508110611778573360009081526005602052604081205561179d565b3360009081526005602052604081208054839290611797908490615a55565b90915550505b505b6001600160a01b038216600090815260066020526040812080548392906117c7908490615a55565b9091555050336000908152600f6020526040808220815160808101909252600980549193839291906117f883615a68565b919050558152602001838152602001600754426118159190615a42565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a905281208054839290611890908490615a42565b90915550506040513390600080516020615c98833981519152906118b89084906000906154c8565b60405180910390a2506118c9614fe3565b50565b601981815481106118dc57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff166119335760405162461bcd60e51b8152600401610dc090615ac1565b601555565b6003602052816000526040600020818154811061195457600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff166119a35760405162461bcd60e51b8152600401610dc090615ac1565b8281146119ea5760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610dc0565b82611a265760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610dc0565b6000805b84811015611cd0576000868683818110611a4657611a46615a81565b9050602002016020810190611a5b9190615340565b6001600160a01b031603611a815760405162461bcd60e51b8152600401610dc090615b18565b6000848483818110611a9557611a95615a81565b9050602002013511611ab95760405162461bcd60e51b8152600401610dc090615b41565b838382818110611acb57611acb615a81565b90506020020135600c6000888885818110611ae857611ae8615a81565b9050602002016020810190611afd9190615340565b6001600160a01b03168152602081019190915260400160002054611b219084615a55565b611b2b9190615a42565b9150600d6000878784818110611b4357611b43615a81565b9050602002016020810190611b589190615340565b6001600160a01b03166001600160a01b0316815260200190815260200160002054600003611bdf57838382818110611b9257611b92615a81565b90506020020135600d6000888885818110611baf57611baf615a81565b9050602002016020810190611bc49190615340565b6001600160a01b031681526020810191909152604001600020555b838382818110611bf157611bf1615a81565b90506020020135600c6000888885818110611c0e57611c0e615a81565b9050602002016020810190611c239190615340565b6001600160a01b03168152602081019190915260400160002055858582818110611c4f57611c4f615a81565b9050602002016020810190611c649190615340565b6001600160a01b03167fec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b15839858584818110611ca057611ca0615a81565b90506020020135604051611cb691815260200190565b60405180910390a280611cc881615a68565b915050611a2a565b508060116000828254611ce39190615a42565b90915550505050505050565b611cf7614fad565b60008211611d375760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610dc0565b60008111611d575760405162461bcd60e51b8152600401610dc090615b69565b601554821015611d9f5760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610dc0565b6000611daa336112b4565b905080831115611dcc5760405162461bcd60e51b8152600401610dc090615b95565b60088054906000611ddc83615a68565b90915550506008543360009081526018602052604081208054869290611e03908490615a42565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9696909101559054611f089190615a55565b336000818152601a6020908152604080832086845290915290819020929092559051600080516020615cd883398151915290611f4790869085906154c8565b60405180910390a2505061127c614fe3565b60195460609081908190806001600160401b03811115611f7b57611f7b615ae9565b604051908082528060200260200182016040528015611fa4578160200160208202803683370190505b509350806001600160401b03811115611fbf57611fbf615ae9565b604051908082528060200260200182016040528015611fe8578160200160208202803683370190505b509250806001600160401b0381111561200357612003615ae9565b60405190808252806020026020018201604052801561203c57816020015b612029615235565b8152602001906001900390816120215790505b50915060005b818110156121795760006019828154811061205f5761205f615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168083526001909101549282019290925287519092508790849081106120ac576120ac615a81565b60200260200101906001600160a01b031690816001600160a01b03168152505080602001518583815181106120e3576120e3615a81565b60209081029190910181019190915281516001600160a01b039081166000908152601483526040808220858501518352845290819020815160808101835281548152600182015494810194909452600281015490921690830152600301546060820152845185908490811061215a5761215a615a81565b602002602001018190525050808061217190615a68565b915050612042565b5050909192565b3360009081526020819052604090205460ff166121af5760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff1661220c5760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b0381166122325760405162461bcd60e51b8152600401610dc090615b18565b6001600160a01b03811660009081526020819052604090205460ff161561228b5760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610dc0565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b3360009081526001602052604090205460ff166122de5760405162461bcd60e51b8152600401610dc090615ac1565b60026000896001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808981526020018881526020018781526020016000815260200160008152602001848152602001838152602001866001600160a01b03168152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505082600560008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546124569190615a42565b90915550506001600160a01b03841660009081526006602052604081208054899290612483908490615a42565b90915550505050505050505050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561256e57600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff1615156101008401526008015461012083015290835290920191016124ca565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b81811015612746576001600160a01b03841660009081526002602052604081208054839081106125c6576125c6615a81565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b909104161515610100820181905260089092015461012082015291506127335760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f18926126a79201615362565b602060405180830381865afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190615aff565b90506000826060015183600001516127009190615a55565b90506000670de0b6b3a76400006127178385615a09565b6127219190615a20565b905061272d8188615a42565b96505050505b508061273e81615a68565b915050612594565b5050919050565b6001600160a01b038216600090815260026020526040812080548291908490811061277a5761277a615a81565b90600052602060002090600902019050600081600601544261279c9190615a55565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d7e576001600160a01b03831660009081526003602052604081208054839081106127fb576127fb615a81565b6000918252602090912060029091020180546001820154919250908187106128455787546127109061282e908390615a09565b6128389190615a20565b6128429086615a42565b94505b5050508061285290615a68565b90506127b1565b6000612863615051565b805490915060ff600160401b82041615906001600160401b031660008115801561288a5750825b90506000826001600160401b031660011480156128a65750303b155b9050811580156128b4575080155b156128d25760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156128fb57845460ff60401b1916600160401b1785555b61290361507a565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c580548216831790557f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548216831790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054821683179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e84527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc80549091169091179055600c905269021e19e0c9bab24000007f649cbac87391465cfe24c65b052f0edf3b8486f136e0b91262d76d1f34d7826b8190556011805491929091612a24908490615a42565b90915550506201fa4060075560646013558315612a7b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b3360009081526020819052604090205460ff16612ab15760405162461bcd60e51b8152600401610dc090615ac1565b60008111612b0f5760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610dc0565b601355565b3360009081526020819052604090205460ff16612b435760405162461bcd60e51b8152600401610dc090615ac1565b612b5c600080516020615cb88339815191523383614ff4565b604051818152600080516020615cb8833981519152903390600080516020615cf88339815191529060200160405180910390a350565b3360009081526020819052604090205460ff16612bc15760405162461bcd60e51b8152600401610dc090615ac1565b60105460009015612c0c576000600b60006001601054612be19190615a55565b81526020019081526020016000209050612c0884601154836001015484600201548761508a565b9150505b601354811115612c575760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610dc0565b6040805160c08101825285815260208082018681526011548385019081526060808501888152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518781529182018590529281018590527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a260108054906000612d1383615a68565b919050555050505050565b3360009081526001602052604090205460ff16612d4d5760405162461bcd60e51b8152600401610dc090615ac1565b612d5d86868686868642426122af565b505050505050565b33600090815260146020908152604080832084845290915290208054612d9d5760405162461bcd60e51b8152600401610dc090615bc5565b60028101546001600160a01b03163314612dc95760405162461bcd60e51b8152600401610dc090615bf0565b805460165460009061271090612ddf9084615a09565b612de99190615a20565b33600090815260186020526040812080549293508492909190612e0d908490615a55565b90915550508015612e5657336000908152600c602052604081208054839290612e37908490615a55565b925050819055508060116000828254612e509190615a55565b90915550505b8015612ea057336001600160a01b03167f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f98286604051612e979291906154c8565b60405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a82528083208884529091528120546019549092612f0091615a55565b9050808214612fc157600060198281548110612f1e57612f1e615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110612f6a57612f6a615a81565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480612fd257612fd2615c18565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d910160405180910390a2505050505050565b6060818311156130945760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610dc0565b60105482106130db5760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610dc0565b60006130e78484615a55565b6130f2906001615a42565b90506000816001600160401b0381111561310e5761310e615ae9565b60405190808252806020026020018201604052801561314757816020015b613134615266565b81526020019060019003908161312c5790505b50905060005b828110156131e857600b60006131638389615a42565b81526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250508282815181106131ca576131ca615a81565b602002602001018190525080806131e090615a68565b91505061314d565b50949350505050565b6131f9614fad565b600081116132195760405162461bcd60e51b8152600401610dc090615b41565b6000601254116132625760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610dc0565b600061326d336112b4565b90508082111561328f5760405162461bcd60e51b8152600401610dc090615b95565b61271061329e826109c4615a09565b6132a89190615a20565b8210156132e85760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610dc0565b6000612710601254846132fb9190615a09565b6133059190615a20565b336000908152600c6020526040812080549293508592909190613329908490615a55565b9250508190555082601160008282546133429190615a55565b9091555050336000908152601c602052604081208054839290613366908490615a42565b90915550506008805490600061337b83615a68565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906133b89042615a42565b8152600080516020615cb8833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615c58833981519152805483929061344e908490615a42565b90915550506040518181523390600080516020615c788339815191529060200160405180910390a250506118c9614fe3565b601b818154811061349057600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b6134db615235565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166135665760405162461bcd60e51b8152600401610dc090615ac1565b6127108111156135b85760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610dc0565b601255565b6135c5614fad565b33600090815260026020526040902054811061361b5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610dc0565b33600090815260026020526040812080548390811061363c5761363c615a81565b906000526020600020906009020190508060070160149054906101000a900460ff161561369e5760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610dc0565b60006136aa338461274d565b905081600301548110156136f75760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610dc0565b60008260030154826137099190615a55565b90506000811161372b5760405162461bcd60e51b8152600401610dc090615a97565b8083600301600082825461373f9190615a42565b909155505082546003840154106137665760078301805460ff60a01b1916600160a01b1790555b33600090815260056020526040902054156138775760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b81529294670de0b6b3a764000094879492909116926316345f18926137cd929101615362565b602060405180830381865afa1580156137ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380e9190615aff565b6138189190615a09565b6138229190615a20565b3360009081526005602052604090205490915081106138505733600090815260056020526040812055613875565b336000908152600560205260408120805483929061386f908490615a55565b90915550505b505b60078301546001600160a01b0316600090815260066020526040812080548392906138a3908490615a55565b9091555050336000908152600f6020526040808220815160808101909252600980549193839291906138d483615a68565b919050558152602001838152602001600754426138f19190615a42565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a905281208054839290613974908490615a42565b90915550506040513390600080516020615c988339815191529061399c9084906000906154c8565b60405180910390a25050506118c9614fe3565b6139e3604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613aa85783828281548110613a1957613a19615a81565b90600052602060002090600402016000015403613a9657818181548110613a4257613a42615a81565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610d85915050565b80613aa081615a68565b9150506139fd565b5060405162461bcd60e51b8152600401610dc090615c2e565b3360009081526020819052604090205460ff16613af05760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b038316613b3e5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610dc0565b600081118015613b5057506127108111155b613b915760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610dc0565b6001600160a01b0383166000908152600360205260408120613bb29161529c565b6000825b612710821015613c4f5782612710613bce8285615a42565b1115613be357613be083612710615a55565b90505b6001600160a01b0386166000908152600360209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155613c3b8184615a42565b9250613c478583615a42565b915050613bb6565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b613c92615266565b6010548210613cd55760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610dc0565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b60026020528160005260406000208181548110613d4a57600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b038216600090815260026020526040812080546060928392909185908110613ddd57613ddd615a81565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115613e2557613e25615ae9565b604051908082528060200260200182016040528015613e4e578160200160208202803683370190505b5090506000826001600160401b03811115613e6b57613e6b615ae9565b604051908082528060200260200182016040528015613e94578160200160208202803683370190505b50905060005b83811015613f41576001600160a01b0385166000908152600360205260408120805483908110613ecc57613ecc615a81565b9060005260206000209060020201905080600001548760060154613ef09190615a42565b848381518110613f0257613f02615a81565b6020026020010181815250508060010154838381518110613f2557613f25615a81565b602090810291909101015250613f3a81615a68565b9050613e9a565b5090955093505050505b9250929050565b6000806000806000613f6386610bb9565b90506000613f70876112b4565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561256e57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b031660608301529083529092019101613fde565b600f602052816000526040600020818154811061405757600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166140b95760405162461bcd60e51b8152600401610dc090615ac1565b600755565b60606001600160a01b0382166140e65760405162461bcd60e51b8152600401610dc090615b18565b6000805b601b5481101561419657836001600160a01b0316601b828154811061411157614111615a81565b60009182526020909120600460069092020101546001600160a01b031614806141715750836001600160a01b0316601b828154811061415257614152615a81565b60009182526020909120600560069092020101546001600160a01b0316145b15614184578161418081615a68565b9250505b8061418e81615a68565b9150506140ea565b50806000036141d85760408051600080825260208201909252906141d0565b6141bd6152bd565b8152602001906001900390816141b55790505b509392505050565b6000816001600160401b038111156141f2576141f2615ae9565b60405190808252806020026020018201604052801561422b57816020015b6142186152bd565b8152602001906001900390816142105790505b5090506000805b601b5481101561437457856001600160a01b0316601b828154811061425957614259615a81565b60009182526020909120600460069092020101546001600160a01b031614806142b95750856001600160a01b0316601b828154811061429a5761429a615a81565b60009182526020909120600560069092020101546001600160a01b0316145b1561436257601b81815481106142d1576142d1615a81565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152835184908490811061434857614348615a81565b6020026020010181905250818061435e90615a68565b9250505b8061436c81615a68565b915050614232565b5090949350505050565b601b5460609083106143ce5760405162461bcd60e51b8152602060048201526019602482015278537461727420696e646578206f7574206f6620626f756e647360381b6044820152606401610dc0565b60006143da8385615a42565b601b549091508111156143ec5750601b545b60006143f88583615a55565b6001600160401b0381111561440f5761440f615ae9565b60405190808252806020026020018201604052801561444857816020015b6144356152bd565b81526020019060019003908161442d5790505b509050845b828110156131e857601b818154811061446857614468615a81565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826144d68884615a55565b815181106144e6576144e6615a81565b602002602001018190525080806144fc90615a68565b91505061444d565b61450c614fad565b336000908152600f60205260409020805461455f5760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610dc0565b816145a45760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610dc0565b60005b828110156147455760008484838181106145c3576145c3615a81565b9050602002013590506000805b84548110156147125760008582815481106145ed576145ed615a81565b90600052602060002090600402019050838160000154148015614614575060008160010154115b156146ff57806002015442101561465c5760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610dc0565b60018101805460038301546000928390556001600160a01b0316808352600a60205260408320805492939192849290614696908490615a55565b909155506146b090506001600160a01b0382163384614ff4565b336001600160a01b03167f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef83886040516146eb9291906154c8565b60405180910390a260019450505050614712565b508061470a81615a68565b9150506145d0565b50806147305760405162461bcd60e51b8152600401610dc090615c2e565b5050808061473d90615a68565b9150506145a7565b505061127c614fe3565b60608060008061475e856112b4565b6001600160a01b0386166000908152600e602052604081205460105492935091614789908390615a55565b9050806000036147ba5750506040805160008082526020820181815282840190935290955090935091506149209050565b806001600160401b038111156147d2576147d2615ae9565b6040519080825280602002602001820160405280156147fb578160200160208202803683370190505b509550806001600160401b0381111561481657614816615ae9565b60405190808252806020026020018201604052801561483f578160200160208202803683370190505b50945060005b8181101561491b5760006148598285615a42565b90508088838151811061486e5761486e615a81565b602090810291909101015284156148e7576000818152600b60205260408120600401546127109061489f9088615a09565b6148a99190615a20565b9050808884815181106148be576148be615a81565b60209081029190910101526148d38188615a42565b96506148df8187615a55565b955050614908565b60008783815181106148fb576148fb615a81565b6020026020010181815250505b508061491381615a68565b915050614845565b505050505b9193909250565b61492f614fad565b6001600160a01b0382166000908152601460209081526040808320848452909152902080546149705760405162461bcd60e51b8152600401610dc090615bc5565b336001600160a01b038416036149c15760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610dc0565b80546001820154600383015460008284116149dd5760006149e7565b6149e78385615a55565b90506000846149f883612710615a09565b614a029190615a20565b90506000612710614a138380615a09565b614a1d9190615a20565b90506000612710614a2e8389615a09565b614a389190615a20565b90506000614a468289615a55565b9050614a62600080516020615cb8833981519152338d8a615123565b6001600160a01b038b166000908152600c6020526040812080548a9290614a8a908490615a55565b9091555050336000908152600c602052604081208054839290614aae908490615a42565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614adb908490615a55565b925050819055508160116000828254614af49190615a55565b90915550506001600160a01b038b1660009081526017602052604081208054899290614b21908490615a42565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c815260200190815260200160002054905060006001601980549050614cd09190615a55565b9050808214614d9157600060198281548110614cee57614cee615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110614d3a57614d3a615a81565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480614da257614da2615c18565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f604051614e5c9291906154c8565b60405180910390a3505050505050505050505061127c614fe3565b33600090815260146020908152604080832085845290915290208054614eaf5760405162461bcd60e51b8152600401610dc090615bc5565b60028101546001600160a01b03163314614edb5760405162461bcd60e51b8152600401610dc090615bf0565b60008211614efb5760405162461bcd60e51b8152600401610dc090615b69565b600181018290556040513390600080516020615cd883398151915290614f2490859087906154c8565b60405180910390a2505050565b3360009081526020819052604090205460ff16614f605760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b038116614f865760405162461bcd60e51b8152600401610dc090615b18565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000614fb7615162565b805490915060011901614fdd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000614fed615162565b6001905550565b61504c83846001600160a01b031663a9059cbb858560405160240161501a9291906154af565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050615186565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610d85565b6150826151ee565b610f4f615213565b6000821580615097575084155b156150a45750600061511a565b6000856150b388612710615a09565b6150bd9190615a20565b90506000846150ce87612710615a09565b6150d89190615a20565b90508082116150ec5760009250505061511a565b60006150f88284615a55565b905060006127106151098784615a09565b6151139190615a20565b9450505050505b95945050505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261515c9186918216906323b872dd9060840161501a565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b600080602060008451602086016000885af1806151a9576040513d6000823e3d81fd5b50506000513d915081156151c15780600114156151ce565b6001600160a01b0384163b155b1561515c5783604051635274afe760e01b8152600401610dc09190615362565b6151f661521b565b610f4f57604051631afcd79f60e31b815260040160405180910390fd5b614fe36151ee565b6000615225615051565b54600160401b900460ff16919050565b6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50805460008255600202906000526020600020908101906118c99190615305565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b5b808211156153205760008082556001820155600201615306565b5090565b80356001600160a01b038116811461533b57600080fd5b919050565b60006020828403121561535257600080fd5b61535b82615324565b9392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561538957600080fd5b61539283615324565b946020939093013593505050565b60008083601f8401126153b257600080fd5b5081356001600160401b038111156153c957600080fd5b6020830191508360208260051b8501011115613f4b57600080fd5b600080602083850312156153f757600080fd5b82356001600160401b0381111561540d57600080fd5b615419858286016153a0565b90969095509350505050565b60006020828403121561543757600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561546e57815187529582019590820190600101615452565b509495945050505050565b60608152600061548c606083018661543e565b828103602084015261549e818661543e565b915050826040830152949350505050565b6001600160a01b03929092168252602082015260400190565b918252602082015260400190565b600080600080604085870312156154ec57600080fd5b84356001600160401b038082111561550357600080fd5b61550f888389016153a0565b9096509450602087013591508082111561552857600080fd5b50615535878288016153a0565b95989497509550505050565b6000806040838503121561555457600080fd5b50508035926020909101359150565b80518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b60608082528451908201819052600090608090818401906020808901855b838110156155d25781516001600160a01b0316855293820193908201906001016155ad565b5050858303818701526155e5838961543e565b868103604088015287518082528289019450908201925060005b8181101561562257615612848651615563565b93820193928501926001016155ff565b50919998505050505050505050565b6000806040838503121561564457600080fd5b61564d83615324565b915061565b60208401615324565b90509250929050565b600080600080600080600080610100898b03121561568157600080fd5b61568a89615324565b97506020890135965060408901359550606089013594506156ad60808a01615324565b979a969950949793969560a0850135955060c08501359460e001359350915050565b602080825282518282018190526000919060409081850190868401855b828110156157705781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b03169086015261010080820151151590860152610120908101519085015261014090930192908501906001016156ec565b5091979650505050505050565b60008060006060848603121561579257600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c087890312156157c257600080fd5b6157cb87615324565b95506020870135945060408701359350606087013592506157ee60808801615324565b915060a087013590509295509295509295565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020808252825182820181905260009190848201906040850190845b8181101561587d5761586a838551615801565b9284019260c09290920191600101615857565b50909695505050505050565b60808101610d858284615563565b8051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b60808101610d858284615897565b6000806000606084860312156158e657600080fd5b6158ef84615324565b95602085013595506040909401359392505050565b60c08101610d858284615801565b604081526000615925604083018561543e565b828103602084015261511a818561543e565b6020808252825182820181905260009190848201906040850190845b8181101561587d57615966838551615897565b9284019260809290920191600101615953565b602080825282518282018190526000919060409081850190868401855b828110156157705781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c09093019290850190600101615996565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610d8557610d856159f3565b600082615a3d57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d8557610d856159f3565b81810381811115610d8557610d856159f3565b600060018201615a7a57615a7a6159f3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215615b1157600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260129082015271496e76616c69642073616c6520707269636560701b604082015260600190565b602080825260169082015275496e73756666696369656e74206e6574207374616b6560501b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b6020808252600e908201526d2737ba103a34329039b2b63632b960911b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6020808252600f908201526e14dd185ad9481b9bdd08199bdd5b99608a1b60408201526060019056feb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0a65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172100000000000000000000000055d398326f99059ff775485246999027b31979558e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031ca92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8aa264697066735822122038a6309918b9c1f21fc1cbd5654591c8dde8a3e42d941aeb5d6bbb87215d48e164736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103585760003560e01c8062159da61461035d5780630137451814610383578063022914a7146103b95780630519da32146103ec578063092c7610146103f55780630a84096a146104155780630a910a6d146104285780630c7d63861461043157806313baee5b1461043b578063173825d91461045b5780631764303d1461046e5780631aefa2d1146104815780631eb9e53e146104945780632ded58aa146104a75780632e46fed8146104b05780633ba8396e146104d95780633c92f98d146104fc5780633f35e7221461051e57806343a32f891461053157806343c7c011146105ac578063441a4175146105bf5780634a61f1e5146105e057806351e624721461060057806351f6cf2f14610613578063549e61d3146106345780635811622714610647578063592d1dd11461065a57806361d1080b1461067a57806362cd6a091461068257806367a74ddc146106995780636ef569a5146106ac5780637065cb48146106b557806374d1c8e3146106c857806375060a0b146106db5780637a0c6dc0146106fb5780637bc221ac1461071b5780637e6d99261461072e57806380ca0ecf146107575780638129fc1c1461076a57806382b756811461077257806384e8520a14610785578063853e0df2146107a55780638851ec0f146107b85780638939d787146107cb5780638f82818f146107d45780639437e32e146107f4578063953d16bf1461080757806396fd111a1461081a5780639cb6f5561461083a5780639f3a676c1461084d578063a0d4675814610899578063aaf4b04d146108b9578063ac97b417146108cc578063b6c3dc4c146108df578063b92a349f146108ff578063bc0bc6ba14610912578063bd84477d14610932578063bed9757e1461099a578063c2676603146109bb578063c32d3ae2146109c3578063c6b61e4c146109f6578063c7b530b014610a66578063cc573a9114610a86578063ce13d09014610ac2578063ce3432c314610ad5578063cfcf331914610af5578063d532bdfe14610b08578063da1b436414610b1b578063e88f8e6614610b3b578063eacdc5ff14610b4e578063eb44e0a314610b57578063ef5d9ae814610b6a578063f2bb563014610b8a578063fe2f50d014610b9d578063ffecf51614610ba6575b600080fd5b61037061036b366004615340565b610bb9565b6040519081526020015b60405180910390f35b6103ac610391366004615340565b6004602052600090815260409020546001600160a01b031681565b60405161037a9190615362565b6103dc6103c7366004615340565b60006020819052908152604090205460ff1681565b604051901515815260200161037a565b61037060075481565b610370610403366004615340565b60066020526000908152604090205481565b610370610423366004615376565b610c53565b61037060125481565b610439610d8b565b005b610370610449366004615340565b600c6020526000908152604090205481565b610439610469366004615340565b610f51565b61043961047c3660046153e4565b611042565b61043961048f366004615425565b611280565b6103706104a2366004615340565b6112b4565b61037060115481565b6103706104be366004615340565b6001600160a01b03166000908152601c602052604090205490565b6103dc6104e7366004615340565b60016020526000908152604090205460ff1681565b61050f61050a3660046153e4565b6112f8565b60405161037a93929190615479565b61043961052c366004615376565b6114e9565b61057d61053f366004615376565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b60405161037a949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b6104396105ba366004615340565b61155e565b6105d26105cd366004615425565b6118cc565b60405161037a9291906154af565b6103706105ee366004615340565b60186020526000908152604090205481565b61043961060e366004615425565b611904565b610626610621366004615376565b611938565b60405161037a9291906154c8565b6104396106423660046154d6565b611974565b610439610655366004615541565b611cef565b610370610668366004615340565b60056020526000908152604090205481565b601b54610370565b61068a611f59565b60405161037a9392919061558f565b6104396106a7366004615631565b612180565b61037060165481565b6104396106c3366004615340565b6121dd565b6104396106d6366004615664565b6122af565b6103706106e9366004615340565b600a6020526000908152604090205481565b61070e610709366004615340565b612492565b60405161037a91906156cf565b610370610729366004615340565b612579565b61037061073c366004615340565b6001600160a01b031660009081526017602052604090205490565b610370610765366004615376565b61274d565b610439612859565b610439610780366004615425565b612a82565b610370610793366004615340565b600d6020526000908152604090205481565b6104396107b3366004615425565b612b14565b6104396107c636600461577d565b612b92565b61037060135481565b6103706107e2366004615340565b60176020526000908152604090205481565b6104396108023660046157a9565b612d1e565b610439610815366004615425565b612d65565b61082d610828366004615541565b613052565b60405161037a919061583b565b610439610848366004615425565b6131f1565b61086061085b366004615425565b613480565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c00161037a565b6108ac6108a7366004615376565b6134d3565b60405161037a9190615889565b6104396108c7366004615425565b613537565b6104396108da366004615425565b6135bd565b6108f26108ed366004615376565b6139af565b60405161037a91906158c3565b61043961090d3660046158d1565b613ac1565b610925610920366004615425565b613c8a565b60405161037a9190615904565b610945610940366004615376565b613d2e565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e084015215156101008301526101208201526101400161037a565b6109ad6109a8366004615376565b613dac565b60405161037a929190615912565b6103e7610370565b6109d66109d1366004615340565b613f52565b60408051948552602085019390935291830152606082015260800161037a565b610a39610a04366004615425565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c00161037a565b610a79610a74366004615340565b613fa6565b60405161037a9190615937565b610a99610a94366004615376565b61403b565b604080519485526020850193909352918301526001600160a01b0316606082015260800161037a565b610439610ad0366004615425565b61408a565b610ae8610ae3366004615340565b6140be565b60405161037a9190615979565b610ae8610b03366004615541565b61437e565b610439610b163660046153e4565b614504565b610370610b29366004615340565b600e6020526000908152604090205481565b61050f610b49366004615340565b61474f565b61037060105481565b610439610b65366004615376565b614927565b610370610b78366004615340565b601c6020526000908152604090205481565b610439610b98366004615541565b614e77565b61037060155481565b610439610bb4366004615340565b614f31565b600080610bc5836112b4565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610c4b578215610c39576000818152600b602052604081206004015461271090610c139086615a09565b610c1d9190615a20565b9050610c298186615a42565b9450610c358185615a55565b9350505b80610c4381615a68565b915050610be3565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610c8057610c80615a81565b906000526020600020906009020190506000816006015442610ca29190615a55565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d7e576001600160a01b0383166000908152600360205260408120805483908110610d0157610d01615a81565b6000918252602082206002909102018054600182015460088a015492945090929091606490610d3290600a90615a09565b610d3c9190615a20565b9050828810610d6957612710610d528383615a09565b610d5c9190615a20565b610d669087615a42565b95505b5050505080610d7790615a68565b9050610cb7565b5093505050505b92915050565b610d93614fad565b6000610d9e33610bb9565b905060008111610dc95760405162461bcd60e51b8152600401610dc090615a97565b60405180910390fd5b336000908152600c602052604081208054839290610de8908490615a55565b925050819055508060116000828254610e019190615a55565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610e36908490615a42565b909155505060088054906000610e4b83615a68565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610e889042615a42565b8152600080516020615cb8833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615c588339815191528054839290610f1e908490615a42565b90915550506040518181523390600080516020615c788339815191529060200160405180910390a250610f4f614fe3565b565b3360009081526020819052604090205460ff16610f805760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b03811660009081526020819052604090205460ff16610fd45760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610dc0565b336001600160a01b038216036110215760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610dc0565b6001600160a01b03166000908152602081905260409020805460ff19169055565b61104a614fad565b6000805b828110156111f957600084848381811061106a5761106a615a81565b3360009081526002602090815260409091205491029290920135925050811061109357506111e7565b3360009081526002602052604081208054839081106110b4576110b4615a81565b9060005260206000209060090201905060006110d03384610c53565b905081600401548110156110e6575050506111e7565b60008260040154826110f89190615a55565b90508060000361110b57505050506111e7565b8083600401600082825461111f9190615a42565b9091555061112f90508187615a42565b336000908152600f6020526040908190208151608081019092529197508061115a87620f4240615a42565b8152602001838152602001600754426111739190615a42565b8152600080516020615cb8833981519152602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b806111f181615a68565b91505061104e565b50801561127357600080516020615cb88339815191526000908152600a602052600080516020615c588339815191528054839290611238908490615a42565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b5061127c614fe3565b5050565b3360009081526020819052604090205460ff166112af5760405162461bcd60e51b8152600401610dc090615ac1565b601655565b6001600160a01b0381166000908152600c602090815260408083205460189092528220548082116112e65760006112f0565b6112f08183615a55565b949350505050565b606080600083806001600160401b0381111561131657611316615ae9565b60405190808252806020026020018201604052801561133f578160200160208202803683370190505b509350806001600160401b0381111561135a5761135a615ae9565b604051908082528060200260200182016040528015611383578160200160208202803683370190505b50925060005b818110156114e05760008787838181106113a5576113a5615a81565b90506020020160208101906113ba9190615340565b6001600160a01b03811660009081526006602052604090205487519192509081908890859081106113ed576113ed615a81565b6020908102919091018101919091526001600160a01b03808416600090815260049283905260408082205490516302c68be360e31b815291939216916316345f189161143b91879101615362565b602060405180830381865afa158015611458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147c9190615aff565b90506000670de0b6b3a76400006114938484615a09565b61149d9190615a20565b9050808886815181106114b2576114b2615a81565b60209081029190910101526114c78188615a42565b96505050505080806114d890615a68565b915050611389565b50509250925092565b3360009081526020819052604090205460ff166115185760405162461bcd60e51b8152600401610dc090615ac1565b61152c6001600160a01b0383163383614ff4565b6040518181526001600160a01b038316903390600080516020615cf88339815191529060200160405180910390a35050565b611566614fad565b6000805b33600090815260026020526040902054811015611671573360009081526002602052604081208054839081106115a2576115a2615a81565b6000918252602090912060099091020160078101549091506001600160a01b0385811691161480156115e057506007810154600160a01b900460ff16155b1561165e5760006115f1338461274d565b9050816003015481111561165c5760008260030154826116119190615a55565b905061161d8186615a42565b9450808360030160008282546116339190615a42565b9091555050825460038401541061165a5760078301805460ff60a01b1916600160a01b1790555b505b505b508061166981615a68565b91505061156a565b50600081116116925760405162461bcd60e51b8152600401610dc090615a97565b336000908152600560205260409020541561179f576001600160a01b0380831660009081526004602081905260408083205490516302c68be360e31b81529293670de0b6b3a764000093869392909116916316345f18916116f591899101615362565b602060405180830381865afa158015611712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117369190615aff565b6117409190615a09565b61174a9190615a20565b336000908152600560205260409020549091508110611778573360009081526005602052604081205561179d565b3360009081526005602052604081208054839290611797908490615a55565b90915550505b505b6001600160a01b038216600090815260066020526040812080548392906117c7908490615a55565b9091555050336000908152600f6020526040808220815160808101909252600980549193839291906117f883615a68565b919050558152602001838152602001600754426118159190615a42565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a905281208054839290611890908490615a42565b90915550506040513390600080516020615c98833981519152906118b89084906000906154c8565b60405180910390a2506118c9614fe3565b50565b601981815481106118dc57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff166119335760405162461bcd60e51b8152600401610dc090615ac1565b601555565b6003602052816000526040600020818154811061195457600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff166119a35760405162461bcd60e51b8152600401610dc090615ac1565b8281146119ea5760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610dc0565b82611a265760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610dc0565b6000805b84811015611cd0576000868683818110611a4657611a46615a81565b9050602002016020810190611a5b9190615340565b6001600160a01b031603611a815760405162461bcd60e51b8152600401610dc090615b18565b6000848483818110611a9557611a95615a81565b9050602002013511611ab95760405162461bcd60e51b8152600401610dc090615b41565b838382818110611acb57611acb615a81565b90506020020135600c6000888885818110611ae857611ae8615a81565b9050602002016020810190611afd9190615340565b6001600160a01b03168152602081019190915260400160002054611b219084615a55565b611b2b9190615a42565b9150600d6000878784818110611b4357611b43615a81565b9050602002016020810190611b589190615340565b6001600160a01b03166001600160a01b0316815260200190815260200160002054600003611bdf57838382818110611b9257611b92615a81565b90506020020135600d6000888885818110611baf57611baf615a81565b9050602002016020810190611bc49190615340565b6001600160a01b031681526020810191909152604001600020555b838382818110611bf157611bf1615a81565b90506020020135600c6000888885818110611c0e57611c0e615a81565b9050602002016020810190611c239190615340565b6001600160a01b03168152602081019190915260400160002055858582818110611c4f57611c4f615a81565b9050602002016020810190611c649190615340565b6001600160a01b03167fec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b15839858584818110611ca057611ca0615a81565b90506020020135604051611cb691815260200190565b60405180910390a280611cc881615a68565b915050611a2a565b508060116000828254611ce39190615a42565b90915550505050505050565b611cf7614fad565b60008211611d375760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610dc0565b60008111611d575760405162461bcd60e51b8152600401610dc090615b69565b601554821015611d9f5760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610dc0565b6000611daa336112b4565b905080831115611dcc5760405162461bcd60e51b8152600401610dc090615b95565b60088054906000611ddc83615a68565b90915550506008543360009081526018602052604081208054869290611e03908490615a42565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9696909101559054611f089190615a55565b336000818152601a6020908152604080832086845290915290819020929092559051600080516020615cd883398151915290611f4790869085906154c8565b60405180910390a2505061127c614fe3565b60195460609081908190806001600160401b03811115611f7b57611f7b615ae9565b604051908082528060200260200182016040528015611fa4578160200160208202803683370190505b509350806001600160401b03811115611fbf57611fbf615ae9565b604051908082528060200260200182016040528015611fe8578160200160208202803683370190505b509250806001600160401b0381111561200357612003615ae9565b60405190808252806020026020018201604052801561203c57816020015b612029615235565b8152602001906001900390816120215790505b50915060005b818110156121795760006019828154811061205f5761205f615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168083526001909101549282019290925287519092508790849081106120ac576120ac615a81565b60200260200101906001600160a01b031690816001600160a01b03168152505080602001518583815181106120e3576120e3615a81565b60209081029190910181019190915281516001600160a01b039081166000908152601483526040808220858501518352845290819020815160808101835281548152600182015494810194909452600281015490921690830152600301546060820152845185908490811061215a5761215a615a81565b602002602001018190525050808061217190615a68565b915050612042565b5050909192565b3360009081526020819052604090205460ff166121af5760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff1661220c5760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b0381166122325760405162461bcd60e51b8152600401610dc090615b18565b6001600160a01b03811660009081526020819052604090205460ff161561228b5760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610dc0565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b3360009081526001602052604090205460ff166122de5760405162461bcd60e51b8152600401610dc090615ac1565b60026000896001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808981526020018881526020018781526020016000815260200160008152602001848152602001838152602001866001600160a01b03168152602001600015158152602001858152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505082600560008a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546124569190615a42565b90915550506001600160a01b03841660009081526006602052604081208054899290612483908490615a42565b90915550505050505050505050565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561256e57600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff1615156101008401526008015461012083015290835290920191016124ca565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b81811015612746576001600160a01b03841660009081526002602052604081208054839081106125c6576125c6615a81565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b909104161515610100820181905260089092015461012082015291506127335760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f18926126a79201615362565b602060405180830381865afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190615aff565b90506000826060015183600001516127009190615a55565b90506000670de0b6b3a76400006127178385615a09565b6127219190615a20565b905061272d8188615a42565b96505050505b508061273e81615a68565b915050612594565b5050919050565b6001600160a01b038216600090815260026020526040812080548291908490811061277a5761277a615a81565b90600052602060002090600902019050600081600601544261279c9190615a55565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610d7e576001600160a01b03831660009081526003602052604081208054839081106127fb576127fb615a81565b6000918252602090912060029091020180546001820154919250908187106128455787546127109061282e908390615a09565b6128389190615a20565b6128429086615a42565b94505b5050508061285290615a68565b90506127b1565b6000612863615051565b805490915060ff600160401b82041615906001600160401b031660008115801561288a5750825b90506000826001600160401b031660011480156128a65750303b155b9050811580156128b4575080155b156128d25760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156128fb57845460ff60401b1916600160401b1785555b61290361507a565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c580548216831790557f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548216831790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054821683179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e84527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc80549091169091179055600c905269021e19e0c9bab24000007f649cbac87391465cfe24c65b052f0edf3b8486f136e0b91262d76d1f34d7826b8190556011805491929091612a24908490615a42565b90915550506201fa4060075560646013558315612a7b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b3360009081526020819052604090205460ff16612ab15760405162461bcd60e51b8152600401610dc090615ac1565b60008111612b0f5760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610dc0565b601355565b3360009081526020819052604090205460ff16612b435760405162461bcd60e51b8152600401610dc090615ac1565b612b5c600080516020615cb88339815191523383614ff4565b604051818152600080516020615cb8833981519152903390600080516020615cf88339815191529060200160405180910390a350565b3360009081526020819052604090205460ff16612bc15760405162461bcd60e51b8152600401610dc090615ac1565b60105460009015612c0c576000600b60006001601054612be19190615a55565b81526020019081526020016000209050612c0884601154836001015484600201548761508a565b9150505b601354811115612c575760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610dc0565b6040805160c08101825285815260208082018681526011548385019081526060808501888152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518781529182018590529281018590527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a260108054906000612d1383615a68565b919050555050505050565b3360009081526001602052604090205460ff16612d4d5760405162461bcd60e51b8152600401610dc090615ac1565b612d5d86868686868642426122af565b505050505050565b33600090815260146020908152604080832084845290915290208054612d9d5760405162461bcd60e51b8152600401610dc090615bc5565b60028101546001600160a01b03163314612dc95760405162461bcd60e51b8152600401610dc090615bf0565b805460165460009061271090612ddf9084615a09565b612de99190615a20565b33600090815260186020526040812080549293508492909190612e0d908490615a55565b90915550508015612e5657336000908152600c602052604081208054839290612e37908490615a55565b925050819055508060116000828254612e509190615a55565b90915550505b8015612ea057336001600160a01b03167f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f98286604051612e979291906154c8565b60405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a82528083208884529091528120546019549092612f0091615a55565b9050808214612fc157600060198281548110612f1e57612f1e615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110612f6a57612f6a615a81565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480612fd257612fd2615c18565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d910160405180910390a2505050505050565b6060818311156130945760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610dc0565b60105482106130db5760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610dc0565b60006130e78484615a55565b6130f2906001615a42565b90506000816001600160401b0381111561310e5761310e615ae9565b60405190808252806020026020018201604052801561314757816020015b613134615266565b81526020019060019003908161312c5790505b50905060005b828110156131e857600b60006131638389615a42565b81526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250508282815181106131ca576131ca615a81565b602002602001018190525080806131e090615a68565b91505061314d565b50949350505050565b6131f9614fad565b600081116132195760405162461bcd60e51b8152600401610dc090615b41565b6000601254116132625760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610dc0565b600061326d336112b4565b90508082111561328f5760405162461bcd60e51b8152600401610dc090615b95565b61271061329e826109c4615a09565b6132a89190615a20565b8210156132e85760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610dc0565b6000612710601254846132fb9190615a09565b6133059190615a20565b336000908152600c6020526040812080549293508592909190613329908490615a55565b9250508190555082601160008282546133429190615a55565b9091555050336000908152601c602052604081208054839290613366908490615a42565b90915550506008805490600061337b83615a68565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906133b89042615a42565b8152600080516020615cb8833981519152602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a9052600080516020615c58833981519152805483929061344e908490615a42565b90915550506040518181523390600080516020615c788339815191529060200160405180910390a250506118c9614fe3565b601b818154811061349057600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b6134db615235565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166135665760405162461bcd60e51b8152600401610dc090615ac1565b6127108111156135b85760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610dc0565b601255565b6135c5614fad565b33600090815260026020526040902054811061361b5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610dc0565b33600090815260026020526040812080548390811061363c5761363c615a81565b906000526020600020906009020190508060070160149054906101000a900460ff161561369e5760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610dc0565b60006136aa338461274d565b905081600301548110156136f75760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610dc0565b60008260030154826137099190615a55565b90506000811161372b5760405162461bcd60e51b8152600401610dc090615a97565b8083600301600082825461373f9190615a42565b909155505082546003840154106137665760078301805460ff60a01b1916600160a01b1790555b33600090815260056020526040902054156138775760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b81529294670de0b6b3a764000094879492909116926316345f18926137cd929101615362565b602060405180830381865afa1580156137ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380e9190615aff565b6138189190615a09565b6138229190615a20565b3360009081526005602052604090205490915081106138505733600090815260056020526040812055613875565b336000908152600560205260408120805483929061386f908490615a55565b90915550505b505b60078301546001600160a01b0316600090815260066020526040812080548392906138a3908490615a55565b9091555050336000908152600f6020526040808220815160808101909252600980549193839291906138d483615a68565b919050558152602001838152602001600754426138f19190615a42565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a905281208054839290613974908490615a42565b90915550506040513390600080516020615c988339815191529061399c9084906000906154c8565b60405180910390a25050506118c9614fe3565b6139e3604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613aa85783828281548110613a1957613a19615a81565b90600052602060002090600402016000015403613a9657818181548110613a4257613a42615a81565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610d85915050565b80613aa081615a68565b9150506139fd565b5060405162461bcd60e51b8152600401610dc090615c2e565b3360009081526020819052604090205460ff16613af05760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b038316613b3e5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610dc0565b600081118015613b5057506127108111155b613b915760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610dc0565b6001600160a01b0383166000908152600360205260408120613bb29161529c565b6000825b612710821015613c4f5782612710613bce8285615a42565b1115613be357613be083612710615a55565b90505b6001600160a01b0386166000908152600360209081526040808320815180830190925285825281830185815281546001818101845592865293909420915160029093029091019182559151910155613c3b8184615a42565b9250613c478583615a42565b915050613bb6565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b613c92615266565b6010548210613cd55760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610dc0565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b60026020528160005260406000208181548110613d4a57600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b038216600090815260026020526040812080546060928392909185908110613ddd57613ddd615a81565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115613e2557613e25615ae9565b604051908082528060200260200182016040528015613e4e578160200160208202803683370190505b5090506000826001600160401b03811115613e6b57613e6b615ae9565b604051908082528060200260200182016040528015613e94578160200160208202803683370190505b50905060005b83811015613f41576001600160a01b0385166000908152600360205260408120805483908110613ecc57613ecc615a81565b9060005260206000209060020201905080600001548760060154613ef09190615a42565b848381518110613f0257613f02615a81565b6020026020010181815250508060010154838381518110613f2557613f25615a81565b602090810291909101015250613f3a81615a68565b9050613e9a565b5090955093505050505b9250929050565b6000806000806000613f6386610bb9565b90506000613f70876112b4565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561256e57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b031660608301529083529092019101613fde565b600f602052816000526040600020818154811061405757600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166140b95760405162461bcd60e51b8152600401610dc090615ac1565b600755565b60606001600160a01b0382166140e65760405162461bcd60e51b8152600401610dc090615b18565b6000805b601b5481101561419657836001600160a01b0316601b828154811061411157614111615a81565b60009182526020909120600460069092020101546001600160a01b031614806141715750836001600160a01b0316601b828154811061415257614152615a81565b60009182526020909120600560069092020101546001600160a01b0316145b15614184578161418081615a68565b9250505b8061418e81615a68565b9150506140ea565b50806000036141d85760408051600080825260208201909252906141d0565b6141bd6152bd565b8152602001906001900390816141b55790505b509392505050565b6000816001600160401b038111156141f2576141f2615ae9565b60405190808252806020026020018201604052801561422b57816020015b6142186152bd565b8152602001906001900390816142105790505b5090506000805b601b5481101561437457856001600160a01b0316601b828154811061425957614259615a81565b60009182526020909120600460069092020101546001600160a01b031614806142b95750856001600160a01b0316601b828154811061429a5761429a615a81565b60009182526020909120600560069092020101546001600160a01b0316145b1561436257601b81815481106142d1576142d1615a81565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152835184908490811061434857614348615a81565b6020026020010181905250818061435e90615a68565b9250505b8061436c81615a68565b915050614232565b5090949350505050565b601b5460609083106143ce5760405162461bcd60e51b8152602060048201526019602482015278537461727420696e646578206f7574206f6620626f756e647360381b6044820152606401610dc0565b60006143da8385615a42565b601b549091508111156143ec5750601b545b60006143f88583615a55565b6001600160401b0381111561440f5761440f615ae9565b60405190808252806020026020018201604052801561444857816020015b6144356152bd565b81526020019060019003908161442d5790505b509050845b828110156131e857601b818154811061446857614468615a81565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826144d68884615a55565b815181106144e6576144e6615a81565b602002602001018190525080806144fc90615a68565b91505061444d565b61450c614fad565b336000908152600f60205260409020805461455f5760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610dc0565b816145a45760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610dc0565b60005b828110156147455760008484838181106145c3576145c3615a81565b9050602002013590506000805b84548110156147125760008582815481106145ed576145ed615a81565b90600052602060002090600402019050838160000154148015614614575060008160010154115b156146ff57806002015442101561465c5760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610dc0565b60018101805460038301546000928390556001600160a01b0316808352600a60205260408320805492939192849290614696908490615a55565b909155506146b090506001600160a01b0382163384614ff4565b336001600160a01b03167f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef83886040516146eb9291906154c8565b60405180910390a260019450505050614712565b508061470a81615a68565b9150506145d0565b50806147305760405162461bcd60e51b8152600401610dc090615c2e565b5050808061473d90615a68565b9150506145a7565b505061127c614fe3565b60608060008061475e856112b4565b6001600160a01b0386166000908152600e602052604081205460105492935091614789908390615a55565b9050806000036147ba5750506040805160008082526020820181815282840190935290955090935091506149209050565b806001600160401b038111156147d2576147d2615ae9565b6040519080825280602002602001820160405280156147fb578160200160208202803683370190505b509550806001600160401b0381111561481657614816615ae9565b60405190808252806020026020018201604052801561483f578160200160208202803683370190505b50945060005b8181101561491b5760006148598285615a42565b90508088838151811061486e5761486e615a81565b602090810291909101015284156148e7576000818152600b60205260408120600401546127109061489f9088615a09565b6148a99190615a20565b9050808884815181106148be576148be615a81565b60209081029190910101526148d38188615a42565b96506148df8187615a55565b955050614908565b60008783815181106148fb576148fb615a81565b6020026020010181815250505b508061491381615a68565b915050614845565b505050505b9193909250565b61492f614fad565b6001600160a01b0382166000908152601460209081526040808320848452909152902080546149705760405162461bcd60e51b8152600401610dc090615bc5565b336001600160a01b038416036149c15760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610dc0565b80546001820154600383015460008284116149dd5760006149e7565b6149e78385615a55565b90506000846149f883612710615a09565b614a029190615a20565b90506000612710614a138380615a09565b614a1d9190615a20565b90506000612710614a2e8389615a09565b614a389190615a20565b90506000614a468289615a55565b9050614a62600080516020615cb8833981519152338d8a615123565b6001600160a01b038b166000908152600c6020526040812080548a9290614a8a908490615a55565b9091555050336000908152600c602052604081208054839290614aae908490615a42565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614adb908490615a55565b925050819055508160116000828254614af49190615a55565b90915550506001600160a01b038b1660009081526017602052604081208054899290614b21908490615a42565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c815260200190815260200160002054905060006001601980549050614cd09190615a55565b9050808214614d9157600060198281548110614cee57614cee615a81565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600101549181019190915260198054919250829185908110614d3a57614d3a615a81565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b6019805480614da257614da2615c18565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f604051614e5c9291906154c8565b60405180910390a3505050505050505050505061127c614fe3565b33600090815260146020908152604080832085845290915290208054614eaf5760405162461bcd60e51b8152600401610dc090615bc5565b60028101546001600160a01b03163314614edb5760405162461bcd60e51b8152600401610dc090615bf0565b60008211614efb5760405162461bcd60e51b8152600401610dc090615b69565b600181018290556040513390600080516020615cd883398151915290614f2490859087906154c8565b60405180910390a2505050565b3360009081526020819052604090205460ff16614f605760405162461bcd60e51b8152600401610dc090615ac1565b6001600160a01b038116614f865760405162461bcd60e51b8152600401610dc090615b18565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000614fb7615162565b805490915060011901614fdd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000614fed615162565b6001905550565b61504c83846001600160a01b031663a9059cbb858560405160240161501a9291906154af565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050615186565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610d85565b6150826151ee565b610f4f615213565b6000821580615097575084155b156150a45750600061511a565b6000856150b388612710615a09565b6150bd9190615a20565b90506000846150ce87612710615a09565b6150d89190615a20565b90508082116150ec5760009250505061511a565b60006150f88284615a55565b905060006127106151098784615a09565b6151139190615a20565b9450505050505b95945050505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261515c9186918216906323b872dd9060840161501a565b50505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b600080602060008451602086016000885af1806151a9576040513d6000823e3d81fd5b50506000513d915081156151c15780600114156151ce565b6001600160a01b0384163b155b1561515c5783604051635274afe760e01b8152600401610dc09190615362565b6151f661521b565b610f4f57604051631afcd79f60e31b815260040160405180910390fd5b614fe36151ee565b6000615225615051565b54600160401b900460ff16919050565b6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50805460008255600202906000526020600020908101906118c99190615305565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b5b808211156153205760008082556001820155600201615306565b5090565b80356001600160a01b038116811461533b57600080fd5b919050565b60006020828403121561535257600080fd5b61535b82615324565b9392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561538957600080fd5b61539283615324565b946020939093013593505050565b60008083601f8401126153b257600080fd5b5081356001600160401b038111156153c957600080fd5b6020830191508360208260051b8501011115613f4b57600080fd5b600080602083850312156153f757600080fd5b82356001600160401b0381111561540d57600080fd5b615419858286016153a0565b90969095509350505050565b60006020828403121561543757600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561546e57815187529582019590820190600101615452565b509495945050505050565b60608152600061548c606083018661543e565b828103602084015261549e818661543e565b915050826040830152949350505050565b6001600160a01b03929092168252602082015260400190565b918252602082015260400190565b600080600080604085870312156154ec57600080fd5b84356001600160401b038082111561550357600080fd5b61550f888389016153a0565b9096509450602087013591508082111561552857600080fd5b50615535878288016153a0565b95989497509550505050565b6000806040838503121561555457600080fd5b50508035926020909101359150565b80518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b60608082528451908201819052600090608090818401906020808901855b838110156155d25781516001600160a01b0316855293820193908201906001016155ad565b5050858303818701526155e5838961543e565b868103604088015287518082528289019450908201925060005b8181101561562257615612848651615563565b93820193928501926001016155ff565b50919998505050505050505050565b6000806040838503121561564457600080fd5b61564d83615324565b915061565b60208401615324565b90509250929050565b600080600080600080600080610100898b03121561568157600080fd5b61568a89615324565b97506020890135965060408901359550606089013594506156ad60808a01615324565b979a969950949793969560a0850135955060c08501359460e001359350915050565b602080825282518282018190526000919060409081850190868401855b828110156157705781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b03169086015261010080820151151590860152610120908101519085015261014090930192908501906001016156ec565b5091979650505050505050565b60008060006060848603121561579257600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c087890312156157c257600080fd5b6157cb87615324565b95506020870135945060408701359350606087013592506157ee60808801615324565b915060a087013590509295509295509295565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020808252825182820181905260009190848201906040850190845b8181101561587d5761586a838551615801565b9284019260c09290920191600101615857565b50909695505050505050565b60808101610d858284615563565b8051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b60808101610d858284615897565b6000806000606084860312156158e657600080fd5b6158ef84615324565b95602085013595506040909401359392505050565b60c08101610d858284615801565b604081526000615925604083018561543e565b828103602084015261511a818561543e565b6020808252825182820181905260009190848201906040850190845b8181101561587d57615966838551615897565b9284019260809290920191600101615953565b602080825282518282018190526000919060409081850190868401855b828110156157705781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c09093019290850190600101615996565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610d8557610d856159f3565b600082615a3d57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d8557610d856159f3565b81810381811115610d8557610d856159f3565b600060018201615a7a57615a7a6159f3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b600060208284031215615b1157600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260129082015271496e76616c69642073616c6520707269636560701b604082015260600190565b602080825260169082015275496e73756666696369656e74206e6574207374616b6560501b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b6020808252600e908201526d2737ba103a34329039b2b63632b960911b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b6020808252600f908201526e14dd185ad9481b9bdd08199bdd5b99608a1b60408201526060019056feb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0a65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172100000000000000000000000055d398326f99059ff775485246999027b31979558e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031ca92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8aa264697066735822122038a6309918b9c1f21fc1cbd5654591c8dde8a3e42d941aeb5d6bbb87215d48e164736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/contracts/CunaFinanceBsc.sol b/contracts/CunaFinanceBsc.sol index 69be7ad..d4eed8a 100644 --- a/contracts/CunaFinanceBsc.sol +++ b/contracts/CunaFinanceBsc.sol @@ -506,27 +506,6 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable { // Bot Functions for Staking Management - /// @notice Create or update a user's big stake (for migration or manual adjustment) - /// @dev Only to be used by bots for initial setup or emergency adjustments - /// @param user The user address to create/update stake for - /// @param amount The stake amount - function createUserStake(address user, uint256 amount) external onlyBot { - require(user != address(0), "Invalid address"); - require(amount > 0, "Invalid amount"); - - // Update total stakes accounting - totalBigStakes = totalBigStakes - userBigStake[user] + amount; - - // Set original stake only if this is the first time (never changes after) - if (userOriginalStake[user] == 0) { - userOriginalStake[user] = amount; - } - - // Set user's big stake - userBigStake[user] = amount; - - emit StakeCreated(user, amount); - } /// @notice Batch create stakes for multiple users (efficient for migration) /// @dev Only to be used by bots for initial setup @@ -545,6 +524,11 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable { // Update accounting totalAdded = totalAdded - userBigStake[users[i]] + amounts[i]; + // Set original stake only if this is the first time (never changes after) + if (userOriginalStake[users[i]] == 0) { + userOriginalStake[users[i]] = amounts[i]; + } + // Set user's big stake userBigStake[users[i]] = amounts[i]; @@ -600,7 +584,7 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable { uint256[] memory amounts, uint256 totalUnclaimed ) { - uint256 remainingStake = userBigStake[user]; + uint256 remainingStake = getNetStake(user); uint256 startEpoch = userLastClaimedEpoch[user]; uint256 epochCount = currentEpochId - startEpoch;