0x60c06040523480156200001157600080fd5b50604051620014f6380380620014f68339818101604052810190620000379190620001ab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a1906200023e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504360a081815250505062000260565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200015f8262000132565b9050919050565b6000620001738262000152565b9050919050565b620001858162000166565b81146200019157600080fd5b50565b600081519050620001a5816200017a565b92915050565b600060208284031215620001c457620001c36200012d565b5b6000620001d48482850162000194565b91505092915050565b600082825260208201905092915050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b600062000226601583620001dd565b91506200023382620001ee565b602082019050919050565b60006020820190508181036000830152620002598162000217565b9050919050565b60805160a05161124d620002a9600039600061034e0152600081816102150152818161039b015281816103bc01528181610458015281816106430152610933015261124d6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b0e5f3b51161005b578063b0e5f3b5146100ee578063bef54a5e14610120578063f2fde38b14610150578063fc0c546a1461016c5761007d565b80634d725e95146100825780635d05125b146100b25780638da5cb5b146100d0575b600080fd5b61009c60048036038101906100979190610ae5565b61018a565b6040516100a99190610b5c565b60405180910390f35b6100ba61034c565b6040516100c79190610b86565b60405180910390f35b6100d8610370565b6040516100e59190610be2565b60405180910390f35b61010860048036038101906101039190610c29565b610394565b60405161011793929190610cb5565b60405180910390f35b61013a60048036038101906101359190610cec565b6104fd565b6040516101479190610b5c565b60405180910390f35b61016a60048036038101906101659190610c29565b610776565b005b610174610931565b6040516101819190610d2c565b60405180910390f35b60008083116101ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c590610da4565b60405180910390fd5b600082511415610213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020a90610e10565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161027093929190610e30565b6020604051808303816000875af115801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190610e93565b6102f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e990610f0c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f32cc001a75a8344f65811cb1e27c1fa59f49ae8279b0b27924359b99b41aff87848460405161033a929190610fa3565b60405180910390a26001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e86306040518363ffffffff1660e01b8152600401610415929190610fd3565b602060405180830381865afa158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190611011565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016104af9190610be2565b602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f09190611011565b9250925092509193909250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105859061108a565b60405180910390fd5b600082116105d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c890610da4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610641576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610638906110f6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161069c929190611116565b6020604051808303816000875af11580156106bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190610e93565b61071e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107159061118b565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167feb9df064f68e905565a2656b40e16dd2df0c9c21d72fda0d3a97de56f826f3d8836040516107649190610b86565b60405180910390a26001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb9061108a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b906111f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61097c81610969565b811461098757600080fd5b50565b60008135905061099981610973565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6109f2826109a9565b810181811067ffffffffffffffff82111715610a1157610a106109ba565b5b80604052505050565b6000610a24610955565b9050610a3082826109e9565b919050565b600067ffffffffffffffff821115610a5057610a4f6109ba565b5b610a59826109a9565b9050602081019050919050565b82818337600083830152505050565b6000610a88610a8384610a35565b610a1a565b905082815260208101848484011115610aa457610aa36109a4565b5b610aaf848285610a66565b509392505050565b600082601f830112610acc57610acb61099f565b5b8135610adc848260208601610a75565b91505092915050565b60008060408385031215610afc57610afb61095f565b5b6000610b0a8582860161098a565b925050602083013567ffffffffffffffff811115610b2b57610b2a610964565b5b610b3785828601610ab7565b9150509250929050565b60008115159050919050565b610b5681610b41565b82525050565b6000602082019050610b716000830184610b4d565b92915050565b610b8081610969565b82525050565b6000602082019050610b9b6000830184610b77565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bcc82610ba1565b9050919050565b610bdc81610bc1565b82525050565b6000602082019050610bf76000830184610bd3565b92915050565b610c0681610bc1565b8114610c1157600080fd5b50565b600081359050610c2381610bfd565b92915050565b600060208284031215610c3f57610c3e61095f565b5b6000610c4d84828501610c14565b91505092915050565b6000819050919050565b6000610c7b610c76610c7184610ba1565b610c56565b610ba1565b9050919050565b6000610c8d82610c60565b9050919050565b6000610c9f82610c82565b9050919050565b610caf81610c94565b82525050565b6000606082019050610cca6000830186610ca6565b610cd76020830185610b77565b610ce46040830184610b77565b949350505050565b60008060408385031215610d0357610d0261095f565b5b6000610d1185828601610c14565b9250506020610d228582860161098a565b9150509250929050565b6000602082019050610d416000830184610ca6565b92915050565b600082825260208201905092915050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000610d8e600c83610d47565b9150610d9982610d58565b602082019050919050565b60006020820190508181036000830152610dbd81610d81565b9050919050565b7f496e636f72726563742074617267657400000000000000000000000000000000600082015250565b6000610dfa601083610d47565b9150610e0582610dc4565b602082019050919050565b60006020820190508181036000830152610e2981610ded565b9050919050565b6000606082019050610e456000830186610bd3565b610e526020830185610bd3565b610e5f6040830184610b77565b949350505050565b610e7081610b41565b8114610e7b57600080fd5b50565b600081519050610e8d81610e67565b92915050565b600060208284031215610ea957610ea861095f565b5b6000610eb784828501610e7e565b91505092915050565b7f4661696c656420746f207472616e7366657246726f6d00000000000000000000600082015250565b6000610ef6601683610d47565b9150610f0182610ec0565b602082019050919050565b60006020820190508181036000830152610f2581610ee9565b9050919050565b600081519050919050565b60005b83811015610f55578082015181840152602081019050610f3a565b83811115610f64576000848401525b50505050565b6000610f7582610f2c565b610f7f8185610d47565b9350610f8f818560208601610f37565b610f98816109a9565b840191505092915050565b6000604082019050610fb86000830185610b77565b8181036020830152610fca8184610f6a565b90509392505050565b6000604082019050610fe86000830185610bd3565b610ff56020830184610bd3565b9392505050565b60008151905061100b81610973565b92915050565b6000602082840312156110275761102661095f565b5b600061103584828501610ffc565b91505092915050565b7f46756e6374696f6e207265737472696374656420746f206f776e657200000000600082015250565b6000611074601c83610d47565b915061107f8261103e565b602082019050919050565b600060208201905081810360008301526110a381611067565b9050919050565b7f496e636f727265637420726563697069656e7400000000000000000000000000600082015250565b60006110e0601383610d47565b91506110eb826110aa565b602082019050919050565b6000602082019050818103600083015261110f816110d3565b9050919050565b600060408201905061112b6000830185610bd3565b6111386020830184610b77565b9392505050565b7f4661696c656420746f207472616e736665720000000000000000000000000000600082015250565b6000611175601283610d47565b91506111808261113f565b602082019050919050565b600060208201905081810360008301526111a481611168565b9050919050565b7f496e76616c6964205f6e65774f776e6572206164647265737300000000000000600082015250565b60006111e1601983610d47565b91506111ec826111ab565b602082019050919050565b60006020820190508181036000830152611210816111d4565b905091905056fea26469706673582212205ba1e5c11fcd44a3d9c77785080ef410bc7631a4b81cfb560ffba3d882b9452464736f6c634300080b003300000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51