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
0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b61410b8061061b83390190565b60805161059c61007f6000396000818160480152818160be0152610181015261059c6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b146100465780639c76b65414610091578063d9ce6884146100a4575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006861009f3660046103f2565b6100b7565b6100686100b2366004610454565b6100e9565b60006100e37f000000000000000000000000000000000000000000000000000000000000000083610291565b92915050565b60003360601b6bffffffffffffffffffffffff1916866bffffffffffffffffffffffff19161461017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f536861726477616c6c6574466163746f72793a20756e617574686f72697a656460448201526064015b60405180910390fd5b60006101a67f000000000000000000000000000000000000000000000000000000000000000088610314565b6040517f90657147000000000000000000000000000000000000000000000000000000008152909150819073ffffffffffffffffffffffffffffffffffffffff8216906390657147906102059033908b908b908b908b90600401610517565b600060405180830381600087803b15801561021f57600080fd5b505af1158015610233573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff851681523360208201527fc18510dd0bb53f044b032fe0380f6c21414b6682da94de1a7b673a362a631ab3935001905060405180910390a1979650505050505050565b600061030d8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff81166100e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610171565b60006020828403121561040457600080fd5b5035919050565b60008083601f84011261041d57600080fd5b50813567ffffffffffffffff81111561043557600080fd5b60208301915083602082850101111561044d57600080fd5b9250929050565b60008060008060006060868803121561046c57600080fd5b85359450602086013567ffffffffffffffff8082111561048b57600080fd5b61049789838a0161040b565b909650945060408801359150808211156104b057600080fd5b506104bd8882890161040b565b969995985093965092949392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff861681526060602082015260006105476060830186886104ce565b828103604084015261055a8185876104ce565b9897505050505050505056fea26469706673582212205c97cbf833b0e313332eb740aab784be1e0d8b8a7a505a2cf4c3b4a30dbee33d64736f6c6343000809003360806040523480156200001157600080fd5b50604080516020808201808452600080845284519283019094528382528251929391926200004192919062000216565b5080516200005790600190602084019062000216565b505050620000746200006e6200008460201b60201c565b62000088565b6200007e620000e4565b620002f9565b3390565b600680546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620000f060ff620000f3565b50565b600654600090610100900460ff16156200018e578160ff1660011480156200012e57506200012c306200020760201b62001de51760201c565b155b620001865760405162461bcd60e51b815260206004820152602e6024820152600080516020620040eb83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60065460ff808416911610620001ed5760405162461bcd60e51b815260206004820152602e6024820152600080516020620040eb83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200017d565b506006805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b8280546200022490620002bc565b90600052602060002090601f01602090048101928262000248576000855562000293565b82601f106200026357805160ff191683800117855562000293565b8280016001018555821562000293579182015b828111156200029357825182559160200191906001019062000276565b50620002a1929150620002a5565b5090565b5b80821115620002a15760008155600101620002a6565b600181811c90821680620002d157607f821691505b60208210811415620002f357634e487b7160e01b600052602260045260246000fd5b50919050565b613de280620003096000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063c620c3fb1161008a578063de62d84211610064578063de62d8421461056f578063e985e9c5146105a8578063ef9b881a146105fe578063f2fde38b1461061e57600080fd5b8063c620c3fb146104e9578063c87b56dd14610509578063de4e61c31461052957600080fd5b806390657147116100c6578063906571471461047457806395d89b4114610494578063a22cb465146104a9578063b88d4fde146104c957600080fd5b806370a082311461040e578063715018a61461042e5780638da5cb5b1461044357600080fd5b8063242a00871161015957806342842e0e1161013357806342842e0e1461038357806342eb9d94146103a35780634dc2d4b4146103c35780636352211e146103ee57600080fd5b8063242a00871461031657806329c211761461034357806332902aef1461036357600080fd5b8063095ea7b311610195578063095ea7b31461026357806315fd06911461028557806323b872dd146102b357806323cdb5aa146102d357600080fd5b806301ffc9a7146101c757806306fdde03146101fc578063081812fc1461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004613287565b61063e565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b50610211610723565b6040516101f3919061331a565b34801561022a57600080fd5b5061023e61023936600461332d565b6107b5565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b34801561026f57600080fd5b5061028361027e366004613368565b610894565b005b34801561029157600080fd5b506102a56102a0366004613509565b610a21565b6040519081526020016101f3565b3480156102bf57600080fd5b506102836102ce366004613550565b610a78565b3480156102df57600080fd5b506102a56102ee366004613591565b73ffffffffffffffffffffffffffffffffffffffff166000908152600b602052604090205490565b34801561032257600080fd5b5061033661033136600461332d565b610b19565b6040516101f391906135e9565b34801561034f57600080fd5b506102a561035e366004613657565b610c27565b34801561036f57600080fd5b506102a561037e3660046136b1565b6110f4565b34801561038f57600080fd5b5061028361039e366004613550565b611432565b3480156103af57600080fd5b506102836103be36600461372d565b61144d565b3480156103cf57600080fd5b50600c5473ffffffffffffffffffffffffffffffffffffffff1661023e565b3480156103fa57600080fd5b5061023e61040936600461332d565b611459565b34801561041a57600080fd5b506102a5610429366004613591565b61150b565b34801561043a57600080fd5b506102836115d9565b34801561044f57600080fd5b5060065462010000900473ffffffffffffffffffffffffffffffffffffffff1661023e565b34801561048057600080fd5b5061028361048f3660046137bb565b61166d565b3480156104a057600080fd5b506102116117f0565b3480156104b557600080fd5b506102836104c436600461384c565b6117ff565b3480156104d557600080fd5b506102836104e43660046138c0565b61180e565b3480156104f557600080fd5b50610283610504366004613591565b6118b6565b34801561051557600080fd5b5061021161052436600461332d565b611985565b34801561053557600080fd5b5061055b61054436600461332d565b60009081526008602052604090205462ffffff1690565b60405162ffffff90911681526020016101f3565b34801561057b57600080fd5b5061058f61058a36600461396a565b611b0e565b6040805192835262ffffff9091166020830152016101f3565b3480156105b457600080fd5b506101e76105c336600461399f565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561060a57600080fd5b506102836106193660046139cd565b611c59565b34801561062a57600080fd5b50610283610639366004613591565b611cae565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806106d157507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061071d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600d805461073290613a2c565b80601f016020809104026020016040519081016040528092919081815260200182805461075e90613a2c565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1661086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061089f82611459565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561095d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610862565b3373ffffffffffffffffffffffffffffffffffffffff82161480610986575061098681336105c3565b610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610862565b610a1c8383611e01565b505050565b604080516001808252818301909252600091829190602080830190803683370190505090508381600081518110610a5a57610a5a613a80565b602002602001018181525050610a708184610c27565b949350505050565b610a823382611ea1565b610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610862565b610a1c838383612010565b600081815260086020908152604080832060010154835260098252808320805482518185028101850190935280835260609493830182828015610b7b57602002820191906000526020600020905b815481526020019060010190808311610b67575b505050505090506000815167ffffffffffffffff811115610b9e57610b9e613394565b604051908082528060200260200182016040528015610bc7578160200160208202803683370190505b50905060005b8151811015610c1f57828181518110610be857610be8613a80565b6020026020010151828281518110610c0257610c02613a80565b602090810291909101015280610c1781613ade565b915050610bcd565b509392505050565b6000825160001415610c95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e6f20706172656e74730000000000000000006044820152606401610862565b81517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1015610cc057600080fd5b6007548251610ccf9082613b17565b60075560008181526009602090815260409091208551610cf192870190613167565b506000805b8551811015610dca576000868281518110610d1357610d13613a80565b60200260200101519050610d273382611ea1565b610d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610862565b610d9681612277565b600081815260086020526040902054610db49062ffffff1684613b2f565b9250508080610dc290613ade565b915050610cf6565b506000845167ffffffffffffffff811115610de757610de7613394565b604051908082528060200260200182016040528015610e10578160200160208202803683370190505b5090508260005b8651811015610fec576000878281518110610e3457610e34613a80565b60200260200101516000015190508062ffffff1660001415610eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e756c6c2073686172650000000000000000006044820152606401610862565b8462ffffff168162ffffff161115610f26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f206c61726765000000006044820152606401610862565b610f308186613b56565b945080848381518110610f4557610f45613a80565b62ffffff90921660209283029190910190910152600083610f6581613ade565b6040805160608101825262ffffff95861681528c517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90811660208084019182528385018e81526000978852600890915293909520915194511663010000000293909516929092178455905160019093019290925550915080610fe481613ade565b915050610e17565b5062ffffff83161561105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f20736d616c6c000000006044820152606401610862565b7fe3ac79fef3b280ad3daaef2cc74e5bdf501b73b95afb1fdc9eee0a4bf56f8d1e87858460405161108d93929190613b7a565b60405180910390a1508260005b86518110156110e8576110d68782815181106110b8576110b8613a80565b60200260200101516020015183806110cf90613ade565b9450612344565b806110e081613ade565b91505061109a565b50929695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600a60209081526040808320858452909152812054801561113c576111348161235e565b91505061071d565b50826001141561114e5750600061071d565b6000838152600860209081526040918290208251606081018452815462ffffff811680835263010000009091047cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1693820193909352600190910154928101929092526111bc57600091505061071d565b80604001518410156111d0576111d0613bdb565b60008160400151856111e29190613c0a565b905081602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16811061121657611216613bdb565b6040808301516000908152600960209081528282208054845181840281018401909552808552929392909183018282801561127057602002820191906000526020600020905b81548152602001906001019080831161125c575b505050505090506000805b82518110156112c5576112a783828151811061129957611299613a80565b6020026020010151886110f4565b6112b19083613b17565b9150806112bd81613ade565b91505061127b565b50600084602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1667ffffffffffffffff81111561130457611304613394565b60405190808252806020026020018201604052801561132d578160200160208202803683370190505b50905060005b85602001517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168110156113db576000808288604001516113719190613b17565b90508a811415611384578751915061139b565b60008181526008602052604090205462ffffff1691505b818484815181106113ae576113ae613a80565b602002602001019062ffffff16908162ffffff1681525050505080806113d390613ade565b915050611333565b5060006113e983838761236b565b90506113f48161250f565b73ffffffffffffffffffffffffffffffffffffffff89166000908152600a602090815260408083208d84529091529020559550505050505092915050565b610a1c8383836040518060200160405280600081525061180e565b610a1c83838333611c59565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff168061071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610862565b600073ffffffffffffffffffffffffffffffffffffffff82166115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610862565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60065473ffffffffffffffffffffffffffffffffffffffff62010000909104163314611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610862565b61166b600061251c565b565b6000611679600161259b565b905080156116ae57600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6116b78661251c565b6116c3600d86866131b2565b506116d0600e84846131b2565b50600260075560408051606081018252620f424081526001602080830182815293830182815260008390526008909152915192517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663010000000262ffffff93909316929092177fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f55517fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac56055611785908790612344565b80156117e857600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6060600e805461073290613a2c565b61180a338383612723565b5050565b6118183383611ea1565b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610862565b6118b084848484612851565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff6201000090910416331461193e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610862565b600c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16611a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610862565b600c5473ffffffffffffffffffffffffffffffffffffffff1680611a47575050604080516020810190915260008152919050565b6040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063c87b56dd9060240160006040518083038186803b158015611aad57600080fd5b505afa158015611ac1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611b079190810190613c21565b9392505050565b6000806000805b8451811015611b725760086000868381518110611b3457611b34613a80565b602090810291909101810151825281019190915260400160002054611b5e9062ffffff1683613b17565b915080611b6a81613ade565b915050611b15565b506040805160018082528183019092529192508291600091816020015b6040805180820190915260008082526020820152815260200190600190039081611b8f5790505090503381600081518110611bcc57611bcc613a80565b60200260200101516020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600081518110611c1e57611c1e613a80565b602090810291909101015162ffffff9091169052611c3c8582610c27565b93508262ffffff168214611c5257611c52613bdb565b5050915091565b60005b82811015611ca757611c9585858584818110611c7a57611c7a613a80565b9050602002016020810190611c8f9190613591565b846128f4565b80611c9f81613ade565b915050611c5c565b5050505050565b60065473ffffffffffffffffffffffffffffffffffffffff62010000909104163314611d36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610862565b73ffffffffffffffffffffffffffffffffffffffff8116611dd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610862565b611de28161251c565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611e5b82611459565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16611f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610862565b6000611f5d83611459565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611fcb575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610a7057508373ffffffffffffffffffffffffffffffffffffffff16611ff1846107b5565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661203082611459565b73ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610862565b73ffffffffffffffffffffffffffffffffffffffff8216612175576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610862565b612180600082611e01565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054600192906121b6908490613c0a565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906121f1908490613b17565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061228282611459565b905061228f600083611e01565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054600192906122c5908490613c0a565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61180a828260405180602001604052806000815250612d03565b600061071d600183613c0a565b815160009081805b85518110156123ba5785818151811061238e5761238e613a80565b602002602001015162ffffff16826123a69190613b17565b9150806123b281613ade565b915050612373565b5060008585815181106123cf576123cf613a80565b602002602001015162ffffff16876123e79190613c98565b905060006123f58383613cd5565b905060006124038483613c98565b61240d9084613c0a565b90508061242057509350611b0792505050565b806000805b878110156124da578981141561243a576124c8565b60008b828151811061244e5761244e613a80565b602002602001015162ffffff168d6124669190613c98565b905060006124748983613cd5565b905060006124828a83613c98565b61248c9084613c0a565b90506124988187613b17565b9550868111806124b1575086811480156124b157508c84115b156124c457846124c081613ade565b9550505b5050505b806124d281613ade565b915050612425565b5060006124e78784613cd5565b9050808210156124ff57846124fb81613ade565b9550505b50929a9950505050505050505050565b600061071d826001613b17565b6006805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600090610100900460ff1615612654578160ff1660011480156125c05750303b155b61264c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610862565b506000919050565b60065460ff8084169116106126eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610862565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055600190565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610862565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61285c848484612010565b61286884848484612da6565b6118b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610862565b6128fe3384611ea1565b612964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610862565b60008381526008602052604081205462ffffff169073ffffffffffffffffffffffffffffffffffffffff841661299b575047612a3b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8516906370a082319060240160206040518083038186803b158015612a0057600080fd5b505afa158015612a14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a389190613d10565b90505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081205490612a6c8284613b17565b90506000620f4240612a8362ffffff871684613c98565b612a8d9190613cd5565b90506000612a9b89896110f4565b9050600081831115612abe57612ab18284613c0a565b905085811115612abe5750845b8873ffffffffffffffffffffffffffffffffffffffff168a7f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f30383604051612b0791815260200190565b60405180910390a380612b205750505050505050505050565b6000612b2c8284613b17565b9050612b378161250f565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600a602090815260408083208f8452909152902055612b728287613b17565b73ffffffffffffffffffffffffffffffffffffffff8b166000818152600b6020526040902091909155612be85760405173ffffffffffffffffffffffffffffffffffffffff8a169083156108fc029084906000818181858888f19350505050158015612be2573d6000803e3d6000fd5b50612cf6565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018490528b169063a9059cbb90604401602060405180830381600087803b158015612c5857600080fd5b505af1158015612c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c909190613d29565b612cf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a207472616e73666572206661696c6564000000006044820152606401610862565b5050505050505050505050565b612d0d8383612fa5565b612d1a6000848484612da6565b610a1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610862565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612f9a576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290612e1d903390899088908890600401613d46565b602060405180830381600087803b158015612e3757600080fd5b505af1925050508015612e85575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e8291810190613d8f565b60015b612f4f573d808015612eb3576040519150601f19603f3d011682016040523d82523d6000602084013e612eb8565b606091505b508051612f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610862565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610a70565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216613022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610862565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156130ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610862565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906130e4908490613b17565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280548282559060005260206000209081019282156131a2579160200282015b828111156131a2578251825591602001919060010190613187565b506131ae929150613244565b5090565b8280546131be90613a2c565b90600052602060002090601f0160209004810192826131e057600085556131a2565b82601f10613217578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008235161785556131a2565b828001600101855582156131a2579182015b828111156131a2578235825591602001919060010190613229565b5b808211156131ae5760008155600101613245565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611de257600080fd5b60006020828403121561329957600080fd5b8135611b0781613259565b60005b838110156132bf5781810151838201526020016132a7565b838111156118b05750506000910152565b600081518084526132e88160208601602086016132a4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b0760208301846132d0565b60006020828403121561333f57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611de257600080fd5b6000806040838503121561337b57600080fd5b823561338681613346565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156133e6576133e6613394565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561343357613433613394565b604052919050565b600067ffffffffffffffff82111561345557613455613394565b5060051b60200190565b600082601f83011261347057600080fd5b813560206134856134808361343b565b6133ec565b82815260069290921b840181019181810190868411156134a457600080fd5b8286015b848110156134fe57604081890312156134c15760008081fd5b6134c96133c3565b813562ffffff811681146134dd5760008081fd5b8152818501356134ec81613346565b818601528352918301916040016134a8565b509695505050505050565b6000806040838503121561351c57600080fd5b82359150602083013567ffffffffffffffff81111561353a57600080fd5b6135468582860161345f565b9150509250929050565b60008060006060848603121561356557600080fd5b833561357081613346565b9250602084013561358081613346565b929592945050506040919091013590565b6000602082840312156135a357600080fd5b8135611b0781613346565b600081518084526020808501945080840160005b838110156135de578151875295820195908201906001016135c2565b509495945050505050565b602081526000611b0760208301846135ae565b600082601f83011261360d57600080fd5b8135602061361d6134808361343b565b82815260059290921b8401810191818101908684111561363c57600080fd5b8286015b848110156134fe5780358352918301918301613640565b6000806040838503121561366a57600080fd5b823567ffffffffffffffff8082111561368257600080fd5b61368e868387016135fc565b935060208501359150808211156136a457600080fd5b506135468582860161345f565b600080604083850312156136c457600080fd5b8235915060208301356136d681613346565b809150509250929050565b60008083601f8401126136f357600080fd5b50813567ffffffffffffffff81111561370b57600080fd5b6020830191508360208260051b850101111561372657600080fd5b9250929050565b60008060006040848603121561374257600080fd5b83359250602084013567ffffffffffffffff81111561376057600080fd5b61376c868287016136e1565b9497909650939450505050565b60008083601f84011261378b57600080fd5b50813567ffffffffffffffff8111156137a357600080fd5b60208301915083602082850101111561372657600080fd5b6000806000806000606086880312156137d357600080fd5b85356137de81613346565b9450602086013567ffffffffffffffff808211156137fb57600080fd5b61380789838a01613779565b9096509450604088013591508082111561382057600080fd5b5061382d88828901613779565b969995985093965092949392505050565b8015158114611de257600080fd5b6000806040838503121561385f57600080fd5b823561386a81613346565b915060208301356136d68161383e565b600067ffffffffffffffff82111561389457613894613394565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600080600080608085870312156138d657600080fd5b84356138e181613346565b935060208501356138f181613346565b925060408501359150606085013567ffffffffffffffff81111561391457600080fd5b8501601f8101871361392557600080fd5b80356139336134808261387a565b81815288602083850101111561394857600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60006020828403121561397c57600080fd5b813567ffffffffffffffff81111561399357600080fd5b610a70848285016135fc565b600080604083850312156139b257600080fd5b82356139bd81613346565b915060208301356136d681613346565b600080600080606085870312156139e357600080fd5b84359350602085013567ffffffffffffffff811115613a0157600080fd5b613a0d878288016136e1565b9094509250506040850135613a2181613346565b939692955090935050565b600181811c90821680613a4057607f821691505b60208210811415613a7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b1057613b10613aaf565b5060010190565b60008219821115613b2a57613b2a613aaf565b500190565b600062ffffff808316818516808303821115613b4d57613b4d613aaf565b01949350505050565b600062ffffff83811690831681811015613b7257613b72613aaf565b039392505050565b606081526000613b8d60608301866135ae565b6020838101869052838203604085015284518083528582019282019060005b81811015613bcd57845162ffffff1683529383019391830191600101613bac565b509098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015613c1c57613c1c613aaf565b500390565b600060208284031215613c3357600080fd5b815167ffffffffffffffff811115613c4a57600080fd5b8201601f81018413613c5b57600080fd5b8051613c696134808261387a565b818152856020838501011115613c7e57600080fd5b613c8f8260208301602086016132a4565b95945050505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd057613cd0613aaf565b500290565b600082613d0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215613d2257600080fd5b5051919050565b600060208284031215613d3b57600080fd5b8151611b078161383e565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613d8560808301846132d0565b9695505050505050565b600060208284031215613da157600080fd5b8151611b078161325956fea264697066735822122055ccecd9f88da6cf6c5ed0dfa3289b24acd4bea16822505bdc881387371aa65c64736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561