Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@streamr/network-contracts

Package Overview
Dependencies
Maintainers
12
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@streamr/network-contracts - npm Package Compare versions

Comparing version 4.2.0 to 4.3.0

4

dist/artifacts/contracts/OperatorTokenomics/OperatorFactory.sol/OperatorFactory.json

@@ -678,6 +678,6 @@ {

],
"bytecode": "0x60c06040523060805234801561001457600080fd5b50600060a05260805160a05161244b6100586000396000505060008181610771015281816107b1015281816108300152818161087001526108df015261244b6000f3fe60806040526004361061018c5760003560e01c80636f0a812e116100d7578063b3a79c8d11610085578063b3a79c8d146104c0578063bf057ffd146104e0578063c0c53b8b14610500578063cfb658b714610520578063d547741f14610540578063d6c3187114610560578063d8bd0de414610581578063f456a0f8146105a157600080fd5b80636f0a812e146103e3578063721843941461041457806391d14854146104295780639d76ea5814610449578063a0cdb9d21461046a578063a217fddf1461048a578063b190f4931461049f57600080fd5b80632f2ff15d1161013f5780632f2ff15d146102dd57806336568abe146102ff5780633659cfe61461031f5780634703e0011461033f5780634f1ef2861461036d57806352d1902d14610380578063572b6c0514610395578063593635cf146103b557600080fd5b8062cba9431461019157806301ffc9a7146101d857806313e7c9d8146102085780631a8eab7e146102575780631c7b8395146102775780631ee49ac41461028d578063248a9ca3146102ad575b600080fd5b34801561019d57600080fd5b506101c57fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611cd4565b6105b6565b60405190151581526020016101cf565b34801561021457600080fd5b5061023f610223366004611d13565b610134602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561026357600080fd5b506101f8610272366004611d13565b6105ed565b34801561028357600080fd5b50610132546101c5565b34801561029957600080fd5b5061023f6102a8366004611d30565b61060c565b3480156102b957600080fd5b506101c56102c8366004611da1565b600090815260fb602052604090206001015490565b3480156102e957600080fd5b506102fd6102f8366004611dba565b6106aa565b005b34801561030b57600080fd5b506102fd61031a366004611dba565b6106d4565b34801561032b57600080fd5b506102fd61033a366004611d13565b610767565b34801561034b57600080fd5b506101c561035a366004611d13565b6101316020526000908152604090205481565b6102fd61037b366004611e00565b610826565b34801561038c57600080fd5b506101c56108d2565b3480156103a157600080fd5b506101f86103b0366004611d13565b610980565b3480156103c157600080fd5b506101c56103d0366004611d13565b6101336020526000908152604090205481565b3480156103ef57600080fd5b506101f86103fe366004611d13565b6101306020526000908152604090205460ff1681565b34801561042057600080fd5b506102fd6109ac565b34801561043557600080fd5b506101f8610444366004611dba565b610b99565b34801561045557600080fd5b5061012f5461023f906001600160a01b031681565b34801561047657600080fd5b506102fd610485366004611d13565b610bc4565b34801561049657600080fd5b506101c5600081565b3480156104ab57600080fd5b5061012d5461023f906001600160a01b031681565b3480156104cc57600080fd5b506102fd6104db366004611ec3565b610bf5565b3480156104ec57600080fd5b5061023f6104fb366004611da1565b610c4d565b34801561050c57600080fd5b506102fd61051b366004611f25565b610c78565b34801561052c57600080fd5b5061023f61053b366004611f70565b610dd4565b34801561054c57600080fd5b506102fd61055b366004611dba565b610df3565b34801561056c57600080fd5b5061012e5461023f906001600160a01b031681565b34801561058d57600080fd5b506102fd61059c366004611d13565b610e18565b3480156105ad57600080fd5b506102fd610e46565b60006001600160e01b03198216637965db0b60e01b14806105e757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b6000808383610619610f88565b60405160200161062b9392919061200c565b60408051601f1981840301815290829052805160209091012061012d543060388401526f5af43d82803e903d91602b57fd5bf3ff60248401526001600160a01b03166014830152733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c82012060788201526055604390910120949350505050565b600082815260fb60205260409020600101546106c581610f97565b6106cf8383610fa8565b505050565b6106dc610f88565b6001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610763828261102f565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107af5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e16110b4565b6001600160a01b0316146108075760405162461bcd60e51b815260040161075090612084565b60408051600080825260208201909252610823918391906110d0565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361086e5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108a06110b4565b6001600160a01b0316146108c65760405162461bcd60e51b815260040161075090612084565b610763828260016110d0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461096d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610750565b506000805160206123cf83398151915290565b60006105e77fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d283610b99565b60006109b6610f88565b6001600160a01b038116600090815261013160205260409020549091506109ef5760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b038116600090815261013360205260409020548190610a475760405162461bcd60e51b815260206004820152600d60248201526c6572726f725f6e6f744c69766560981b6044820152606401610750565b6001600160a01b03811660009081526101336020526040812054610a6d90600190612113565b6101328054919250600091610a8490600190612113565b81548110610a9457610a9461212a565b60009182526020909120015461013280546001600160a01b039092169250829184908110610ac457610ac461212a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610132805480610b0457610b04612140565b600082815260209020810160001990810180546001600160a01b0319169055019055610b31826001612156565b6001600160a01b03828116600090815261013360209081526040808320949094558683168252838220829055835192881683528201527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd891015b60405180910390a150505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610bcf81610f97565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b6000610c0081610f97565b60005b82811015610c4757610c35848483818110610c2057610c2061212a565b90506020020160208101906104859190611d13565b80610c3f8161216e565b915050610c03565b50505050565b6101328181548110610c5e57600080fd5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff1615808015610c985750600054600160ff909116105b80610cb25750303b158015610cb2575060005460ff166001145b610d155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610750565b6000805460ff191660011790558015610d38576000805461ff0019166101001790555b610d4061123b565b610d526000610d4d610f88565b6112a8565b61012e80546001600160a01b038085166001600160a01b03199283161790925561012f805486841690831617905561012d8054928716929091169190911790558015610c47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610b8b565b6000610de9610de1610f88565b8585856112b2565b90505b9392505050565b600082815260fb6020526040902060010154610e0e81610f97565b6106cf838361102f565b6000610e2381610f97565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b6000610e50610f88565b6001600160a01b03811660009081526101316020526040902054909150610e895760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b03811660009081526101336020526040902054819015610ee65760405162461bcd60e51b81526020600482015260116024820152706572726f725f616c72656164794c69766560781b6044820152606401610750565b6101328054600180820183557fc53bdfd4aa1ab65dfdaf681ca6bda958ae4a123d4ed68c4277796592280e783590910180546001600160a01b0319166001600160a01b0385811691821790925592546000938452610133602090815260409485902091909155835191861682528101919091527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd8910160405180910390a15050565b6000610f926117e2565b905090565b61082381610fa3610f88565b611804565b610fb28282610b99565b61076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610feb610f88565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110398282610b99565b1561076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055611070610f88565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206123cf833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611103576106cf8361185d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561115d575060408051601f3d908101601f1916820190925261115a91810190612187565b60015b6111c05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610750565b6000805160206123cf833981519152811461122f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610750565b506106cf8383836118f9565b600054610100900460ff166112a65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610750565b565b6107638282610fa8565b6000805b600381101561135a5760008482600381106112d3576112d361212a565b6020020160208101906112e69190611d13565b90506001600160a01b03811615806113025750611302816105ed565b6113475760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b6044820152606401610750565b50806113528161216e565b9150506112b6565b50600061136785806121a0565b8760405160200161137a9392919061200c565b60408051601f19818403018152919052805160209091012061012d549091506000906113af906001600160a01b03168361191e565b61012f5461012e54604051630d92695960e21b815292935083926001600160a01b0380851693633649a564936113fd939183169216908d908d9060808d01359060a08e0135906004016121ed565b600060405180830381600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b50600092506114409150506020880188611d13565b6001600160a01b0316146114d6576001600160a01b038116633f5c525661146a6020890189611d13565b60405160e083901b6001600160e01b03191681526001600160a01b039190911660048201528735602482015260208801356044820152606401600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050505b60006114e86040880160208901611d13565b6001600160a01b031614611579576001600160a01b03811663cadb1c6a6115156040890160208a01611d13565b6040805160e084901b6001600160e01b03191681526001600160a01b039290921660048301528801356024820152604401600060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050505b600061158b6060880160408901611d13565b6001600160a01b03161461161d576001600160a01b03811663ffff59a66115b86060890160408a01611d13565b60405160e083901b6001600160e01b03191681526001600160a01b0391909116600482015260608801356024820152604401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b806001600160a01b03166336568abe826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612187565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116cd57600080fd5b505af11580156116e1573d6000803e3d6000fd5b505050506001600160a01b03828116600081815261013160209081526040918290204290558151938c1684528301919091527ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c910160405180910390a16001600160a01b038881166000908152610134602052604090205416156117a75760405162461bcd60e51b815260206004820152601d60248201527f6572726f725f6f70657261746f72416c72656164794465706c6f7965640000006044820152606401610750565b506001600160a01b0396871660009081526101346020526040902080546001600160a01b031916978216979097179096555093949350505050565b60006117ed33610980565b156117ff575060131936013560601c90565b503390565b61180e8282610b99565b6107635761181b816119b5565b6118268360206119c7565b6040516020016118379291906122da565b60408051601f198184030181529082905262461bcd60e51b825261075091600401612349565b6001600160a01b0381163b6118ca5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610750565b6000805160206123cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61190283611b62565b60008251118061190f5750805b156106cf57610c478383611ba2565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166105e75760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610750565b60606105e76001600160a01b03831660145b606060006119d683600261237c565b6119e1906002612156565b6001600160401b038111156119f8576119f8611dea565b6040519080825280601f01601f191660200182016040528015611a22576020820181803683370190505b509050600360fc1b81600081518110611a3d57611a3d61212a565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a6c57611a6c61212a565b60200101906001600160f81b031916908160001a9053506000611a9084600261237c565b611a9b906001612156565b90505b6001811115611b13576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611acf57611acf61212a565b1a60f81b828281518110611ae557611ae561212a565b60200101906001600160f81b031916908160001a90535060049490941c93611b0c8161239b565b9050611a9e565b508315610dec5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610750565b611b6b8161185d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c0a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610750565b600080846001600160a01b031684604051611c2591906123b2565b600060405180830381855af49150503d8060008114611c60576040519150601f19603f3d011682016040523d82523d6000602084013e611c65565b606091505b5091509150611c8d82826040518060600160405280602781526020016123ef60279139611c96565b95945050505050565b60608315611ca5575081610dec565b610dec8383815115611cba5781518083602001fd5b8060405162461bcd60e51b81526004016107509190612349565b600060208284031215611ce657600080fd5b81356001600160e01b031981168114610dec57600080fd5b6001600160a01b038116811461082357600080fd5b600060208284031215611d2557600080fd5b8135610dec81611cfe565b60008060208385031215611d4357600080fd5b82356001600160401b0380821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b813581811115611d7d57600080fd5b866020828501011115611d8f57600080fd5b60209290920196919550909350505050565b600060208284031215611db357600080fd5b5035919050565b60008060408385031215611dcd57600080fd5b823591506020830135611ddf81611cfe565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611e1357600080fd5b8235611e1e81611cfe565b915060208301356001600160401b0380821115611e3a57600080fd5b818501915085601f830112611e4e57600080fd5b813581811115611e6057611e60611dea565b604051601f8201601f19908116603f01168101908382118183101715611e8857611e88611dea565b81604052828152886020848701011115611ea157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060208385031215611ed657600080fd5b82356001600160401b0380821115611eed57600080fd5b818501915085601f830112611f0157600080fd5b813581811115611f1057600080fd5b8660208260051b8501011115611d8f57600080fd5b600080600060608486031215611f3a57600080fd5b8335611f4581611cfe565b92506020840135611f5581611cfe565b91506040840135611f6581611cfe565b809150509250925092565b6000806000610140808587031215611f8757600080fd5b84356001600160401b03811115611f9d57600080fd5b850160408101871015611faf57600080fd5b93506080850186811115611fc257600080fd5b602086019350868287011115611fd757600080fd5b80925050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000612020604083018587611fe3565b905060018060a01b0383166020830152949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252601390820152726572726f725f6f6e6c794f70657261746f727360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612125576121256120fd565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115612169576121696120fd565b500190565b600060018201612180576121806120fd565b5060010190565b60006020828403121561219957600080fd5b5051919050565b6000808335601e198436030181126121b757600080fd5b8301803591506001600160401b038211156121d157600080fd5b6020019150368190038213156121e657600080fd5b9250929050565b6001600160a01b038781168252868116602080840191909152908616604083015260c06060830181905260009161010084019184019087845b60028110156122955786850360bf190184528135368b9003601e1901811261224d57600080fd5b8a0180356001600160401b0381111561226557600080fd5b8036038c131561227457600080fd5b6122818782878501611fe3565b965050509282019290820190600101612226565b5050505060808301949094525060a00152949350505050565b60005b838110156122c95781810151838201526020016122b1565b83811115610c475750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161230c8160178501602088016122ae565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161233d8160288401602088016122ae565b01602801949350505050565b60208152600082518060208401526123688160408501602087016122ae565b601f01601f19169190910160400192915050565b6000816000190483118215151615612396576123966120fd565b500290565b6000816123aa576123aa6120fd565b506000190190565b600082516123c48184602087016122ae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200094cc5079baf65b149b8d120d628e4432eb8ed4ee634ce655e6d60c8a20185864736f6c634300080d0033",
"deployedBytecode": "0x60806040526004361061018c5760003560e01c80636f0a812e116100d7578063b3a79c8d11610085578063b3a79c8d146104c0578063bf057ffd146104e0578063c0c53b8b14610500578063cfb658b714610520578063d547741f14610540578063d6c3187114610560578063d8bd0de414610581578063f456a0f8146105a157600080fd5b80636f0a812e146103e3578063721843941461041457806391d14854146104295780639d76ea5814610449578063a0cdb9d21461046a578063a217fddf1461048a578063b190f4931461049f57600080fd5b80632f2ff15d1161013f5780632f2ff15d146102dd57806336568abe146102ff5780633659cfe61461031f5780634703e0011461033f5780634f1ef2861461036d57806352d1902d14610380578063572b6c0514610395578063593635cf146103b557600080fd5b8062cba9431461019157806301ffc9a7146101d857806313e7c9d8146102085780631a8eab7e146102575780631c7b8395146102775780631ee49ac41461028d578063248a9ca3146102ad575b600080fd5b34801561019d57600080fd5b506101c57fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611cd4565b6105b6565b60405190151581526020016101cf565b34801561021457600080fd5b5061023f610223366004611d13565b610134602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561026357600080fd5b506101f8610272366004611d13565b6105ed565b34801561028357600080fd5b50610132546101c5565b34801561029957600080fd5b5061023f6102a8366004611d30565b61060c565b3480156102b957600080fd5b506101c56102c8366004611da1565b600090815260fb602052604090206001015490565b3480156102e957600080fd5b506102fd6102f8366004611dba565b6106aa565b005b34801561030b57600080fd5b506102fd61031a366004611dba565b6106d4565b34801561032b57600080fd5b506102fd61033a366004611d13565b610767565b34801561034b57600080fd5b506101c561035a366004611d13565b6101316020526000908152604090205481565b6102fd61037b366004611e00565b610826565b34801561038c57600080fd5b506101c56108d2565b3480156103a157600080fd5b506101f86103b0366004611d13565b610980565b3480156103c157600080fd5b506101c56103d0366004611d13565b6101336020526000908152604090205481565b3480156103ef57600080fd5b506101f86103fe366004611d13565b6101306020526000908152604090205460ff1681565b34801561042057600080fd5b506102fd6109ac565b34801561043557600080fd5b506101f8610444366004611dba565b610b99565b34801561045557600080fd5b5061012f5461023f906001600160a01b031681565b34801561047657600080fd5b506102fd610485366004611d13565b610bc4565b34801561049657600080fd5b506101c5600081565b3480156104ab57600080fd5b5061012d5461023f906001600160a01b031681565b3480156104cc57600080fd5b506102fd6104db366004611ec3565b610bf5565b3480156104ec57600080fd5b5061023f6104fb366004611da1565b610c4d565b34801561050c57600080fd5b506102fd61051b366004611f25565b610c78565b34801561052c57600080fd5b5061023f61053b366004611f70565b610dd4565b34801561054c57600080fd5b506102fd61055b366004611dba565b610df3565b34801561056c57600080fd5b5061012e5461023f906001600160a01b031681565b34801561058d57600080fd5b506102fd61059c366004611d13565b610e18565b3480156105ad57600080fd5b506102fd610e46565b60006001600160e01b03198216637965db0b60e01b14806105e757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b6000808383610619610f88565b60405160200161062b9392919061200c565b60408051601f1981840301815290829052805160209091012061012d543060388401526f5af43d82803e903d91602b57fd5bf3ff60248401526001600160a01b03166014830152733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c82012060788201526055604390910120949350505050565b600082815260fb60205260409020600101546106c581610f97565b6106cf8383610fa8565b505050565b6106dc610f88565b6001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610763828261102f565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107af5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e16110b4565b6001600160a01b0316146108075760405162461bcd60e51b815260040161075090612084565b60408051600080825260208201909252610823918391906110d0565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361086e5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108a06110b4565b6001600160a01b0316146108c65760405162461bcd60e51b815260040161075090612084565b610763828260016110d0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461096d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610750565b506000805160206123cf83398151915290565b60006105e77fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d283610b99565b60006109b6610f88565b6001600160a01b038116600090815261013160205260409020549091506109ef5760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b038116600090815261013360205260409020548190610a475760405162461bcd60e51b815260206004820152600d60248201526c6572726f725f6e6f744c69766560981b6044820152606401610750565b6001600160a01b03811660009081526101336020526040812054610a6d90600190612113565b6101328054919250600091610a8490600190612113565b81548110610a9457610a9461212a565b60009182526020909120015461013280546001600160a01b039092169250829184908110610ac457610ac461212a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610132805480610b0457610b04612140565b600082815260209020810160001990810180546001600160a01b0319169055019055610b31826001612156565b6001600160a01b03828116600090815261013360209081526040808320949094558683168252838220829055835192881683528201527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd891015b60405180910390a150505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610bcf81610f97565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b6000610c0081610f97565b60005b82811015610c4757610c35848483818110610c2057610c2061212a565b90506020020160208101906104859190611d13565b80610c3f8161216e565b915050610c03565b50505050565b6101328181548110610c5e57600080fd5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff1615808015610c985750600054600160ff909116105b80610cb25750303b158015610cb2575060005460ff166001145b610d155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610750565b6000805460ff191660011790558015610d38576000805461ff0019166101001790555b610d4061123b565b610d526000610d4d610f88565b6112a8565b61012e80546001600160a01b038085166001600160a01b03199283161790925561012f805486841690831617905561012d8054928716929091169190911790558015610c47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610b8b565b6000610de9610de1610f88565b8585856112b2565b90505b9392505050565b600082815260fb6020526040902060010154610e0e81610f97565b6106cf838361102f565b6000610e2381610f97565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b6000610e50610f88565b6001600160a01b03811660009081526101316020526040902054909150610e895760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b03811660009081526101336020526040902054819015610ee65760405162461bcd60e51b81526020600482015260116024820152706572726f725f616c72656164794c69766560781b6044820152606401610750565b6101328054600180820183557fc53bdfd4aa1ab65dfdaf681ca6bda958ae4a123d4ed68c4277796592280e783590910180546001600160a01b0319166001600160a01b0385811691821790925592546000938452610133602090815260409485902091909155835191861682528101919091527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd8910160405180910390a15050565b6000610f926117e2565b905090565b61082381610fa3610f88565b611804565b610fb28282610b99565b61076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610feb610f88565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110398282610b99565b1561076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055611070610f88565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206123cf833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611103576106cf8361185d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561115d575060408051601f3d908101601f1916820190925261115a91810190612187565b60015b6111c05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610750565b6000805160206123cf833981519152811461122f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610750565b506106cf8383836118f9565b600054610100900460ff166112a65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610750565b565b6107638282610fa8565b6000805b600381101561135a5760008482600381106112d3576112d361212a565b6020020160208101906112e69190611d13565b90506001600160a01b03811615806113025750611302816105ed565b6113475760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b6044820152606401610750565b50806113528161216e565b9150506112b6565b50600061136785806121a0565b8760405160200161137a9392919061200c565b60408051601f19818403018152919052805160209091012061012d549091506000906113af906001600160a01b03168361191e565b61012f5461012e54604051630d92695960e21b815292935083926001600160a01b0380851693633649a564936113fd939183169216908d908d9060808d01359060a08e0135906004016121ed565b600060405180830381600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b50600092506114409150506020880188611d13565b6001600160a01b0316146114d6576001600160a01b038116633f5c525661146a6020890189611d13565b60405160e083901b6001600160e01b03191681526001600160a01b039190911660048201528735602482015260208801356044820152606401600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050505b60006114e86040880160208901611d13565b6001600160a01b031614611579576001600160a01b03811663cadb1c6a6115156040890160208a01611d13565b6040805160e084901b6001600160e01b03191681526001600160a01b039290921660048301528801356024820152604401600060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050505b600061158b6060880160408901611d13565b6001600160a01b03161461161d576001600160a01b03811663ffff59a66115b86060890160408a01611d13565b60405160e083901b6001600160e01b03191681526001600160a01b0391909116600482015260608801356024820152604401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b806001600160a01b03166336568abe826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612187565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116cd57600080fd5b505af11580156116e1573d6000803e3d6000fd5b505050506001600160a01b03828116600081815261013160209081526040918290204290558151938c1684528301919091527ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c910160405180910390a16001600160a01b038881166000908152610134602052604090205416156117a75760405162461bcd60e51b815260206004820152601d60248201527f6572726f725f6f70657261746f72416c72656164794465706c6f7965640000006044820152606401610750565b506001600160a01b0396871660009081526101346020526040902080546001600160a01b031916978216979097179096555093949350505050565b60006117ed33610980565b156117ff575060131936013560601c90565b503390565b61180e8282610b99565b6107635761181b816119b5565b6118268360206119c7565b6040516020016118379291906122da565b60408051601f198184030181529082905262461bcd60e51b825261075091600401612349565b6001600160a01b0381163b6118ca5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610750565b6000805160206123cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61190283611b62565b60008251118061190f5750805b156106cf57610c478383611ba2565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166105e75760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610750565b60606105e76001600160a01b03831660145b606060006119d683600261237c565b6119e1906002612156565b6001600160401b038111156119f8576119f8611dea565b6040519080825280601f01601f191660200182016040528015611a22576020820181803683370190505b509050600360fc1b81600081518110611a3d57611a3d61212a565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a6c57611a6c61212a565b60200101906001600160f81b031916908160001a9053506000611a9084600261237c565b611a9b906001612156565b90505b6001811115611b13576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611acf57611acf61212a565b1a60f81b828281518110611ae557611ae561212a565b60200101906001600160f81b031916908160001a90535060049490941c93611b0c8161239b565b9050611a9e565b508315610dec5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610750565b611b6b8161185d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c0a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610750565b600080846001600160a01b031684604051611c2591906123b2565b600060405180830381855af49150503d8060008114611c60576040519150601f19603f3d011682016040523d82523d6000602084013e611c65565b606091505b5091509150611c8d82826040518060600160405280602781526020016123ef60279139611c96565b95945050505050565b60608315611ca5575081610dec565b610dec8383815115611cba5781518083602001fd5b8060405162461bcd60e51b81526004016107509190612349565b600060208284031215611ce657600080fd5b81356001600160e01b031981168114610dec57600080fd5b6001600160a01b038116811461082357600080fd5b600060208284031215611d2557600080fd5b8135610dec81611cfe565b60008060208385031215611d4357600080fd5b82356001600160401b0380821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b813581811115611d7d57600080fd5b866020828501011115611d8f57600080fd5b60209290920196919550909350505050565b600060208284031215611db357600080fd5b5035919050565b60008060408385031215611dcd57600080fd5b823591506020830135611ddf81611cfe565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611e1357600080fd5b8235611e1e81611cfe565b915060208301356001600160401b0380821115611e3a57600080fd5b818501915085601f830112611e4e57600080fd5b813581811115611e6057611e60611dea565b604051601f8201601f19908116603f01168101908382118183101715611e8857611e88611dea565b81604052828152886020848701011115611ea157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060208385031215611ed657600080fd5b82356001600160401b0380821115611eed57600080fd5b818501915085601f830112611f0157600080fd5b813581811115611f1057600080fd5b8660208260051b8501011115611d8f57600080fd5b600080600060608486031215611f3a57600080fd5b8335611f4581611cfe565b92506020840135611f5581611cfe565b91506040840135611f6581611cfe565b809150509250925092565b6000806000610140808587031215611f8757600080fd5b84356001600160401b03811115611f9d57600080fd5b850160408101871015611faf57600080fd5b93506080850186811115611fc257600080fd5b602086019350868287011115611fd757600080fd5b80925050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000612020604083018587611fe3565b905060018060a01b0383166020830152949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252601390820152726572726f725f6f6e6c794f70657261746f727360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612125576121256120fd565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115612169576121696120fd565b500190565b600060018201612180576121806120fd565b5060010190565b60006020828403121561219957600080fd5b5051919050565b6000808335601e198436030181126121b757600080fd5b8301803591506001600160401b038211156121d157600080fd5b6020019150368190038213156121e657600080fd5b9250929050565b6001600160a01b038781168252868116602080840191909152908616604083015260c06060830181905260009161010084019184019087845b60028110156122955786850360bf190184528135368b9003601e1901811261224d57600080fd5b8a0180356001600160401b0381111561226557600080fd5b8036038c131561227457600080fd5b6122818782878501611fe3565b965050509282019290820190600101612226565b5050505060808301949094525060a00152949350505050565b60005b838110156122c95781810151838201526020016122b1565b83811115610c475750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161230c8160178501602088016122ae565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161233d8160288401602088016122ae565b01602801949350505050565b60208152600082518060208401526123688160408501602087016122ae565b601f01601f19169190910160400192915050565b6000816000190483118215151615612396576123966120fd565b500290565b6000816123aa576123aa6120fd565b506000190190565b600082516123c48184602087016122ae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200094cc5079baf65b149b8d120d628e4432eb8ed4ee634ce655e6d60c8a20185864736f6c634300080d0033",
"bytecode": "0x60c06040523060805234801561001457600080fd5b50600060a05260805160a05161244b6100586000396000505060008181610771015281816107b1015281816108300152818161087001526108df015261244b6000f3fe60806040526004361061018c5760003560e01c80636f0a812e116100d7578063b3a79c8d11610085578063b3a79c8d146104c0578063bf057ffd146104e0578063c0c53b8b14610500578063cfb658b714610520578063d547741f14610540578063d6c3187114610560578063d8bd0de414610581578063f456a0f8146105a157600080fd5b80636f0a812e146103e3578063721843941461041457806391d14854146104295780639d76ea5814610449578063a0cdb9d21461046a578063a217fddf1461048a578063b190f4931461049f57600080fd5b80632f2ff15d1161013f5780632f2ff15d146102dd57806336568abe146102ff5780633659cfe61461031f5780634703e0011461033f5780634f1ef2861461036d57806352d1902d14610380578063572b6c0514610395578063593635cf146103b557600080fd5b8062cba9431461019157806301ffc9a7146101d857806313e7c9d8146102085780631a8eab7e146102575780631c7b8395146102775780631ee49ac41461028d578063248a9ca3146102ad575b600080fd5b34801561019d57600080fd5b506101c57fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611cd4565b6105b6565b60405190151581526020016101cf565b34801561021457600080fd5b5061023f610223366004611d13565b610134602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561026357600080fd5b506101f8610272366004611d13565b6105ed565b34801561028357600080fd5b50610132546101c5565b34801561029957600080fd5b5061023f6102a8366004611d30565b61060c565b3480156102b957600080fd5b506101c56102c8366004611da1565b600090815260fb602052604090206001015490565b3480156102e957600080fd5b506102fd6102f8366004611dba565b6106aa565b005b34801561030b57600080fd5b506102fd61031a366004611dba565b6106d4565b34801561032b57600080fd5b506102fd61033a366004611d13565b610767565b34801561034b57600080fd5b506101c561035a366004611d13565b6101316020526000908152604090205481565b6102fd61037b366004611e00565b610826565b34801561038c57600080fd5b506101c56108d2565b3480156103a157600080fd5b506101f86103b0366004611d13565b610980565b3480156103c157600080fd5b506101c56103d0366004611d13565b6101336020526000908152604090205481565b3480156103ef57600080fd5b506101f86103fe366004611d13565b6101306020526000908152604090205460ff1681565b34801561042057600080fd5b506102fd6109ac565b34801561043557600080fd5b506101f8610444366004611dba565b610b99565b34801561045557600080fd5b5061012f5461023f906001600160a01b031681565b34801561047657600080fd5b506102fd610485366004611d13565b610bc4565b34801561049657600080fd5b506101c5600081565b3480156104ab57600080fd5b5061012d5461023f906001600160a01b031681565b3480156104cc57600080fd5b506102fd6104db366004611ec3565b610bf5565b3480156104ec57600080fd5b5061023f6104fb366004611da1565b610c4d565b34801561050c57600080fd5b506102fd61051b366004611f25565b610c78565b34801561052c57600080fd5b5061023f61053b366004611f70565b610dd4565b34801561054c57600080fd5b506102fd61055b366004611dba565b610df3565b34801561056c57600080fd5b5061012e5461023f906001600160a01b031681565b34801561058d57600080fd5b506102fd61059c366004611d13565b610e18565b3480156105ad57600080fd5b506102fd610e46565b60006001600160e01b03198216637965db0b60e01b14806105e757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b6000808383610619610f88565b60405160200161062b9392919061200c565b60408051601f1981840301815290829052805160209091012061012d543060388401526f5af43d82803e903d91602b57fd5bf3ff60248401526001600160a01b03166014830152733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c82012060788201526055604390910120949350505050565b600082815260fb60205260409020600101546106c581610f97565b6106cf8383610fa8565b505050565b6106dc610f88565b6001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610763828261102f565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107af5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e16110b4565b6001600160a01b0316146108075760405162461bcd60e51b815260040161075090612084565b60408051600080825260208201909252610823918391906110d0565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361086e5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108a06110b4565b6001600160a01b0316146108c65760405162461bcd60e51b815260040161075090612084565b610763828260016110d0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461096d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610750565b506000805160206123cf83398151915290565b60006105e77fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d283610b99565b60006109b6610f88565b6001600160a01b038116600090815261013160205260409020549091506109ef5760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b038116600090815261013360205260409020548190610a475760405162461bcd60e51b815260206004820152600d60248201526c6572726f725f6e6f744c69766560981b6044820152606401610750565b6001600160a01b03811660009081526101336020526040812054610a6d90600190612113565b6101328054919250600091610a8490600190612113565b81548110610a9457610a9461212a565b60009182526020909120015461013280546001600160a01b039092169250829184908110610ac457610ac461212a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610132805480610b0457610b04612140565b600082815260209020810160001990810180546001600160a01b0319169055019055610b31826001612156565b6001600160a01b03828116600090815261013360209081526040808320949094558683168252838220829055835192881683528201527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd891015b60405180910390a150505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610bcf81610f97565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b6000610c0081610f97565b60005b82811015610c4757610c35848483818110610c2057610c2061212a565b90506020020160208101906104859190611d13565b80610c3f8161216e565b915050610c03565b50505050565b6101328181548110610c5e57600080fd5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff1615808015610c985750600054600160ff909116105b80610cb25750303b158015610cb2575060005460ff166001145b610d155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610750565b6000805460ff191660011790558015610d38576000805461ff0019166101001790555b610d4061123b565b610d526000610d4d610f88565b6112a8565b61012e80546001600160a01b038085166001600160a01b03199283161790925561012f805486841690831617905561012d8054928716929091169190911790558015610c47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610b8b565b6000610de9610de1610f88565b8585856112b2565b90505b9392505050565b600082815260fb6020526040902060010154610e0e81610f97565b6106cf838361102f565b6000610e2381610f97565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b6000610e50610f88565b6001600160a01b03811660009081526101316020526040902054909150610e895760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b03811660009081526101336020526040902054819015610ee65760405162461bcd60e51b81526020600482015260116024820152706572726f725f616c72656164794c69766560781b6044820152606401610750565b6101328054600180820183557fc53bdfd4aa1ab65dfdaf681ca6bda958ae4a123d4ed68c4277796592280e783590910180546001600160a01b0319166001600160a01b0385811691821790925592546000938452610133602090815260409485902091909155835191861682528101919091527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd8910160405180910390a15050565b6000610f926117e2565b905090565b61082381610fa3610f88565b611804565b610fb28282610b99565b61076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610feb610f88565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110398282610b99565b1561076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055611070610f88565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206123cf833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611103576106cf8361185d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561115d575060408051601f3d908101601f1916820190925261115a91810190612187565b60015b6111c05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610750565b6000805160206123cf833981519152811461122f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610750565b506106cf8383836118f9565b600054610100900460ff166112a65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610750565b565b6107638282610fa8565b6000805b600381101561135a5760008482600381106112d3576112d361212a565b6020020160208101906112e69190611d13565b90506001600160a01b03811615806113025750611302816105ed565b6113475760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b6044820152606401610750565b50806113528161216e565b9150506112b6565b50600061136785806121a0565b8760405160200161137a9392919061200c565b60408051601f19818403018152919052805160209091012061012d549091506000906113af906001600160a01b03168361191e565b61012f5461012e54604051630d92695960e21b815292935083926001600160a01b0380851693633649a564936113fd939183169216908d908d9060808d01359060a08e0135906004016121ed565b600060405180830381600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b50600092506114409150506020880188611d13565b6001600160a01b0316146114d6576001600160a01b038116633f5c525661146a6020890189611d13565b60405160e083901b6001600160e01b03191681526001600160a01b039190911660048201528735602482015260208801356044820152606401600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050505b60006114e86040880160208901611d13565b6001600160a01b031614611579576001600160a01b03811663cadb1c6a6115156040890160208a01611d13565b6040805160e084901b6001600160e01b03191681526001600160a01b039290921660048301528801356024820152604401600060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050505b600061158b6060880160408901611d13565b6001600160a01b03161461161d576001600160a01b03811663ffff59a66115b86060890160408a01611d13565b60405160e083901b6001600160e01b03191681526001600160a01b0391909116600482015260608801356024820152604401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b806001600160a01b03166336568abe826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612187565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116cd57600080fd5b505af11580156116e1573d6000803e3d6000fd5b505050506001600160a01b03828116600081815261013160209081526040918290204290558151938c1684528301919091527ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c910160405180910390a16001600160a01b038881166000908152610134602052604090205416156117a75760405162461bcd60e51b815260206004820152601d60248201527f6572726f725f6f70657261746f72416c72656164794465706c6f7965640000006044820152606401610750565b506001600160a01b0396871660009081526101346020526040902080546001600160a01b031916978216979097179096555093949350505050565b60006117ed33610980565b156117ff575060131936013560601c90565b503390565b61180e8282610b99565b6107635761181b816119b5565b6118268360206119c7565b6040516020016118379291906122da565b60408051601f198184030181529082905262461bcd60e51b825261075091600401612349565b6001600160a01b0381163b6118ca5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610750565b6000805160206123cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61190283611b62565b60008251118061190f5750805b156106cf57610c478383611ba2565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166105e75760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610750565b60606105e76001600160a01b03831660145b606060006119d683600261237c565b6119e1906002612156565b6001600160401b038111156119f8576119f8611dea565b6040519080825280601f01601f191660200182016040528015611a22576020820181803683370190505b509050600360fc1b81600081518110611a3d57611a3d61212a565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a6c57611a6c61212a565b60200101906001600160f81b031916908160001a9053506000611a9084600261237c565b611a9b906001612156565b90505b6001811115611b13576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611acf57611acf61212a565b1a60f81b828281518110611ae557611ae561212a565b60200101906001600160f81b031916908160001a90535060049490941c93611b0c8161239b565b9050611a9e565b508315610dec5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610750565b611b6b8161185d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c0a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610750565b600080846001600160a01b031684604051611c2591906123b2565b600060405180830381855af49150503d8060008114611c60576040519150601f19603f3d011682016040523d82523d6000602084013e611c65565b606091505b5091509150611c8d82826040518060600160405280602781526020016123ef60279139611c96565b95945050505050565b60608315611ca5575081610dec565b610dec8383815115611cba5781518083602001fd5b8060405162461bcd60e51b81526004016107509190612349565b600060208284031215611ce657600080fd5b81356001600160e01b031981168114610dec57600080fd5b6001600160a01b038116811461082357600080fd5b600060208284031215611d2557600080fd5b8135610dec81611cfe565b60008060208385031215611d4357600080fd5b82356001600160401b0380821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b813581811115611d7d57600080fd5b866020828501011115611d8f57600080fd5b60209290920196919550909350505050565b600060208284031215611db357600080fd5b5035919050565b60008060408385031215611dcd57600080fd5b823591506020830135611ddf81611cfe565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611e1357600080fd5b8235611e1e81611cfe565b915060208301356001600160401b0380821115611e3a57600080fd5b818501915085601f830112611e4e57600080fd5b813581811115611e6057611e60611dea565b604051601f8201601f19908116603f01168101908382118183101715611e8857611e88611dea565b81604052828152886020848701011115611ea157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060208385031215611ed657600080fd5b82356001600160401b0380821115611eed57600080fd5b818501915085601f830112611f0157600080fd5b813581811115611f1057600080fd5b8660208260051b8501011115611d8f57600080fd5b600080600060608486031215611f3a57600080fd5b8335611f4581611cfe565b92506020840135611f5581611cfe565b91506040840135611f6581611cfe565b809150509250925092565b6000806000610140808587031215611f8757600080fd5b84356001600160401b03811115611f9d57600080fd5b850160408101871015611faf57600080fd5b93506080850186811115611fc257600080fd5b602086019350868287011115611fd757600080fd5b80925050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000612020604083018587611fe3565b905060018060a01b0383166020830152949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252601390820152726572726f725f6f6e6c794f70657261746f727360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612125576121256120fd565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115612169576121696120fd565b500190565b600060018201612180576121806120fd565b5060010190565b60006020828403121561219957600080fd5b5051919050565b6000808335601e198436030181126121b757600080fd5b8301803591506001600160401b038211156121d157600080fd5b6020019150368190038213156121e657600080fd5b9250929050565b6001600160a01b038781168252868116602080840191909152908616604083015260c06060830181905260009161010084019184019087845b60028110156122955786850360bf190184528135368b9003601e1901811261224d57600080fd5b8a0180356001600160401b0381111561226557600080fd5b8036038c131561227457600080fd5b6122818782878501611fe3565b965050509282019290820190600101612226565b5050505060808301949094525060a00152949350505050565b60005b838110156122c95781810151838201526020016122b1565b83811115610c475750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161230c8160178501602088016122ae565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161233d8160288401602088016122ae565b01602801949350505050565b60208152600082518060208401526123688160408501602087016122ae565b601f01601f19169190910160400192915050565b6000816000190483118215151615612396576123966120fd565b500290565b6000816123aa576123aa6120fd565b506000190190565b600082516123c48184602087016122ae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207f6f9c9cdd781633d4457e4e5d07e3173394e06da335f549ea4e72dd1312436e64736f6c634300080d0033",
"deployedBytecode": "0x60806040526004361061018c5760003560e01c80636f0a812e116100d7578063b3a79c8d11610085578063b3a79c8d146104c0578063bf057ffd146104e0578063c0c53b8b14610500578063cfb658b714610520578063d547741f14610540578063d6c3187114610560578063d8bd0de414610581578063f456a0f8146105a157600080fd5b80636f0a812e146103e3578063721843941461041457806391d14854146104295780639d76ea5814610449578063a0cdb9d21461046a578063a217fddf1461048a578063b190f4931461049f57600080fd5b80632f2ff15d1161013f5780632f2ff15d146102dd57806336568abe146102ff5780633659cfe61461031f5780634703e0011461033f5780634f1ef2861461036d57806352d1902d14610380578063572b6c0514610395578063593635cf146103b557600080fd5b8062cba9431461019157806301ffc9a7146101d857806313e7c9d8146102085780631a8eab7e146102575780631c7b8395146102775780631ee49ac41461028d578063248a9ca3146102ad575b600080fd5b34801561019d57600080fd5b506101c57fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611cd4565b6105b6565b60405190151581526020016101cf565b34801561021457600080fd5b5061023f610223366004611d13565b610134602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561026357600080fd5b506101f8610272366004611d13565b6105ed565b34801561028357600080fd5b50610132546101c5565b34801561029957600080fd5b5061023f6102a8366004611d30565b61060c565b3480156102b957600080fd5b506101c56102c8366004611da1565b600090815260fb602052604090206001015490565b3480156102e957600080fd5b506102fd6102f8366004611dba565b6106aa565b005b34801561030b57600080fd5b506102fd61031a366004611dba565b6106d4565b34801561032b57600080fd5b506102fd61033a366004611d13565b610767565b34801561034b57600080fd5b506101c561035a366004611d13565b6101316020526000908152604090205481565b6102fd61037b366004611e00565b610826565b34801561038c57600080fd5b506101c56108d2565b3480156103a157600080fd5b506101f86103b0366004611d13565b610980565b3480156103c157600080fd5b506101c56103d0366004611d13565b6101336020526000908152604090205481565b3480156103ef57600080fd5b506101f86103fe366004611d13565b6101306020526000908152604090205460ff1681565b34801561042057600080fd5b506102fd6109ac565b34801561043557600080fd5b506101f8610444366004611dba565b610b99565b34801561045557600080fd5b5061012f5461023f906001600160a01b031681565b34801561047657600080fd5b506102fd610485366004611d13565b610bc4565b34801561049657600080fd5b506101c5600081565b3480156104ab57600080fd5b5061012d5461023f906001600160a01b031681565b3480156104cc57600080fd5b506102fd6104db366004611ec3565b610bf5565b3480156104ec57600080fd5b5061023f6104fb366004611da1565b610c4d565b34801561050c57600080fd5b506102fd61051b366004611f25565b610c78565b34801561052c57600080fd5b5061023f61053b366004611f70565b610dd4565b34801561054c57600080fd5b506102fd61055b366004611dba565b610df3565b34801561056c57600080fd5b5061012e5461023f906001600160a01b031681565b34801561058d57600080fd5b506102fd61059c366004611d13565b610e18565b3480156105ad57600080fd5b506102fd610e46565b60006001600160e01b03198216637965db0b60e01b14806105e757506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b6000808383610619610f88565b60405160200161062b9392919061200c565b60408051601f1981840301815290829052805160209091012061012d543060388401526f5af43d82803e903d91602b57fd5bf3ff60248401526001600160a01b03166014830152733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c82012060788201526055604390910120949350505050565b600082815260fb60205260409020600101546106c581610f97565b6106cf8383610fa8565b505050565b6106dc610f88565b6001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610763828261102f565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107af5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e16110b4565b6001600160a01b0316146108075760405162461bcd60e51b815260040161075090612084565b60408051600080825260208201909252610823918391906110d0565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361086e5760405162461bcd60e51b815260040161075090612038565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108a06110b4565b6001600160a01b0316146108c65760405162461bcd60e51b815260040161075090612084565b610763828260016110d0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461096d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610750565b506000805160206123cf83398151915290565b60006105e77fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d283610b99565b60006109b6610f88565b6001600160a01b038116600090815261013160205260409020549091506109ef5760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b038116600090815261013360205260409020548190610a475760405162461bcd60e51b815260206004820152600d60248201526c6572726f725f6e6f744c69766560981b6044820152606401610750565b6001600160a01b03811660009081526101336020526040812054610a6d90600190612113565b6101328054919250600091610a8490600190612113565b81548110610a9457610a9461212a565b60009182526020909120015461013280546001600160a01b039092169250829184908110610ac457610ac461212a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610132805480610b0457610b04612140565b600082815260209020810160001990810180546001600160a01b0319169055019055610b31826001612156565b6001600160a01b03828116600090815261013360209081526040808320949094558683168252838220829055835192881683528201527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd891015b60405180910390a150505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610bcf81610f97565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b6000610c0081610f97565b60005b82811015610c4757610c35848483818110610c2057610c2061212a565b90506020020160208101906104859190611d13565b80610c3f8161216e565b915050610c03565b50505050565b6101328181548110610c5e57600080fd5b6000918252602090912001546001600160a01b0316905081565b600054610100900460ff1615808015610c985750600054600160ff909116105b80610cb25750303b158015610cb2575060005460ff166001145b610d155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610750565b6000805460ff191660011790558015610d38576000805461ff0019166101001790555b610d4061123b565b610d526000610d4d610f88565b6112a8565b61012e80546001600160a01b038085166001600160a01b03199283161790925561012f805486841690831617905561012d8054928716929091169190911790558015610c47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610b8b565b6000610de9610de1610f88565b8585856112b2565b90505b9392505050565b600082815260fb6020526040902060010154610e0e81610f97565b6106cf838361102f565b6000610e2381610f97565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b6000610e50610f88565b6001600160a01b03811660009081526101316020526040902054909150610e895760405162461bcd60e51b8152600401610750906120d0565b6001600160a01b03811660009081526101336020526040902054819015610ee65760405162461bcd60e51b81526020600482015260116024820152706572726f725f616c72656164794c69766560781b6044820152606401610750565b6101328054600180820183557fc53bdfd4aa1ab65dfdaf681ca6bda958ae4a123d4ed68c4277796592280e783590910180546001600160a01b0319166001600160a01b0385811691821790925592546000938452610133602090815260409485902091909155835191861682528101919091527ff3e2caa88d5c507963245993278fdf461f716fcb25ac2e0b3adb066e630d3fd8910160405180910390a15050565b6000610f926117e2565b905090565b61082381610fa3610f88565b611804565b610fb28282610b99565b61076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610feb610f88565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110398282610b99565b1561076357600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055611070610f88565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206123cf833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611103576106cf8361185d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561115d575060408051601f3d908101601f1916820190925261115a91810190612187565b60015b6111c05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610750565b6000805160206123cf833981519152811461122f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610750565b506106cf8383836118f9565b600054610100900460ff166112a65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610750565b565b6107638282610fa8565b6000805b600381101561135a5760008482600381106112d3576112d361212a565b6020020160208101906112e69190611d13565b90506001600160a01b03811615806113025750611302816105ed565b6113475760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b6044820152606401610750565b50806113528161216e565b9150506112b6565b50600061136785806121a0565b8760405160200161137a9392919061200c565b60408051601f19818403018152919052805160209091012061012d549091506000906113af906001600160a01b03168361191e565b61012f5461012e54604051630d92695960e21b815292935083926001600160a01b0380851693633649a564936113fd939183169216908d908d9060808d01359060a08e0135906004016121ed565b600060405180830381600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b50600092506114409150506020880188611d13565b6001600160a01b0316146114d6576001600160a01b038116633f5c525661146a6020890189611d13565b60405160e083901b6001600160e01b03191681526001600160a01b039190911660048201528735602482015260208801356044820152606401600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050505b60006114e86040880160208901611d13565b6001600160a01b031614611579576001600160a01b03811663cadb1c6a6115156040890160208a01611d13565b6040805160e084901b6001600160e01b03191681526001600160a01b039290921660048301528801356024820152604401600060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050505b600061158b6060880160408901611d13565b6001600160a01b03161461161d576001600160a01b03811663ffff59a66115b86060890160408a01611d13565b60405160e083901b6001600160e01b03191681526001600160a01b0391909116600482015260608801356024820152604401600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b806001600160a01b03166336568abe826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612187565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116cd57600080fd5b505af11580156116e1573d6000803e3d6000fd5b505050506001600160a01b03828116600081815261013160209081526040918290204290558151938c1684528301919091527ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c910160405180910390a16001600160a01b038881166000908152610134602052604090205416156117a75760405162461bcd60e51b815260206004820152601d60248201527f6572726f725f6f70657261746f72416c72656164794465706c6f7965640000006044820152606401610750565b506001600160a01b0396871660009081526101346020526040902080546001600160a01b031916978216979097179096555093949350505050565b60006117ed33610980565b156117ff575060131936013560601c90565b503390565b61180e8282610b99565b6107635761181b816119b5565b6118268360206119c7565b6040516020016118379291906122da565b60408051601f198184030181529082905262461bcd60e51b825261075091600401612349565b6001600160a01b0381163b6118ca5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610750565b6000805160206123cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61190283611b62565b60008251118061190f5750805b156106cf57610c478383611ba2565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166105e75760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610750565b60606105e76001600160a01b03831660145b606060006119d683600261237c565b6119e1906002612156565b6001600160401b038111156119f8576119f8611dea565b6040519080825280601f01601f191660200182016040528015611a22576020820181803683370190505b509050600360fc1b81600081518110611a3d57611a3d61212a565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a6c57611a6c61212a565b60200101906001600160f81b031916908160001a9053506000611a9084600261237c565b611a9b906001612156565b90505b6001811115611b13576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611acf57611acf61212a565b1a60f81b828281518110611ae557611ae561212a565b60200101906001600160f81b031916908160001a90535060049490941c93611b0c8161239b565b9050611a9e565b508315610dec5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610750565b611b6b8161185d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c0a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610750565b600080846001600160a01b031684604051611c2591906123b2565b600060405180830381855af49150503d8060008114611c60576040519150601f19603f3d011682016040523d82523d6000602084013e611c65565b606091505b5091509150611c8d82826040518060600160405280602781526020016123ef60279139611c96565b95945050505050565b60608315611ca5575081610dec565b610dec8383815115611cba5781518083602001fd5b8060405162461bcd60e51b81526004016107509190612349565b600060208284031215611ce657600080fd5b81356001600160e01b031981168114610dec57600080fd5b6001600160a01b038116811461082357600080fd5b600060208284031215611d2557600080fd5b8135610dec81611cfe565b60008060208385031215611d4357600080fd5b82356001600160401b0380821115611d5a57600080fd5b818501915085601f830112611d6e57600080fd5b813581811115611d7d57600080fd5b866020828501011115611d8f57600080fd5b60209290920196919550909350505050565b600060208284031215611db357600080fd5b5035919050565b60008060408385031215611dcd57600080fd5b823591506020830135611ddf81611cfe565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611e1357600080fd5b8235611e1e81611cfe565b915060208301356001600160401b0380821115611e3a57600080fd5b818501915085601f830112611e4e57600080fd5b813581811115611e6057611e60611dea565b604051601f8201601f19908116603f01168101908382118183101715611e8857611e88611dea565b81604052828152886020848701011115611ea157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060208385031215611ed657600080fd5b82356001600160401b0380821115611eed57600080fd5b818501915085601f830112611f0157600080fd5b813581811115611f1057600080fd5b8660208260051b8501011115611d8f57600080fd5b600080600060608486031215611f3a57600080fd5b8335611f4581611cfe565b92506020840135611f5581611cfe565b91506040840135611f6581611cfe565b809150509250925092565b6000806000610140808587031215611f8757600080fd5b84356001600160401b03811115611f9d57600080fd5b850160408101871015611faf57600080fd5b93506080850186811115611fc257600080fd5b602086019350868287011115611fd757600080fd5b80925050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000612020604083018587611fe3565b905060018060a01b0383166020830152949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252601390820152726572726f725f6f6e6c794f70657261746f727360681b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612125576121256120fd565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115612169576121696120fd565b500190565b600060018201612180576121806120fd565b5060010190565b60006020828403121561219957600080fd5b5051919050565b6000808335601e198436030181126121b757600080fd5b8301803591506001600160401b038211156121d157600080fd5b6020019150368190038213156121e657600080fd5b9250929050565b6001600160a01b038781168252868116602080840191909152908616604083015260c06060830181905260009161010084019184019087845b60028110156122955786850360bf190184528135368b9003601e1901811261224d57600080fd5b8a0180356001600160401b0381111561226557600080fd5b8036038c131561227457600080fd5b6122818782878501611fe3565b965050509282019290820190600101612226565b5050505060808301949094525060a00152949350505050565b60005b838110156122c95781810151838201526020016122b1565b83811115610c475750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161230c8160178501602088016122ae565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161233d8160288401602088016122ae565b01602801949350505050565b60208152600082518060208401526123688160408501602087016122ae565b601f01601f19169190910160400192915050565b6000816000190483118215151615612396576123966120fd565b500290565b6000816123aa576123aa6120fd565b506000190190565b600082516123c48184602087016122ae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207f6f9c9cdd781633d4457e4e5d07e3173394e06da335f549ea4e72dd1312436e64736f6c634300080d0033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -427,3 +427,3 @@ {

"internalType": "address",
"name": "",
"name": "from",
"type": "address"

@@ -618,6 +618,6 @@ },

],
"bytecode": "0x60c06040523060805234801561001457600080fd5b50600060a05260805160a05161254961005860003960005050600081816105cc0152818161060c015281816107e101528181610821015261089001526125496000f3fe60806040526004361061014a5760003560e01c8063572b6c05116100b6578063a217fddf1161006f578063a217fddf146103fa578063a4c0ed361461040f578063b3a79c8d1461042f578063c0c53b8b1461044f578063d547741f1461046f578063d8bd0de41461048f57600080fd5b8063572b6c05146103275780636f0a812e1461034757806391d148541461037857806398833130146103985780639d76ea58146103b9578063a0cdb9d2146103da57600080fd5b80633659cfe6116101085780633659cfe6146102585780633cffce93146102785780634703e001146102b15780634bf00ae0146102df5780634f1ef286146102ff57806352d1902d1461031257600080fd5b8062cba9431461014f57806301ffc9a7146101965780631a8eab7e146101c6578063248a9ca3146101e65780632f2ff15d1461021657806336568abe14610238575b600080fd5b34801561015b57600080fd5b506101837fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611cb6565b6104af565b604051901515815260200161018d565b3480156101d257600080fd5b506101b66101e1366004611cf5565b6104e6565b3480156101f257600080fd5b50610183610201366004611d12565b600090815260fb602052604090206001015490565b34801561022257600080fd5b50610236610231366004611d2b565b610505565b005b34801561024457600080fd5b50610236610253366004611d2b565b61052f565b34801561026457600080fd5b50610236610273366004611cf5565b6105c2565b34801561028457600080fd5b5061012e54610299906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b3480156102bd57600080fd5b506101836102cc366004611cf5565b6101316020526000908152604090205481565b3480156102eb57600080fd5b506102996102fa366004611f1e565b610681565b61023661030d366004611ff5565b6107d7565b34801561031e57600080fd5b50610183610883565b34801561033357600080fd5b506101b6610342366004611cf5565b610931565b34801561035357600080fd5b506101b6610362366004611cf5565b6101306020526000908152604090205460ff1681565b34801561038457600080fd5b506101b6610393366004611d2b565b610959565b3480156103a457600080fd5b5061012d54610299906001600160a01b031681565b3480156103c557600080fd5b5061012f54610299906001600160a01b031681565b3480156103e657600080fd5b506102366103f5366004611cf5565b610984565b34801561040657600080fd5b50610183600081565b34801561041b57600080fd5b5061023661042a366004612058565b6109b5565b34801561043b57600080fd5b5061023661044a3660046120e0565b610a8b565b34801561045b57600080fd5b5061023661046a36600461211c565b610ad6565b34801561047b57600080fd5b5061023661048a366004611d2b565b610c35565b34801561049b57600080fd5b506102366104aa366004611cf5565b610c5a565b60006001600160e01b03198216637965db0b60e01b14806104e057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b600082815260fb602052604090206001015461052081610c88565b61052a8383610c99565b505050565b610537610d20565b6001600160a01b0316816001600160a01b0316146105b45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105be8282610d2f565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361060a5760405162461bcd60e51b81526004016105ab90612167565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661063c610db4565b6001600160a01b0316146106625760405162461bcd60e51b81526004016105ab906121b3565b6040805160008082526020820190925261067e91839190610dd0565b50565b60008061012d60009054906101000a90046001600160a01b03166001600160a01b0316637b0c28426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc91906121ff565b60405163130d191f60e11b81529091506001600160a01b0382169063261a323e9061072b908990600401612274565b602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190612287565b6107af5760405162461bcd60e51b8152602060048201526014602482015273195c9c9bdc97dcdd1c99585b539bdd119bdd5b9960621b60448201526064016105ab565b6107ca898963ffffffff168963ffffffff1689898989610f3b565b9998505050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361081f5760405162461bcd60e51b81526004016105ab90612167565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610851610db4565b6001600160a01b0316146108775760405162461bcd60e51b81526004016105ab906121b3565b6105be82826001610dd0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016105ab565b506000805160206124cd83398151915290565b60006104e07fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d2835b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061098f81610c88565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b60008080808080806109c9888a018a611f1e565b965096509650965096509650965060006109f4888863ffffffff168863ffffffff1688888888610f3b565b61012f54604051630200057560e51b81526001600160a01b038084166004830152602482018f90526060604483015260006064830152929350911690634000aea0906084016020604051808303816000875af1158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190612287565b50505050505050505050505050565b6000610a9681610c88565b60005b825181101561052a57610ac4838281518110610ab757610ab76122a9565b6020026020010151610984565b80610ace816122d5565b915050610a99565b600054610100900460ff1615808015610af65750600054600160ff909116105b80610b105750303b158015610b10575060005460ff166001145b610b735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ab565b6000805460ff191660011790558015610b96576000805461ff0019166101001790555b610b9e611743565b610ba96000336117b0565b61012f80546001600160a01b038086166001600160a01b03199283161790925561012e805487841690831617905561012d8054928516929091169190911790558015610c2f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600082815260fb6020526040902060010154610c5081610c88565b61052a8383610d2f565b6000610c6581610c88565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b61067e81610c94610d20565b6117ba565b610ca38282610959565b6105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610cdc610d20565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610d2a611813565b905090565b610d398282610959565b156105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055610d70610d20565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206124cd833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e035761052a83611835565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e5d575060408051601f3d908101601f19168201909252610e5a918101906122ee565b60015b610ec05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105ab565b6000805160206124cd8339815191528114610f2f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105ab565b5061052a8383836118d1565b60008151835114610f835760405162461bcd60e51b81526020600482015260126024820152716572726f725f626164417267756d656e747360701b60448201526064016105ab565b60008351118015610fc1575060006001600160a01b031683600081518110610fad57610fad6122a9565b60200260200101516001600160a01b031614155b61100d5760405162461bcd60e51b815260206004820152601e60248201527f6572726f725f616c6c6f636174696f6e506f6c6963795265717569726564000060448201526064016105ab565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663663163726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108591906122ee565b8810156110cf5760405162461bcd60e51b81526020600482015260186024820152776572726f725f6d696e696d756d5374616b65546f6f4c6f7760401b60448201526064016105ab565b60005b83518110156111765760008482815181106110ef576110ef6122a9565b6020026020010151905060006001600160a01b0316816001600160a01b0316148061111e575061111e816104e6565b6111635760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b60448201526064016105ab565b508061116e816122d5565b9150506110d2565b5061012e54600090611190906001600160a01b03166118f6565b90506000819050600060405180608001604052808c81526020018b81526020018a8152602001866000815181106111c9576111c96122a9565b60200260200101518152509050816001600160a01b03166398092430898961012d60009054906101000a90046001600160a01b031661012f60009054906101000a90046001600160a01b0316868c600081518110611229576112296122a9565b60200260200101516040518763ffffffff1660e01b815260040161125296959493929190612307565b600060405180830381600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b50505050600186511180156112c2575060006001600160a01b0316866001815181106112ae576112ae6122a9565b60200260200101516001600160a01b031614155b1561135c57816001600160a01b03166304a10591876001815181106112e9576112e96122a9565b602002602001015187600181518110611304576113046122a9565b60200260200101516040518363ffffffff1660e01b815260040161132992919061238b565b600060405180830381600087803b15801561134357600080fd5b505af1158015611357573d6000803e3d6000fd5b505050505b6002865111801561139a575060006001600160a01b031686600281518110611386576113866122a9565b60200260200101516001600160a01b031614155b1561143457816001600160a01b031663acbeddd7876002815181106113c1576113c16122a9565b6020026020010151876002815181106113dc576113dc6122a9565b60200260200101516040518363ffffffff1660e01b815260040161140192919061238b565b600060405180830381600087803b15801561141b57600080fd5b505af115801561142f573d6000803e3d6000fd5b505050505b60035b86518110156115185760006001600160a01b031687828151811061145d5761145d6122a9565b60200260200101516001600160a01b03161461150657826001600160a01b0316632b308a56888381518110611494576114946122a9565b60200260200101518884815181106114ae576114ae6122a9565b60200260200101516040518363ffffffff1660e01b81526004016114d392919061238b565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050505b80611510816122d5565b915050611437565b50816001600160a01b0316632b308a5661012d60009054906101000a90046001600160a01b03166001600160a01b031663887f44fe6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a091906121ff565b60006040518363ffffffff1660e01b81526004016115bf92919061238b565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b50505050816001600160a01b03166336568abe836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166291906122ee565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba4838989886000815181106116f0576116f06122a9565b6020026020010151611700610d20565b6040516117119594939291906123a4565b60405180910390a150506001600160a01b03811660009081526101316020526040902042905598975050505050505050565b600054610100900460ff166117ae5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105ab565b565b6105be8282610c99565b6117c48282610959565b6105be576117d181611990565b6117dc8360206119a2565b6040516020016117ed9291906123f3565b60408051601f198184030181529082905262461bcd60e51b82526105ab91600401612274565b600061181e33610931565b15611830575060131936013560601c90565b503390565b6001600160a01b0381163b6118a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105ab565b6000805160206124cd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118da83611b44565b6000825111806118e75750805b1561052a57610c2f8383611b84565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b03811661198b5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b60448201526064016105ab565b919050565b60606104e06001600160a01b03831660145b606060006119b1836002612462565b6119bc906002612481565b6001600160401b038111156119d3576119d3611d6f565b6040519080825280601f01601f1916602001820160405280156119fd576020820181803683370190505b509050600360fc1b81600081518110611a1857611a186122a9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a4757611a476122a9565b60200101906001600160f81b031916908160001a9053506000611a6b846002612462565b611a76906001612481565b90505b6001811115611aee576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611aaa57611aaa6122a9565b1a60f81b828281518110611ac057611ac06122a9565b60200101906001600160f81b031916908160001a90535060049490941c93611ae781612499565b9050611a79565b508315611b3d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ab565b9392505050565b611b4d81611835565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611bec5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105ab565b600080846001600160a01b031684604051611c0791906124b0565b600060405180830381855af49150503d8060008114611c42576040519150601f19603f3d011682016040523d82523d6000602084013e611c47565b606091505b5091509150611c6f82826040518060600160405280602781526020016124ed60279139611c78565b95945050505050565b60608315611c87575081611b3d565b611b3d8383815115611c9c5781518083602001fd5b8060405162461bcd60e51b81526004016105ab9190612274565b600060208284031215611cc857600080fd5b81356001600160e01b031981168114611b3d57600080fd5b6001600160a01b038116811461067e57600080fd5b600060208284031215611d0757600080fd5b8135611b3d81611ce0565b600060208284031215611d2457600080fd5b5035919050565b60008060408385031215611d3e57600080fd5b823591506020830135611d5081611ce0565b809150509250929050565b803563ffffffff8116811461198b57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611dad57611dad611d6f565b604052919050565b60006001600160401b03831115611dce57611dce611d6f565b611de1601f8401601f1916602001611d85565b9050828152838383011115611df557600080fd5b828260208301376000602084830101529392505050565b600082601f830112611e1d57600080fd5b611b3d83833560208501611db5565b60006001600160401b03821115611e4557611e45611d6f565b5060051b60200190565b600082601f830112611e6057600080fd5b81356020611e75611e7083611e2c565b611d85565b82815260059290921b84018101918181019086841115611e9457600080fd5b8286015b84811015611eb8578035611eab81611ce0565b8352918301918301611e98565b509695505050505050565b600082601f830112611ed457600080fd5b81356020611ee4611e7083611e2c565b82815260059290921b84018101918181019086841115611f0357600080fd5b8286015b84811015611eb85780358352918301918301611f07565b600080600080600080600060e0888a031215611f3957600080fd5b87359650611f4960208901611d5b565b9550611f5760408901611d5b565b945060608801356001600160401b0380821115611f7357600080fd5b611f7f8b838c01611e0c565b955060808a0135915080821115611f9557600080fd5b611fa18b838c01611e0c565b945060a08a0135915080821115611fb757600080fd5b611fc38b838c01611e4f565b935060c08a0135915080821115611fd957600080fd5b50611fe68a828b01611ec3565b91505092959891949750929550565b6000806040838503121561200857600080fd5b823561201381611ce0565b915060208301356001600160401b0381111561202e57600080fd5b8301601f8101851361203f57600080fd5b61204e85823560208401611db5565b9150509250929050565b6000806000806060858703121561206e57600080fd5b843561207981611ce0565b93506020850135925060408501356001600160401b038082111561209c57600080fd5b818701915087601f8301126120b057600080fd5b8135818111156120bf57600080fd5b8860208285010111156120d157600080fd5b95989497505060200194505050565b6000602082840312156120f257600080fd5b81356001600160401b0381111561210857600080fd5b61211484828501611e4f565b949350505050565b60008060006060848603121561213157600080fd5b833561213c81611ce0565b9250602084013561214c81611ce0565b9150604084013561215c81611ce0565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561221157600080fd5b8151611b3d81611ce0565b60005b8381101561223757818101518382015260200161221f565b83811115610c2f5750506000910152565b6000815180845261226081602086016020860161221c565b601f01601f19169290920160200192915050565b602081526000611b3d6020830184612248565b60006020828403121561229957600080fd5b81518015158114611b3d57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e7576122e76122bf565b5060010190565b60006020828403121561230057600080fd5b5051919050565b600061012080835261231b8184018a612248565b9050602083820381850152612330828a612248565b6001600160a01b03898116604087015288811660608701529093509150608084018660005b600481101561237257815183529183019190830190600101612355565b5050505080841661010084015250979650505050505050565b6001600160a01b03929092168252602082015260400190565b600060018060a01b03808816835260a060208401526123c660a0840188612248565b83810360408501526123d88188612248565b60608501969096525092909216608090910152509392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161242581601785016020880161221c565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161245681602884016020880161221c565b01602801949350505050565b600081600019048311821515161561247c5761247c6122bf565b500290565b60008219821115612494576124946122bf565b500190565b6000816124a8576124a86122bf565b506000190190565b600082516124c281846020870161221c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a57dc907e9003f8559557d54478c6cbcd491973d1f5ffcbceacae6592d75cc1264736f6c634300080d0033",
"deployedBytecode": "0x60806040526004361061014a5760003560e01c8063572b6c05116100b6578063a217fddf1161006f578063a217fddf146103fa578063a4c0ed361461040f578063b3a79c8d1461042f578063c0c53b8b1461044f578063d547741f1461046f578063d8bd0de41461048f57600080fd5b8063572b6c05146103275780636f0a812e1461034757806391d148541461037857806398833130146103985780639d76ea58146103b9578063a0cdb9d2146103da57600080fd5b80633659cfe6116101085780633659cfe6146102585780633cffce93146102785780634703e001146102b15780634bf00ae0146102df5780634f1ef286146102ff57806352d1902d1461031257600080fd5b8062cba9431461014f57806301ffc9a7146101965780631a8eab7e146101c6578063248a9ca3146101e65780632f2ff15d1461021657806336568abe14610238575b600080fd5b34801561015b57600080fd5b506101837fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611cb6565b6104af565b604051901515815260200161018d565b3480156101d257600080fd5b506101b66101e1366004611cf5565b6104e6565b3480156101f257600080fd5b50610183610201366004611d12565b600090815260fb602052604090206001015490565b34801561022257600080fd5b50610236610231366004611d2b565b610505565b005b34801561024457600080fd5b50610236610253366004611d2b565b61052f565b34801561026457600080fd5b50610236610273366004611cf5565b6105c2565b34801561028457600080fd5b5061012e54610299906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b3480156102bd57600080fd5b506101836102cc366004611cf5565b6101316020526000908152604090205481565b3480156102eb57600080fd5b506102996102fa366004611f1e565b610681565b61023661030d366004611ff5565b6107d7565b34801561031e57600080fd5b50610183610883565b34801561033357600080fd5b506101b6610342366004611cf5565b610931565b34801561035357600080fd5b506101b6610362366004611cf5565b6101306020526000908152604090205460ff1681565b34801561038457600080fd5b506101b6610393366004611d2b565b610959565b3480156103a457600080fd5b5061012d54610299906001600160a01b031681565b3480156103c557600080fd5b5061012f54610299906001600160a01b031681565b3480156103e657600080fd5b506102366103f5366004611cf5565b610984565b34801561040657600080fd5b50610183600081565b34801561041b57600080fd5b5061023661042a366004612058565b6109b5565b34801561043b57600080fd5b5061023661044a3660046120e0565b610a8b565b34801561045b57600080fd5b5061023661046a36600461211c565b610ad6565b34801561047b57600080fd5b5061023661048a366004611d2b565b610c35565b34801561049b57600080fd5b506102366104aa366004611cf5565b610c5a565b60006001600160e01b03198216637965db0b60e01b14806104e057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b600082815260fb602052604090206001015461052081610c88565b61052a8383610c99565b505050565b610537610d20565b6001600160a01b0316816001600160a01b0316146105b45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105be8282610d2f565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361060a5760405162461bcd60e51b81526004016105ab90612167565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661063c610db4565b6001600160a01b0316146106625760405162461bcd60e51b81526004016105ab906121b3565b6040805160008082526020820190925261067e91839190610dd0565b50565b60008061012d60009054906101000a90046001600160a01b03166001600160a01b0316637b0c28426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc91906121ff565b60405163130d191f60e11b81529091506001600160a01b0382169063261a323e9061072b908990600401612274565b602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190612287565b6107af5760405162461bcd60e51b8152602060048201526014602482015273195c9c9bdc97dcdd1c99585b539bdd119bdd5b9960621b60448201526064016105ab565b6107ca898963ffffffff168963ffffffff1689898989610f3b565b9998505050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361081f5760405162461bcd60e51b81526004016105ab90612167565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610851610db4565b6001600160a01b0316146108775760405162461bcd60e51b81526004016105ab906121b3565b6105be82826001610dd0565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016105ab565b506000805160206124cd83398151915290565b60006104e07fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d2835b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061098f81610c88565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b60008080808080806109c9888a018a611f1e565b965096509650965096509650965060006109f4888863ffffffff168863ffffffff1688888888610f3b565b61012f54604051630200057560e51b81526001600160a01b038084166004830152602482018f90526060604483015260006064830152929350911690634000aea0906084016020604051808303816000875af1158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190612287565b50505050505050505050505050565b6000610a9681610c88565b60005b825181101561052a57610ac4838281518110610ab757610ab76122a9565b6020026020010151610984565b80610ace816122d5565b915050610a99565b600054610100900460ff1615808015610af65750600054600160ff909116105b80610b105750303b158015610b10575060005460ff166001145b610b735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ab565b6000805460ff191660011790558015610b96576000805461ff0019166101001790555b610b9e611743565b610ba96000336117b0565b61012f80546001600160a01b038086166001600160a01b03199283161790925561012e805487841690831617905561012d8054928516929091169190911790558015610c2f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600082815260fb6020526040902060010154610c5081610c88565b61052a8383610d2f565b6000610c6581610c88565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b61067e81610c94610d20565b6117ba565b610ca38282610959565b6105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610cdc610d20565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610d2a611813565b905090565b610d398282610959565b156105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055610d70610d20565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000805160206124cd833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e035761052a83611835565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e5d575060408051601f3d908101601f19168201909252610e5a918101906122ee565b60015b610ec05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105ab565b6000805160206124cd8339815191528114610f2f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105ab565b5061052a8383836118d1565b60008151835114610f835760405162461bcd60e51b81526020600482015260126024820152716572726f725f626164417267756d656e747360701b60448201526064016105ab565b60008351118015610fc1575060006001600160a01b031683600081518110610fad57610fad6122a9565b60200260200101516001600160a01b031614155b61100d5760405162461bcd60e51b815260206004820152601e60248201527f6572726f725f616c6c6f636174696f6e506f6c6963795265717569726564000060448201526064016105ab565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663663163726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108591906122ee565b8810156110cf5760405162461bcd60e51b81526020600482015260186024820152776572726f725f6d696e696d756d5374616b65546f6f4c6f7760401b60448201526064016105ab565b60005b83518110156111765760008482815181106110ef576110ef6122a9565b6020026020010151905060006001600160a01b0316816001600160a01b0316148061111e575061111e816104e6565b6111635760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b60448201526064016105ab565b508061116e816122d5565b9150506110d2565b5061012e54600090611190906001600160a01b03166118f6565b90506000819050600060405180608001604052808c81526020018b81526020018a8152602001866000815181106111c9576111c96122a9565b60200260200101518152509050816001600160a01b03166398092430898961012d60009054906101000a90046001600160a01b031661012f60009054906101000a90046001600160a01b0316868c600081518110611229576112296122a9565b60200260200101516040518763ffffffff1660e01b815260040161125296959493929190612307565b600060405180830381600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b50505050600186511180156112c2575060006001600160a01b0316866001815181106112ae576112ae6122a9565b60200260200101516001600160a01b031614155b1561135c57816001600160a01b03166304a10591876001815181106112e9576112e96122a9565b602002602001015187600181518110611304576113046122a9565b60200260200101516040518363ffffffff1660e01b815260040161132992919061238b565b600060405180830381600087803b15801561134357600080fd5b505af1158015611357573d6000803e3d6000fd5b505050505b6002865111801561139a575060006001600160a01b031686600281518110611386576113866122a9565b60200260200101516001600160a01b031614155b1561143457816001600160a01b031663acbeddd7876002815181106113c1576113c16122a9565b6020026020010151876002815181106113dc576113dc6122a9565b60200260200101516040518363ffffffff1660e01b815260040161140192919061238b565b600060405180830381600087803b15801561141b57600080fd5b505af115801561142f573d6000803e3d6000fd5b505050505b60035b86518110156115185760006001600160a01b031687828151811061145d5761145d6122a9565b60200260200101516001600160a01b03161461150657826001600160a01b0316632b308a56888381518110611494576114946122a9565b60200260200101518884815181106114ae576114ae6122a9565b60200260200101516040518363ffffffff1660e01b81526004016114d392919061238b565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050505b80611510816122d5565b915050611437565b50816001600160a01b0316632b308a5661012d60009054906101000a90046001600160a01b03166001600160a01b031663887f44fe6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a091906121ff565b60006040518363ffffffff1660e01b81526004016115bf92919061238b565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b50505050816001600160a01b03166336568abe836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166291906122ee565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba4838989886000815181106116f0576116f06122a9565b6020026020010151611700610d20565b6040516117119594939291906123a4565b60405180910390a150506001600160a01b03811660009081526101316020526040902042905598975050505050505050565b600054610100900460ff166117ae5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105ab565b565b6105be8282610c99565b6117c48282610959565b6105be576117d181611990565b6117dc8360206119a2565b6040516020016117ed9291906123f3565b60408051601f198184030181529082905262461bcd60e51b82526105ab91600401612274565b600061181e33610931565b15611830575060131936013560601c90565b503390565b6001600160a01b0381163b6118a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105ab565b6000805160206124cd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118da83611b44565b6000825111806118e75750805b1561052a57610c2f8383611b84565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b03811661198b5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b60448201526064016105ab565b919050565b60606104e06001600160a01b03831660145b606060006119b1836002612462565b6119bc906002612481565b6001600160401b038111156119d3576119d3611d6f565b6040519080825280601f01601f1916602001820160405280156119fd576020820181803683370190505b509050600360fc1b81600081518110611a1857611a186122a9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a4757611a476122a9565b60200101906001600160f81b031916908160001a9053506000611a6b846002612462565b611a76906001612481565b90505b6001811115611aee576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611aaa57611aaa6122a9565b1a60f81b828281518110611ac057611ac06122a9565b60200101906001600160f81b031916908160001a90535060049490941c93611ae781612499565b9050611a79565b508315611b3d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ab565b9392505050565b611b4d81611835565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611bec5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105ab565b600080846001600160a01b031684604051611c0791906124b0565b600060405180830381855af49150503d8060008114611c42576040519150601f19603f3d011682016040523d82523d6000602084013e611c47565b606091505b5091509150611c6f82826040518060600160405280602781526020016124ed60279139611c78565b95945050505050565b60608315611c87575081611b3d565b611b3d8383815115611c9c5781518083602001fd5b8060405162461bcd60e51b81526004016105ab9190612274565b600060208284031215611cc857600080fd5b81356001600160e01b031981168114611b3d57600080fd5b6001600160a01b038116811461067e57600080fd5b600060208284031215611d0757600080fd5b8135611b3d81611ce0565b600060208284031215611d2457600080fd5b5035919050565b60008060408385031215611d3e57600080fd5b823591506020830135611d5081611ce0565b809150509250929050565b803563ffffffff8116811461198b57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611dad57611dad611d6f565b604052919050565b60006001600160401b03831115611dce57611dce611d6f565b611de1601f8401601f1916602001611d85565b9050828152838383011115611df557600080fd5b828260208301376000602084830101529392505050565b600082601f830112611e1d57600080fd5b611b3d83833560208501611db5565b60006001600160401b03821115611e4557611e45611d6f565b5060051b60200190565b600082601f830112611e6057600080fd5b81356020611e75611e7083611e2c565b611d85565b82815260059290921b84018101918181019086841115611e9457600080fd5b8286015b84811015611eb8578035611eab81611ce0565b8352918301918301611e98565b509695505050505050565b600082601f830112611ed457600080fd5b81356020611ee4611e7083611e2c565b82815260059290921b84018101918181019086841115611f0357600080fd5b8286015b84811015611eb85780358352918301918301611f07565b600080600080600080600060e0888a031215611f3957600080fd5b87359650611f4960208901611d5b565b9550611f5760408901611d5b565b945060608801356001600160401b0380821115611f7357600080fd5b611f7f8b838c01611e0c565b955060808a0135915080821115611f9557600080fd5b611fa18b838c01611e0c565b945060a08a0135915080821115611fb757600080fd5b611fc38b838c01611e4f565b935060c08a0135915080821115611fd957600080fd5b50611fe68a828b01611ec3565b91505092959891949750929550565b6000806040838503121561200857600080fd5b823561201381611ce0565b915060208301356001600160401b0381111561202e57600080fd5b8301601f8101851361203f57600080fd5b61204e85823560208401611db5565b9150509250929050565b6000806000806060858703121561206e57600080fd5b843561207981611ce0565b93506020850135925060408501356001600160401b038082111561209c57600080fd5b818701915087601f8301126120b057600080fd5b8135818111156120bf57600080fd5b8860208285010111156120d157600080fd5b95989497505060200194505050565b6000602082840312156120f257600080fd5b81356001600160401b0381111561210857600080fd5b61211484828501611e4f565b949350505050565b60008060006060848603121561213157600080fd5b833561213c81611ce0565b9250602084013561214c81611ce0565b9150604084013561215c81611ce0565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561221157600080fd5b8151611b3d81611ce0565b60005b8381101561223757818101518382015260200161221f565b83811115610c2f5750506000910152565b6000815180845261226081602086016020860161221c565b601f01601f19169290920160200192915050565b602081526000611b3d6020830184612248565b60006020828403121561229957600080fd5b81518015158114611b3d57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e7576122e76122bf565b5060010190565b60006020828403121561230057600080fd5b5051919050565b600061012080835261231b8184018a612248565b9050602083820381850152612330828a612248565b6001600160a01b03898116604087015288811660608701529093509150608084018660005b600481101561237257815183529183019190830190600101612355565b5050505080841661010084015250979650505050505050565b6001600160a01b03929092168252602082015260400190565b600060018060a01b03808816835260a060208401526123c660a0840188612248565b83810360408501526123d88188612248565b60608501969096525092909216608090910152509392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161242581601785016020880161221c565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161245681602884016020880161221c565b01602801949350505050565b600081600019048311821515161561247c5761247c6122bf565b500290565b60008219821115612494576124946122bf565b500190565b6000816124a8576124a86122bf565b506000190190565b600082516124c281846020870161221c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a57dc907e9003f8559557d54478c6cbcd491973d1f5ffcbceacae6592d75cc1264736f6c634300080d0033",
"bytecode": "0x60c06040523060805234801561001457600080fd5b50600060a05260805160a05161259f61005860003960005050600081816105cc0152818161060c015281816108450152818161088501526108f4015261259f6000f3fe60806040526004361061014a5760003560e01c8063572b6c05116100b6578063a217fddf1161006f578063a217fddf146103fa578063a4c0ed361461040f578063b3a79c8d1461042f578063c0c53b8b1461044f578063d547741f1461046f578063d8bd0de41461048f57600080fd5b8063572b6c05146103275780636f0a812e1461034757806391d148541461037857806398833130146103985780639d76ea58146103b9578063a0cdb9d2146103da57600080fd5b80633659cfe6116101085780633659cfe6146102585780633cffce93146102785780634703e001146102b15780634bf00ae0146102df5780634f1ef286146102ff57806352d1902d1461031257600080fd5b8062cba9431461014f57806301ffc9a7146101965780631a8eab7e146101c6578063248a9ca3146101e65780632f2ff15d1461021657806336568abe14610238575b600080fd5b34801561015b57600080fd5b506101837fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611d0c565b6104af565b604051901515815260200161018d565b3480156101d257600080fd5b506101b66101e1366004611d4b565b6104e6565b3480156101f257600080fd5b50610183610201366004611d68565b600090815260fb602052604090206001015490565b34801561022257600080fd5b50610236610231366004611d81565b610505565b005b34801561024457600080fd5b50610236610253366004611d81565b61052f565b34801561026457600080fd5b50610236610273366004611d4b565b6105c2565b34801561028457600080fd5b5061012e54610299906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b3480156102bd57600080fd5b506101836102cc366004611d4b565b6101316020526000908152604090205481565b3480156102eb57600080fd5b506102996102fa366004611f74565b610681565b61023661030d36600461204b565b61083b565b34801561031e57600080fd5b506101836108e7565b34801561033357600080fd5b506101b6610342366004611d4b565b610995565b34801561035357600080fd5b506101b6610362366004611d4b565b6101306020526000908152604090205460ff1681565b34801561038457600080fd5b506101b6610393366004611d81565b6109bd565b3480156103a457600080fd5b5061012d54610299906001600160a01b031681565b3480156103c557600080fd5b5061012f54610299906001600160a01b031681565b3480156103e657600080fd5b506102366103f5366004611d4b565b6109e8565b34801561040657600080fd5b50610183600081565b34801561041b57600080fd5b5061023661042a3660046120ae565b610a19565b34801561043b57600080fd5b5061023661044a366004612136565b610b40565b34801561045b57600080fd5b5061023661046a366004612172565b610b8b565b34801561047b57600080fd5b5061023661048a366004611d81565b610cea565b34801561049b57600080fd5b506102366104aa366004611d4b565b610d0f565b60006001600160e01b03198216637965db0b60e01b14806104e057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b600082815260fb602052604090206001015461052081610d3d565b61052a8383610d4e565b505050565b610537610dd5565b6001600160a01b0316816001600160a01b0316146105b45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105be8282610de4565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361060a5760405162461bcd60e51b81526004016105ab906121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661063c610e69565b6001600160a01b0316146106625760405162461bcd60e51b81526004016105ab90612209565b6040805160008082526020820190925261067e91839190610e85565b50565b60008061012d60009054906101000a90046001600160a01b03166001600160a01b0316637b0c28426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190612255565b60405163130d191f60e11b81529091506001600160a01b0382169063261a323e9061072b9089906004016122ca565b602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c91906122dd565b6107af5760405162461bcd60e51b8152602060048201526014602482015273195c9c9bdc97dcdd1c99585b539bdd119bdd5b9960621b60448201526064016105ab565b60006107cc8a8a63ffffffff168a63ffffffff168a8a8a8a610ff0565b90507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba481888887600081518110610805576108056122ff565b6020026020010151610815610dd5565b604051610826959493929190612315565b60405180910390a15050979650505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108835760405162461bcd60e51b81526004016105ab906121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108b5610e69565b6001600160a01b0316146108db5760405162461bcd60e51b81526004016105ab90612209565b6105be82826001610e85565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016105ab565b5060008051602061252383398151915290565b60006104e07fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d2835b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006109f381610d3d565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b60008080808080610a2c87890189611f74565b965096509650965096505095506000610a518760008863ffffffff1688888888610ff0565b90507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba481868685600081518110610a8a57610a8a6122ff565b60200260200101518f604051610aa4959493929190612315565b60405180910390a161012f54604051630200057560e51b81526001600160a01b038381166004830152602482018d9052606060448301526000606483015290911690634000aea0906084016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3291906122dd565b505050505050505050505050565b6000610b4b81610d3d565b60005b825181101561052a57610b79838281518110610b6c57610b6c6122ff565b60200260200101516109e8565b80610b838161237a565b915050610b4e565b600054610100900460ff1615808015610bab5750600054600160ff909116105b80610bc55750303b158015610bc5575060005460ff166001145b610c285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ab565b6000805460ff191660011790558015610c4b576000805461ff0019166101001790555b610c53611799565b610c5e600033611806565b61012f80546001600160a01b038086166001600160a01b03199283161790925561012e805487841690831617905561012d8054928516929091169190911790558015610ce4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600082815260fb6020526040902060010154610d0581610d3d565b61052a8383610de4565b6000610d1a81610d3d565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b61067e81610d49610dd5565b611810565b610d5882826109bd565b6105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610d91610dd5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ddf611869565b905090565b610dee82826109bd565b156105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055610e25610dd5565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600080516020612523833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610eb85761052a8361188b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f12575060408051601f3d908101601f19168201909252610f0f91810190612393565b60015b610f755760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105ab565b6000805160206125238339815191528114610fe45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105ab565b5061052a838383611927565b600081518351146110385760405162461bcd60e51b81526020600482015260126024820152716572726f725f626164417267756d656e747360701b60448201526064016105ab565b60008351118015611076575060006001600160a01b031683600081518110611062576110626122ff565b60200260200101516001600160a01b031614155b6110c25760405162461bcd60e51b815260206004820152601e60248201527f6572726f725f616c6c6f636174696f6e506f6c6963795265717569726564000060448201526064016105ab565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663663163726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612393565b8810156111845760405162461bcd60e51b81526020600482015260186024820152776572726f725f6d696e696d756d5374616b65546f6f4c6f7760401b60448201526064016105ab565b60005b835181101561122b5760008482815181106111a4576111a46122ff565b6020026020010151905060006001600160a01b0316816001600160a01b031614806111d357506111d3816104e6565b6112185760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b60448201526064016105ab565b50806112238161237a565b915050611187565b5061012e54600090611245906001600160a01b031661194c565b90506000819050600060405180608001604052808c81526020018b81526020018a81526020018660008151811061127e5761127e6122ff565b60200260200101518152509050816001600160a01b03166398092430898961012d60009054906101000a90046001600160a01b031661012f60009054906101000a90046001600160a01b0316868c6000815181106112de576112de6122ff565b60200260200101516040518763ffffffff1660e01b8152600401611307969594939291906123ac565b600060405180830381600087803b15801561132157600080fd5b505af1158015611335573d6000803e3d6000fd5b5050505060018651118015611377575060006001600160a01b031686600181518110611363576113636122ff565b60200260200101516001600160a01b031614155b1561141157816001600160a01b03166304a105918760018151811061139e5761139e6122ff565b6020026020010151876001815181106113b9576113b96122ff565b60200260200101516040518363ffffffff1660e01b81526004016113de929190612430565b600060405180830381600087803b1580156113f857600080fd5b505af115801561140c573d6000803e3d6000fd5b505050505b6002865111801561144f575060006001600160a01b03168660028151811061143b5761143b6122ff565b60200260200101516001600160a01b031614155b156114e957816001600160a01b031663acbeddd787600281518110611476576114766122ff565b602002602001015187600281518110611491576114916122ff565b60200260200101516040518363ffffffff1660e01b81526004016114b6929190612430565b600060405180830381600087803b1580156114d057600080fd5b505af11580156114e4573d6000803e3d6000fd5b505050505b60035b86518110156115cd5760006001600160a01b0316878281518110611512576115126122ff565b60200260200101516001600160a01b0316146115bb57826001600160a01b0316632b308a56888381518110611549576115496122ff565b6020026020010151888481518110611563576115636122ff565b60200260200101516040518363ffffffff1660e01b8152600401611588929190612430565b600060405180830381600087803b1580156115a257600080fd5b505af11580156115b6573d6000803e3d6000fd5b505050505b806115c58161237a565b9150506114ec565b50816001600160a01b0316632b308a5661012d60009054906101000a90046001600160a01b03166001600160a01b031663887f44fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612255565b60006040518363ffffffff1660e01b8152600401611674929190612430565b600060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b50505050816001600160a01b03166336568abe836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190612393565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b15801561175657600080fd5b505af115801561176a573d6000803e3d6000fd5b505050506001600160a01b03831660009081526101316020526040902042905550909998505050505050505050565b600054610100900460ff166118045760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105ab565b565b6105be8282610d4e565b61181a82826109bd565b6105be57611827816119e6565b6118328360206119f8565b604051602001611843929190612449565b60408051601f198184030181529082905262461bcd60e51b82526105ab916004016122ca565b600061187433610995565b15611886575060131936013560601c90565b503390565b6001600160a01b0381163b6118f85760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105ab565b60008051602061252383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61193083611b9a565b60008251118061193d5750805b1561052a57610ce48383611bda565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b0381166119e15760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b60448201526064016105ab565b919050565b60606104e06001600160a01b03831660145b60606000611a078360026124b8565b611a129060026124d7565b6001600160401b03811115611a2957611a29611dc5565b6040519080825280601f01601f191660200182016040528015611a53576020820181803683370190505b509050600360fc1b81600081518110611a6e57611a6e6122ff565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a9d57611a9d6122ff565b60200101906001600160f81b031916908160001a9053506000611ac18460026124b8565b611acc9060016124d7565b90505b6001811115611b44576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b0057611b006122ff565b1a60f81b828281518110611b1657611b166122ff565b60200101906001600160f81b031916908160001a90535060049490941c93611b3d816124ef565b9050611acf565b508315611b935760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ab565b9392505050565b611ba38161188b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105ab565b600080846001600160a01b031684604051611c5d9190612506565b600060405180830381855af49150503d8060008114611c98576040519150601f19603f3d011682016040523d82523d6000602084013e611c9d565b606091505b5091509150611cc5828260405180606001604052806027815260200161254360279139611cce565b95945050505050565b60608315611cdd575081611b93565b611b938383815115611cf25781518083602001fd5b8060405162461bcd60e51b81526004016105ab91906122ca565b600060208284031215611d1e57600080fd5b81356001600160e01b031981168114611b9357600080fd5b6001600160a01b038116811461067e57600080fd5b600060208284031215611d5d57600080fd5b8135611b9381611d36565b600060208284031215611d7a57600080fd5b5035919050565b60008060408385031215611d9457600080fd5b823591506020830135611da681611d36565b809150509250929050565b803563ffffffff811681146119e157600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611e0357611e03611dc5565b604052919050565b60006001600160401b03831115611e2457611e24611dc5565b611e37601f8401601f1916602001611ddb565b9050828152838383011115611e4b57600080fd5b828260208301376000602084830101529392505050565b600082601f830112611e7357600080fd5b611b9383833560208501611e0b565b60006001600160401b03821115611e9b57611e9b611dc5565b5060051b60200190565b600082601f830112611eb657600080fd5b81356020611ecb611ec683611e82565b611ddb565b82815260059290921b84018101918181019086841115611eea57600080fd5b8286015b84811015611f0e578035611f0181611d36565b8352918301918301611eee565b509695505050505050565b600082601f830112611f2a57600080fd5b81356020611f3a611ec683611e82565b82815260059290921b84018101918181019086841115611f5957600080fd5b8286015b84811015611f0e5780358352918301918301611f5d565b600080600080600080600060e0888a031215611f8f57600080fd5b87359650611f9f60208901611db1565b9550611fad60408901611db1565b945060608801356001600160401b0380821115611fc957600080fd5b611fd58b838c01611e62565b955060808a0135915080821115611feb57600080fd5b611ff78b838c01611e62565b945060a08a013591508082111561200d57600080fd5b6120198b838c01611ea5565b935060c08a013591508082111561202f57600080fd5b5061203c8a828b01611f19565b91505092959891949750929550565b6000806040838503121561205e57600080fd5b823561206981611d36565b915060208301356001600160401b0381111561208457600080fd5b8301601f8101851361209557600080fd5b6120a485823560208401611e0b565b9150509250929050565b600080600080606085870312156120c457600080fd5b84356120cf81611d36565b93506020850135925060408501356001600160401b03808211156120f257600080fd5b818701915087601f83011261210657600080fd5b81358181111561211557600080fd5b88602082850101111561212757600080fd5b95989497505060200194505050565b60006020828403121561214857600080fd5b81356001600160401b0381111561215e57600080fd5b61216a84828501611ea5565b949350505050565b60008060006060848603121561218757600080fd5b833561219281611d36565b925060208401356121a281611d36565b915060408401356121b281611d36565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561226757600080fd5b8151611b9381611d36565b60005b8381101561228d578181015183820152602001612275565b83811115610ce45750506000910152565b600081518084526122b6816020860160208601612272565b601f01601f19169290920160200192915050565b602081526000611b93602083018461229e565b6000602082840312156122ef57600080fd5b81518015158114611b9357600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018060a01b03808816835260a0602084015261233760a084018861229e565b8381036040850152612349818861229e565b60608501969096525092909216608090910152509392505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161238c5761238c612364565b5060010190565b6000602082840312156123a557600080fd5b5051919050565b60006101208083526123c08184018a61229e565b90506020838203818501526123d5828a61229e565b6001600160a01b03898116604087015288811660608701529093509150608084018660005b6004811015612417578151835291830191908301906001016123fa565b5050505080841661010084015250979650505050505050565b6001600160a01b03929092168252602082015260400190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161247b816017850160208801612272565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516124ac816028840160208801612272565b01602801949350505050565b60008160001904831182151516156124d2576124d2612364565b500290565b600082198211156124ea576124ea612364565b500190565b6000816124fe576124fe612364565b506000190190565b60008251612518818460208701612272565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209bdde9dcb9e64bd82711083c444c5c8ba5970c47242c7836a33127812e9969d464736f6c634300080d0033",
"deployedBytecode": "0x60806040526004361061014a5760003560e01c8063572b6c05116100b6578063a217fddf1161006f578063a217fddf146103fa578063a4c0ed361461040f578063b3a79c8d1461042f578063c0c53b8b1461044f578063d547741f1461046f578063d8bd0de41461048f57600080fd5b8063572b6c05146103275780636f0a812e1461034757806391d148541461037857806398833130146103985780639d76ea58146103b9578063a0cdb9d2146103da57600080fd5b80633659cfe6116101085780633659cfe6146102585780633cffce93146102785780634703e001146102b15780634bf00ae0146102df5780634f1ef286146102ff57806352d1902d1461031257600080fd5b8062cba9431461014f57806301ffc9a7146101965780631a8eab7e146101c6578063248a9ca3146101e65780632f2ff15d1461021657806336568abe14610238575b600080fd5b34801561015b57600080fd5b506101837fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d281565b6040519081526020015b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611d0c565b6104af565b604051901515815260200161018d565b3480156101d257600080fd5b506101b66101e1366004611d4b565b6104e6565b3480156101f257600080fd5b50610183610201366004611d68565b600090815260fb602052604090206001015490565b34801561022257600080fd5b50610236610231366004611d81565b610505565b005b34801561024457600080fd5b50610236610253366004611d81565b61052f565b34801561026457600080fd5b50610236610273366004611d4b565b6105c2565b34801561028457600080fd5b5061012e54610299906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b3480156102bd57600080fd5b506101836102cc366004611d4b565b6101316020526000908152604090205481565b3480156102eb57600080fd5b506102996102fa366004611f74565b610681565b61023661030d36600461204b565b61083b565b34801561031e57600080fd5b506101836108e7565b34801561033357600080fd5b506101b6610342366004611d4b565b610995565b34801561035357600080fd5b506101b6610362366004611d4b565b6101306020526000908152604090205460ff1681565b34801561038457600080fd5b506101b6610393366004611d81565b6109bd565b3480156103a457600080fd5b5061012d54610299906001600160a01b031681565b3480156103c557600080fd5b5061012f54610299906001600160a01b031681565b3480156103e657600080fd5b506102366103f5366004611d4b565b6109e8565b34801561040657600080fd5b50610183600081565b34801561041b57600080fd5b5061023661042a3660046120ae565b610a19565b34801561043b57600080fd5b5061023661044a366004612136565b610b40565b34801561045b57600080fd5b5061023661046a366004612172565b610b8b565b34801561047b57600080fd5b5061023661048a366004611d81565b610cea565b34801561049b57600080fd5b506102366104aa366004611d4b565b610d0f565b60006001600160e01b03198216637965db0b60e01b14806104e057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03166000908152610130602052604090205460ff1690565b600082815260fb602052604090206001015461052081610d3d565b61052a8383610d4e565b505050565b610537610dd5565b6001600160a01b0316816001600160a01b0316146105b45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105be8282610de4565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361060a5760405162461bcd60e51b81526004016105ab906121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661063c610e69565b6001600160a01b0316146106625760405162461bcd60e51b81526004016105ab90612209565b6040805160008082526020820190925261067e91839190610e85565b50565b60008061012d60009054906101000a90046001600160a01b03166001600160a01b0316637b0c28426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190612255565b60405163130d191f60e11b81529091506001600160a01b0382169063261a323e9061072b9089906004016122ca565b602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c91906122dd565b6107af5760405162461bcd60e51b8152602060048201526014602482015273195c9c9bdc97dcdd1c99585b539bdd119bdd5b9960621b60448201526064016105ab565b60006107cc8a8a63ffffffff168a63ffffffff168a8a8a8a610ff0565b90507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba481888887600081518110610805576108056122ff565b6020026020010151610815610dd5565b604051610826959493929190612315565b60405180910390a15050979650505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108835760405162461bcd60e51b81526004016105ab906121bd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108b5610e69565b6001600160a01b0316146108db5760405162461bcd60e51b81526004016105ab90612209565b6105be82826001610e85565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016105ab565b5060008051602061252383398151915290565b60006104e07fd3df22cd6a774f62b0ae21ffd602cc92e7f3390518eee8b33307fc70380da7d2835b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006109f381610d3d565b506001600160a01b0316600090815261013060205260409020805460ff19166001179055565b60008080808080610a2c87890189611f74565b965096509650965096505095506000610a518760008863ffffffff1688888888610ff0565b90507f0e7222b04175629c97af0d79554c3ec85bfcc438d384fac71aa01c5a1864dba481868685600081518110610a8a57610a8a6122ff565b60200260200101518f604051610aa4959493929190612315565b60405180910390a161012f54604051630200057560e51b81526001600160a01b038381166004830152602482018d9052606060448301526000606483015290911690634000aea0906084016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3291906122dd565b505050505050505050505050565b6000610b4b81610d3d565b60005b825181101561052a57610b79838281518110610b6c57610b6c6122ff565b60200260200101516109e8565b80610b838161237a565b915050610b4e565b600054610100900460ff1615808015610bab5750600054600160ff909116105b80610bc55750303b158015610bc5575060005460ff166001145b610c285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ab565b6000805460ff191660011790558015610c4b576000805461ff0019166101001790555b610c53611799565b610c5e600033611806565b61012f80546001600160a01b038086166001600160a01b03199283161790925561012e805487841690831617905561012d8054928516929091169190911790558015610ce4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600082815260fb6020526040902060010154610d0581610d3d565b61052a8383610de4565b6000610d1a81610d3d565b506001600160a01b0316600090815261013060205260409020805460ff19169055565b61067e81610d49610dd5565b611810565b610d5882826109bd565b6105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610d91610dd5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ddf611869565b905090565b610dee82826109bd565b156105be57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055610e25610dd5565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600080516020612523833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610eb85761052a8361188b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f12575060408051601f3d908101601f19168201909252610f0f91810190612393565b60015b610f755760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105ab565b6000805160206125238339815191528114610fe45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105ab565b5061052a838383611927565b600081518351146110385760405162461bcd60e51b81526020600482015260126024820152716572726f725f626164417267756d656e747360701b60448201526064016105ab565b60008351118015611076575060006001600160a01b031683600081518110611062576110626122ff565b60200260200101516001600160a01b031614155b6110c25760405162461bcd60e51b815260206004820152601e60248201527f6572726f725f616c6c6f636174696f6e506f6c6963795265717569726564000060448201526064016105ab565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663663163726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612393565b8810156111845760405162461bcd60e51b81526020600482015260186024820152776572726f725f6d696e696d756d5374616b65546f6f4c6f7760401b60448201526064016105ab565b60005b835181101561122b5760008482815181106111a4576111a46122ff565b6020026020010151905060006001600160a01b0316816001600160a01b031614806111d357506111d3816104e6565b6112185760405162461bcd60e51b8152602060048201526016602482015275195c9c9bdc97dc1bdb1a58de539bdd151c9d5cdd195960521b60448201526064016105ab565b50806112238161237a565b915050611187565b5061012e54600090611245906001600160a01b031661194c565b90506000819050600060405180608001604052808c81526020018b81526020018a81526020018660008151811061127e5761127e6122ff565b60200260200101518152509050816001600160a01b03166398092430898961012d60009054906101000a90046001600160a01b031661012f60009054906101000a90046001600160a01b0316868c6000815181106112de576112de6122ff565b60200260200101516040518763ffffffff1660e01b8152600401611307969594939291906123ac565b600060405180830381600087803b15801561132157600080fd5b505af1158015611335573d6000803e3d6000fd5b5050505060018651118015611377575060006001600160a01b031686600181518110611363576113636122ff565b60200260200101516001600160a01b031614155b1561141157816001600160a01b03166304a105918760018151811061139e5761139e6122ff565b6020026020010151876001815181106113b9576113b96122ff565b60200260200101516040518363ffffffff1660e01b81526004016113de929190612430565b600060405180830381600087803b1580156113f857600080fd5b505af115801561140c573d6000803e3d6000fd5b505050505b6002865111801561144f575060006001600160a01b03168660028151811061143b5761143b6122ff565b60200260200101516001600160a01b031614155b156114e957816001600160a01b031663acbeddd787600281518110611476576114766122ff565b602002602001015187600281518110611491576114916122ff565b60200260200101516040518363ffffffff1660e01b81526004016114b6929190612430565b600060405180830381600087803b1580156114d057600080fd5b505af11580156114e4573d6000803e3d6000fd5b505050505b60035b86518110156115cd5760006001600160a01b0316878281518110611512576115126122ff565b60200260200101516001600160a01b0316146115bb57826001600160a01b0316632b308a56888381518110611549576115496122ff565b6020026020010151888481518110611563576115636122ff565b60200260200101516040518363ffffffff1660e01b8152600401611588929190612430565b600060405180830381600087803b1580156115a257600080fd5b505af11580156115b6573d6000803e3d6000fd5b505050505b806115c58161237a565b9150506114ec565b50816001600160a01b0316632b308a5661012d60009054906101000a90046001600160a01b03166001600160a01b031663887f44fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612255565b60006040518363ffffffff1660e01b8152600401611674929190612430565b600060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b50505050816001600160a01b03166336568abe836001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190612393565b6040516001600160e01b031960e084901b1681526004810191909152306024820152604401600060405180830381600087803b15801561175657600080fd5b505af115801561176a573d6000803e3d6000fd5b505050506001600160a01b03831660009081526101316020526040902042905550909998505050505050505050565b600054610100900460ff166118045760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105ab565b565b6105be8282610d4e565b61181a82826109bd565b6105be57611827816119e6565b6118328360206119f8565b604051602001611843929190612449565b60408051601f198184030181529082905262461bcd60e51b82526105ab916004016122ca565b600061187433610995565b15611886575060131936013560601c90565b503390565b6001600160a01b0381163b6118f85760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105ab565b60008051602061252383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61193083611b9a565b60008251118061193d5750805b1561052a57610ce48383611bda565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b0381166119e15760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b60448201526064016105ab565b919050565b60606104e06001600160a01b03831660145b60606000611a078360026124b8565b611a129060026124d7565b6001600160401b03811115611a2957611a29611dc5565b6040519080825280601f01601f191660200182016040528015611a53576020820181803683370190505b509050600360fc1b81600081518110611a6e57611a6e6122ff565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a9d57611a9d6122ff565b60200101906001600160f81b031916908160001a9053506000611ac18460026124b8565b611acc9060016124d7565b90505b6001811115611b44576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b0057611b006122ff565b1a60f81b828281518110611b1657611b166122ff565b60200101906001600160f81b031916908160001a90535060049490941c93611b3d816124ef565b9050611acf565b508315611b935760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ab565b9392505050565b611ba38161188b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105ab565b600080846001600160a01b031684604051611c5d9190612506565b600060405180830381855af49150503d8060008114611c98576040519150601f19603f3d011682016040523d82523d6000602084013e611c9d565b606091505b5091509150611cc5828260405180606001604052806027815260200161254360279139611cce565b95945050505050565b60608315611cdd575081611b93565b611b938383815115611cf25781518083602001fd5b8060405162461bcd60e51b81526004016105ab91906122ca565b600060208284031215611d1e57600080fd5b81356001600160e01b031981168114611b9357600080fd5b6001600160a01b038116811461067e57600080fd5b600060208284031215611d5d57600080fd5b8135611b9381611d36565b600060208284031215611d7a57600080fd5b5035919050565b60008060408385031215611d9457600080fd5b823591506020830135611da681611d36565b809150509250929050565b803563ffffffff811681146119e157600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611e0357611e03611dc5565b604052919050565b60006001600160401b03831115611e2457611e24611dc5565b611e37601f8401601f1916602001611ddb565b9050828152838383011115611e4b57600080fd5b828260208301376000602084830101529392505050565b600082601f830112611e7357600080fd5b611b9383833560208501611e0b565b60006001600160401b03821115611e9b57611e9b611dc5565b5060051b60200190565b600082601f830112611eb657600080fd5b81356020611ecb611ec683611e82565b611ddb565b82815260059290921b84018101918181019086841115611eea57600080fd5b8286015b84811015611f0e578035611f0181611d36565b8352918301918301611eee565b509695505050505050565b600082601f830112611f2a57600080fd5b81356020611f3a611ec683611e82565b82815260059290921b84018101918181019086841115611f5957600080fd5b8286015b84811015611f0e5780358352918301918301611f5d565b600080600080600080600060e0888a031215611f8f57600080fd5b87359650611f9f60208901611db1565b9550611fad60408901611db1565b945060608801356001600160401b0380821115611fc957600080fd5b611fd58b838c01611e62565b955060808a0135915080821115611feb57600080fd5b611ff78b838c01611e62565b945060a08a013591508082111561200d57600080fd5b6120198b838c01611ea5565b935060c08a013591508082111561202f57600080fd5b5061203c8a828b01611f19565b91505092959891949750929550565b6000806040838503121561205e57600080fd5b823561206981611d36565b915060208301356001600160401b0381111561208457600080fd5b8301601f8101851361209557600080fd5b6120a485823560208401611e0b565b9150509250929050565b600080600080606085870312156120c457600080fd5b84356120cf81611d36565b93506020850135925060408501356001600160401b03808211156120f257600080fd5b818701915087601f83011261210657600080fd5b81358181111561211557600080fd5b88602082850101111561212757600080fd5b95989497505060200194505050565b60006020828403121561214857600080fd5b81356001600160401b0381111561215e57600080fd5b61216a84828501611ea5565b949350505050565b60008060006060848603121561218757600080fd5b833561219281611d36565b925060208401356121a281611d36565b915060408401356121b281611d36565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561226757600080fd5b8151611b9381611d36565b60005b8381101561228d578181015183820152602001612275565b83811115610ce45750506000910152565b600081518084526122b6816020860160208601612272565b601f01601f19169290920160200192915050565b602081526000611b93602083018461229e565b6000602082840312156122ef57600080fd5b81518015158114611b9357600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018060a01b03808816835260a0602084015261233760a084018861229e565b8381036040850152612349818861229e565b60608501969096525092909216608090910152509392505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161238c5761238c612364565b5060010190565b6000602082840312156123a557600080fd5b5051919050565b60006101208083526123c08184018a61229e565b90506020838203818501526123d5828a61229e565b6001600160a01b03898116604087015288811660608701529093509150608084018660005b6004811015612417578151835291830191908301906001016123fa565b5050505080841661010084015250979650505050505050565b6001600160a01b03929092168252602082015260400190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161247b816017850160208801612272565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516124ac816028840160208801612272565b01602801949350505050565b60008160001904831182151516156124d2576124d2612364565b500290565b600082198211156124ea576124ea612364565b500190565b6000816124fe576124fe612364565b506000190190565b60008251612518818460208701612272565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209bdde9dcb9e64bd82711083c444c5c8ba5970c47242c7836a33127812e9969d464736f6c634300080d0033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -41,3 +41,3 @@ export { abi as operatorABI, bytecode as operatorBytecode } from "../artifacts/contracts/OperatorTokenomics/Operator.sol/Operator.json";

export { abi as fifsRegistrarABI, bytecode as fifsRegistrarBytecode } from "@ensdomains/ens-contracts/artifacts/contracts/registry/FIFSRegistrar.sol/FIFSRegistrar.json";
export { abi as publicResolverABI, bytecode as publicResolverBytecode } from "@ensdomains/ens-contracts/artifacts/contracts/resolvers/PublicResolver.sol/PublicResolver.json";
export { abi as publicResolverABI, bytecode as publicResolverBytecode } from "@ensdomains/ens-contracts/deployments/archive/PublicResolver_mainnet_9412610.sol/PublicResolver_mainnet_9412610.json";
export * from "./StreamrEnvDeployer";

@@ -80,5 +80,5 @@ "use strict";

Object.defineProperty(exports, "fifsRegistrarBytecode", { enumerable: true, get: function () { return FIFSRegistrar_json_1.bytecode; } });
var PublicResolver_json_1 = require("@ensdomains/ens-contracts/artifacts/contracts/resolvers/PublicResolver.sol/PublicResolver.json");
Object.defineProperty(exports, "publicResolverABI", { enumerable: true, get: function () { return PublicResolver_json_1.abi; } });
Object.defineProperty(exports, "publicResolverBytecode", { enumerable: true, get: function () { return PublicResolver_json_1.bytecode; } });
var PublicResolver_mainnet_9412610_json_1 = require("@ensdomains/ens-contracts/deployments/archive/PublicResolver_mainnet_9412610.sol/PublicResolver_mainnet_9412610.json");
Object.defineProperty(exports, "publicResolverABI", { enumerable: true, get: function () { return PublicResolver_mainnet_9412610_json_1.abi; } });
Object.defineProperty(exports, "publicResolverBytecode", { enumerable: true, get: function () { return PublicResolver_mainnet_9412610_json_1.bytecode; } });
__exportStar(require("./StreamrEnvDeployer"), exports);

@@ -13,5 +13,2 @@ import { Contract, Wallet, providers } from "ethers";

"StreamStorageRegistry": string;
"MarketplaceV4": string;
"ProjectRegistryV1": string;
"ProjectStakingV1": string;
"StreamrConfig": string;

@@ -28,5 +25,2 @@ "SponsorshipFactory": string;

"OperatorDefaultPoolYieldPolicy": string;
"DataUnionFactory": string;
"DataUnionTemplate": string;
"DefaultFeeOracle": string;
};

@@ -44,5 +38,2 @@ export type EnvContracAddresses = StreamrContractAddresses;

"streamStorageRegistry": StreamStorageRegistry;
"marketplaceV4": Contract;
"projectRegistryV1": Contract;
"projectStakingV1": Contract;
"streamrConfig": StreamrConfig;

@@ -59,5 +50,2 @@ "sponsorshipFactory": SponsorshipFactory;

"operatorDefaultPoolYieldPolicy": DefaultPoolYieldPolicy;
"dataUnionFactory": Contract;
"dataUnionTemplate": Contract;
"defaultFeeOracle": Contract;
};

@@ -77,7 +65,6 @@ export type EnvContracts = StreamrContracts;

deployEnvironment(): Promise<void>;
deployEvironment(): Promise<void>;
createFundStakeSponsorshipAndOperator(): Promise<void>;
deployEns(): Promise<void>;
registerEnsName(domain: string, newOwner: Wallet): Promise<void>;
deployStreamRegistry(): Promise<void>;
deployRegistries(): Promise<void>;
createStream(): Promise<void>;

@@ -84,0 +71,0 @@ deploySponsorshipFactory(): Promise<void>;

@@ -20,10 +20,7 @@ "use strict";

async deployEnvironment() {
await this.deployStreamRegistry();
await this.deployEns();
await this.deployRegistries();
await this.deploySponsorshipFactory();
await this.deployOperatorFactory();
}
// TODO: remove
async deployEvironment() {
return this.deployEnvironment();
}
async createFundStakeSponsorshipAndOperator() {

@@ -73,3 +70,16 @@ await this.createStream();

}
async deployStreamRegistry() {
async deployRegistries() {
log("Deploying Registries");
// TODO do we still need a tracker registry?
const initialNodes = [];
const initialMetadata = [];
initialNodes.push("0xde1112f631486CfC759A50196853011528bC5FA0");
initialMetadata.push("{\"http\": \"http://10.200.10.1:8891\"}");
const nodeRegistryFactory = new ethers_1.ContractFactory(exports_1.nodeRegistryABI, exports_1.nodeRegistryBytecode, this.adminWallet);
const nodeRegistry = await nodeRegistryFactory.deploy();
await nodeRegistry.deployed();
await (await nodeRegistry.initialize(this.adminWallet.address, false, initialNodes, initialMetadata)).wait();
this.addresses.StorageNodeRegistry = nodeRegistry.address;
this.contracts.storageNodeRegistry = nodeRegistry;
log(`nodeRegistry address ${this.addresses.StorageNodeRegistry}`);
const streamRegistryFactory = new ethers_1.ContractFactory(exports_1.streamRegistryABI, exports_1.streamRegistryBytecode, this.adminWallet);

@@ -82,6 +92,28 @@ const streamRegistry = await streamRegistryFactory.deploy();

log(`streamRegistry address ${this.addresses.StreamRegistry}`);
const scriptKeyAddress = "0xa3d1F77ACfF0060F7213D7BF3c7fEC78df847De1";
const ensCacheV2Factory = new ethers_1.ContractFactory(exports_1.ENSCacheV2ABI, exports_1.ENSCacheV2Bytecode, this.adminWallet);
const ensCacheV2 = await ensCacheV2Factory.deploy();
await ensCacheV2.deployed();
await (await ensCacheV2.initialize(scriptKeyAddress, streamRegistry.address, ethers_1.Wallet.createRandom().address)).wait();
this.addresses.ENSCacheV2 = ensCacheV2.address;
this.contracts.eNSCacheV2 = ensCacheV2;
log(`ENSCacheV2 address ${this.addresses.ENSCacheV2}`);
const role = await streamRegistry.TRUSTED_ROLE();
log(`granting trusted role ${role} to self ${this.adminWallet.address}`);
await (await streamRegistry.grantRole(role, this.adminWallet.address)).wait();
log("setting ENSCache address in StreamRegistry");
await (await streamRegistry.setEnsCache(ensCacheV2.address)).wait();
log(`granting trusted role ${role} ensaddress ${ensCacheV2.address}`);
await (await streamRegistry.grantRole(role, ensCacheV2.address)).wait();
log("ensCacheScript address set as trusted role in streamregistry");
const streamStorageRegistryFactory = new ethers_1.ContractFactory(exports_1.streamStorageRegistryABI, exports_1.streamStorageRegistryBytecode, this.adminWallet);
const streamStorageRegistry = await streamStorageRegistryFactory.deploy();
await streamStorageRegistry.deployed();
await (await streamStorageRegistry.initialize(streamRegistry.address, nodeRegistry.address, ethers_1.ethers.constants.AddressZero)).wait();
this.addresses.StreamStorageRegistry = streamStorageRegistry.address;
this.contracts.streamStorageRegistry = streamStorageRegistry;
log(`streamStorageRegistry address ${this.addresses.StreamStorageRegistry}`);
}
async createStream() {
const streampath = "/test" + Date.now();
log(`deployed StreamRegistry at ${this.contracts.streamRegistry.address}`);
log(`creating stream ${streampath}`);

@@ -200,3 +232,3 @@ await ((await this.contracts.streamRegistry.createStream(streampath, "{}")).wait());

await (await this.contracts.streamrConfig.setOperatorFactory(operatorFactory.address)).wait();
log("Set Operator contract factory in StreamrConfig");
log("Operator contract factory is now set in StreamrConfig");
}

@@ -203,0 +235,0 @@ async deployOperatorContract() {

@@ -227,3 +227,3 @@ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers";

isTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
onTokenTransfer(arg0: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
onTokenTransfer(from: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
from?: PromiseOrValue<string>;

@@ -275,3 +275,3 @@ }): Promise<ContractTransaction>;

isTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
onTokenTransfer(arg0: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
onTokenTransfer(from: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
from?: PromiseOrValue<string>;

@@ -313,3 +313,3 @@ }): Promise<ContractTransaction>;

isTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
onTokenTransfer(arg0: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
onTokenTransfer(from: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
proxiableUUID(overrides?: CallOverrides): Promise<string>;

@@ -368,3 +368,3 @@ removeTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;

isTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
onTokenTransfer(arg0: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
onTokenTransfer(from: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
from?: PromiseOrValue<string>;

@@ -417,3 +417,3 @@ }): Promise<BigNumber>;

isTrustedPolicy(policyAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
onTokenTransfer(arg0: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
onTokenTransfer(from: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, param: PromiseOrValue<BytesLike>, overrides?: Overrides & {
from?: PromiseOrValue<string>;

@@ -420,0 +420,0 @@ }): Promise<PopulatedTransaction>;

{
"name": "@streamr/network-contracts",
"version": "4.2.0",
"version": "4.3.0",
"description": "Smart contracts for Streamr Network",

@@ -5,0 +5,0 @@ "author": "Streamr Network AG",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc