-
Notifications
You must be signed in to change notification settings - Fork 12
feat: add support of Pascal HF #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds support for the Pascal hard fork by including compiled EVM bytecode for all new system contracts on mainnet
- Introduces raw bytecode files for core system contracts under
src/system_contracts/pascal/mainnet - No corresponding tests or external artifacts; binaries embedded directly
Reviewed Changes
Copilot reviewed 36 out of 36 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/system_contracts/pascal/mainnet/ValidatorContract | Adds ValidatorContract bytecode |
| src/system_contracts/pascal/mainnet/TokenRecoverPortalContract | Adds TokenRecoverPortalContract bytecode |
| src/system_contracts/pascal/mainnet/TokenManagerContract | Adds TokenManagerContract bytecode |
| src/system_contracts/pascal/mainnet/TokenHubContract | Adds TokenHubContract bytecode |
| src/system_contracts/pascal/mainnet/TimelockContract | Adds TimelockContract bytecode |
| src/system_contracts/pascal/mainnet/SystemRewardContract | Adds SystemRewardContract bytecode |
| src/system_contracts/pascal/mainnet/StakingContract | Adds StakingContract bytecode |
Comments suppressed due to low confidence (2)
src/system_contracts/pascal/mainnet/ValidatorContract:1
- [nitpick] The raw contract bytecode is embedded as a single massive line, which is hard to review and maintain. Consider moving the compiled output into an external artifact (e.g., .bin/.json) and loading it at build time.
60806040526004361061044b5760003560e01c80638c5d749d11610234578063c81b16621161012e578063e1c7392a116100b6578063f92eb86b1161007a578063f92eb86b14610b5f578063f9a2bbc714610b74578063fccc281314610b89578063fd4ad81f14610b9e578063fd6a687914610bcd57610452565b8063e1c7392a14610ae2578063e40716a114610af7578063ea321e4914610b0c578063eb57e20214610b2c578063f340fa0114610b4c57610452565b8063d58918ae116100fd578063d58918ae14610a79578063d68fb56a14610a8e578063daacdb6614610aa3578063dc927faf14610ab8578063df8079e914610acd57610452565b8063c81b166214610a2f578063c8509d81146107f1578063cb75a59214610a44578063ce910b0c14610a5957610452565b8063aa82dce1116101bc578063aef198a911610180578063aef198a9146109b9578063b7ab4db5146109ce578063b8cf4ef1146109f0578063c466689d14610a05578063c6d3394514610a1a57610452565b8063aa82dce11461092d578063aad5606314610942578063ab51bb9614610957578063ac43175114610979578063ad3c9da61461099957610452565b80639fe0f816116102035780639fe0f816146108c4578063a0dc2758146108d9578063a1a11bf5146108ee578063a5422d5c14610903578063a78abc161461091857610452565b80638c5d749d146108655780638d19a4101461087a5780639369d7de1461089a5780639dc09262146108af57610452565b80635192c82c1161034557806375d47a0a116102cd578063831d65d111610291578063831d65d1146107f1578063862498821461081157806388b32f11146108265780638a7beb011461083b5780638b5ad0c91461085057610452565b806375d47a0a1461078857806378dfed4a1461079d5780637a84ca2a146107b25780637e434d54146107c7578063820dcaa8146107dc57610452565b8063565c56b311610314578063565c56b3146106ec57806360eba4fe1461070c57806362b72cf51461072c5780636969a25c146107415780636e47b4821461077357610452565b80635192c82c1461068d57806351b4dce3146106a257806351e80672146106b757806355614fcc146106cc57610452565b80632a0ffb6e116103d35780633b071dcc116103975780633b071dcc1461060957806343756e5c1461062c57806345cf9daf14610641578063493279b1146106565780634df6e0c31461067857610452565b80632a0ffb6e14610569578063300c356714610589578063321d398a146105a95780633365af3a146105c957806335409f7f146105e957610452565b8063152ad3b81161041a578063152ad3b8146104e85780631bd14ed81461050a5780631e4c15241461051f5780631ff180691461053f578063280870281461055457610452565b806304c4fec61461045757806307a568471461046e5780630e2374a5146104995780631182b875146104bb57610452565b3661045257005b600080fd5b34801561046357600080fd5b5061046c610be2565b005b34801561047a57600080fd5b50610483610c56565b6040516104909190616d9f565b60405180910390f35b3480156104a557600080fd5b506104ae610c5c565b6040516104909190616155565b3480156104c757600080fd5b506104db6104d636600461603b565b610c62565b6040516104909190616275565b3480156104f457600080fd5b506104fd610d7e565b604051610490919061626a565b34801561051657600080fd5b50610483610d87565b34801561052b57600080fd5b5061046c61053a366004615e69565b610d8d565b34801561054b57600080fd5b506104836110c1565b34801561056057600080fd5b506104ae6110c7565b34801561057557600080fd5b5061046c610584366004615dc9565b6110cd565b34801561059557600080fd5b5061046c6105a4366004615e01565b6110ee565b3480156105b557600080fd5b506104fd6105c4366004615fe8565b611437565b3480156105d557600080fd5b506104fd6105e4366004615fe8565b611506565b3480156105f557600080fd5b5061046c610604366004615dc9565b6115b7565b34801561061557600080fd5b5061061e61171c565b6040516104909291906161fa565b34801561063857600080fd5b506104ae6119f8565b34801561064d57600080fd5b506104836119fe565b34801561066257600080fd5b5061066b611a04565b6040516104909190616d90565b34801561068457600080fd5b5061061e611a09565b34801561069957600080fd5b50610483611b95565b3480156106ae57600080fd5b506104ae611b9b565b3480156106c357600080fd5b506104ae611ba1565b3480156106d857600080fd5b506104fd6106e7366004615dc9565b611ba7565b3480156106f857600080fd5b50610483610707366004615dc9565b611be3565b34801561071857600080fd5b506104db610727366004615fe8565b611c34565b34801561073857600080fd5b50610483611cda565b34801561074d57600080fd5b5061076161075c366004615fe8565b611ce0565b60405161049096959493929190616182565b34801561077f57600080fd5b506104ae611d44565b34801561079457600080fd5b506104ae611d4a565b3480156107a957600080fd5b50610483611d50565b3480156107be57600080fd5b50610483611d56565b3480156107d357600080fd5b506104ae611d5c565b3480156107e857600080fd5b50610483611d62565b3480156107fd57600080fd5b5061046c61080c36600461603b565b611d68565b34801561081d57600080fd5b50610483611d89565b34801561083257600080fd5b50610483611d8f565b34801561084757600080fd5b506104fd611d95565b34801561085c57600080fd5b50610483611d9e565b34801561087157600080fd5b50610483611da4565b34801561088657600080fd5b50610483610895366004615dc9565b611dc1565b3480156108a657600080fd5b5061046c611e01565b3480156108bb57600080fd5b506104ae611f15565b3480156108d057600080fd5b50610483611f1b565b3480156108e557600080fd5b50610483611f20565b3480156108fa57600080fd5b506104ae611f25565b34801561090f57600080fd5b506104db611f2b565b34801561092457600080fd5b506104fd611f4a565b34801561093957600080fd5b506104ae611f53565b34801561094e57600080fd5b506104ae611f59565b34801561096357600080fd5b5061096c611f5f565b6040516104909190616dd2565b34801561098557600080fd5b5061046c610994366004615f8c565b611f64565b3480156109a557600080fd5b506104836109b4366004615dc9565b6129cd565b3480156109c557600080fd5b506104836129df565b3480156109da57600080fd5b506109e36129ec565b60405161049091906161e7565b3480156109fc57600080fd5b50610483612ad7565b348015610a1157600080fd5b50610483612adc565b348015610a2657600080fd5b50610483612ae2565b348015610a3b57600080fd5b506104ae612ae7565b348015610a5057600080fd5b50610483612aed565b348015610a6557600080fd5b506104db610a74366004615fe8565b612af3565b348015610a8557600080fd5b50610483612b00565b348015610a9a57600080fd5b50610483612b06565b348015610aaf57600080fd5b50610483612b45565b348015610ac457600080fd5b506104ae612b4b565b348015610ad957600080fd5b506104ae612b51565b348015610aee57600080fd5b5061046c612b57565b348015610b0357600080fd5b50610483612d00565b348015610b1857600080fd5b506104fd610b27366004615f4d565b612d06565b348015610b3857600080fd5b5061046c610b47366004615dc9565b612e8c565b61046c610b5a366004615dc9565b612f94565b348015610b6b57600080fd5b5061048361334a565b348015610b8057600080fd5b506104ae613350565b348015610b9557600080fd5b506104ae613356565b348015610baa57600080fd5b50610bbe610bb9366004615fe8565b61335c565b60405161049093929190616da8565b348015610bd957600080fd5b506104ae61341e565b6000610bed33611dc1565b9050600b8181548110610bfc57fe5b600091825260209091206001601690920201015460ff16610c385760405162461bcd60e51b8152600401610c2f90616a47565b60405180910390fd5b6000610c42612b06565b9050610c513383836001613424565b505050565b60095481565b61200181565b60005460609060ff16610c875760405162461bcd60e51b8152600401610c2f9061645a565b3361200014610ca85760405162461bcd60e51b8152600401610c2f90616ba8565b600b54610d6657610cb7615975565b60015460005b81811015610d6257600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794610d3e93600080516020616e8a8339815191529091019201906159a4565b506060820151610d549060038301906013615a1e565b505050806001019050610cbd565b5050505b60405162461bcd60e51b8152600401610c2f906166ac565b60075460ff1681565b600f5481565b334114610dac5760405162461bcd60e51b8152600401610c2f90616bf7565b3a15610dca5760405162461bcd60e51b8152600401610c2f90616986565b8251604080518281526020808402820101909152606090828015610e0857816020015b610df5615a4b565b815260200190600190039081610ded5790505b50905060005b82811015610eb2576040518060c00160405280878381518110610e2d57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001868381518110610e6f57fe5b60200260200101516001600160401b031681526020016000151581526020016000815250828281518110610e9f57fe5b6020908102919091010152600101610e0e565b50606080610ec08386613616565b9150915060005b600154811015610fb657600060018281548110610ee057fe5b906000526020600020906004020160030154905080600014610fad57600060018381548110610f0b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab8260018581548110610f3f57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b168152610f7a926001600160a01b039092169101616155565b6000604051808303818588803b158015610f9357600080fd5b505af1158015610fa7573d6000803e3d6000fd5b50505050505b50600101610ec7565b504715611024577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051610fec9190616d9f565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015611022573d6000803e3d6000fd5b505b600060035581511561103a5761103a8282613b00565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b61200581565b3361200214610d665760405162461bcd60e51b8152600401610c2f90616d59565b33411461110d5760405162461bcd60e51b8152600401610c2f90616bf7565b601054431161112e5760405162461bcd60e51b8152600401610c2f906165d6565b3a1561114c5760405162461bcd60e51b8152600401610c2f90616986565b60005460ff1661116e5760405162461bcd60e51b8152600401610c2f9061645a565b60006110023168056bc75e2d631000008111156111a55761119e8168056bc75e2d6310000063ffffffff6142ef16565b91506111ac565b505061142d565b6040516309a99b4f60e41b815261100290639a99b4f0906111d39030908690600401616169565b602060405180830381600087803b1580156111ed57600080fd5b505af1158015611201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112259190616000565b91508161123357505061142d565b6000805b848110156112615785858281811061124b57fe5b9050602002013582019150806001019050611237565b508061126f5750505061142d565b6000806000805b89811015611425578489898381811061128b57fe5b9050602002013588028161129b57fe5b0493508a8a828181106112aa57fe5b90506020020160208101906112bf9190615dc9565b6001600160a01b038116600090815260046020526040902054909350915081156113db5760006001808403815481106112f457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561136157836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516113549190616d9f565b60405180910390a26113d5565b600354611374908663ffffffff61433116565b600390815581015461138c908663ffffffff61433116565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906113cc908890616d9f565b60405180910390a25b5061141d565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85856040516114149190616d9f565b60405180910390a25b600101611276565b505050505050505b5050436010555050565b600154600090821061144b57506000611501565b60006001600160a01b03166001838154811061146357fe5b60009182526020909120600490910201546001600160a01b03161480611493575060085415806114935750600a54155b806114a2575060085460095410155b806114b357506114b182611506565b155b806114dc57506000600b83815481106114c857fe5b906000526020600020906016020160000154115b806114f0575060016114ec6129ec565b5111155b156114fd57506000611501565b5060015b919050565b600154600090821061151a57506000611501565b600b548210611557576001828154811061153057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611501565b6001828154811061156457fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156115b15750600b828154811061159857fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611675576115c6615975565b60015460005b8181101561167157600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff191691151591909117905560408601518051879461164d93600080516020616e8a8339815191529091019201906159a4565b5060608201516116639060038301906013615a1e565b5050508060010190506115cc565b5050505b336110011480611686575033612002145b6116a25760405162461bcd60e51b8152600401610c2f90616491565b6001600160a01b038116600090815260046020526040902054806116c65750611719565b6001810390506000600b82815481106116db57fe5b600091825260209091206001601690920201015460ff1690506116fe8383614356565b80156117075750805b15610c51576009805460001901905550505b50565b60015460609081906000805b8281101561176f576001818154811061173d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611767576001909101905b600101611728565b5060608160405190808252806020026020018201604052801561179c578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156117d557816020015b60608152602001906001900390816117c05790505b50600b54600094509091508414156119505760005b8481101561194a57600181815481106117ff57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611942576001818154811061182f57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061185a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061188757fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561191f5780601f106118f45761010080835404028352916020019161191f565b820191906000526020600020905b81548152906001019060200180831161190257829003601f168201915b505050505082858151811061193057fe5b60209081029190910101526001909301925b6001016117ea565b506119ec565b60005b848110156119ea576001818154811061196857fe5b9060005260206000209060040201600201601c9054906101000a900460ff166119e2576001818154811061199857fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106119c357fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611953565b505b909450925050505b9091565b61100181565b60085481565b603881565b6060806000600e549050600080600c5411611a25576015611a29565b600c545b90506060611a356129ec565b90506060611a4282614719565b905082825111611a595790945092506119f4915050565b83838351031015611a6b578282510393505b8315611aa15760c84304611a8783838388880360008a8a614887565b611a9f8383838888038989038a8b8b8b510301614887565b505b606083604051908082528060200260200182016040528015611acd578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611b0657816020015b6060815260200190600190039081611af15790505b50905060005b85811015611b8757848181518110611b2057fe5b6020026020010151838281518110611b3457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611b6057fe5b6020026020010151828281518110611b7457fe5b6020908102919091010152600101611b0c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b03811660009081526004602052604081205480611bcf576000915050611501565b60001901611bdc81611506565b9392505050565b6001600160a01b03811660009081526004602052604081205480611c0b576000915050611501565b600180820381548110611c1a57fe5b906000526020600020906004020160030154915050919050565b60128181548110611c4157fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611cd25780601f10611ca757610100808354040283529160200191611cd2565b820191906000526020600020905b815481529060010190602001808311611cb557829003601f168201915b505050505081565b60105481565b60018181548110611ced57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b61100881565b6103e881565b600c5481565b61200381565b61271081565b3361200014610d665760405162461bcd60e51b8152600401610c2f90616ba8565b60025481565b60115481565b60145460ff1681565b600a5481565b600060175460001415611db957506001611dbe565b506017545b90565b6001600160a01b03811660009081526004602052604081205480611df75760405162461bcd60e51b8152600401610c2f90616b30565b6000190192915050565b600b54611ebf57611e10615975565b60015460005b81811015611ebb57600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794611e9793600080516020616e8a8339815191529091019201906159a4565b506060820151611ead9060038301906013615a1e565b505050806001019050611e16565b5050505b600854611ecc5760036008555b600a54611ed9576002600a555b6000611ee433611dc1565b9050611eef81611437565b611f0b5760405162461bcd60e51b8152600401610c2f90616902565b61171933826149de565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616eaa6105ef913981565b60005460ff1681565b61200281565b61300081565b600081565b60005460ff16611f865760405162461bcd60e51b8152600401610c2f9061645a565b3361100714611fa75760405162461bcd60e51b8152600401610c2f906169b4565b61200784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150614a769050565b156120bc576020811461202c5760405162461bcd60e51b8152600401610c2f906162ba565b604080516020601f840181900481028201810190925282815260009161206a91858580838501838280828437600092019190915250614acf92505050565b905061271061209660185461208a600f548561433190919063ffffffff16565b9063ffffffff61433116565b11156120b45760405162461bcd60e51b8152600401610c2f906166d0565b60065561298a565b61212684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b60208201529150614a769050565b156121c0576020811461214b5760405162461bcd60e51b8152600401610c2f906162f1565b604080516020601f840181900481028201810190925282815260009161218991858580838501838280828437600092019190915250614acf92505050565b600c5490915080612198575060155b8082106121b75760405162461bcd60e51b8152600401610c2f90616618565b5060085561298a565b61222984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b60208201529150614a769050565b156122c2576020811461224e5760405162461bcd60e51b8152600401610c2f906163e0565b604080516020601f840181900481028201810190925282815260009161228c91858580838501838280828437600092019190915250614acf92505050565b905060008111801561229e5750600a81105b6122ba5760405162461bcd60e51b8152600401610c2f90616c8c565b600a5561298a565b61233684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e646964617465730000000000000060208201529150614a769050565b156123c5576020811461235b5760405162461bcd60e51b8152600401610c2f90616394565b604080516020601f840181900481028201810190925282815260009161239991858580838501838280828437600092019190915250614acf92505050565b9050600d548111156123bd5760405162461bcd60e51b8152600401610c2f906167d9565b600e5561298a565b61242e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b60208201529150614a769050565b156124b057602081146124535760405162461bcd60e51b8152600401610c2f90616a02565b604080516020601f840181900481028201810190925282815260009161249191858580838501838280828437600092019190915250614acf92505050565b600d819055600e549091508110156124aa57600d54600e555b5061298a565b61251484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b60208201529150614a769050565b1561263957602081146125395760405162461bcd60e51b8152600401610c2f90616425565b604080516020601f840181900481028201810190925282815260009161257791858580838501838280828437600092019190915250614acf92505050565b9050600081116125995760405162461bcd60e51b8152600401610c2f9061658e565b60006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125d657600080fd5b505afa1580156125ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260e9190616000565b9050808211156126305760405162461bcd60e51b8152600401610c2f90616337565b50600c5561298a565b6126a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527473797374656d52657761726442617365526174696f60581b60208201529150614a769050565b1561274e57602081146126ca5760405162461bcd60e51b8152600401610c2f90616c44565b604080516020601f840181900481028201810190925282815260009161270891858580838501838280828437600092019190915250614acf92505050565b905061271061272860185461208a6006548561433190919063ffffffff16565b11156127465760405162461bcd60e51b8152600401610c2f906164ff565b600f5561298a565b6127c284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f73797374656d526577617264416e74694d4556526174696f000000000000000060208201529150614a769050565b1561286b57602081146127e75760405162461bcd60e51b8152600401610c2f9061675f565b604080516020601f840181900481028201810190925282815260009161282591858580838501838280828437600092019190915250614acf92505050565b9050612710612845600f5461208a6006548561433190919063ffffffff16565b11156128635760405162461bcd60e51b8152600401610c2f90616873565b60185561298a565b6128cc84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a8152690e8eae4dc98cadccee8d60b31b60208201529150614a769050565b1561297257602081146128f15760405162461bcd60e51b8152600401610c2f90616675565b604080516020601f840181900481028201810190925282815260009161292f91858580838501838280828437600092019190915250614acf92505050565b905060038110158015612943575060098111155b8061294e5750806001145b61296a5760405162461bcd60e51b8152600401610c2f90616aaa565b60175561298a565b60405162461bcd60e51b8152600401610c2f90616ce9565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516129bf9493929190616288565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612a1b57612a0781611506565b15612a13578160010191505b6001016129f6565b50606081604051908082528060200260200182016040528015612a48578160200160208202803683370190505b5090506000915060005b83811015612acf57612a6381611506565b15612ac75760018181548110612a7557fe5b600091825260209091206004909102015482516001600160a01b0390911690839085908110612aa057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612a52565b509250505090565b601581565b61027181565b600281565b61100281565b60175481565b60138181548110611c4157fe5b60185481565b6000612b106129ec565b519050600080600c5411612b25576015612b29565b600c545b905080821115612b37578091505b81612b4157600191505b5090565b60055481565b61100381565b61200481565b60005460ff1615612b7a5760405162461bcd60e51b8152600401610c2f90616a73565b612b82615a80565b6000612ba86040518061062001604052806105ef8152602001616eaa6105ef9139614ad4565b9150915080612bc95760405162461bcd60e51b8152600401610c2f90616b67565b60005b826020015151811015612cee57600183602001518281518110612beb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a090930151600390930192909255918601518051918501939185908110612cc157fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612bcc565b50506000805460ff1916600117905550565b600d5481565b601354600090815b81811015612e0f57612df785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612d5f57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ded5780601f10612dc257610100808354040283529160200191612ded565b820191906000526020600020905b815481529060010190602001808311612dd057829003601f168201915b5050505050614c90565b15612e07576001925050506115b1565b600101612d0e565b5060125460005b81811015612e8057612e6786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612d5f57fe5b15612e7857600193505050506115b1565b600101612e16565b50600095945050505050565b3361100114612ead5760405162461bcd60e51b8152600401610c2f90616d10565b600b54612f6b57612ebc615975565b60015460005b81811015612f6757600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794612f4393600080516020616e8a8339815191529091019201906159a4565b506060820151612f599060038301906013615a1e565b505050806001019050612ec2565b5050505b6000612f7682614cf4565b9050612f8181611437565b15612f9057612f9082826149de565b5050565b334114612fb35760405162461bcd60e51b8152600401610c2f90616bf7565b60005460ff16612fd55760405162461bcd60e51b8152600401610c2f9061645a565b60003411612ff55760405162461bcd60e51b8152600401610c2f906167aa565b3a156130135760405162461bcd60e51b8152600401610c2f90616986565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661305357610271600f556103e86006556014805460ff191660011790555b600f54601754600110801561306a57506000601854115b1561308f57600160175403601754438161308057fe5b06601854028161308c57fe5b04015b60008311801561309f5750600081115b1561314c5760006130c86127106130bc348563ffffffff614e7716565b9063ffffffff614eb116565b9050801561314a576040516110029082156108fc029083906000818181858888f193505050501580156130ff573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d8160405161312f9190616d9f565b60405180910390a1613147848263ffffffff6142ef16565b93505b505b60008311801561315e57506000600654115b156132045760006131806127106130bc60065434614e7790919063ffffffff16565b905080156132025760405161dead9082156108fc029083906000818181858888f193505050501580156131b7573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516131e79190616d9f565b60405180910390a16131ff848263ffffffff6142ef16565b93505b505b811561330257600060018084038154811061321b57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561328857846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b48560405161327b9190616d9f565b60405180910390a26132fc565b60035461329b908563ffffffff61433116565b60039081558101546132b3908563ffffffff61433116565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055906132f3908790616d9f565b60405180910390a25b50613344565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b48460405161333b9190616d9f565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b818154811061336957fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156134145780601f106133e957610100808354040283529160200191613414565b820191906000526020600020905b8154815290600101906020018083116133f757829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613435575082155b806134405750600954155b1561344d5750600061360e565b60096000815460019003919050819055506000613498600a546130bc866130bc600b8a8154811061347a57fe5b6000918252602090912060169091020154439063ffffffff6142ef16565b90506000600b86815481106134a957fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561350e57600080fd5b505afa158015613522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135469190616018565b91509150600093508083106135c45761355f8888614356565b506040516328aa02b160e01b8152611001906328aa02b190613589908b9087908a906004016161c4565b600060405180830381600087803b1580156135a357600080fd5b505af11580156135b7573d6000803e3d6000fd5b50505050600193506135d6565b8183106135d6576135d488614cf4565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b606080600080808080613627612b06565b6001549091505b801561385957600181039250600b838154811061364757fe5b600091825260209091206001601690920201015460ff1661366757613850565b6001838154811061367457fe5b600091825260208220600490910201546001600160a01b0316955061369e90869085908590613424565b9350836136aa57613850565b60405163436aa28360e11b81526000908190612002906386d54506906136d4908a90600401616155565b60206040518083038186803b1580156136ec57600080fd5b505afa158015613700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137249190615de5565b90506001600160a01b038116156137ad576040516302ceee9160e11b81526120029063059ddd229061375a908490600401616155565b60206040518083038186803b15801561377257600080fd5b505afa158015613786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137aa9190615de5565b91505b60005b8c5181101561384c57876001600160a01b03168d82815181106137cf57fe5b6020026020010151600001516001600160a01b031614806138185750826001600160a01b03168d828151811061380157fe5b6020026020010151600001516001600160a01b0316145b156138445760018d828151811061382b57fe5b602090810291909101015190151560809091015261384c565b6001016137b0565b5050505b6000190161362e565b5060005b89518110156138c65789818151811061387257fe5b602002602001015160800151806138b2575060006001600160a01b03168a828151811061389b57fe5b6020026020010151600001516001600160a01b0316145b156138be578560010195505b60010161385d565b50885185106139ae5760408051600180825281830190925290816020015b6138ec615a4b565b8152602001906001900390816138e4575050604080516001808252818301909252919850602082015b60608152602001906001900390816139155790505095508860008151811061393957fe5b60200260200101518760008151811061394e57fe5b60200260200101819052508760008151811061396657fe5b60200260200101518660008151811061397b57fe5b602002602001018190525060008760008151811061399557fe5b6020908102919091010151901515608090910152613af3565b848951036040519080825280602002602001820160405280156139eb57816020015b6139d8615a4b565b8152602001906001900390816139d05790505b50965084895103604051908082528060200260200182016040528015613a2557816020015b6060815260200190600190039081613a105790505b5095506000915060005b8951811015613af157898181518110613a4457fe5b602002602001015160800151158015613a87575060006001600160a01b03168a8281518110613a6f57fe5b6020026020010151600001516001600160a01b031614155b15613ae957898181518110613a9857fe5b6020026020010151888481518110613aac57fe5b6020026020010181905250888181518110613ac357fe5b6020026020010151878481518110613ad757fe5b60200260200101819052508260010192505b600101613a2f565b505b50505050505b9250929050565b600154825160005b82811015613c1d576001613b1a615a4b565b60018381548110613b2757fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613bf157878181518110613bb757fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415613be95760009250613bf1565b600101613ba3565b508115613c135780516001600160a01b03166000908152600460205260408120555b5050600101613b08565b5080821115613cdc57805b82811015613cda576001805480613c3b57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480613c8e57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590613cc06002830182615aa4565b613cce600383016000615ae8565b50509055600101613c28565b505b6000818310613ceb5781613ced565b825b905060005b8181101561409157613d9f868281518110613d0957fe5b602002602001015160018381548110613d1e57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152614ef3565b613f53578060010160046000888481518110613db757fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110613df357fe5b602002602001015160018281548110613e0857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110613ec357fe5b6020026020010151600b8281548110613ed857fe5b90600052602060002090601602016002019080519060200190613efc9291906159a4565b506000600b8281548110613f0c57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110613f3d57fe5b6000918252602090912060169091020155614089565b858181518110613f5f57fe5b60200260200101516060015160018281548110613f7857fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555061403e858281518110613fbc57fe5b6020026020010151600b8381548110613fd157fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ded5780601f10612dc257610100808354040283529160200191612ded565b6140895784818151811061404e57fe5b6020026020010151600b828154811061406357fe5b906000526020600020906016020160020190805190602001906140879291906159a4565b505b600101613cf2565b5082821115614269576140a2615975565b835b83811015614266578581815181106140b857fe5b6020026020010151826040018190525060018782815181106140d657fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616e6a8339815191528101918255858301516000805160206174998339815191528201805491151560ff199092169190911790559285015180518694929361420c93600080516020616e8a833981519152019201906159a4565b5060608201516142229060038301906013615a1e565b505050806001016004600089848151811061423957fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016140a4565b50505b614271614f4f565b614279615131565b6000600981905560015493505b838110156142e7576000600b828154811061429d57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106142ce57fe5b6000918252602090912060169091020155600101614286565b505050505050565b6000611bdc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061531f565b600082820183811015611bdc5760405162461bcd60e51b8152600401610c2f906164c8565b6000806001838154811061436657fe5b906000526020600020906004020160030154905060006001808054905003905060016143906129ec565b51116143c5576000600185815481106143a557fe5b9060005260206000209060040201600301819055506000925050506115b1565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143fe9190616d9f565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156145eb576001816001018154811061443f57fe5b90600052602060002090600402016001828154811061445a57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061451b57fe5b9060005260206000209060160201600b828154811061453657fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff199092169190911790556002808401805461458d938386019390821615610100026000190190911604615af7565b506145a060038281019084016013615b6c565b509050508060010160046000600184815481106145b957fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614421565b5060018054806145f757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061464a57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061467c6002830182615aa4565b61468a600383016000615ae8565b50509055600081838161469957fe5b049050801561470d5760015460005b8181101561470a576146e183600183815481106146c157fe5b90600052602060002090600402016003015461433190919063ffffffff16565b600182815481106146ee57fe5b60009182526020909120600360049092020101556001016146a8565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561475857816020015b60608152602001906001900390816147435790505b50600b54909150831461476f579250611501915050565b60005b8281101561487e57600b60016004600089858151811061478e57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106147c257fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561485a5780601f1061482f5761010080835404028352916020019161485a565b820191906000526020600020905b81548152906001019060200180831161483d57829003601f168201915b505050505082828151811061486b57fe5b6020908102919091010152600101614772565b50949350505050565b60005b828110156149d457600082878388016040516020016148aa929190616147565b6040516020818303038152906040528051906020012060001c816148ca57fe5b069050808501828701146149cb57600089838801815181106148e857fe5b602002602001015190506060898489018151811061490257fe5b602002602001015190508a8388018151811061491a57fe5b60200260200101518b858a018151811061493057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061495f57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061498d57fe5b60200260200101518a858a01815181106149a357fe5b6020026020010181905250808a848901815181106149bd57fe5b602002602001018190525050505b5060010161488a565b5050505050505050565b600980546001908101909155600b8054839081106149f857fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b8281548110614a2e57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a89919061612b565b6040516020818303038152906040528051906020012083604051602001614ab0919061612b565b6040516020818303038152906040528051906020012014905092915050565b015190565b614adc615a80565b6000614ae6615a80565b614aee615b96565b614aff614afa8661534b565b615370565b90506000805b614b0e836153ba565b15614c825780614b3357614b29614b24846153db565b615429565b60ff168452614c7a565b8060011415614c75576060614b4f614b4a856153db565b6154a9565b90508051604051908082528060200260200182016040528015614b8c57816020015b614b79615a4b565b815260200190600190039081614b715790505b5085602001819052508051604051908082528060200260200182016040528015614bca57816020015b6060815260200190600190039081614bb55790505b50604086015260005b8151811015614c6a57614be4615a4b565b60606000614c04858581518110614bf757fe5b602002602001015161557a565b92509250925080614c24578860009a509a50505050505050505050614c8b565b8289602001518581518110614c3557fe5b60200260200101819052508189604001518581518110614c5157fe5b6020026020010181905250505050806001019050614bd3565b506001925050614c7a565b614c82565b600101614b05565b50919350909150505b915091565b815181516000916001918114808314614cac5760009250614cea565b600160208701838101602088015b600284838510011415614ce5578051835114614cd95760009650600093505b60209283019201614cba565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614d1d57506000199050611501565b600181039050600060018281548110614d3257fe5b9060005260206000209060040201600301549050600060018381548110614d5557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614dae908590616d9f565b60405180910390a280614dc657829350505050611501565b6000818381614dd157fe5b0490508015614e6d5760005b84811015614e1f57614df682600183815481106146c157fe5b60018281548110614e0357fe5b6000918252602090912060036004909202010155600101614ddd565b50600180549085015b81811015614e6a57614e4183600183815481106146c157fe5b60018281548110614e4e57fe5b6000918252602090912060036004909202010155600101614e28565b50505b5091949350505050565b600082614e86575060006115b1565b82820282848281614e9357fe5b0414611bdc5760405162461bcd60e51b8152600401610c2f90616945565b6000611bdc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615694565b805182516000916001600160a01b039182169116148015614f2d575081602001516001600160a01b031683602001516001600160a01b0316145b8015611bdc5750506040908101519101516001600160a01b0390811691161490565b60125460135480821115614f9a57805b82811015614f98576012805480614f7257fe5b600190038181906000526020600020016000614f8e9190615aa4565b9055600101614f5f565b505b6000818310614fa95781614fab565b825b905060005b818110156150c35761506860128281548110614fc857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156150565780601f1061502b57610100808354040283529160200191615056565b820191906000526020600020905b81548152906001019060200180831161503957829003601f168201915b505050505060138381548110612d5f57fe5b6150bb576013818154811061507957fe5b906000526020600020016012828154811061509057fe5b9060005260206000200190805460018160011615610100020316600290046150b9929190615af7565b505b600101614fb0565b5082821115610c5157825b82811015613344576012601382815481106150e557fe5b6000918252602080832084546001818101875595855291909320929091018054615128949390920192909160026101009282161592909202600019011604615af7565b506001016150ce565b601354600b548082111561517c57805b8281101561517a57601380548061515457fe5b6001900381819060005260206000200160006151709190615aa4565b9055600101615141565b505b600081831061518b578161518d565b825b905060005b818110156152ac5761524a601382815481106151aa57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156152385780601f1061520d57610100808354040283529160200191615238565b820191906000526020600020905b81548152906001019060200180831161521b57829003601f168201915b5050505050600b8381548110613fd157fe5b6152a457600b818154811061525b57fe5b90600052602060002090601602016002016013828154811061527957fe5b9060005260206000200190805460018160011615610100020316600290046152a2929190615af7565b505b600101615192565b5082821115610c5157825b82811015613344576013600b82815481106152ce57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461531695939094019390926000199082161561010002011604615af7565b506001016152b7565b600081848411156153435760405162461bcd60e51b8152600401610c2f9190616275565b505050900390565b615353615bb6565b506040805180820190915281518152602082810190820152919050565b615378615b96565b615381826156cb565b61538a57600080fd5b60006153998360200151615705565b60208085015160408051808201909152868152920190820152915050919050565b60006153c4615bb6565b505080518051602091820151919092015191011190565b6153e3615bb6565b6153ec826153ba565b6153f557600080fd5b6020820151600061540582615768565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061543e57508151602110155b61544757600080fd5b60006154568360200151615705565b9050808360000151101561547c5760405162461bcd60e51b8152600401610c2f90616af9565b82516020808501518301805192849003929183101561487e57506020919091036101000a90049392505050565b60606154b4826156cb565b6154bd57600080fd5b60006154c883615849565b905060608160405190808252806020026020018201604052801561550657816020015b6154f3615bb6565b8152602001906001900390816154eb5790505b50905060006155188560200151615705565b60208601510190506000805b8481101561556f5761553583615768565b915060405180604001604052808381526020018481525084828151811061555857fe5b602090810291909101015291810191600101615524565b509195945050505050565b615582615a4b565b6060600061558e615a4b565b6060615598615b96565b6155a187615370565b90506000805b6155b0836153ba565b1561568557806155db576155cb6155c6846153db565b6158a5565b6001600160a01b0316855261567d565b8060011415615603576155f06155c6846153db565b6001600160a01b0316602086015261567d565b806002141561562b576156186155c6846153db565b6001600160a01b0316604086015261567d565b806003141561565757615640614b24846153db565b6001600160401b031660608601526001915061567d565b80600414156156785761567161566c846153db565b6158bf565b935061567d565b615685565b6001016155a7565b50929791965091945092505050565b600081836156b55760405162461bcd60e51b8152600401610c2f9190616275565b5060008385816156c157fe5b0495945050505050565b80516000906156dc57506000611501565b6020820151805160001a9060c08210156156fb57600092505050611501565b5060019392505050565b8051600090811a608081101561571f576000915050611501565b60b881108061573a575060c0811080159061573a575060f881105b15615749576001915050611501565b60c081101561575d5760b519019050611501565b60f519019050611501565b80516000908190811a60808110156157835760019150615842565b60b881101561579857607e1981019150615842565b60c08110156157e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156157e35760405162461bcd60e51b8152600401610c2f90616848565b50615842565b60f88110156157fe5760be1981019150615842565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158405760405162461bcd60e51b8152600401610c2f90616848565b505b5092915050565b805160009061585a57506000611501565b6000809050600061586e8460200151615705565b602085015185519181019250015b8082101561589c5761588d82615768565b8201915082600101925061587c565b50909392505050565b80516000906015146158b657600080fd5b6115b182615429565b80516060906158cd57600080fd5b60006158dc8360200151615705565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615913576020820181803683370190505b509050600081602001905061487e8487602001510182858061593457610c51565b5b60208110615954578251825260209283019290910190601f1901615935565b915181516020939093036101000a6000190180199091169216919091179052565b6040518060800160405280600081526020016000151581526020016060815260200161599f615bd0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106159e557805160ff1916838001178555615a12565b82800160010185558215615a12579182015b82811115615a125782518255916020019190600101906159f7565b50612b41929150615bef565b8260138101928215615a125791602002820182811115615a125782518255916020019190600101906159f7565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040518060600160405280600060ff16815260200160608152602001606081525090565b50805460018160011615610100020316600290046000825580601f10615aca5750611719565b601f0160209004906000526020600020908101906117199190615bef565b50611719906013810190615bef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b305780548555615a12565b82800160010185558215615a1257600052602060002091601f016020900482015b82811115615a12578254825591600101919060010190615b51565b8260138101928215615a125791820182811115615a12578254825591600101919060010190615b51565b6040518060400160405280615ba9615bb6565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b611dbe91905b80821115612b415760008155600101615bf5565b80356115b181616e54565b60008083601f840112615c25578182fd5b5081356001600160401b03811115615c3b578182fd5b6020830191508360208083028501011115613af957600080fd5b6000601f8381840112615c66578182fd5b8235615c79615c7482616e09565b616de3565b818152925060208084019085810160005b84811015615d0b578135880189603f820112615ca557600080fd5b838101356001600160401b03811115615cbd57600080fd5b615cce818901601f19168601616de3565b81815260408c81848601011115615ce457600080fd5b82818501888401375060009181018601919091528552509282019290820190600101615c8a565b50505050505092915050565b600082601f830112615d27578081fd5b8135615d35615c7482616e09565b818152915060208083019084810181840286018201871015615d5657600080fd5b6000805b85811015615d0b5782356001600160401b0381168114615d78578283fd5b85529383019391830191600101615d5a565b60008083601f840112615d9b578182fd5b5081356001600160401b03811115615db1578182fd5b602083019150836020828501011115613af957600080fd5b600060208284031215615dda578081fd5b8135611bdc81616e54565b600060208284031215615df6578081fd5b8151611bdc81616e54565b60008060008060408587031215615e16578283fd5b84356001600160401b0380821115615e2c578485fd5b615e3888838901615c14565b90965094506020870135915080821115615e50578384fd5b50615e5d87828801615c14565b95989497509550505050565b600080600060608486031215615e7d578283fd5b83356001600160401b0380821115615e93578485fd5b81860187601f820112615ea4578586fd5b80359250615eb4615c7484616e09565b80848252602080830192508084018b828389028701011115615ed457898afd5b8994505b86851015615efe57615eea8c82615c09565b845260019490940193928101928101615ed8565b509097508801359350505080821115615f15578384fd5b615f2187838801615d17565b93506040860135915080821115615f36578283fd5b50615f4386828701615c55565b9150509250925092565b60008060208385031215615f5f578182fd5b82356001600160401b03811115615f74578283fd5b615f8085828601615d8a565b90969095509350505050565b60008060008060408587031215615fa1578384fd5b84356001600160401b0380821115615fb7578586fd5b615fc388838901615d8a565b90965094506020870135915080821115615fdb578384fd5b50615e5d87828801615d8a565b600060208284031215615ff9578081fd5b5035919050565b600060208284031215616011578081fd5b5051919050565b6000806040838503121561602a578182fd5b505080516020909101519092909150565b60008060006040848603121561604f578081fd5b833560ff8116811461605f578182fd5b925060208401356001600160401b03811115616079578182fd5b61608586828701615d8a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156160ca5781516001600160a01b0316875295820195908201906001016160a5565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616117816020860160208601616e28565b601f01601f19169290920160200192915050565b6000825161613d818460208701616e28565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b600060208252611bdc6020830184616092565b60006040825261620d6040830185616092565b602083820381850152818551808452828401915082838202850101838801865b8381101561625b57601f198784030185526162498383516160ff565b9486019492509085019060010161622d565b50909998505050505050505050565b901515815260200190565b600060208252611bdc60208301846160ff565b60006040825261629c6040830186886160d5565b82810360208401526162af8185876160d5565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526038908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e206d6178456c656374656456616c696461746f72730000000000000000606082015260800190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526063908201527f7468652073797374656d52657761726442617365526174696f20706c7573206260408201527f75726e526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252601d908201527f6c656e677468206f66207475726e4c656e677468206d69736d61746368000000604082015260600190565b6020808252600a908201526919195c1c9958d85d195960b21b604082015260600190565b60208082526063908201527f746865206275726e526174696f20706c75732073797374656d5265776172644260408201527f617365526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b6020808252602b908201527f6c656e677468206f662073797374656d526577617264416e74694d455652617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526063908201527f7468652073797374656d526577617264416e74694d4556526174696f20706c7560408201527f73206275726e526174696f20616e642073797374656d5265776172644261736560608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252602f908201527f746865207475726e4c656e6774682073686f756c6420626520696e205b332c3960408201526e5d206f7220657175616c20746f203160881b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526028908201527f6c656e677468206f662073797374656d52657761726442617365526174696f206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152616dc960608301846160ff565b95945050505050565b63ffffffff91909116815260200190565b6040518181016001600160401b0381118282101715616e0157600080fd5b604052919050565b60006001600160401b03821115616e1e578081fd5b5060209081020190565b60005b83811015616e43578181015183820152602001616e2b565b838111156133445750506000910152565b6001600160a01b038116811461171957600080fdfe0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a
src/system_contracts/pascal/mainnet/ValidatorContract:1
- New system contract bytecode has been added without any corresponding tests. Please add unit or integration tests to verify that the bytecode loads correctly and the contracts initialize as expected.
60806040526004361061044b5760003560e01c80638c5d749d11610234578063c81b16621161012e578063e1c7392a116100b6578063f92eb86b1161007a578063f92eb86b14610b5f578063f9a2bbc714610b74578063fccc281314610b89578063fd4ad81f14610b9e578063fd6a687914610bcd57610452565b8063e1c7392a14610ae2578063e40716a114610af7578063ea321e4914610b0c578063eb57e20214610b2c578063f340fa0114610b4c57610452565b8063d58918ae116100fd578063d58918ae14610a79578063d68fb56a14610a8e578063daacdb6614610aa3578063dc927faf14610ab8578063df8079e914610acd57610452565b8063c81b166214610a2f578063c8509d81146107f1578063cb75a59214610a44578063ce910b0c14610a5957610452565b8063aa82dce1116101bc578063aef198a911610180578063aef198a9146109b9578063b7ab4db5146109ce578063b8cf4ef1146109f0578063c466689d14610a05578063c6d3394514610a1a57610452565b8063aa82dce11461092d578063aad5606314610942578063ab51bb9614610957578063ac43175114610979578063ad3c9da61461099957610452565b80639fe0f816116102035780639fe0f816146108c4578063a0dc2758146108d9578063a1a11bf5146108ee578063a5422d5c14610903578063a78abc161461091857610452565b80638c5d749d146108655780638d19a4101461087a5780639369d7de1461089a5780639dc09262146108af57610452565b80635192c82c1161034557806375d47a0a116102cd578063831d65d111610291578063831d65d1146107f1578063862498821461081157806388b32f11146108265780638a7beb011461083b5780638b5ad0c91461085057610452565b806375d47a0a1461078857806378dfed4a1461079d5780637a84ca2a146107b25780637e434d54146107c7578063820dcaa8146107dc57610452565b8063565c56b311610314578063565c56b3146106ec57806360eba4fe1461070c57806362b72cf51461072c5780636969a25c146107415780636e47b4821461077357610452565b80635192c82c1461068d57806351b4dce3146106a257806351e80672146106b757806355614fcc146106cc57610452565b80632a0ffb6e116103d35780633b071dcc116103975780633b071dcc1461060957806343756e5c1461062c57806345cf9daf14610641578063493279b1146106565780634df6e0c31461067857610452565b80632a0ffb6e14610569578063300c356714610589578063321d398a146105a95780633365af3a146105c957806335409f7f146105e957610452565b8063152ad3b81161041a578063152ad3b8146104e85780631bd14ed81461050a5780631e4c15241461051f5780631ff180691461053f578063280870281461055457610452565b806304c4fec61461045757806307a568471461046e5780630e2374a5146104995780631182b875146104bb57610452565b3661045257005b600080fd5b34801561046357600080fd5b5061046c610be2565b005b34801561047a57600080fd5b50610483610c56565b6040516104909190616d9f565b60405180910390f35b3480156104a557600080fd5b506104ae610c5c565b6040516104909190616155565b3480156104c757600080fd5b506104db6104d636600461603b565b610c62565b6040516104909190616275565b3480156104f457600080fd5b506104fd610d7e565b604051610490919061626a565b34801561051657600080fd5b50610483610d87565b34801561052b57600080fd5b5061046c61053a366004615e69565b610d8d565b34801561054b57600080fd5b506104836110c1565b34801561056057600080fd5b506104ae6110c7565b34801561057557600080fd5b5061046c610584366004615dc9565b6110cd565b34801561059557600080fd5b5061046c6105a4366004615e01565b6110ee565b3480156105b557600080fd5b506104fd6105c4366004615fe8565b611437565b3480156105d557600080fd5b506104fd6105e4366004615fe8565b611506565b3480156105f557600080fd5b5061046c610604366004615dc9565b6115b7565b34801561061557600080fd5b5061061e61171c565b6040516104909291906161fa565b34801561063857600080fd5b506104ae6119f8565b34801561064d57600080fd5b506104836119fe565b34801561066257600080fd5b5061066b611a04565b6040516104909190616d90565b34801561068457600080fd5b5061061e611a09565b34801561069957600080fd5b50610483611b95565b3480156106ae57600080fd5b506104ae611b9b565b3480156106c357600080fd5b506104ae611ba1565b3480156106d857600080fd5b506104fd6106e7366004615dc9565b611ba7565b3480156106f857600080fd5b50610483610707366004615dc9565b611be3565b34801561071857600080fd5b506104db610727366004615fe8565b611c34565b34801561073857600080fd5b50610483611cda565b34801561074d57600080fd5b5061076161075c366004615fe8565b611ce0565b60405161049096959493929190616182565b34801561077f57600080fd5b506104ae611d44565b34801561079457600080fd5b506104ae611d4a565b3480156107a957600080fd5b50610483611d50565b3480156107be57600080fd5b50610483611d56565b3480156107d357600080fd5b506104ae611d5c565b3480156107e857600080fd5b50610483611d62565b3480156107fd57600080fd5b5061046c61080c36600461603b565b611d68565b34801561081d57600080fd5b50610483611d89565b34801561083257600080fd5b50610483611d8f565b34801561084757600080fd5b506104fd611d95565b34801561085c57600080fd5b50610483611d9e565b34801561087157600080fd5b50610483611da4565b34801561088657600080fd5b50610483610895366004615dc9565b611dc1565b3480156108a657600080fd5b5061046c611e01565b3480156108bb57600080fd5b506104ae611f15565b3480156108d057600080fd5b50610483611f1b565b3480156108e557600080fd5b50610483611f20565b3480156108fa57600080fd5b506104ae611f25565b34801561090f57600080fd5b506104db611f2b565b34801561092457600080fd5b506104fd611f4a565b34801561093957600080fd5b506104ae611f53565b34801561094e57600080fd5b506104ae611f59565b34801561096357600080fd5b5061096c611f5f565b6040516104909190616dd2565b34801561098557600080fd5b5061046c610994366004615f8c565b611f64565b3480156109a557600080fd5b506104836109b4366004615dc9565b6129cd565b3480156109c557600080fd5b506104836129df565b3480156109da57600080fd5b506109e36129ec565b60405161049091906161e7565b3480156109fc57600080fd5b50610483612ad7565b348015610a1157600080fd5b50610483612adc565b348015610a2657600080fd5b50610483612ae2565b348015610a3b57600080fd5b506104ae612ae7565b348015610a5057600080fd5b50610483612aed565b348015610a6557600080fd5b506104db610a74366004615fe8565b612af3565b348015610a8557600080fd5b50610483612b00565b348015610a9a57600080fd5b50610483612b06565b348015610aaf57600080fd5b50610483612b45565b348015610ac457600080fd5b506104ae612b4b565b348015610ad957600080fd5b506104ae612b51565b348015610aee57600080fd5b5061046c612b57565b348015610b0357600080fd5b50610483612d00565b348015610b1857600080fd5b506104fd610b27366004615f4d565b612d06565b348015610b3857600080fd5b5061046c610b47366004615dc9565b612e8c565b61046c610b5a366004615dc9565b612f94565b348015610b6b57600080fd5b5061048361334a565b348015610b8057600080fd5b506104ae613350565b348015610b9557600080fd5b506104ae613356565b348015610baa57600080fd5b50610bbe610bb9366004615fe8565b61335c565b60405161049093929190616da8565b348015610bd957600080fd5b506104ae61341e565b6000610bed33611dc1565b9050600b8181548110610bfc57fe5b600091825260209091206001601690920201015460ff16610c385760405162461bcd60e51b8152600401610c2f90616a47565b60405180910390fd5b6000610c42612b06565b9050610c513383836001613424565b505050565b60095481565b61200181565b60005460609060ff16610c875760405162461bcd60e51b8152600401610c2f9061645a565b3361200014610ca85760405162461bcd60e51b8152600401610c2f90616ba8565b600b54610d6657610cb7615975565b60015460005b81811015610d6257600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794610d3e93600080516020616e8a8339815191529091019201906159a4565b506060820151610d549060038301906013615a1e565b505050806001019050610cbd565b5050505b60405162461bcd60e51b8152600401610c2f906166ac565b60075460ff1681565b600f5481565b334114610dac5760405162461bcd60e51b8152600401610c2f90616bf7565b3a15610dca5760405162461bcd60e51b8152600401610c2f90616986565b8251604080518281526020808402820101909152606090828015610e0857816020015b610df5615a4b565b815260200190600190039081610ded5790505b50905060005b82811015610eb2576040518060c00160405280878381518110610e2d57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001868381518110610e6f57fe5b60200260200101516001600160401b031681526020016000151581526020016000815250828281518110610e9f57fe5b6020908102919091010152600101610e0e565b50606080610ec08386613616565b9150915060005b600154811015610fb657600060018281548110610ee057fe5b906000526020600020906004020160030154905080600014610fad57600060018381548110610f0b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab8260018581548110610f3f57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b168152610f7a926001600160a01b039092169101616155565b6000604051808303818588803b158015610f9357600080fd5b505af1158015610fa7573d6000803e3d6000fd5b50505050505b50600101610ec7565b504715611024577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051610fec9190616d9f565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015611022573d6000803e3d6000fd5b505b600060035581511561103a5761103a8282613b00565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b61200581565b3361200214610d665760405162461bcd60e51b8152600401610c2f90616d59565b33411461110d5760405162461bcd60e51b8152600401610c2f90616bf7565b601054431161112e5760405162461bcd60e51b8152600401610c2f906165d6565b3a1561114c5760405162461bcd60e51b8152600401610c2f90616986565b60005460ff1661116e5760405162461bcd60e51b8152600401610c2f9061645a565b60006110023168056bc75e2d631000008111156111a55761119e8168056bc75e2d6310000063ffffffff6142ef16565b91506111ac565b505061142d565b6040516309a99b4f60e41b815261100290639a99b4f0906111d39030908690600401616169565b602060405180830381600087803b1580156111ed57600080fd5b505af1158015611201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112259190616000565b91508161123357505061142d565b6000805b848110156112615785858281811061124b57fe5b9050602002013582019150806001019050611237565b508061126f5750505061142d565b6000806000805b89811015611425578489898381811061128b57fe5b9050602002013588028161129b57fe5b0493508a8a828181106112aa57fe5b90506020020160208101906112bf9190615dc9565b6001600160a01b038116600090815260046020526040902054909350915081156113db5760006001808403815481106112f457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561136157836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516113549190616d9f565b60405180910390a26113d5565b600354611374908663ffffffff61433116565b600390815581015461138c908663ffffffff61433116565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906113cc908890616d9f565b60405180910390a25b5061141d565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85856040516114149190616d9f565b60405180910390a25b600101611276565b505050505050505b5050436010555050565b600154600090821061144b57506000611501565b60006001600160a01b03166001838154811061146357fe5b60009182526020909120600490910201546001600160a01b03161480611493575060085415806114935750600a54155b806114a2575060085460095410155b806114b357506114b182611506565b155b806114dc57506000600b83815481106114c857fe5b906000526020600020906016020160000154115b806114f0575060016114ec6129ec565b5111155b156114fd57506000611501565b5060015b919050565b600154600090821061151a57506000611501565b600b548210611557576001828154811061153057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611501565b6001828154811061156457fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156115b15750600b828154811061159857fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611675576115c6615975565b60015460005b8181101561167157600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff191691151591909117905560408601518051879461164d93600080516020616e8a8339815191529091019201906159a4565b5060608201516116639060038301906013615a1e565b5050508060010190506115cc565b5050505b336110011480611686575033612002145b6116a25760405162461bcd60e51b8152600401610c2f90616491565b6001600160a01b038116600090815260046020526040902054806116c65750611719565b6001810390506000600b82815481106116db57fe5b600091825260209091206001601690920201015460ff1690506116fe8383614356565b80156117075750805b15610c51576009805460001901905550505b50565b60015460609081906000805b8281101561176f576001818154811061173d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611767576001909101905b600101611728565b5060608160405190808252806020026020018201604052801561179c578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156117d557816020015b60608152602001906001900390816117c05790505b50600b54600094509091508414156119505760005b8481101561194a57600181815481106117ff57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611942576001818154811061182f57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061185a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061188757fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561191f5780601f106118f45761010080835404028352916020019161191f565b820191906000526020600020905b81548152906001019060200180831161190257829003601f168201915b505050505082858151811061193057fe5b60209081029190910101526001909301925b6001016117ea565b506119ec565b60005b848110156119ea576001818154811061196857fe5b9060005260206000209060040201600201601c9054906101000a900460ff166119e2576001818154811061199857fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106119c357fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611953565b505b909450925050505b9091565b61100181565b60085481565b603881565b6060806000600e549050600080600c5411611a25576015611a29565b600c545b90506060611a356129ec565b90506060611a4282614719565b905082825111611a595790945092506119f4915050565b83838351031015611a6b578282510393505b8315611aa15760c84304611a8783838388880360008a8a614887565b611a9f8383838888038989038a8b8b8b510301614887565b505b606083604051908082528060200260200182016040528015611acd578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611b0657816020015b6060815260200190600190039081611af15790505b50905060005b85811015611b8757848181518110611b2057fe5b6020026020010151838281518110611b3457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611b6057fe5b6020026020010151828281518110611b7457fe5b6020908102919091010152600101611b0c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b03811660009081526004602052604081205480611bcf576000915050611501565b60001901611bdc81611506565b9392505050565b6001600160a01b03811660009081526004602052604081205480611c0b576000915050611501565b600180820381548110611c1a57fe5b906000526020600020906004020160030154915050919050565b60128181548110611c4157fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611cd25780601f10611ca757610100808354040283529160200191611cd2565b820191906000526020600020905b815481529060010190602001808311611cb557829003601f168201915b505050505081565b60105481565b60018181548110611ced57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b61100881565b6103e881565b600c5481565b61200381565b61271081565b3361200014610d665760405162461bcd60e51b8152600401610c2f90616ba8565b60025481565b60115481565b60145460ff1681565b600a5481565b600060175460001415611db957506001611dbe565b506017545b90565b6001600160a01b03811660009081526004602052604081205480611df75760405162461bcd60e51b8152600401610c2f90616b30565b6000190192915050565b600b54611ebf57611e10615975565b60015460005b81811015611ebb57600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794611e9793600080516020616e8a8339815191529091019201906159a4565b506060820151611ead9060038301906013615a1e565b505050806001019050611e16565b5050505b600854611ecc5760036008555b600a54611ed9576002600a555b6000611ee433611dc1565b9050611eef81611437565b611f0b5760405162461bcd60e51b8152600401610c2f90616902565b61171933826149de565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616eaa6105ef913981565b60005460ff1681565b61200281565b61300081565b600081565b60005460ff16611f865760405162461bcd60e51b8152600401610c2f9061645a565b3361100714611fa75760405162461bcd60e51b8152600401610c2f906169b4565b61200784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150614a769050565b156120bc576020811461202c5760405162461bcd60e51b8152600401610c2f906162ba565b604080516020601f840181900481028201810190925282815260009161206a91858580838501838280828437600092019190915250614acf92505050565b905061271061209660185461208a600f548561433190919063ffffffff16565b9063ffffffff61433116565b11156120b45760405162461bcd60e51b8152600401610c2f906166d0565b60065561298a565b61212684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b60208201529150614a769050565b156121c0576020811461214b5760405162461bcd60e51b8152600401610c2f906162f1565b604080516020601f840181900481028201810190925282815260009161218991858580838501838280828437600092019190915250614acf92505050565b600c5490915080612198575060155b8082106121b75760405162461bcd60e51b8152600401610c2f90616618565b5060085561298a565b61222984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b60208201529150614a769050565b156122c2576020811461224e5760405162461bcd60e51b8152600401610c2f906163e0565b604080516020601f840181900481028201810190925282815260009161228c91858580838501838280828437600092019190915250614acf92505050565b905060008111801561229e5750600a81105b6122ba5760405162461bcd60e51b8152600401610c2f90616c8c565b600a5561298a565b61233684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e646964617465730000000000000060208201529150614a769050565b156123c5576020811461235b5760405162461bcd60e51b8152600401610c2f90616394565b604080516020601f840181900481028201810190925282815260009161239991858580838501838280828437600092019190915250614acf92505050565b9050600d548111156123bd5760405162461bcd60e51b8152600401610c2f906167d9565b600e5561298a565b61242e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b60208201529150614a769050565b156124b057602081146124535760405162461bcd60e51b8152600401610c2f90616a02565b604080516020601f840181900481028201810190925282815260009161249191858580838501838280828437600092019190915250614acf92505050565b600d819055600e549091508110156124aa57600d54600e555b5061298a565b61251484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b60208201529150614a769050565b1561263957602081146125395760405162461bcd60e51b8152600401610c2f90616425565b604080516020601f840181900481028201810190925282815260009161257791858580838501838280828437600092019190915250614acf92505050565b9050600081116125995760405162461bcd60e51b8152600401610c2f9061658e565b60006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125d657600080fd5b505afa1580156125ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260e9190616000565b9050808211156126305760405162461bcd60e51b8152600401610c2f90616337565b50600c5561298a565b6126a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527473797374656d52657761726442617365526174696f60581b60208201529150614a769050565b1561274e57602081146126ca5760405162461bcd60e51b8152600401610c2f90616c44565b604080516020601f840181900481028201810190925282815260009161270891858580838501838280828437600092019190915250614acf92505050565b905061271061272860185461208a6006548561433190919063ffffffff16565b11156127465760405162461bcd60e51b8152600401610c2f906164ff565b600f5561298a565b6127c284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f73797374656d526577617264416e74694d4556526174696f000000000000000060208201529150614a769050565b1561286b57602081146127e75760405162461bcd60e51b8152600401610c2f9061675f565b604080516020601f840181900481028201810190925282815260009161282591858580838501838280828437600092019190915250614acf92505050565b9050612710612845600f5461208a6006548561433190919063ffffffff16565b11156128635760405162461bcd60e51b8152600401610c2f90616873565b60185561298a565b6128cc84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a8152690e8eae4dc98cadccee8d60b31b60208201529150614a769050565b1561297257602081146128f15760405162461bcd60e51b8152600401610c2f90616675565b604080516020601f840181900481028201810190925282815260009161292f91858580838501838280828437600092019190915250614acf92505050565b905060038110158015612943575060098111155b8061294e5750806001145b61296a5760405162461bcd60e51b8152600401610c2f90616aaa565b60175561298a565b60405162461bcd60e51b8152600401610c2f90616ce9565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516129bf9493929190616288565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612a1b57612a0781611506565b15612a13578160010191505b6001016129f6565b50606081604051908082528060200260200182016040528015612a48578160200160208202803683370190505b5090506000915060005b83811015612acf57612a6381611506565b15612ac75760018181548110612a7557fe5b600091825260209091206004909102015482516001600160a01b0390911690839085908110612aa057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612a52565b509250505090565b601581565b61027181565b600281565b61100281565b60175481565b60138181548110611c4157fe5b60185481565b6000612b106129ec565b519050600080600c5411612b25576015612b29565b600c545b905080821115612b37578091505b81612b4157600191505b5090565b60055481565b61100381565b61200481565b60005460ff1615612b7a5760405162461bcd60e51b8152600401610c2f90616a73565b612b82615a80565b6000612ba86040518061062001604052806105ef8152602001616eaa6105ef9139614ad4565b9150915080612bc95760405162461bcd60e51b8152600401610c2f90616b67565b60005b826020015151811015612cee57600183602001518281518110612beb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a090930151600390930192909255918601518051918501939185908110612cc157fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612bcc565b50506000805460ff1916600117905550565b600d5481565b601354600090815b81811015612e0f57612df785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612d5f57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ded5780601f10612dc257610100808354040283529160200191612ded565b820191906000526020600020905b815481529060010190602001808311612dd057829003601f168201915b5050505050614c90565b15612e07576001925050506115b1565b600101612d0e565b5060125460005b81811015612e8057612e6786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612d5f57fe5b15612e7857600193505050506115b1565b600101612e16565b50600095945050505050565b3361100114612ead5760405162461bcd60e51b8152600401610c2f90616d10565b600b54612f6b57612ebc615975565b60015460005b81811015612f6757600b80546001810182556000919091528351600080516020616e6a83398151915260169092029182019081556020808601516000805160206174998339815191528401805460ff1916911515919091179055604086015180518794612f4393600080516020616e8a8339815191529091019201906159a4565b506060820151612f599060038301906013615a1e565b505050806001019050612ec2565b5050505b6000612f7682614cf4565b9050612f8181611437565b15612f9057612f9082826149de565b5050565b334114612fb35760405162461bcd60e51b8152600401610c2f90616bf7565b60005460ff16612fd55760405162461bcd60e51b8152600401610c2f9061645a565b60003411612ff55760405162461bcd60e51b8152600401610c2f906167aa565b3a156130135760405162461bcd60e51b8152600401610c2f90616986565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661305357610271600f556103e86006556014805460ff191660011790555b600f54601754600110801561306a57506000601854115b1561308f57600160175403601754438161308057fe5b06601854028161308c57fe5b04015b60008311801561309f5750600081115b1561314c5760006130c86127106130bc348563ffffffff614e7716565b9063ffffffff614eb116565b9050801561314a576040516110029082156108fc029083906000818181858888f193505050501580156130ff573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d8160405161312f9190616d9f565b60405180910390a1613147848263ffffffff6142ef16565b93505b505b60008311801561315e57506000600654115b156132045760006131806127106130bc60065434614e7790919063ffffffff16565b905080156132025760405161dead9082156108fc029083906000818181858888f193505050501580156131b7573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516131e79190616d9f565b60405180910390a16131ff848263ffffffff6142ef16565b93505b505b811561330257600060018084038154811061321b57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561328857846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b48560405161327b9190616d9f565b60405180910390a26132fc565b60035461329b908563ffffffff61433116565b60039081558101546132b3908563ffffffff61433116565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055906132f3908790616d9f565b60405180910390a25b50613344565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b48460405161333b9190616d9f565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b818154811061336957fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156134145780601f106133e957610100808354040283529160200191613414565b820191906000526020600020905b8154815290600101906020018083116133f757829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613435575082155b806134405750600954155b1561344d5750600061360e565b60096000815460019003919050819055506000613498600a546130bc866130bc600b8a8154811061347a57fe5b6000918252602090912060169091020154439063ffffffff6142ef16565b90506000600b86815481106134a957fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561350e57600080fd5b505afa158015613522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135469190616018565b91509150600093508083106135c45761355f8888614356565b506040516328aa02b160e01b8152611001906328aa02b190613589908b9087908a906004016161c4565b600060405180830381600087803b1580156135a357600080fd5b505af11580156135b7573d6000803e3d6000fd5b50505050600193506135d6565b8183106135d6576135d488614cf4565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b606080600080808080613627612b06565b6001549091505b801561385957600181039250600b838154811061364757fe5b600091825260209091206001601690920201015460ff1661366757613850565b6001838154811061367457fe5b600091825260208220600490910201546001600160a01b0316955061369e90869085908590613424565b9350836136aa57613850565b60405163436aa28360e11b81526000908190612002906386d54506906136d4908a90600401616155565b60206040518083038186803b1580156136ec57600080fd5b505afa158015613700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137249190615de5565b90506001600160a01b038116156137ad576040516302ceee9160e11b81526120029063059ddd229061375a908490600401616155565b60206040518083038186803b15801561377257600080fd5b505afa158015613786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137aa9190615de5565b91505b60005b8c5181101561384c57876001600160a01b03168d82815181106137cf57fe5b6020026020010151600001516001600160a01b031614806138185750826001600160a01b03168d828151811061380157fe5b6020026020010151600001516001600160a01b0316145b156138445760018d828151811061382b57fe5b602090810291909101015190151560809091015261384c565b6001016137b0565b5050505b6000190161362e565b5060005b89518110156138c65789818151811061387257fe5b602002602001015160800151806138b2575060006001600160a01b03168a828151811061389b57fe5b6020026020010151600001516001600160a01b0316145b156138be578560010195505b60010161385d565b50885185106139ae5760408051600180825281830190925290816020015b6138ec615a4b565b8152602001906001900390816138e4575050604080516001808252818301909252919850602082015b60608152602001906001900390816139155790505095508860008151811061393957fe5b60200260200101518760008151811061394e57fe5b60200260200101819052508760008151811061396657fe5b60200260200101518660008151811061397b57fe5b602002602001018190525060008760008151811061399557fe5b6020908102919091010151901515608090910152613af3565b848951036040519080825280602002602001820160405280156139eb57816020015b6139d8615a4b565b8152602001906001900390816139d05790505b50965084895103604051908082528060200260200182016040528015613a2557816020015b6060815260200190600190039081613a105790505b5095506000915060005b8951811015613af157898181518110613a4457fe5b602002602001015160800151158015613a87575060006001600160a01b03168a8281518110613a6f57fe5b6020026020010151600001516001600160a01b031614155b15613ae957898181518110613a9857fe5b6020026020010151888481518110613aac57fe5b6020026020010181905250888181518110613ac357fe5b6020026020010151878481518110613ad757fe5b60200260200101819052508260010192505b600101613a2f565b505b50505050505b9250929050565b600154825160005b82811015613c1d576001613b1a615a4b565b60018381548110613b2757fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613bf157878181518110613bb757fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415613be95760009250613bf1565b600101613ba3565b508115613c135780516001600160a01b03166000908152600460205260408120555b5050600101613b08565b5080821115613cdc57805b82811015613cda576001805480613c3b57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480613c8e57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590613cc06002830182615aa4565b613cce600383016000615ae8565b50509055600101613c28565b505b6000818310613ceb5781613ced565b825b905060005b8181101561409157613d9f868281518110613d0957fe5b602002602001015160018381548110613d1e57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152614ef3565b613f53578060010160046000888481518110613db757fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110613df357fe5b602002602001015160018281548110613e0857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110613ec357fe5b6020026020010151600b8281548110613ed857fe5b90600052602060002090601602016002019080519060200190613efc9291906159a4565b506000600b8281548110613f0c57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110613f3d57fe5b6000918252602090912060169091020155614089565b858181518110613f5f57fe5b60200260200101516060015160018281548110613f7857fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555061403e858281518110613fbc57fe5b6020026020010151600b8381548110613fd157fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ded5780601f10612dc257610100808354040283529160200191612ded565b6140895784818151811061404e57fe5b6020026020010151600b828154811061406357fe5b906000526020600020906016020160020190805190602001906140879291906159a4565b505b600101613cf2565b5082821115614269576140a2615975565b835b83811015614266578581815181106140b857fe5b6020026020010151826040018190525060018782815181106140d657fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616e6a8339815191528101918255858301516000805160206174998339815191528201805491151560ff199092169190911790559285015180518694929361420c93600080516020616e8a833981519152019201906159a4565b5060608201516142229060038301906013615a1e565b505050806001016004600089848151811061423957fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016140a4565b50505b614271614f4f565b614279615131565b6000600981905560015493505b838110156142e7576000600b828154811061429d57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106142ce57fe5b6000918252602090912060169091020155600101614286565b505050505050565b6000611bdc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061531f565b600082820183811015611bdc5760405162461bcd60e51b8152600401610c2f906164c8565b6000806001838154811061436657fe5b906000526020600020906004020160030154905060006001808054905003905060016143906129ec565b51116143c5576000600185815481106143a557fe5b9060005260206000209060040201600301819055506000925050506115b1565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143fe9190616d9f565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156145eb576001816001018154811061443f57fe5b90600052602060002090600402016001828154811061445a57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061451b57fe5b9060005260206000209060160201600b828154811061453657fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff199092169190911790556002808401805461458d938386019390821615610100026000190190911604615af7565b506145a060038281019084016013615b6c565b509050508060010160046000600184815481106145b957fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614421565b5060018054806145f757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061464a57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061467c6002830182615aa4565b61468a600383016000615ae8565b50509055600081838161469957fe5b049050801561470d5760015460005b8181101561470a576146e183600183815481106146c157fe5b90600052602060002090600402016003015461433190919063ffffffff16565b600182815481106146ee57fe5b60009182526020909120600360049092020101556001016146a8565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561475857816020015b60608152602001906001900390816147435790505b50600b54909150831461476f579250611501915050565b60005b8281101561487e57600b60016004600089858151811061478e57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106147c257fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561485a5780601f1061482f5761010080835404028352916020019161485a565b820191906000526020600020905b81548152906001019060200180831161483d57829003601f168201915b505050505082828151811061486b57fe5b6020908102919091010152600101614772565b50949350505050565b60005b828110156149d457600082878388016040516020016148aa929190616147565b6040516020818303038152906040528051906020012060001c816148ca57fe5b069050808501828701146149cb57600089838801815181106148e857fe5b602002602001015190506060898489018151811061490257fe5b602002602001015190508a8388018151811061491a57fe5b60200260200101518b858a018151811061493057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061495f57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061498d57fe5b60200260200101518a858a01815181106149a357fe5b6020026020010181905250808a848901815181106149bd57fe5b602002602001018190525050505b5060010161488a565b5050505050505050565b600980546001908101909155600b8054839081106149f857fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b8281548110614a2e57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a89919061612b565b6040516020818303038152906040528051906020012083604051602001614ab0919061612b565b6040516020818303038152906040528051906020012014905092915050565b015190565b614adc615a80565b6000614ae6615a80565b614aee615b96565b614aff614afa8661534b565b615370565b90506000805b614b0e836153ba565b15614c825780614b3357614b29614b24846153db565b615429565b60ff168452614c7a565b8060011415614c75576060614b4f614b4a856153db565b6154a9565b90508051604051908082528060200260200182016040528015614b8c57816020015b614b79615a4b565b815260200190600190039081614b715790505b5085602001819052508051604051908082528060200260200182016040528015614bca57816020015b6060815260200190600190039081614bb55790505b50604086015260005b8151811015614c6a57614be4615a4b565b60606000614c04858581518110614bf757fe5b602002602001015161557a565b92509250925080614c24578860009a509a50505050505050505050614c8b565b8289602001518581518110614c3557fe5b60200260200101819052508189604001518581518110614c5157fe5b6020026020010181905250505050806001019050614bd3565b506001925050614c7a565b614c82565b600101614b05565b50919350909150505b915091565b815181516000916001918114808314614cac5760009250614cea565b600160208701838101602088015b600284838510011415614ce5578051835114614cd95760009650600093505b60209283019201614cba565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614d1d57506000199050611501565b600181039050600060018281548110614d3257fe5b9060005260206000209060040201600301549050600060018381548110614d5557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614dae908590616d9f565b60405180910390a280614dc657829350505050611501565b6000818381614dd157fe5b0490508015614e6d5760005b84811015614e1f57614df682600183815481106146c157fe5b60018281548110614e0357fe5b6000918252602090912060036004909202010155600101614ddd565b50600180549085015b81811015614e6a57614e4183600183815481106146c157fe5b60018281548110614e4e57fe5b6000918252602090912060036004909202010155600101614e28565b50505b5091949350505050565b600082614e86575060006115b1565b82820282848281614e9357fe5b0414611bdc5760405162461bcd60e51b8152600401610c2f90616945565b6000611bdc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615694565b805182516000916001600160a01b039182169116148015614f2d575081602001516001600160a01b031683602001516001600160a01b0316145b8015611bdc5750506040908101519101516001600160a01b0390811691161490565b60125460135480821115614f9a57805b82811015614f98576012805480614f7257fe5b600190038181906000526020600020016000614f8e9190615aa4565b9055600101614f5f565b505b6000818310614fa95781614fab565b825b905060005b818110156150c35761506860128281548110614fc857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156150565780601f1061502b57610100808354040283529160200191615056565b820191906000526020600020905b81548152906001019060200180831161503957829003601f168201915b505050505060138381548110612d5f57fe5b6150bb576013818154811061507957fe5b906000526020600020016012828154811061509057fe5b9060005260206000200190805460018160011615610100020316600290046150b9929190615af7565b505b600101614fb0565b5082821115610c5157825b82811015613344576012601382815481106150e557fe5b6000918252602080832084546001818101875595855291909320929091018054615128949390920192909160026101009282161592909202600019011604615af7565b506001016150ce565b601354600b548082111561517c57805b8281101561517a57601380548061515457fe5b6001900381819060005260206000200160006151709190615aa4565b9055600101615141565b505b600081831061518b578161518d565b825b905060005b818110156152ac5761524a601382815481106151aa57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156152385780601f1061520d57610100808354040283529160200191615238565b820191906000526020600020905b81548152906001019060200180831161521b57829003601f168201915b5050505050600b8381548110613fd157fe5b6152a457600b818154811061525b57fe5b90600052602060002090601602016002016013828154811061527957fe5b9060005260206000200190805460018160011615610100020316600290046152a2929190615af7565b505b600101615192565b5082821115610c5157825b82811015613344576013600b82815481106152ce57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461531695939094019390926000199082161561010002011604615af7565b506001016152b7565b600081848411156153435760405162461bcd60e51b8152600401610c2f9190616275565b505050900390565b615353615bb6565b506040805180820190915281518152602082810190820152919050565b615378615b96565b615381826156cb565b61538a57600080fd5b60006153998360200151615705565b60208085015160408051808201909152868152920190820152915050919050565b60006153c4615bb6565b505080518051602091820151919092015191011190565b6153e3615bb6565b6153ec826153ba565b6153f557600080fd5b6020820151600061540582615768565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061543e57508151602110155b61544757600080fd5b60006154568360200151615705565b9050808360000151101561547c5760405162461bcd60e51b8152600401610c2f90616af9565b82516020808501518301805192849003929183101561487e57506020919091036101000a90049392505050565b60606154b4826156cb565b6154bd57600080fd5b60006154c883615849565b905060608160405190808252806020026020018201604052801561550657816020015b6154f3615bb6565b8152602001906001900390816154eb5790505b50905060006155188560200151615705565b60208601510190506000805b8481101561556f5761553583615768565b915060405180604001604052808381526020018481525084828151811061555857fe5b602090810291909101015291810191600101615524565b509195945050505050565b615582615a4b565b6060600061558e615a4b565b6060615598615b96565b6155a187615370565b90506000805b6155b0836153ba565b1561568557806155db576155cb6155c6846153db565b6158a5565b6001600160a01b0316855261567d565b8060011415615603576155f06155c6846153db565b6001600160a01b0316602086015261567d565b806002141561562b576156186155c6846153db565b6001600160a01b0316604086015261567d565b806003141561565757615640614b24846153db565b6001600160401b031660608601526001915061567d565b80600414156156785761567161566c846153db565b6158bf565b935061567d565b615685565b6001016155a7565b50929791965091945092505050565b600081836156b55760405162461bcd60e51b8152600401610c2f9190616275565b5060008385816156c157fe5b0495945050505050565b80516000906156dc57506000611501565b6020820151805160001a9060c08210156156fb57600092505050611501565b5060019392505050565b8051600090811a608081101561571f576000915050611501565b60b881108061573a575060c0811080159061573a575060f881105b15615749576001915050611501565b60c081101561575d5760b519019050611501565b60f519019050611501565b80516000908190811a60808110156157835760019150615842565b60b881101561579857607e1981019150615842565b60c08110156157e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156157e35760405162461bcd60e51b8152600401610c2f90616848565b50615842565b60f88110156157fe5760be1981019150615842565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158405760405162461bcd60e51b8152600401610c2f90616848565b505b5092915050565b805160009061585a57506000611501565b6000809050600061586e8460200151615705565b602085015185519181019250015b8082101561589c5761588d82615768565b8201915082600101925061587c565b50909392505050565b80516000906015146158b657600080fd5b6115b182615429565b80516060906158cd57600080fd5b60006158dc8360200151615705565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615913576020820181803683370190505b509050600081602001905061487e8487602001510182858061593457610c51565b5b60208110615954578251825260209283019290910190601f1901615935565b915181516020939093036101000a6000190180199091169216919091179052565b6040518060800160405280600081526020016000151581526020016060815260200161599f615bd0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106159e557805160ff1916838001178555615a12565b82800160010185558215615a12579182015b82811115615a125782518255916020019190600101906159f7565b50612b41929150615bef565b8260138101928215615a125791602002820182811115615a125782518255916020019190600101906159f7565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040518060600160405280600060ff16815260200160608152602001606081525090565b50805460018160011615610100020316600290046000825580601f10615aca5750611719565b601f0160209004906000526020600020908101906117199190615bef565b50611719906013810190615bef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615b305780548555615a12565b82800160010185558215615a1257600052602060002091601f016020900482015b82811115615a12578254825591600101919060010190615b51565b8260138101928215615a125791820182811115615a12578254825591600101919060010190615b51565b6040518060400160405280615ba9615bb6565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b611dbe91905b80821115612b415760008155600101615bf5565b80356115b181616e54565b60008083601f840112615c25578182fd5b5081356001600160401b03811115615c3b578182fd5b6020830191508360208083028501011115613af957600080fd5b6000601f8381840112615c66578182fd5b8235615c79615c7482616e09565b616de3565b818152925060208084019085810160005b84811015615d0b578135880189603f820112615ca557600080fd5b838101356001600160401b03811115615cbd57600080fd5b615cce818901601f19168601616de3565b81815260408c81848601011115615ce457600080fd5b82818501888401375060009181018601919091528552509282019290820190600101615c8a565b50505050505092915050565b600082601f830112615d27578081fd5b8135615d35615c7482616e09565b818152915060208083019084810181840286018201871015615d5657600080fd5b6000805b85811015615d0b5782356001600160401b0381168114615d78578283fd5b85529383019391830191600101615d5a565b60008083601f840112615d9b578182fd5b5081356001600160401b03811115615db1578182fd5b602083019150836020828501011115613af957600080fd5b600060208284031215615dda578081fd5b8135611bdc81616e54565b600060208284031215615df6578081fd5b8151611bdc81616e54565b60008060008060408587031215615e16578283fd5b84356001600160401b0380821115615e2c578485fd5b615e3888838901615c14565b90965094506020870135915080821115615e50578384fd5b50615e5d87828801615c14565b95989497509550505050565b600080600060608486031215615e7d578283fd5b83356001600160401b0380821115615e93578485fd5b81860187601f820112615ea4578586fd5b80359250615eb4615c7484616e09565b80848252602080830192508084018b828389028701011115615ed457898afd5b8994505b86851015615efe57615eea8c82615c09565b845260019490940193928101928101615ed8565b509097508801359350505080821115615f15578384fd5b615f2187838801615d17565b93506040860135915080821115615f36578283fd5b50615f4386828701615c55565b9150509250925092565b60008060208385031215615f5f578182fd5b82356001600160401b03811115615f74578283fd5b615f8085828601615d8a565b90969095509350505050565b60008060008060408587031215615fa1578384fd5b84356001600160401b0380821115615fb7578586fd5b615fc388838901615d8a565b90965094506020870135915080821115615fdb578384fd5b50615e5d87828801615d8a565b600060208284031215615ff9578081fd5b5035919050565b600060208284031215616011578081fd5b5051919050565b6000806040838503121561602a578182fd5b505080516020909101519092909150565b60008060006040848603121561604f578081fd5b833560ff8116811461605f578182fd5b925060208401356001600160401b03811115616079578182fd5b61608586828701615d8a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156160ca5781516001600160a01b0316875295820195908201906001016160a5565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616117816020860160208601616e28565b601f01601f19169290920160200192915050565b6000825161613d818460208701616e28565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b600060208252611bdc6020830184616092565b60006040825261620d6040830185616092565b602083820381850152818551808452828401915082838202850101838801865b8381101561625b57601f198784030185526162498383516160ff565b9486019492509085019060010161622d565b50909998505050505050505050565b901515815260200190565b600060208252611bdc60208301846160ff565b60006040825261629c6040830186886160d5565b82810360208401526162af8185876160d5565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526038908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e206d6178456c656374656456616c696461746f72730000000000000000606082015260800190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526063908201527f7468652073797374656d52657761726442617365526174696f20706c7573206260408201527f75726e526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252601d908201527f6c656e677468206f66207475726e4c656e677468206d69736d61746368000000604082015260600190565b6020808252600a908201526919195c1c9958d85d195960b21b604082015260600190565b60208082526063908201527f746865206275726e526174696f20706c75732073797374656d5265776172644260408201527f617365526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b6020808252602b908201527f6c656e677468206f662073797374656d526577617264416e74694d455652617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526063908201527f7468652073797374656d526577617264416e74694d4556526174696f20706c7560408201527f73206275726e526174696f20616e642073797374656d5265776172644261736560608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252602f908201527f746865207475726e4c656e6774682073686f756c6420626520696e205b332c3960408201526e5d206f7220657175616c20746f203160881b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526028908201527f6c656e677468206f662073797374656d52657761726442617365526174696f206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152616dc960608301846160ff565b95945050505050565b63ffffffff91909116815260200190565b6040518181016001600160401b0381118282101715616e0157600080fd5b604052919050565b60006001600160401b03821115616e1e578081fd5b5060209081020190565b60005b83811015616e43578181015183820152602001616e2b565b838111156133445750506000910152565b6001600160a01b038116811461171957600080fdfe0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a
No description provided.