solc-0.8.36-doubleshift20 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 default

16936 bytes

6080604052600436106100c2575f3560e01c806312065fe0146100c65780631b7dd4c0146100f05780631e35fed8146100fa5780631eddb6261461012457806322b1751d1461014e57806327c8f1931461016a5780633b36f5921461018057806354fd4d50146101aa578063606b6497146101d457806363a5db9e146101fc57806372f5158d14610224578063888b042f1461022e578063b7013dc114610258578063c095415d14610282578063d0e30db01461028c578063db82047b14610296575b5f5ffd5b3480156100d1575f5ffd5b506100da6102a0565b6040516100e791906130b2565b60405180910390f35b6100f861033c565b005b348015610105575f5ffd5b5061010e610544565b60405161011b91906130b2565b60405180910390f35b34801561012f575f5ffd5b50610138610573565b60405161014591906130b2565b60405180910390f35b61016860048036038101906101639190613106565b61080e565b005b348015610175575f5ffd5b5061017e610a2c565b005b34801561018b575f5ffd5b50610194610b4e565b6040516101a1919061314b565b60405180910390f35b3480156101b5575f5ffd5b506101be610c35565b6040516101cb919061317f565b60405180910390f35b3480156101df575f5ffd5b506101fa60048036038101906101f59190613106565b610c46565b005b348015610207575f5ffd5b50610222600480360381019061021d9190613106565b610ee3565b005b61022c6111ee565b005b348015610239575f5ffd5b50610242611391565b60405161024f91906130b2565b60405180910390f35b348015610263575f5ffd5b5061026c61147c565b60405161027991906131b0565b60405180910390f35b61028a6114b3565b005b610294611620565b005b61029e611c37565b005b5f7f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff166335ee5f876040518163ffffffff1660e01b81526004016102f890613223565b602060405180830381865afa158015610313573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103379190613255565b905090565b6103657f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146103d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c9906132ca565b60405180910390fd5b6040518060400160405280601481526020017f726f636b657441756374696f6e4d616e61676572000000000000000000000000815250336104388260405160200161041d9190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049c906132ca565b60405180910390fd5b5f6104e46040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b90503373ffffffffffffffffffffffffffffffffffffffff167f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d406279196608512925344260405161052e9291906133a5565b60405180910390a261053f81611f8a565b505050565b5f61056e7f6465706f7369742e706f6f6c2e6e6f64652e62616c616e636500000000000000612014565b905090565b5f5f6105b36040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b90508073ffffffffffffffffffffffffffffffffffffffff16636ada78476040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fe573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062291906133f6565b61062f575f91505061080b565b5f6106386102a0565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663fd6ce89e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610684573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a89190613255565b90508273ffffffffffffffffffffffffffffffffffffffff166347fa434a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071791906133f6565b156107e0575f61075b6040518060400160405280601381526020017f726f636b65744d696e69706f6f6c517565756500000000000000000000000000815250611ee0565b90506107dc8173ffffffffffffffffffffffffffffffffffffffff1663e60b40bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cd9190613255565b836120b590919063ffffffff16565b9150505b8082106107f2575f935050505061080b565b610805828261211290919063ffffffff16565b93505050505b90565b6108377f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906132ca565b60405180910390fd5b6040518060400160405280601181526020017f726f636b65744e6f64654465706f7369740000000000000000000000000000008152503361090a826040516020016108ef9190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e906132ca565b60405180910390fd5b5f3411156109fd577f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff166398ea5fca346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156109e5575f5ffd5b505af11580156109f7573d5f5f3e3d5ffd5b50505050505b610a277f6465706f7369742e706f6f6c2e6e6f64652e62616c616e6365000000000000008461216a565b505050565b610a557f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab9906132ca565b60405180910390fd5b5f610b016040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b9050610b0c816121f7565b610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290613491565b60405180910390fd5b50565b5f610b787f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc906132ca565b60405180910390fd5b5f610c246040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b9050610c2f816121f7565b91505090565b5f5f9054906101000a900460ff1681565b610c6f7f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906132ca565b60405180910390fd5b6040518060400160405280601181526020017f726f636b65744e6f64654465706f73697400000000000000000000000000000081525033610d4282604051602001610d279190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da6906132ca565b60405180910390fd5b7f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff16633bed33ce846040518263ffffffff1660e01b8152600401610e0891906130b2565b5f604051808303815f87803b158015610e1f575f5ffd5b505af1158015610e31573d5f5f3e3d5ffd5b505050505f3373ffffffffffffffffffffffffffffffffffffffff1684604051610e5a906134dc565b5f6040518083038185875af1925050503d805f8114610e94576040519150601f19603f3d011682016040523d82523d5f602084013e610e99565b606091505b5050905080610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed49061353a565b60405180910390fd5b50505050565b610f0c7f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f70906132ca565b60405180910390fd5b6040518060400160405280600f81526020017f726f636b6574546f6b656e52455448000000000000000000000000000000000081525033610fdf82604051602001610fc49190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461104c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611043906132ca565b60405180910390fd5b611054611391565b831115611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d906135c8565b60405180910390fd5b7f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff16633bed33ce846040518263ffffffff1660e01b81526004016110ef91906130b2565b5f604051808303815f87803b158015611106575f5ffd5b505af1158015611118573d5f5f3e3d5ffd5b505050507f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639373ffffffffffffffffffffffffffffffffffffffff16636c985a88846040518263ffffffff1660e01b81526004015f604051808303818588803b158015611182575f5ffd5b505af1158015611194573d5f5f3e3d5ffd5b50505050503373ffffffffffffffffffffffffffffffffffffffff167f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b202001212084426040516111e19291906133a5565b60405180910390a2505050565b6112177f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b906132ca565b60405180910390fd5b336112b48160405160200161129991906136a5565b60405160208183030381529060405280519060200120612349565b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90613714565b60405180910390fd5b5f6113326040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b90503373ffffffffffffffffffffffffffffffffffffffff167f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d406279196608512925344260405161137c9291906133a5565b60405180910390a261138d81611f8a565b5050565b5f5f6113d16040518060400160405280601381526020017f726f636b65744d696e69706f6f6c517565756500000000000000000000000000815250611ee0565b90505f8173ffffffffffffffffffffffffffffffffffffffff1663e60b40bf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114419190613255565b90505f61144c6102a0565b9050808210611460575f9350505050611479565b611473828261211290919063ffffffff16565b93505050505b90565b5f6114ae61149061148b610544565b6123ea565b6114a061149b6102a0565b6123ea565b61245590919063ffffffff16565b905090565b6114dc7f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906132ca565b60405180910390fd5b6040518060400160405280600b81526020017f726f636b65745661756c74000000000000000000000000000000000000000000815250336115af826040516020016115949190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461161c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611613906132ca565b60405180910390fd5b5050565b6116497f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad906132ca565b60405180910390fd5b5f6116f56040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b90508073ffffffffffffffffffffffffffffffffffffffff16636ada78476040518163ffffffff1660e01b8152600401602060405180830381865afa158015611740573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176491906133f6565b6117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a906137a2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663035cf1426040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118109190613255565b341015611852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184990613830565b60405180910390fd5b5f61186d3461185f6102a0565b6120b590919063ffffffff16565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663fd6ce89e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118dd9190613255565b905080821115611a9d578273ffffffffffffffffffffffffffffffffffffffff166347fa434a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611930573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061195491906133f6565b15611a61575f6119986040518060400160405280601381526020017f726f636b65744d696e69706f6f6c517565756500000000000000000000000000815250611ee0565b9050611a198173ffffffffffffffffffffffffffffffffffffffff1663e60b40bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a9190613255565b836120b590919063ffffffff16565b831115611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a52906138e4565b60405180910390fd5b50611a9c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9390613972565b60405180910390fd5b5b5f611b37670de0b6b3a7640000611b298673ffffffffffffffffffffffffffffffffffffffff16630de705b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1a9190613255565b346124d390919063ffffffff16565b61254a90919063ffffffff16565b90505f611b4d823461211290919063ffffffff16565b90507f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639373ffffffffffffffffffffffffffffffffffffffff166394bf804d82336040518363ffffffff1660e01b8152600401611baa92919061399f565b5f604051808303815f87803b158015611bc1575f5ffd5b505af1158015611bd3573d5f5f3e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f8886313442604051611c1f9291906133a5565b60405180910390a2611c3085611f8a565b5050505050565b611c607f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2611e3f565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc4906132ca565b60405180910390fd5b6040518060400160405280600f81526020017f726f636b6574546f6b656e52455448000000000000000000000000000000000081525033611d3382604051602001611d189190613384565b60405160208183030381529060405280519060200120611e3f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d97906132ca565b60405180910390fd5b5f611ddf6040518060400160405280602081526020017f726f636b657444414f50726f746f636f6c53657474696e67734465706f736974815250611ee0565b90503373ffffffffffffffffffffffffffffffffffffffff167f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d4062791966085129253442604051611e299291906133a5565b60405180910390a2611e3a81611f8a565b505050565b5f5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a721836040518263ffffffff1660e01b8152600401611e9a91906139de565b602060405180830381865afa158015611eb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed99190613a21565b9050919050565b5f5f611f1183604051602001611ef69190613384565b60405160208183030381529060405280519060200120611e3f565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7890613a96565b60405180910390fd5b80915050919050565b7f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff166398ea5fca346040518263ffffffff1660e01b81526004015f604051808303818588803b158015611ff0575f5ffd5b505af1158015612002573d5f5f3e3d5ffd5b5050505050612010816121f7565b5050565b5f5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f5836040518263ffffffff1660e01b815260040161206f91906139de565b602060405180830381865afa15801561208a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ae9190613255565b9050919050565b5f5f82846120c39190613ae1565b905083811015612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff90613b5e565b60405180910390fd5b8091505092915050565b5f82821115612156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214d90613bc6565b60405180910390fd5b81836121629190613be4565b905092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663adb353dc83836040518363ffffffff1660e01b81526004016121c6929190613c17565b5f604051808303815f87803b1580156121dd575f5ffd5b505af11580156121ef573d5f5f3e3d5ffd5b505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166347fa434a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612241573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061226591906133f6565b612271575f9050612344565b5f6122b06040518060400160405280601381526020017f726f636b65744d696e69706f6f6c517565756500000000000000000000000000815250611ee0565b90508073ffffffffffffffffffffffffffffffffffffffff16638ed804536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231f91906133f6565b156123365761232e81846125a1565b915050612344565b6123408184612b23565b9150505b919050565b5f5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca836040518263ffffffff1660e01b81526004016123a491906139de565b602060405180830381865afa1580156123bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123e391906133f6565b9050919050565b5f7f8000000000000000000000000000000000000000000000000000000000000000821061244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613cae565b60405180910390fd5b819050919050565b5f5f82846124639190613ccc565b90505f83121580156124755750838113155b8061248a57505f8312801561248957508381135b5b6124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c090613d7c565b60405180910390fd5b8091505092915050565b5f5f83036124e3575f9050612544565b5f82846124f09190613d9a565b90508284826124ff9190613e08565b1461253f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253690613ea8565b60405180910390fd5b809150505b92915050565b5f5f821161258d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258490613f10565b60405180910390fd5b81836125999190613e08565b905092915050565b5f5f6125c460405180606001604052806021815260200161420760219139611ee0565b90505f6125cf6102a0565b90505f5f90505f8573ffffffffffffffffffffffffffffffffffffffff16633b474a656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126439190613255565b90505f8167ffffffffffffffff8111156126605761265f613f2e565b5b60405190808252806020026020018201604052801561269957816020015b61268661306c565b81526020019060019003908161267e5790505b5090505f5f90505f5f90505f5f90505f5f90505b8581101561291a575f83036127d7578b73ffffffffffffffffffffffffffffffffffffffff166304b5466b6040518163ffffffff1660e01b81526004016040805180830381865afa158015612704573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127289190613f7e565b80945081955050505f600481111561274357612742613fbc565b5b84600481111561275657612755613fbc565b5b031561291a578873ffffffffffffffffffffffffffffffffffffffff166312800c34856040518263ffffffff1660e01b8152600401612795919061402f565b602060405180830381865afa1580156127b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d49190613255565b91505b82806127e290614048565b9350505f821480612804575081612802888a61211290919063ffffffff16565b105b61291a575f8c73ffffffffffffffffffffffffffffffffffffffff1663e99f75c8866040518263ffffffff1660e01b8152600401612842919061402f565b6020604051808303815f875af115801561285e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128829190613a21565b905061289783896120b590919063ffffffff16565b9750828683815181106128ad576128ac61406f565b5b60200260200101516020018181525050808683815181106128d1576128d061406f565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050508060010190506126ad565b505f861115612b11577f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff16633bed33ce876040518263ffffffff1660e01b815260040161297c91906130b2565b5f604051808303815f87803b158015612993575f5ffd5b505af11580156129a5573d5f5f3e3d5ffd5b505050505f5f90505b85811015612b0f575f8582815181106129ca576129c961406f565b5b6020026020010151602001510315612b0f575f8582815181106129f0576129ef61406f565b5b60200260200101515f015190508073ffffffffffffffffffffffffffffffffffffffff166348146113878481518110612a2c57612a2b61406f565b5b6020026020010151602001516040518263ffffffff1660e01b81526004015f604051808303818588803b158015612a61575f5ffd5b505af1158015612a73573d5f5f3e3d5ffd5b5050505050858281518110612a8b57612a8a61406f565b5b60200260200101515f015173ffffffffffffffffffffffffffffffffffffffff167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be9878481518110612ae057612adf61406f565b5b60200260200101516020015142604051612afb9291906133a5565b60405180910390a2508060010190506129ae565b505b60019850505050505050505092915050565b5f5f612b4660405180606001604052806021815260200161420760219139611ee0565b90505f8373ffffffffffffffffffffffffffffffffffffffff16633b474a656040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb69190613255565b90505f8273ffffffffffffffffffffffffffffffffffffffff16633469f7b46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c269190613255565b90505f612c3c823461254a90919063ffffffff16565b90505f612c5983612c4b6102a0565b61254a90919063ffffffff16565b90505f612cdb838973ffffffffffffffffffffffffffffffffffffffff1663f19b41066040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ca9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ccd9190613255565b6120b590919063ffffffff16565b905081811115612ce9578190505b84811115612cf5578490505b5f8973ffffffffffffffffffffffffffffffffffffffff16637e0e497b836040518263ffffffff1660e01b8152600401612d2f91906130b2565b5f604051808303815f875af1158015612d4a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612d7291906141bf565b90505f81511115612fce575f612d928683516124d390919063ffffffff16565b90507f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d673ffffffffffffffffffffffffffffffffffffffff16633bed33ce826040518263ffffffff1660e01b8152600401612ded91906130b2565b5f604051808303815f87803b158015612e04575f5ffd5b505af1158015612e16573d5f5f3e3d5ffd5b505050505f5f90505f5f90505b8351811015612fa0575f848281518110612e4057612e3f61406f565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08a6040518263ffffffff1660e01b81526004015f604051808303818588803b158015612e90575f5ffd5b505af1158015612ea2573d5f5f3e3d5ffd5b5050505050612f268173ffffffffffffffffffffffffffffffffffffffff1663d2ceebd16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ef3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f179190613255565b846120b590919063ffffffff16565b9250848281518110612f3b57612f3a61406f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be98a42604051612f8a9291906133a5565b60405180910390a2508080600101915050612e23565b50612fcb7f6465706f7369742e706f6f6c2e6e6f64652e62616c616e63650000000000000082612fdf565b50505b600197505050505050505092915050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebb9d8c983836040518363ffffffff1660e01b815260040161303b929190613c17565b5f604051808303815f87803b158015613052575f5ffd5b505af1158015613064573d5f5f3e3d5ffd5b505050505050565b60405180604001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f819050919050565b6130ac8161309a565b82525050565b5f6020820190506130c55f8301846130a3565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b6130e58161309a565b81146130ef575f5ffd5b50565b5f81359050613100816130dc565b92915050565b5f6020828403121561311b5761311a6130d4565b5b5f613128848285016130f2565b91505092915050565b5f8115159050919050565b61314581613131565b82525050565b5f60208201905061315e5f83018461313c565b92915050565b5f60ff82169050919050565b61317981613164565b82525050565b5f6020820190506131925f830184613170565b92915050565b5f819050919050565b6131aa81613198565b82525050565b5f6020820190506131c35f8301846131a1565b92915050565b5f82825260208201905092915050565b7f726f636b65744465706f736974506f6f6c0000000000000000000000000000005f82015250565b5f61320d6011836131c9565b9150613218826131d9565b602082019050919050565b5f6020820190508181035f83015261323a81613201565b9050919050565b5f8151905061324f816130dc565b92915050565b5f6020828403121561326a576132696130d4565b5b5f61327784828501613241565b91505092915050565b7f496e76616c6964206f72206f7574646174656420636f6e7472616374000000005f82015250565b5f6132b4601c836131c9565b91506132bf82613280565b602082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b5f81905092915050565b7f636f6e74726163742e61646472657373000000000000000000000000000000005f82015250565b5f6133266010836132e8565b9150613331826132f2565b601082019050919050565b5f81519050919050565b8281835e5f83830152505050565b5f61335e8261333c565b61336881856132e8565b9350613378818560208601613346565b80840191505092915050565b5f61338e8261331a565b915061339a8284613354565b915081905092915050565b5f6040820190506133b85f8301856130a3565b6133c560208301846130a3565b9392505050565b6133d581613131565b81146133df575f5ffd5b50565b5f815190506133f0816133cc565b92915050565b5f6020828403121561340b5761340a6130d4565b5b5f613418848285016133e2565b91505092915050565b7f4465706f7369742061737369676e6d656e7473206172652063757272656e746c5f8201527f792064697361626c656400000000000000000000000000000000000000000000602082015250565b5f61347b602a836131c9565b915061348682613421565b604082019050919050565b5f6020820190508181035f8301526134a88161346f565b9050919050565b5f81905092915050565b50565b5f6134c75f836134af565b91506134d2826134b9565b5f82019050919050565b5f6134e6826134bc565b9150819050919050565b7f4661696c656420746f2073656e642045544800000000000000000000000000005f82015250565b5f6135246012836131c9565b915061352f826134f0565b602082019050919050565b5f6020820190508181035f83015261355181613518565b9050919050565b7f496e73756666696369656e74206578636573732062616c616e636520666f72205f8201527f7769746864726177616c00000000000000000000000000000000000000000000602082015250565b5f6135b2602a836131c9565b91506135bd82613558565b604082019050919050565b5f6020820190508181035f8301526135df816135a6565b9050919050565b7f6d696e69706f6f6c2e65786973747300000000000000000000000000000000005f82015250565b5f61361a600f836132e8565b9150613625826135e6565b600f82019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61365982613630565b9050919050565b5f8160601b9050919050565b5f61367682613660565b9050919050565b5f6136878261366c565b9050919050565b61369f61369a8261364f565b61367d565b82525050565b5f6136af8261360e565b91506136bb828461368e565b60148201915081905092915050565b7f496e76616c6964206d696e69706f6f6c000000000000000000000000000000005f82015250565b5f6136fe6010836131c9565b9150613709826136ca565b602082019050919050565b5f6020820190508181035f83015261372b816136f2565b9050919050565b7f4465706f7369747320696e746f20526f636b657420506f6f6c206172652063755f8201527f7272656e746c792064697361626c656400000000000000000000000000000000602082015250565b5f61378c6030836131c9565b915061379782613732565b604082019050919050565b5f6020820190508181035f8301526137b981613780565b9050919050565b7f546865206465706f736974656420616d6f756e74206973206c657373207468615f8201527f6e20746865206d696e696d756d206465706f7369742073697a65000000000000602082015250565b5f61381a603a836131c9565b9150613825826137c0565b604082019050919050565b5f6020820190508181035f8301526138478161380e565b9050919050565b7f546865206465706f73697420706f6f6c2073697a65206166746572206465706f5f8201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60208201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000604082015250565b5f6138ce605d836131c9565b91506138d98261384e565b606082019050919050565b5f6020820190508181035f8301526138fb816138c2565b9050919050565b7f546865206465706f73697420706f6f6c2073697a65206166746572206465706f5f8201527f736974696e67206578636565647320746865206d6178696d756d2073697a6500602082015250565b5f61395c603f836131c9565b915061396782613902565b604082019050919050565b5f6020820190508181035f83015261398981613950565b9050919050565b6139998161364f565b82525050565b5f6040820190506139b25f8301856130a3565b6139bf6020830184613990565b9392505050565b5f819050919050565b6139d8816139c6565b82525050565b5f6020820190506139f15f8301846139cf565b92915050565b613a008161364f565b8114613a0a575f5ffd5b50565b5f81519050613a1b816139f7565b92915050565b5f60208284031215613a3657613a356130d4565b5b5f613a4384828501613a0d565b91505092915050565b7f436f6e7472616374206e6f7420666f756e6400000000000000000000000000005f82015250565b5f613a806012836131c9565b9150613a8b82613a4c565b602082019050919050565b5f6020820190508181035f830152613aad81613a74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aeb8261309a565b9150613af68361309a565b9250828201905080821115613b0e57613b0d613ab4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b48601b836131c9565b9150613b5382613b14565b602082019050919050565b5f6020820190508181035f830152613b7581613b3c565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f613bb0601e836131c9565b9150613bbb82613b7c565b602082019050919050565b5f6020820190508181035f830152613bdd81613ba4565b9050919050565b5f613bee8261309a565b9150613bf98361309a565b9250828203905081811115613c1157613c10613ab4565b5b92915050565b5f604082019050613c2a5f8301856139cf565b613c3760208301846130a3565b9392505050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e20615f8201527f6e20696e74323536000000000000000000000000000000000000000000000000602082015250565b5f613c986028836131c9565b9150613ca382613c3e565b604082019050919050565b5f6020820190508181035f830152613cc581613c8c565b9050919050565b5f613cd682613198565b9150613ce183613198565b925082820390508181125f8412168282135f851215161715613d0657613d05613ab4565b5b92915050565b7f5369676e6564536166654d6174683a207375627472616374696f6e206f7665725f8201527f666c6f7700000000000000000000000000000000000000000000000000000000602082015250565b5f613d666024836131c9565b9150613d7182613d0c565b604082019050919050565b5f6020820190508181035f830152613d9381613d5a565b9050919050565b5f613da48261309a565b9150613daf8361309a565b9250828202613dbd8161309a565b91508282048414831517613dd457613dd3613ab4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e128261309a565b9150613e1d8361309a565b925082613e2d57613e2c613ddb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e926021836131c9565b9150613e9d82613e38565b604082019050919050565b5f6020820190508181035f830152613ebf81613e86565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f613efa601a836131c9565b9150613f0582613ec6565b602082019050919050565b5f6020820190508181035f830152613f2781613eee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60058110613f67575f5ffd5b50565b5f81519050613f7881613f5b565b92915050565b5f5f60408385031215613f9457613f936130d4565b5b5f613fa185828601613f6a565b9250506020613fb285828601613241565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110613ffa57613ff9613fbc565b5b50565b5f81905061400a82613fe9565b919050565b5f61401982613ffd565b9050919050565b6140298161400f565b82525050565b5f6020820190506140425f830184614020565b92915050565b5f6140528261309a565b91505f820361406457614063613ab4565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f601f19601f8301169050919050565b6140b9826140a0565b810181811067ffffffffffffffff821117156140d8576140d7613f2e565b5b80604052505050565b5f6140ea6130cb565b90506140f682826140b0565b919050565b5f67ffffffffffffffff82111561411557614114613f2e565b5b602082029050602081019050919050565b5f5ffd5b5f61413c614137846140fb565b6140e1565b9050808382526020820190506020840283018581111561415f5761415e614126565b5b835b8181101561418857806141748882613a0d565b845260208401935050602081019050614161565b5050509392505050565b5f82601f8301126141a6576141a561409c565b5b81516141b684826020860161412a565b91505092915050565b5f602082840312156141d4576141d36130d4565b5b5f82015167ffffffffffffffff8111156141f1576141f06130d8565b5b6141fd84828501614192565b9150509291505056fe726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f6c