60806040523480156200001157600080fd5b5060405162001ad438038062001ad48339818101604052810190620000379190620001fa565b818181600390816200004a9190620004ca565b5080600490816200005c9190620004ca565b5050505050620005b1565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000d08262000085565b810181811067ffffffffffffffff82111715620000f257620000f162000096565b5b80604052505050565b60006200010762000067565b9050620001158282620000c5565b919050565b600067ffffffffffffffff82111562000138576200013762000096565b5b620001438262000085565b9050602081019050919050565b60005b838110156200017057808201518184015260208101905062000153565b60008484015250505050565b6000620001936200018d846200011a565b620000fb565b905082815260208101848484011115620001b257620001b162000080565b5b620001bf84828562000150565b509392505050565b600082601f830112620001df57620001de6200007b565b5b8151620001f18482602086016200017c565b91505092915050565b6000806040838503121562000214576200021362000071565b5b600083015167ffffffffffffffff81111562000235576200023462000076565b5b6200024385828601620001c7565b925050602083015167ffffffffffffffff81111562000267576200026662000076565b5b6200027585828601620001c7565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002d257607f821691505b602082108103620002e857620002e76200028a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000313565b6200035e868362000313565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003ab620003a56200039f8462000376565b62000380565b62000376565b9050919050565b6000819050919050565b620003c7836200038a565b620003df620003d682620003b2565b84845462000320565b825550505050565b600090565b620003f6620003e7565b62000403818484620003bc565b505050565b5b818110156200042b576200041f600082620003ec565b60018101905062000409565b5050565b601f8211156200047a576200044481620002ee565b6200044f8462000303565b810160208510156200045f578190505b620004776200046e8562000303565b83018262000408565b50505b505050565b600082821c905092915050565b60006200049f600019846008026200047f565b1980831691505092915050565b6000620004ba83836200048c565b9150826002028217905092915050565b620004d5826200027f565b67ffffffffffffffff811115620004f157620004f062000096565b5b620004fd8254620002b9565b6200050a8282856200042f565b600060209050601f8311600181146200054257600084156200052d578287015190505b620005398582620004ac565b865550620005a9565b601f1984166200055286620002ee565b60005b828110156200057c5784890151825560018201915060208501945060208101905062000555565b868310156200059c578489015162000598601f8916826200048c565b8355505b6001600288020188555050505b505050505050565b61151380620005c16000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806395d89b41146101d3578063a457c2d7146101f1578063a9059cbb14610221578063dd62ed3e14610251578063de5f72fd14610281576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161028b565b6040516100ce9190610d84565b60405180910390f35b6100f160048036038101906100ec9190610e3f565b61031d565b6040516100fe9190610e9a565b60405180910390f35b61010f610340565b60405161011c9190610ec4565b60405180910390f35b61013f600480360381019061013a9190610edf565b61034a565b60405161014c9190610e9a565b60405180910390f35b61015d610379565b60405161016a9190610f4e565b60405180910390f35b61018d60048036038101906101889190610e3f565b610382565b60405161019a9190610e9a565b60405180910390f35b6101bd60048036038101906101b89190610f69565b61042c565b6040516101ca9190610ec4565b60405180910390f35b6101db610474565b6040516101e89190610d84565b60405180910390f35b61020b60048036038101906102069190610e3f565b610506565b6040516102189190610e9a565b60405180910390f35b61023b60048036038101906102369190610e3f565b6105f0565b6040516102489190610e9a565b60405180910390f35b61026b60048036038101906102669190610f96565b610613565b6040516102789190610ec4565b60405180910390f35b61028961069a565b005b60606003805461029a90611005565b80601f01602080910402602001604051908101604052809291908181526020018280546102c690611005565b80156103135780601f106102e857610100808354040283529160200191610313565b820191906000526020600020905b8154815290600101906020018083116102f657829003601f168201915b5050505050905090565b6000806103286106af565b90506103358185856106b7565b600191505092915050565b6000600254905090565b6000806103556106af565b9050610362858285610880565b61036d85858561090c565b60019150509392505050565b60006012905090565b60008061038d6106af565b9050610421818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461041c9190611065565b6106b7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461048390611005565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611005565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b5050505050905090565b6000806105116106af565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156105d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ce9061110b565b60405180910390fd5b6105e482868684036106b7565b60019250505092915050565b6000806105fb6106af565b905061060881858561090c565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6106ad33683635c9adc5dea00000610b8b565b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d9061119d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061122f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108739190610ec4565b60405180910390a3505050565b600061088c8484610613565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461090657818110156108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef9061129b565b60405180910390fd5b61090584848484036106b7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361097b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109729061132d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906113bf565b60405180910390fd5b6109f5838383610cea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290611451565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b0e9190611065565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b729190610ec4565b60405180910390a3610b85848484610cef565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906114bd565b60405180910390fd5b610c0660008383610cea565b8060026000828254610c189190611065565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c6d9190611065565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cd29190610ec4565b60405180910390a3610ce660008383610cef565b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d2e578082015181840152602081019050610d13565b60008484015250505050565b6000601f19601f8301169050919050565b6000610d5682610cf4565b610d608185610cff565b9350610d70818560208601610d10565b610d7981610d3a565b840191505092915050565b60006020820190508181036000830152610d9e8184610d4b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610dd682610dab565b9050919050565b610de681610dcb565b8114610df157600080fd5b50565b600081359050610e0381610ddd565b92915050565b6000819050919050565b610e1c81610e09565b8114610e2757600080fd5b50565b600081359050610e3981610e13565b92915050565b60008060408385031215610e5657610e55610da6565b5b6000610e6485828601610df4565b9250506020610e7585828601610e2a565b9150509250929050565b60008115159050919050565b610e9481610e7f565b82525050565b6000602082019050610eaf6000830184610e8b565b92915050565b610ebe81610e09565b82525050565b6000602082019050610ed96000830184610eb5565b92915050565b600080600060608486031215610ef857610ef7610da6565b5b6000610f0686828701610df4565b9350506020610f1786828701610df4565b9250506040610f2886828701610e2a565b9150509250925092565b600060ff82169050919050565b610f4881610f32565b82525050565b6000602082019050610f636000830184610f3f565b92915050565b600060208284031215610f7f57610f7e610da6565b5b6000610f8d84828501610df4565b91505092915050565b60008060408385031215610fad57610fac610da6565b5b6000610fbb85828601610df4565b9250506020610fcc85828601610df4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061101d57607f821691505b6020821081036110305761102f610fd6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061107082610e09565b915061107b83610e09565b925082820190508082111561109357611092611036565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006110f5602583610cff565b915061110082611099565b604082019050919050565b60006020820190508181036000830152611124816110e8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611187602483610cff565b91506111928261112b565b604082019050919050565b600060208201905081810360008301526111b68161117a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611219602283610cff565b9150611224826111bd565b604082019050919050565b600060208201905081810360008301526112488161120c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611285601d83610cff565b91506112908261124f565b602082019050919050565b600060208201905081810360008301526112b481611278565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611317602583610cff565b9150611322826112bb565b604082019050919050565b600060208201905081810360008301526113468161130a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006113a9602383610cff565b91506113b48261134d565b604082019050919050565b600060208201905081810360008301526113d88161139c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061143b602683610cff565b9150611446826113df565b604082019050919050565b6000602082019050818103600083015261146a8161142e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006114a7601f83610cff565b91506114b282611471565b602082019050919050565b600060208201905081810360008301526114d68161149a565b905091905056fea264697066735822122069387e909f36446a630d7cd6c1524219f9ac6a71040dd17767921d50d4c1468964736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a5465737420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025454000000000000000000000000000000000000000000000000000000000000