0x60806040523480156200001157600080fd5b50600060019054906101000a900460ff166200003c5760008054906101000a900460ff16156200004d565b6200004c6200010960201b60201c565b5b6200008f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008690620001d1565b60405180910390fd5b60008060019054906101000a900460ff161590508015620000e0576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015620001025760008060016101000a81548160ff0219169083151502179055505b50620001f3565b600062000121306200012760201b6200062a1760201c565b15905090565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000620001b9602e836200014a565b9150620001c6826200015b565b604082019050919050565b60006020820190508181036000830152620001ec81620001aa565b9050919050565b611e1780620002036000396000f3fe6080604052600436106100705760003560e01c8063ac9650d81161004e578063ac9650d8146100f4578063c4d66de814610131578063cb2ef6f71461015a578063e4485ca41461018557610070565b806313af4035146100755780638da5cb5b1461009e578063a0a8e460146100c9575b600080fd5b34801561008157600080fd5b5061009c60048036038101906100979190610f4a565b6101a1565b005b3480156100aa57600080fd5b506100b36101f4565b6040516100c09190610f86565b60405180910390f35b3480156100d557600080fd5b506100de61021d565b6040516100eb9190610fbd565b60405180910390f35b34801561010057600080fd5b5061011b6004803603810190610116919061103d565b610226565b60405161012891906111e5565b60405180910390f35b34801561013d57600080fd5b5061015860048036038101906101539190610f4a565b610332565b005b34801561016657600080fd5b5061016f610428565b60405161017c9190611220565b60405180910390f35b61019f600480360381019061019a9190611472565b610450565b005b6101a961064d565b6101e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101df9061156e565b60405180910390fd5b6101f18161068a565b50565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006001905090565b60608282905067ffffffffffffffff8111156102455761024461123b565b5b60405190808252806020026020018201604052801561027857816020015b60608152602001906001900390816102635790505b50905060005b8383905081101561032b576102fa308585848181106102a05761029f61158e565b5b90506020028101906102b291906115cc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061074f565b82828151811061030d5761030c61158e565b5b602002602001018190525080806103239061165e565b91505061027e565b5092915050565b600060019054906101000a900460ff1661035a5760008054906101000a900460ff1615610363565b610362610833565b5b6103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039990611718565b60405180910390fd5b60008060019054906101000a900460ff1615905080156103f2576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6103fb8261068a565b610403610844565b80156104245760008060016101000a81548160ff0219169083151502179055505b5050565b60007f41697264726f7045524332300000000000000000000000000000000000000000905090565b600260015403610495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048c90611784565b60405180910390fd5b6002600181905550600081519050825181146104e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dd906117f0565b60405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036105bd57600080600090505b82811015610578578381815181106105505761054f61158e565b5b6020026020010151826105639190611810565b915080806105709061165e565b915050610535565b503481146105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b2906118b2565b60405180910390fd5b505b60005b8181101561061b5761060886868684815181106105e0576105df61158e565b5b60200260200101518685815181106105fb576105fa61158e565b5b602002602001015161089d565b80806106139061165e565b9150506105c0565b50506001808190555050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60006106576101f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a35050565b606061075a8361062a565b610799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079090611944565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516107c191906119a0565b600060405180830381855af49150503d80600081146107fc576040519150601f19603f3d011682016040523d82523d6000602084013e610801565b606091505b50915091506108298282604051806060016040528060278152602001611dbb60279139610910565b9250505092915050565b600061083e3061062a565b15905090565b600060019054906101000a900460ff16610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a90611a29565b60405180910390fd5b61089b610977565b565b600081031561090a5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036108fc576108f782826109cf565b610909565b61090884848484610a80565b5b5b50505050565b6060831561092057829050610970565b6000835111156109335782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109679190611a8d565b60405180910390fd5b9392505050565b600060019054906101000a900460ff166109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90611a29565b60405180910390fd5b60018081905550565b60008273ffffffffffffffffffffffffffffffffffffffff16826040516109f590611ad5565b60006040518083038185875af1925050503d8060008114610a32576040519150601f19603f3d011682016040523d82523d6000602084013e610a37565b606091505b5050905080610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290611b36565b60405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160315610b46573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b1757610b1282828673ffffffffffffffffffffffffffffffffffffffff16610b4c9092919063ffffffff16565b610b45565b610b448383838773ffffffffffffffffffffffffffffffffffffffff16610bd2909392919063ffffffff16565b5b5b50505050565b610bcd8363a9059cbb60e01b8484604051602401610b6b929190611b65565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610c5b565b505050565b610c55846323b872dd60e01b858585604051602401610bf393929190611b8e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610c5b565b50505050565b6000610cbd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d229092919063ffffffff16565b9050600081511115610d1d5780806020019051810190610cdd9190611bfd565b610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390611c9c565b60405180910390fd5b5b505050565b6060610d318484600085610d3a565b90509392505050565b606082471015610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690611d2e565b60405180910390fd5b610d8885610e4e565b610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90611d9a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610df091906119a0565b60006040518083038185875af1925050503d8060008114610e2d576040519150601f19603f3d011682016040523d82523d6000602084013e610e32565b606091505b5091509150610e42828286610e71565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610e8157829050610ed1565b600083511115610e945782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec89190611a8d565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f1782610eec565b9050919050565b610f2781610f0c565b8114610f3257600080fd5b50565b600081359050610f4481610f1e565b92915050565b600060208284031215610f6057610f5f610ee2565b5b6000610f6e84828501610f35565b91505092915050565b610f8081610f0c565b82525050565b6000602082019050610f9b6000830184610f77565b92915050565b600060ff82169050919050565b610fb781610fa1565b82525050565b6000602082019050610fd26000830184610fae565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610ffd57610ffc610fd8565b5b8235905067ffffffffffffffff81111561101a57611019610fdd565b5b60208301915083602082028301111561103657611035610fe2565b5b9250929050565b6000806020838503121561105457611053610ee2565b5b600083013567ffffffffffffffff81111561107257611071610ee7565b5b61107e85828601610fe7565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156110f05780820151818401526020810190506110d5565b838111156110ff576000848401525b50505050565b6000601f19601f8301169050919050565b6000611121826110b6565b61112b81856110c1565b935061113b8185602086016110d2565b61114481611105565b840191505092915050565b600061115b8383611116565b905092915050565b6000602082019050919050565b600061117b8261108a565b6111858185611095565b935083602082028501611197856110a6565b8060005b858110156111d357848403895281516111b4858261114f565b94506111bf83611163565b925060208a0199505060018101905061119b565b50829750879550505050505092915050565b600060208201905081810360008301526111ff8184611170565b905092915050565b6000819050919050565b61121a81611207565b82525050565b60006020820190506112356000830184611211565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61127382611105565b810181811067ffffffffffffffff821117156112925761129161123b565b5b80604052505050565b60006112a5610ed8565b90506112b1828261126a565b919050565b600067ffffffffffffffff8211156112d1576112d061123b565b5b602082029050602081019050919050565b60006112f56112f0846112b6565b61129b565b9050808382526020820190506020840283018581111561131857611317610fe2565b5b835b81811015611341578061132d8882610f35565b84526020840193505060208101905061131a565b5050509392505050565b600082601f8301126113605761135f610fd8565b5b81356113708482602086016112e2565b91505092915050565b600067ffffffffffffffff8211156113945761139361123b565b5b602082029050602081019050919050565b6000819050919050565b6113b8816113a5565b81146113c357600080fd5b50565b6000813590506113d5816113af565b92915050565b60006113ee6113e984611379565b61129b565b9050808382526020820190506020840283018581111561141157611410610fe2565b5b835b8181101561143a578061142688826113c6565b845260208401935050602081019050611413565b5050509392505050565b600082601f83011261145957611458610fd8565b5b81356114698482602086016113db565b91505092915050565b6000806000806080858703121561148c5761148b610ee2565b5b600061149a87828801610f35565b94505060206114ab87828801610f35565b935050604085013567ffffffffffffffff8111156114cc576114cb610ee7565b5b6114d88782880161134b565b925050606085013567ffffffffffffffff8111156114f9576114f8610ee7565b5b61150587828801611444565b91505092959194509250565b600082825260208201905092915050565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000611558600e83611511565b915061156382611522565b602082019050919050565b600060208201905081810360008301526115878161154b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126115e9576115e86115bd565b5b80840192508235915067ffffffffffffffff82111561160b5761160a6115c2565b5b602083019250600182023603831315611627576116266115c7565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611669826113a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361169b5761169a61162f565b5b600182019050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000611702602e83611511565b915061170d826116a6565b604082019050919050565b60006020820190508181036000830152611731816116f5565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061176e601f83611511565b915061177982611738565b602082019050919050565b6000602082019050818103600083015261179d81611761565b9050919050565b7f6c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b60006117da600f83611511565b91506117e5826117a4565b602082019050919050565b60006020820190508181036000830152611809816117cd565b9050919050565b600061181b826113a5565b9150611826836113a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561185b5761185a61162f565b5b828201905092915050565b7f496e636f7272656374206e617469766520746f6b656e20616d6f756e74000000600082015250565b600061189c601d83611511565b91506118a782611866565b602082019050919050565b600060208201905081810360008301526118cb8161188f565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b600061192e602683611511565b9150611939826118d2565b604082019050919050565b6000602082019050818103600083015261195d81611921565b9050919050565b600081905092915050565b600061197a826110b6565b6119848185611964565b93506119948185602086016110d2565b80840191505092915050565b60006119ac828461196f565b915081905092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000611a13602b83611511565b9150611a1e826119b7565b604082019050919050565b60006020820190508181036000830152611a4281611a06565b9050919050565b600081519050919050565b6000611a5f82611a49565b611a698185611511565b9350611a798185602086016110d2565b611a8281611105565b840191505092915050565b60006020820190508181036000830152611aa78184611a54565b905092915050565b50565b6000611abf600083611964565b9150611aca82611aaf565b600082019050919050565b6000611ae082611ab2565b9150819050919050565b7f6e617469766520746f6b656e207472616e73666572206661696c656400000000600082015250565b6000611b20601c83611511565b9150611b2b82611aea565b602082019050919050565b60006020820190508181036000830152611b4f81611b13565b9050919050565b611b5f816113a5565b82525050565b6000604082019050611b7a6000830185610f77565b611b876020830184611b56565b9392505050565b6000606082019050611ba36000830186610f77565b611bb06020830185610f77565b611bbd6040830184611b56565b949350505050565b60008115159050919050565b611bda81611bc5565b8114611be557600080fd5b50565b600081519050611bf781611bd1565b92915050565b600060208284031215611c1357611c12610ee2565b5b6000611c2184828501611be8565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611c86602a83611511565b9150611c9182611c2a565b604082019050919050565b60006020820190508181036000830152611cb581611c79565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000611d18602683611511565b9150611d2382611cbc565b604082019050919050565b60006020820190508181036000830152611d4781611d0b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611d84601d83611511565b9150611d8f82611d4e565b602082019050919050565b60006020820190508181036000830152611db381611d77565b905091905056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f8597f6ddd593d5e41d0f7d04d27024245c41277834217005837950f1c5423a964736f6c634300080e0033