0 txs
0 calls
constructor
constructor()
functions
implementation
viewfunction implementation() view returns (address)
predictAddress
viewfunction predictAddress(bytes32 salt) view returns (address)
summon
nonpayablefunction summon(bytes32 salt, string name, string symbol) returns (address)
events
ShardwalletCreation
event ShardwalletCreation(address shardwallet, address owner)
errors
No errors.
creation bytecode
0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b61442f8061061b83390190565b60805161059c61007f6000396000818160480152818160be0152610181015261059c6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b146100465780639c76b65414610091578063d9ce6884146100a4575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006861009f3660046103f2565b6100b7565b6100686100b2366004610454565b6100e9565b60006100e37f000000000000000000000000000000000000000000000000000000000000000083610291565b92915050565b60003360601b6bffffffffffffffffffffffff1916866bffffffffffffffffffffffff19161461017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f536861726477616c6c6574466163746f72793a20756e617574686f72697a656460448201526064015b60405180910390fd5b60006101a67f000000000000000000000000000000000000000000000000000000000000000088610314565b6040517f90657147000000000000000000000000000000000000000000000000000000008152909150819073ffffffffffffffffffffffffffffffffffffffff8216906390657147906102059033908b908b908b908b90600401610517565b600060405180830381600087803b15801561021f57600080fd5b505af1158015610233573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff851681523360208201527fc18510dd0bb53f044b032fe0380f6c21414b6682da94de1a7b673a362a631ab3935001905060405180910390a1979650505050505050565b600061030d8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff81166100e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610171565b60006020828403121561040457600080fd5b5035919050565b60008083601f84011261041d57600080fd5b50813567ffffffffffffffff81111561043557600080fd5b60208301915083602082850101111561044d57600080fd5b9250929050565b60008060008060006060868803121561046c57600080fd5b85359450602086013567ffffffffffffffff8082111561048b57600080fd5b61049789838a0161040b565b909650945060408801359150808211156104b057600080fd5b506104bd8882890161040b565b969995985093965092949392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff861681526060602082015260006105476060830186886104ce565b828103604084015261055a8185876104ce565b9897505050505050505056fea2646970667358221220bee1a9f7f7482f7825795cad5425f5f510f55745d641eb053c71800f541f3e1464736f6c6343000809003360806040523480156200001157600080fd5b50604080516020808201808452600080845284519283019094528382528251929391926200004192919062000216565b5080516200005790600190602084019062000216565b505050620000746200006e6200008460201b60201c565b62000088565b6200007e620000e4565b620002f9565b3390565b600680546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620000f060ff620000f3565b50565b600654600090610100900460ff16156200018e578160ff1660011480156200012e57506200012c306200020760201b62001f011760201c565b155b620001865760405162461bcd60e51b815260206004820152602e60248201526000805160206200440f83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60065460ff808416911610620001ed5760405162461bcd60e51b815260206004820152602e60248201526000805160206200440f83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200017d565b506006805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b8280546200022490620002bc565b90600052602060002090601f01602090048101928262000248576000855562000293565b82601f106200026357805160ff191683800117855562000293565b8280016001018555821562000293579182015b828111156200029357825182559160200191906001019062000276565b50620002a1929150620002a5565b5090565b5b80821115620002a15760008155600101620002a6565b600181811c90821680620002d157607f821691505b60208210811415620002f357634e487b7160e01b600052602260045260246000fd5b50919050565b61410680620003096000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063c620c3fb11610095578063e985e9c511610064578063e985e9c5146105de578063ef9b881a14610634578063f2fde38b14610654578063f311df8e1461067457600080fd5b8063c620c3fb1461051f578063c87b56dd1461053f578063de4e61c31461055f578063de62d842146105a557600080fd5b806390657147116100d157806390657147146104aa57806395d89b41146104ca578063a22cb465146104df578063b88d4fde146104ff57600080fd5b806370a0823114610444578063715018a6146104645780638da5cb5b1461047957600080fd5b8063242a00871161016f57806342842e0e1161013e57806342842e0e146103b957806342eb9d94146103d95780634dc2d4b4146103f95780636352211e1461042457600080fd5b8063242a00871461032c57806329c211761461035957806332902aef1461037957806336e08a1b1461039957600080fd5b8063095ea7b3116101ab578063095ea7b31461027957806315fd06911461029b57806323b872dd146102c957806323cdb5aa146102e957600080fd5b806301ffc9a7146101dd57806306fdde0314610212578063081812fc1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101fd6101f836600461354d565b610694565b60405190151581526020015b60405180910390f35b34801561021e57600080fd5b50610227610779565b60405161020991906135e0565b34801561024057600080fd5b5061025461024f3660046135f3565b61080b565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610209565b34801561028557600080fd5b5061029961029436600461362e565b6108ea565b005b3480156102a757600080fd5b506102bb6102b63660046137cf565b610a77565b604051908152602001610209565b3480156102d557600080fd5b506102996102e4366004613816565b610ace565b3480156102f557600080fd5b506102bb610304366004613857565b73ffffffffffffffffffffffffffffffffffffffff166000908152600b602052604090205490565b34801561033857600080fd5b5061034c6103473660046135f3565b610b6f565b60405161020991906138af565b34801561036557600080fd5b506102bb61037436600461391d565b610c7d565b34801561038557600080fd5b506102bb610394366004613977565b61114a565b3480156103a557600080fd5b506102bb6103b43660046139b5565b61115f565b3480156103c557600080fd5b506102996103d4366004613816565b6114a5565b3480156103e557600080fd5b506102996103f4366004613a43565b6114c0565b34801561040557600080fd5b50600c5473ffffffffffffffffffffffffffffffffffffffff16610254565b34801561043057600080fd5b5061025461043f3660046135f3565b6114cc565b34801561045057600080fd5b506102bb61045f366004613857565b61157e565b34801561047057600080fd5b5061029961164c565b34801561048557600080fd5b5060065462010000900473ffffffffffffffffffffffffffffffffffffffff16610254565b3480156104b657600080fd5b506102996104c5366004613ad1565b6116e0565b3480156104d657600080fd5b50610227611863565b3480156104eb57600080fd5b506102996104fa366004613b54565b611872565b34801561050b57600080fd5b5061029961051a366004613bc8565b611881565b34801561052b57600080fd5b5061029961053a366004613857565b611929565b34801561054b57600080fd5b5061022761055a3660046135f3565b6119f8565b34801561056b57600080fd5b5061059161057a3660046135f3565b60009081526008602052604090205462ffffff1690565b60405162ffffff9091168152602001610209565b3480156105b157600080fd5b506105c56105c0366004613c72565b611b7a565b6040805192835262ffffff909116602083015201610209565b3480156105ea57600080fd5b506101fd6105f9366004613ca7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561064057600080fd5b5061029961064f366004613cd5565b611cc5565b34801561066057600080fd5b5061029961066f366004613857565b611d1a565b34801561068057600080fd5b506102bb61068f366004613977565b611e51565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061072757507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061077357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600d805461078890613d34565b80601f01602080910402602001604051908101604052809291908181526020018280546107b490613d34565b80156108015780601f106107d657610100808354040283529160200191610801565b820191906000526020600020905b8154815290600101906020018083116107e457829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff166108c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006108f5826114cc565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016108b8565b3373ffffffffffffffffffffffffffffffffffffffff821614806109dc57506109dc81336105f9565b610a68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016108b8565b610a728383611f1d565b505050565b604080516001808252818301909252600091829190602080830190803683370190505090508381600081518110610ab057610ab0613d88565b602002602001018181525050610ac68184610c7d565b949350505050565b610ad83382611fbd565b610b64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b610a7283838361212c565b600081815260086020908152604080832060010154835260098252808320805482518185028101850190935280835260609493830182828015610bd157602002820191906000526020600020905b815481526020019060010190808311610bbd575b505050505090506000815167ffffffffffffffff811115610bf457610bf461365a565b604051908082528060200260200182016040528015610c1d578160200160208202803683370190505b50905060005b8151811015610c7557828181518110610c3e57610c3e613d88565b6020026020010151828281518110610c5857610c58613d88565b602090810291909101015280610c6d81613de6565b915050610c23565b509392505050565b6000825160001415610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e6f20706172656e747300000000000000000060448201526064016108b8565b81517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1015610d1657600080fd5b6007548251610d259082613e1f565b60075560008181526009602090815260409091208551610d479287019061342d565b506000805b8551811015610e20576000868281518110610d6957610d69613d88565b60200260200101519050610d7d3382611fbd565b610de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a65640000000000000060448201526064016108b8565b610dec81612393565b600081815260086020526040902054610e0a9062ffffff1684613e37565b9250508080610e1890613de6565b915050610d4c565b506000845167ffffffffffffffff811115610e3d57610e3d61365a565b604051908082528060200260200182016040528015610e66578160200160208202803683370190505b5090508260005b8651811015611042576000878281518110610e8a57610e8a613d88565b60200260200101516000015190508062ffffff1660001415610f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e756c6c20736861726500000000000000000060448201526064016108b8565b8462ffffff168162ffffff161115610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f206c617267650000000060448201526064016108b8565b610f868186613e5e565b945080848381518110610f9b57610f9b613d88565b62ffffff90921660209283029190910190910152600083610fbb81613de6565b6040805160608101825262ffffff95861681528c517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90811660208084019182528385018e8152600097885260089091529390952091519451166301000000029390951692909217845590516001909301929092555091508061103a81613de6565b915050610e6d565b5062ffffff8316156110b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f20736d616c6c0000000060448201526064016108b8565b7fe3ac79fef3b280ad3daaef2cc74e5bdf501b73b95afb1fdc9eee0a4bf56f8d1e8785846040516110e393929190613e82565b60405180910390a1508260005b865181101561113e5761112c87828151811061110e5761110e613d88565b602002602001015160200151838061112590613de6565b9450612460565b8061113681613de6565b9150506110f0565b50929695505050505050565b60006111588383600161115f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a6020908152604080832086845290915281205480156111a75761119f8161247a565b915050611158565b5083600114156111b957506000611158565b6000848152600860209081526040918290208251606081018452815462ffffff811680835263010000009091047cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff169382019390935260019091015492810192909252611227576000915050611158565b806040015185101561123b5761123b613ee3565b600081604001518661124d9190613f12565b905081602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16811061128157611281613ee3565b604080830151600090815260096020908152828220805484518184028101840190955280855292939290918301828280156112db57602002820191906000526020600020905b8154815260200190600101908083116112c7575b505050505090506000805b82518110156113315761131383828151811061130457611304613d88565b6020026020010151898961115f565b61131d9083613e1f565b91508061132981613de6565b9150506112e6565b50600084602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1667ffffffffffffffff8111156113705761137061365a565b604051908082528060200260200182016040528015611399578160200160208202803683370190505b50905060005b85602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16811015611447576000808288604001516113dd9190613e1f565b90508b8114156113f05787519150611407565b60008181526008602052604090205462ffffff1691505b8184848151811061141a5761141a613d88565b602002602001019062ffffff16908162ffffff16815250505050808061143f90613de6565b91505061139f565b506000611455838387612487565b90508715611498576114668161262b565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600a602090815260408083208e84529091529020555b9998505050505050505050565b610a7283838360405180602001604052806000815250611881565b610a7283838333611cc5565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016108b8565b600073ffffffffffffffffffffffffffffffffffffffff8216611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016108b8565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60065473ffffffffffffffffffffffffffffffffffffffff620100009091041633146116d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108b8565b6116de6000612638565b565b60006116ec60016126b7565b9050801561172157600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61172a86612638565b611736600d8686613478565b50611743600e8484613478565b50600260075560408051606081018252620f424081526001602080830182815293830182815260008390526008909152915192517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663010000000262ffffff93909316929092177fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f55517fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac560556117f8908790612460565b801561185b57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6060600e805461078890613d34565b61187d33838361283f565b5050565b61188b3383611fbd565b611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b6119238484848461296d565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff620100009091041633146119b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108b8565b600c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16611a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016108b8565b600c5473ffffffffffffffffffffffffffffffffffffffff1680611aba575050604080516020810190915260008152919050565b6040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063c87b56dd9060240160006040518083038186803b158015611b2057600080fd5b505afa158015611b34573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111589190810190613f29565b6000806000805b8451811015611bde5760086000868381518110611ba057611ba0613d88565b602090810291909101810151825281019190915260400160002054611bca9062ffffff1683613e1f565b915080611bd681613de6565b915050611b81565b506040805160018082528183019092529192508291600091816020015b6040805180820190915260008082526020820152815260200190600190039081611bfb5790505090503381600081518110611c3857611c38613d88565b60200260200101516020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600081518110611c8a57611c8a613d88565b602090810291909101015162ffffff9091169052611ca88582610c7d565b93508262ffffff168214611cbe57611cbe613ee3565b5050915091565b60005b82811015611d1357611d0185858584818110611ce657611ce6613d88565b9050602002016020810190611cfb9190613857565b84612a10565b80611d0b81613de6565b915050611cc8565b5050505050565b60065473ffffffffffffffffffffffffffffffffffffffff62010000909104163314611da2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108b8565b73ffffffffffffffffffffffffffffffffffffffff8116611e45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108b8565b611e4e81612638565b50565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16611edc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016108b8565b6000611ee88484612cdd565b90506000611ef7858584612e6b565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611f77826114cc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1661206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084016108b8565b6000612079836114cc565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806120e7575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610ac657508373ffffffffffffffffffffffffffffffffffffffff1661210d8461080b565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661214c826114cc565b73ffffffffffffffffffffffffffffffffffffffff16146121ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016108b8565b73ffffffffffffffffffffffffffffffffffffffff8216612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108b8565b61229c600082611f1d565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054600192906122d2908490613f12565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080546001929061230d908490613e1f565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061239e826114cc565b90506123ab600083611f1d565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054600192906123e1908490613f12565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61187d828260405180602001604052806000815250612fc9565b6000610773600183613f12565b815160009081805b85518110156124d6578581815181106124aa576124aa613d88565b602002602001015162ffffff16826124c29190613e1f565b9150806124ce81613de6565b91505061248f565b5060008585815181106124eb576124eb613d88565b602002602001015162ffffff16876125039190613fa0565b905060006125118383613fdd565b9050600061251f8483613fa0565b6125299084613f12565b90508061253c5750935061115892505050565b806000805b878110156125f65789811415612556576125e4565b60008b828151811061256a5761256a613d88565b602002602001015162ffffff168d6125829190613fa0565b905060006125908983613fdd565b9050600061259e8a83613fa0565b6125a89084613f12565b90506125b48187613e1f565b9550868111806125cd575086811480156125cd57508c84115b156125e057846125dc81613de6565b9550505b5050505b806125ee81613de6565b915050612541565b5060006126038784613fdd565b90508082101561261b578461261781613de6565b9550505b50929a9950505050505050505050565b6000610773826001613e1f565b6006805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600090610100900460ff1615612770578160ff1660011480156126dc5750303b155b612768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108b8565b506000919050565b60065460ff808416911610612807576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108b8565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055600190565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108b8565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61297884848461212c565b6129848484848461306c565b611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b612a1a3384611fbd565b612a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a65640000000000000060448201526064016108b8565b6000612a8c848461114a565b9050600080612a9c868685612e6b565b915091508473ffffffffffffffffffffffffffffffffffffffff16867f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f30384604051612ae991815260200190565b60405180910390a381612afe57505050505050565b6000612b0a8385613e1f565b9050612b158161262b565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083208b8452909152902055612b508383613e1f565b73ffffffffffffffffffffffffffffffffffffffff87166000818152600b6020526040902091909155612bc65760405173ffffffffffffffffffffffffffffffffffffffff86169084156108fc029085906000818181858888f19350505050158015612bc0573d6000803e3d6000fd5b50612cd4565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b158015612c3657600080fd5b505af1158015612c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6e9190614018565b612cd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a207472616e73666572206661696c65640000000060448201526064016108b8565b50505050505050565b6040516024810183905273ffffffffffffffffffffffffffffffffffffffff82166044820152600060648201819052908190608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f36e08a1b000000000000000000000000000000000000000000000000000000001790525190915060009081903090612d9e908590614035565b600060405180830381855afa9150503d8060008114612dd9576040519150601f19603f3d011682016040523d82523d6000602084013e612dde565b606091505b509150915081612e4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536861726477616c6c65743a206661696c65640000000000000000000000000060448201526064016108b8565b600081806020019051810190612e609190614051565b979650505050505050565b600083815260086020526040812054819062ffffff168173ffffffffffffffffffffffffffffffffffffffff8616612ea4575047612f44565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8716906370a082319060240160206040518083038186803b158015612f0957600080fd5b505afa158015612f1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f419190614051565b90505b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60205260408120549350612f768483613e1f565b90506000620f4240612f8d62ffffff861684613fa0565b612f979190613fdd565b90506000955086811115612fbd57612faf8782613f12565b955082861115612fbd578295505b50505050935093915050565b612fd3838361326b565b612fe0600084848461306c565b610a72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b600073ffffffffffffffffffffffffffffffffffffffff84163b15613260576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906130e390339089908890889060040161406a565b602060405180830381600087803b1580156130fd57600080fd5b505af192505050801561314b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252613148918101906140b3565b60015b613215573d808015613179576040519150601f19603f3d011682016040523d82523d6000602084013e61317e565b606091505b50805161320d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610ac6565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166132e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108b8565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108b8565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906133aa908490613e1f565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054828255906000526020600020908101928215613468579160200282015b8281111561346857825182559160200191906001019061344d565b5061347492915061350a565b5090565b82805461348490613d34565b90600052602060002090601f0160209004810192826134a65760008555613468565b82601f106134dd578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613468565b82800160010185558215613468579182015b828111156134685782358255916020019190600101906134ef565b5b80821115613474576000815560010161350b565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611e4e57600080fd5b60006020828403121561355f57600080fd5b81356111588161351f565b60005b8381101561358557818101518382015260200161356d565b838111156119235750506000910152565b600081518084526135ae81602086016020860161356a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111586020830184613596565b60006020828403121561360557600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611e4e57600080fd5b6000806040838503121561364157600080fd5b823561364c8161360c565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156136ac576136ac61365a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156136f9576136f961365a565b604052919050565b600067ffffffffffffffff82111561371b5761371b61365a565b5060051b60200190565b600082601f83011261373657600080fd5b8135602061374b61374683613701565b6136b2565b82815260069290921b8401810191818101908684111561376a57600080fd5b8286015b848110156137c457604081890312156137875760008081fd5b61378f613689565b813562ffffff811681146137a35760008081fd5b8152818501356137b28161360c565b8186015283529183019160400161376e565b509695505050505050565b600080604083850312156137e257600080fd5b82359150602083013567ffffffffffffffff81111561380057600080fd5b61380c85828601613725565b9150509250929050565b60008060006060848603121561382b57600080fd5b83356138368161360c565b925060208401356138468161360c565b929592945050506040919091013590565b60006020828403121561386957600080fd5b81356111588161360c565b600081518084526020808501945080840160005b838110156138a457815187529582019590820190600101613888565b509495945050505050565b6020815260006111586020830184613874565b600082601f8301126138d357600080fd5b813560206138e361374683613701565b82815260059290921b8401810191818101908684111561390257600080fd5b8286015b848110156137c45780358352918301918301613906565b6000806040838503121561393057600080fd5b823567ffffffffffffffff8082111561394857600080fd5b613954868387016138c2565b9350602085013591508082111561396a57600080fd5b5061380c85828601613725565b6000806040838503121561398a57600080fd5b82359150602083013561399c8161360c565b809150509250929050565b8015158114611e4e57600080fd5b6000806000606084860312156139ca57600080fd5b8335925060208401356139dc8161360c565b915060408401356139ec816139a7565b809150509250925092565b60008083601f840112613a0957600080fd5b50813567ffffffffffffffff811115613a2157600080fd5b6020830191508360208260051b8501011115613a3c57600080fd5b9250929050565b600080600060408486031215613a5857600080fd5b83359250602084013567ffffffffffffffff811115613a7657600080fd5b613a82868287016139f7565b9497909650939450505050565b60008083601f840112613aa157600080fd5b50813567ffffffffffffffff811115613ab957600080fd5b602083019150836020828501011115613a3c57600080fd5b600080600080600060608688031215613ae957600080fd5b8535613af48161360c565b9450602086013567ffffffffffffffff80821115613b1157600080fd5b613b1d89838a01613a8f565b90965094506040880135915080821115613b3657600080fd5b50613b4388828901613a8f565b969995985093965092949392505050565b60008060408385031215613b6757600080fd5b8235613b728161360c565b9150602083013561399c816139a7565b600067ffffffffffffffff821115613b9c57613b9c61365a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060008060808587031215613bde57600080fd5b8435613be98161360c565b93506020850135613bf98161360c565b925060408501359150606085013567ffffffffffffffff811115613c1c57600080fd5b8501601f81018713613c2d57600080fd5b8035613c3b61374682613b82565b818152886020838501011115613c5057600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600060208284031215613c8457600080fd5b813567ffffffffffffffff811115613c9b57600080fd5b610ac6848285016138c2565b60008060408385031215613cba57600080fd5b8235613cc58161360c565b9150602083013561399c8161360c565b60008060008060608587031215613ceb57600080fd5b84359350602085013567ffffffffffffffff811115613d0957600080fd5b613d15878288016139f7565b9094509250506040850135613d298161360c565b939692955090935050565b600181811c90821680613d4857607f821691505b60208210811415613d82577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e1857613e18613db7565b5060010190565b60008219821115613e3257613e32613db7565b500190565b600062ffffff808316818516808303821115613e5557613e55613db7565b01949350505050565b600062ffffff83811690831681811015613e7a57613e7a613db7565b039392505050565b606081526000613e956060830186613874565b6020838101869052838203604085015284518083528582019282019060005b81811015613ed557845162ffffff1683529383019391830191600101613eb4565b509098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015613f2457613f24613db7565b500390565b600060208284031215613f3b57600080fd5b815167ffffffffffffffff811115613f5257600080fd5b8201601f81018413613f6357600080fd5b8051613f7161374682613b82565b818152856020838501011115613f8657600080fd5b613f9782602083016020860161356a565b95945050505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fd857613fd8613db7565b500290565b600082614013577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561402a57600080fd5b8151611158816139a7565b6000825161404781846020870161356a565b9190910192915050565b60006020828403121561406357600080fd5b5051919050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526140a96080830184613596565b9695505050505050565b6000602082840312156140c557600080fd5b81516111588161351f56fea264697066735822122017d4d7befee2965de2049faf912ce8f4e631a3d6affd70cfc48050660544855a64736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561