608060405234801562000010575f80fd5b50601260ff16600a62000024919062000201565b63bc19138062000035919062000251565b5f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200029b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200010557808604811115620000dd57620000dc6200007b565b5b6001851615620000ed5780820291505b8081029050620000fd85620000a8565b9450620000bd565b94509492505050565b5f826200011f5760019050620001f1565b816200012e575f9050620001f1565b8160018114620001475760028114620001525762000188565b6001915050620001f1565b60ff8411156200016757620001666200007b565b5b8360020a9150848211156200018157620001806200007b565b5b50620001f1565b5060208310610133831016604e8410600b8410161715620001c25782820a905083811115620001bc57620001bb6200007b565b5b620001f1565b620001d18484846001620000b4565b92509050818404811115620001eb57620001ea6200007b565b5b81810290505b9392505050565b5f819050919050565b5f6200020d82620001f8565b91506200021a83620001f8565b9250620002497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200010e565b905092915050565b5f6200025d82620001f8565b91506200026a83620001f8565b92508282026200027a81620001f8565b915082820484148315176200029457620002936200007b565b5b5092915050565b6111c680620002a95f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610b6c565b60405180910390f35b6100cd60048036038101906100c89190610c1d565b610236565b6040516100da9190610c75565b60405180910390f35b6100eb610323565b6040516100f89190610c9d565b60405180910390f35b61011b60048036038101906101169190610cb6565b610346565b6040516101289190610c75565b60405180910390f35b610139610716565b6040516101469190610d21565b60405180910390f35b61016960048036038101906101649190610d3a565b61071b565b6040516101769190610c9d565b60405180910390f35b610187610760565b6040516101949190610b6c565b60405180910390f35b6101b760048036038101906101b29190610c1d565b610799565b6040516101c49190610c75565b60405180910390f35b6101e760048036038101906101e29190610d65565b6109a6565b6040516101f49190610c9d565b60405180910390f35b6040518060400160405280600f81526020017f49726f6e636c61642043727970746f000000000000000000000000000000000081525081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103119190610c9d565b60405180910390a36001905092915050565b601260ff16600a6103349190610eff565b63bc1913806103439190610f49565b81565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156103c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bd90610fd4565b60405180910390fd5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610481576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104789061103c565b60405180910390fd5b6104d0825f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2890919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061055f825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a8590919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061062a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107039190610c9d565b60405180910390a3600190509392505050565b601281565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6040518060400160405280600281526020017f494300000000000000000000000000000000000000000000000000000000000081525081565b5f805f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081090610fd4565b60405180910390fd5b610868825f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2890919063ffffffff16565b5f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506108f7825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a8590919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109949190610c9d565b60405180910390a36001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82821115610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906110a4565b60405180910390fd5b5f8284610a7991906110c2565b90508091505092915050565b5f808284610a9391906110f5565b905083811015610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90611172565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610b19578082015181840152602081019050610afe565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610b3e82610ae2565b610b488185610aec565b9350610b58818560208601610afc565b610b6181610b24565b840191505092915050565b5f6020820190508181035f830152610b848184610b34565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bb982610b90565b9050919050565b610bc981610baf565b8114610bd3575f80fd5b50565b5f81359050610be481610bc0565b92915050565b5f819050919050565b610bfc81610bea565b8114610c06575f80fd5b50565b5f81359050610c1781610bf3565b92915050565b5f8060408385031215610c3357610c32610b8c565b5b5f610c4085828601610bd6565b9250506020610c5185828601610c09565b9150509250929050565b5f8115159050919050565b610c6f81610c5b565b82525050565b5f602082019050610c885f830184610c66565b92915050565b610c9781610bea565b82525050565b5f602082019050610cb05f830184610c8e565b92915050565b5f805f60608486031215610ccd57610ccc610b8c565b5b5f610cda86828701610bd6565b9350506020610ceb86828701610bd6565b9250506040610cfc86828701610c09565b9150509250925092565b5f60ff82169050919050565b610d1b81610d06565b82525050565b5f602082019050610d345f830184610d12565b92915050565b5f60208284031215610d4f57610d4e610b8c565b5b5f610d5c84828501610bd6565b91505092915050565b5f8060408385031215610d7b57610d7a610b8c565b5b5f610d8885828601610bd6565b9250506020610d9985828601610bd6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610e2557808604811115610e0157610e00610da3565b5b6001851615610e105780820291505b8081029050610e1e85610dd0565b9450610de5565b94509492505050565b5f82610e3d5760019050610ef8565b81610e4a575f9050610ef8565b8160018114610e605760028114610e6a57610e99565b6001915050610ef8565b60ff841115610e7c57610e7b610da3565b5b8360020a915084821115610e9357610e92610da3565b5b50610ef8565b5060208310610133831016604e8410600b8410161715610ece5782820a905083811115610ec957610ec8610da3565b5b610ef8565b610edb8484846001610ddc565b92509050818404811115610ef257610ef1610da3565b5b81810290505b9392505050565b5f610f0982610bea565b9150610f1483610bea565b9250610f417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610e2e565b905092915050565b5f610f5382610bea565b9150610f5e83610bea565b9250828202610f6c81610bea565b91508282048414831517610f8357610f82610da3565b5b5092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610fbe601483610aec565b9150610fc982610f8a565b602082019050919050565b5f6020820190508181035f830152610feb81610fb2565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f611026601683610aec565b915061103182610ff2565b602082019050919050565b5f6020820190508181035f8301526110538161101a565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f61108e601e83610aec565b91506110998261105a565b602082019050919050565b5f6020820190508181035f8301526110bb81611082565b9050919050565b5f6110cc82610bea565b91506110d783610bea565b92508282039050818111156110ef576110ee610da3565b5b92915050565b5f6110ff82610bea565b915061110a83610bea565b925082820190508082111561112257611121610da3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61115c601b83610aec565b915061116782611128565b602082019050919050565b5f6020820190508181035f83015261118981611150565b905091905056fea2646970667358221220ea105f9de52c83a459da109fdb99d89d51c3372f89738a51ae51cc935402dc6564736f6c63430008160033