60a06040526001600660156101000a81548160ff0219169083151502179055506d013b8b5b5056e16b3be0400000006007556d013b8b5b5056e16b3be0400000006008556c01431e0fae6d7217caa00000006009556c0e3312306a4f438ba788000000600a556001600b557331aa6f19c00fb43114bc3acd5c0e525df9e7eaa8600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000cc57600080fd5b506040518060400160405280600a81526020017f536b756e6b20436f696e000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f534b554e4b00000000000000000000000000000000000000000000000000000081525081600390805190602001906200015192919062000c5c565b5080600490805190602001906200016a92919062000c5c565b5050506200018d62000181620006da60201b60201c565b620006e260201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ef57600080fd5b505afa15801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a919062000d76565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028d57600080fd5b505afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000d76565b6040518363ffffffff1660e01b8152600401620002e792919062000db9565b602060405180830381600087803b1580156200030257600080fd5b505af115801562000317573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033d919062000d76565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620003c7816001620007a860201b60201c565b620003e9620003db620008df60201b60201c565b60016200090960201b60201c565b6200041e600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200090960201b60201c565b620004313060016200090960201b60201c565b6001600e600062000447620008df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600062000580620008df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006d2620006b7620008df60201b60201c565b6d013b8b5b5056e16b3be04000000062000ad960201b60201c565b50506200116e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156200083e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008359062000e6d565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000919620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200093f620008df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200098f9062000edf565b60405180910390fd5b801515600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141562000a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a259062000f77565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000acd919062000fb6565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b439062001023565b60405180910390fd5b62000b606000838362000c5260201b60201c565b806002600082825462000b7491906200107e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000bcb91906200107e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c329190620010ec565b60405180910390a362000c4e6000838362000c5760201b60201c565b5050565b505050565b505050565b82805462000c6a9062001138565b90600052602060002090601f01602090048101928262000c8e576000855562000cda565b82601f1062000ca957805160ff191683800117855562000cda565b8280016001018555821562000cda579182015b8281111562000cd957825182559160200191906001019062000cbc565b5b50905062000ce9919062000ced565b5090565b5b8082111562000d0857600081600090555060010162000cee565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d3e8262000d11565b9050919050565b62000d508162000d31565b811462000d5c57600080fd5b50565b60008151905062000d708162000d45565b92915050565b60006020828403121562000d8f5762000d8e62000d0c565b5b600062000d9f8482850162000d5f565b91505092915050565b62000db38162000d31565b82525050565b600060408201905062000dd0600083018562000da8565b62000ddf602083018462000da8565b9392505050565b600082825260208201905092915050565b7f434a503a204175746f6d61746564206d61726b6574206d616b6572207061697260008201527f20697320616c72656164792073657420746f20746861742076616c7565000000602082015250565b600062000e55603d8362000de6565b915062000e628262000df7565b604082019050919050565b6000602082019050818103600083015262000e888162000e46565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ec760208362000de6565b915062000ed48262000e8f565b602082019050919050565b6000602082019050818103600083015262000efa8162000eb8565b9050919050565b7f434a503a204163636f756e7420697320616c7265616479207468652076616c7560008201527f65206f6620276578636c75646564270000000000000000000000000000000000602082015250565b600062000f5f602f8362000de6565b915062000f6c8262000f01565b604082019050919050565b6000602082019050818103600083015262000f928162000f50565b9050919050565b60008115159050919050565b62000fb08162000f99565b82525050565b600060208201905062000fcd600083018462000fa5565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200100b601f8362000de6565b9150620010188262000fd3565b602082019050919050565b600060208201905081810360008301526200103e8162000ffc565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200108b8262001045565b9150620010988362001045565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010d057620010cf6200104f565b5b828201905092915050565b620010e68162001045565b82525050565b6000602082019050620011036000830184620010db565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200115157607f821691505b6020821081141562001168576200116762001109565b5b50919050565b608051613d206200119160003960008181610c1301526111a80152613d206000f3fe6080604052600436106101fd5760003560e01c8063715018a61161010d578063b62496f5116100a0578063c49b9a801161006f578063c49b9a801461076a578063c54e44eb14610793578063dd62ed3e146107be578063e2f45605146107fb578063f2fde38b1461082657610204565b8063b62496f5146106b0578063c0246668146106ed578063c04a541414610716578063c492f0461461074157610204565b8063a457c2d7116100dc578063a457c2d7146105e0578063a5f3d0031461061d578063a9059cbb14610648578063aa4bde281461068557610204565b8063715018a61461054a5780638da5cb5b1461056157806395d89b411461058c5780639a7a23d6146105b757610204565b806349928a50116101905780635aa821a91161015f5780635aa821a9146104535780635b89029c1461047e578063658c27a9146104a757806365b8dbc0146104e457806370a082311461050d57610204565b806349928a501461039757806349bd5a5e146103c05780634a74bb02146103eb5780634fbee1931461041657610204565b806318160ddd116101cc57806318160ddd146102c757806323b872dd146102f2578063313ce5671461032f578063395093511461035a57610204565b806302259e9e1461020957806306fdde0314610234578063095ea7b31461025f5780631694505e1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e61084f565b60405161022b9190612985565b60405180910390f35b34801561024057600080fd5b50610249610855565b6040516102569190612a39565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190612af9565b6108e7565b6040516102939190612b54565b60405180910390f35b3480156102a857600080fd5b506102b1610905565b6040516102be9190612bce565b60405180910390f35b3480156102d357600080fd5b506102dc61092b565b6040516102e99190612985565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612be9565b610935565b6040516103269190612b54565b60405180910390f35b34801561033b57600080fd5b50610344610a2d565b6040516103519190612c58565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190612af9565b610a36565b60405161038e9190612b54565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b99190612c73565b610ae2565b005b3480156103cc57600080fd5b506103d5610c11565b6040516103e29190612caf565b60405180910390f35b3480156103f757600080fd5b50610400610c35565b60405161040d9190612b54565b60405180910390f35b34801561042257600080fd5b5061043d60048036038101906104389190612c73565b610c48565b60405161044a9190612b54565b60405180910390f35b34801561045f57600080fd5b50610468610c9e565b6040516104759190612985565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a09190612cf6565b610ca4565b005b3480156104b357600080fd5b506104ce60048036038101906104c99190612c73565b610d7b565b6040516104db9190612b54565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190612c73565b610dd1565b005b34801561051957600080fd5b50610534600480360381019061052f9190612c73565b610f9e565b6040516105419190612985565b60405180910390f35b34801561055657600080fd5b5061055f610fe6565b005b34801561056d57600080fd5b5061057661106e565b6040516105839190612caf565b60405180910390f35b34801561059857600080fd5b506105a1611098565b6040516105ae9190612a39565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190612cf6565b61112a565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612af9565b611243565b6040516106149190612b54565b60405180910390f35b34801561062957600080fd5b5061063261132e565b60405161063f9190612985565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a9190612af9565b611334565b60405161067c9190612b54565b60405180910390f35b34801561069157600080fd5b5061069a611352565b6040516106a79190612985565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612c73565b611358565b6040516106e49190612b54565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190612cf6565b611378565b005b34801561072257600080fd5b5061072b611530565b6040516107389190612caf565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190612d9b565b611556565b005b34801561077657600080fd5b50610791600480360381019061078c9190612dfb565b6116b2565b005b34801561079f57600080fd5b506107a8611782565b6040516107b59190612caf565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190612e28565b61179a565b6040516107f29190612985565b60405180910390f35b34801561080757600080fd5b50610810611821565b60405161081d9190612985565b60405180910390f35b34801561083257600080fd5b5061084d60048036038101906108489190612c73565b611827565b005b60075481565b60606003805461086490612e97565b80601f016020809104026020016040519081016040528092919081815260200182805461089090612e97565b80156108dd5780601f106108b2576101008083540402835291602001916108dd565b820191906000526020600020905b8154815290600101906020018083116108c057829003601f168201915b5050505050905090565b60006108fb6108f461191f565b8484611927565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000610942848484611af2565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098d61191f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0490612f3b565b60405180910390fd5b610a2185610a1961191f565b858403611927565b60019150509392505050565b60006012905090565b6000610ad8610a4361191f565b848460016000610a5161191f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ad39190612f8a565b611927565b6001905092915050565b610aea61191f565b73ffffffffffffffffffffffffffffffffffffffff16610b0861106e565b73ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b559061302c565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660159054906101000a900460ff1681565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b610cac61191f565b73ffffffffffffffffffffffffffffffffffffffff16610cca61106e565b73ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d179061302c565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dd961191f565b73ffffffffffffffffffffffffffffffffffffffff16610df761106e565b73ffffffffffffffffffffffffffffffffffffffff1614610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e449061302c565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed5906130be565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fee61191f565b73ffffffffffffffffffffffffffffffffffffffff1661100c61106e565b73ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110599061302c565b60405180910390fd5b61106c6000611f33565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546110a790612e97565b80601f01602080910402602001604051908101604052809291908181526020018280546110d390612e97565b80156111205780601f106110f557610100808354040283529160200191611120565b820191906000526020600020905b81548152906001019060200180831161110357829003601f168201915b5050505050905090565b61113261191f565b73ffffffffffffffffffffffffffffffffffffffff1661115061106e565b73ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d9061302c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90613176565b60405180910390fd5b61123f8282611ff9565b5050565b6000806001600061125261191f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613208565b60405180910390fd5b61132361131a61191f565b85858403611927565b600191505092915050565b600b5481565b600061134861134161191f565b8484611af2565b6001905092915050565b600a5481565b60106020528060005260406000206000915054906101000a900460ff1681565b61138061191f565b73ffffffffffffffffffffffffffffffffffffffff1661139e61106e565b73ffffffffffffffffffffffffffffffffffffffff16146113f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113eb9061302c565b60405180910390fd5b801515600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e9061329a565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516115249190612b54565b60405180910390a25050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61155e61191f565b73ffffffffffffffffffffffffffffffffffffffff1661157c61106e565b73ffffffffffffffffffffffffffffffffffffffff16146115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c99061302c565b60405180910390fd5b60005b838390508110156116715781600d60008686858181106115f8576115f76132ba565b5b905060200201602081019061160d9190612c73565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611669906132e9565b9150506115d5565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516116a5939291906133f5565b60405180910390a1505050565b6116ba61191f565b73ffffffffffffffffffffffffffffffffffffffff166116d861106e565b73ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117259061302c565b60405180910390fd5b80600660156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516117779190612b54565b60405180910390a150565b73dac17f958d2ee523a2206206994597c13d831ec781565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b61182f61191f565b73ffffffffffffffffffffffffffffffffffffffff1661184d61106e565b73ffffffffffffffffffffffffffffffffffffffff16146118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a9061302c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90613499565b60405180910390fd5b61191c81611f33565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e9061352b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fe906135bd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae59190612985565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b599061364f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc9906136e1565b60405180910390fd5b6000811415611bec57611be78383600061212d565b611f2e565b6000611bf730610f9e565b905060006009548210159050808015611c1d5750600660149054906101000a900460ff16155b8015611c725750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611c8a5750600660159054906101000a900460ff165b15611c9957611c98826123ae565b5b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d3c5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d8f576000611d6b6064611d5d600b548761243990919063ffffffff16565b61244f90919063ffffffff16565b9050611d80818561246590919063ffffffff16565b9350611d8d86308361212d565b505b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e335750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e885750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f2057600854831115611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990613773565b60405180910390fd5b6000611efc6064611eee600b548761243990919063ffffffff16565b61244f90919063ffffffff16565b9050611f11818561246590919063ffffffff16565b9350611f1e86308361212d565b505b611f2b85858561212d565b50505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208390613805565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061364f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561220d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612204906136e1565b60405180910390fd5b61221883838361247b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561229e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229590613897565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123319190612f8a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123959190612985565b60405180910390a36123a8848484612480565b50505050565b6001600660146101000a81548160ff02191690831515021790555060004790506123d782612485565b600081476123e591906138b7565b90506000819050612418600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261270d565b5050506000600660146101000a81548160ff02191690831515021790555050565b6000818361244791906138eb565b905092915050565b6000818361245d9190613974565b905092915050565b6000818361247391906138b7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156124a2576124a16139a5565b5b6040519080825280602002602001820160405280156124d05781602001602082028036833780820191505090505b50905030816000815181106124e8576124e76132ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561258a57600080fd5b505afa15801561259e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c291906139e9565b816001815181106125d6576125d56132ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508161263d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661179a565b10156126735761267230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019611927565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126d7959493929190613ad7565b600060405180830381600087803b1580156126f157600080fd5b505af1158015612705573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff81111561272a576127296139a5565b5b6040519080825280602002602001820160405280156127585781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156127c357600080fd5b505afa1580156127d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fb91906139e9565b8160008151811061280f5761280e6132ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073dac17f958d2ee523a2206206994597c13d831ec781600181518110612872576128716132ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab58360008487426040518663ffffffff1660e01b815260040161290f9493929190613b31565b6000604051808303818588803b15801561292857600080fd5b505af115801561293c573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906129669190613ca1565b50505050565b6000819050919050565b61297f8161296c565b82525050565b600060208201905061299a6000830184612976565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129da5780820151818401526020810190506129bf565b838111156129e9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a0b826129a0565b612a1581856129ab565b9350612a258185602086016129bc565b612a2e816129ef565b840191505092915050565b60006020820190508181036000830152612a538184612a00565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a9a82612a6f565b9050919050565b612aaa81612a8f565b8114612ab557600080fd5b50565b600081359050612ac781612aa1565b92915050565b612ad68161296c565b8114612ae157600080fd5b50565b600081359050612af381612acd565b92915050565b60008060408385031215612b1057612b0f612a65565b5b6000612b1e85828601612ab8565b9250506020612b2f85828601612ae4565b9150509250929050565b60008115159050919050565b612b4e81612b39565b82525050565b6000602082019050612b696000830184612b45565b92915050565b6000819050919050565b6000612b94612b8f612b8a84612a6f565b612b6f565b612a6f565b9050919050565b6000612ba682612b79565b9050919050565b6000612bb882612b9b565b9050919050565b612bc881612bad565b82525050565b6000602082019050612be36000830184612bbf565b92915050565b600080600060608486031215612c0257612c01612a65565b5b6000612c1086828701612ab8565b9350506020612c2186828701612ab8565b9250506040612c3286828701612ae4565b9150509250925092565b600060ff82169050919050565b612c5281612c3c565b82525050565b6000602082019050612c6d6000830184612c49565b92915050565b600060208284031215612c8957612c88612a65565b5b6000612c9784828501612ab8565b91505092915050565b612ca981612a8f565b82525050565b6000602082019050612cc46000830184612ca0565b92915050565b612cd381612b39565b8114612cde57600080fd5b50565b600081359050612cf081612cca565b92915050565b60008060408385031215612d0d57612d0c612a65565b5b6000612d1b85828601612ab8565b9250506020612d2c85828601612ce1565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d5b57612d5a612d36565b5b8235905067ffffffffffffffff811115612d7857612d77612d3b565b5b602083019150836020820283011115612d9457612d93612d40565b5b9250929050565b600080600060408486031215612db457612db3612a65565b5b600084013567ffffffffffffffff811115612dd257612dd1612a6a565b5b612dde86828701612d45565b93509350506020612df186828701612ce1565b9150509250925092565b600060208284031215612e1157612e10612a65565b5b6000612e1f84828501612ce1565b91505092915050565b60008060408385031215612e3f57612e3e612a65565b5b6000612e4d85828601612ab8565b9250506020612e5e85828601612ab8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612eaf57607f821691505b60208210811415612ec357612ec2612e68565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612f256028836129ab565b9150612f3082612ec9565b604082019050919050565b60006020820190508181036000830152612f5481612f18565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f958261296c565b9150612fa08361296c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd557612fd4612f5b565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130166020836129ab565b915061302182612fe0565b602082019050919050565b6000602082019050818103600083015261304581613009565b9050919050565b7f434a503a2054686520726f7574657220616c726561647920686173207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006130a86028836129ab565b91506130b38261304c565b604082019050919050565b600060208201905081810360008301526130d78161309b565b9050919050565b7f434a503a2054686520556e697377617020706169722063616e6e6f742062652060008201527f72656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6560208201527f7250616972730000000000000000000000000000000000000000000000000000604082015250565b60006131606046836129ab565b915061316b826130de565b606082019050919050565b6000602082019050818103600083015261318f81613153565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131f26025836129ab565b91506131fd82613196565b604082019050919050565b60006020820190508181036000830152613221816131e5565b9050919050565b7f434a503a204163636f756e7420697320616c7265616479207468652076616c7560008201527f65206f6620276578636c75646564270000000000000000000000000000000000602082015250565b6000613284602f836129ab565b915061328f82613228565b604082019050919050565b600060208201905081810360008301526132b381613277565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132f48261296c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561332757613326612f5b565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b61335681612a8f565b82525050565b6000613368838361334d565b60208301905092915050565b60006133836020840184612ab8565b905092915050565b6000602082019050919050565b60006133a48385613332565b93506133af82613343565b8060005b858110156133e8576133c58284613374565b6133cf888261335c565b97506133da8361338b565b9250506001810190506133b3565b5085925050509392505050565b60006040820190508181036000830152613410818587613398565b905061341f6020830184612b45565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134836026836129ab565b915061348e82613427565b604082019050919050565b600060208201905081810360008301526134b281613476565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135156024836129ab565b9150613520826134b9565b604082019050919050565b6000602082019050818103600083015261354481613508565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135a76022836129ab565b91506135b28261354b565b604082019050919050565b600060208201905081810360008301526135d68161359a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136396025836129ab565b9150613644826135dd565b604082019050919050565b600060208201905081810360008301526136688161362c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136cb6023836129ab565b91506136d68261366f565b604082019050919050565b600060208201905081810360008301526136fa816136be565b9050919050565b7f616d6f756e74206578636565647320746865206d61784275795472616e73616360008201527f74696f6e416d6f756e742e000000000000000000000000000000000000000000602082015250565b600061375d602b836129ab565b915061376882613701565b604082019050919050565b6000602082019050818103600083015261378c81613750565b9050919050565b7f434a503a204175746f6d61746564206d61726b6574206d616b6572207061697260008201527f20697320616c72656164792073657420746f20746861742076616c7565000000602082015250565b60006137ef603d836129ab565b91506137fa82613793565b604082019050919050565b6000602082019050818103600083015261381e816137e2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138816026836129ab565b915061388c82613825565b604082019050919050565b600060208201905081810360008301526138b081613874565b9050919050565b60006138c28261296c565b91506138cd8361296c565b9250828210156138e0576138df612f5b565b5b828203905092915050565b60006138f68261296c565b91506139018361296c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561393a57613939612f5b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061397f8261296c565b915061398a8361296c565b92508261399a57613999613945565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506139e381612aa1565b92915050565b6000602082840312156139ff576139fe612a65565b5b6000613a0d848285016139d4565b91505092915050565b6000819050919050565b6000613a3b613a36613a3184613a16565b612b6f565b61296c565b9050919050565b613a4b81613a20565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000613a8482613a51565b613a8e8185613332565b9350613a9983613a5c565b8060005b83811015613aca578151613ab1888261335c565b9750613abc83613a6c565b925050600181019050613a9d565b5085935050505092915050565b600060a082019050613aec6000830188612976565b613af96020830187613a42565b8181036040830152613b0b8186613a79565b9050613b1a6060830185612ca0565b613b276080830184612976565b9695505050505050565b6000608082019050613b466000830187613a42565b8181036020830152613b588186613a79565b9050613b676040830185612ca0565b613b746060830184612976565b95945050505050565b613b86826129ef565b810181811067ffffffffffffffff82111715613ba557613ba46139a5565b5b80604052505050565b6000613bb8612a5b565b9050613bc48282613b7d565b919050565b600067ffffffffffffffff821115613be457613be36139a5565b5b602082029050602081019050919050565b600081519050613c0481612acd565b92915050565b6000613c1d613c1884613bc9565b613bae565b90508083825260208201905060208402830185811115613c4057613c3f612d40565b5b835b81811015613c695780613c558882613bf5565b845260208401935050602081019050613c42565b5050509392505050565b600082601f830112613c8857613c87612d36565b5b8151613c98848260208601613c0a565b91505092915050565b600060208284031215613cb757613cb6612a65565b5b600082015167ffffffffffffffff811115613cd557613cd4612a6a565b5b613ce184828501613c73565b9150509291505056fea26469706673582212201f1b883631500fe290bb565123a1893ee3ef5322d1f6598a4283a5a5fb73b88264736f6c63430008090033