60a06040523480156200001157600080fd5b50604051620077db380380620077db833981810160405281019062000037919062001cf5565b6040518060400160405280600881526020017f476f642047616d650000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4747414d450000000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb929190620014d4565b508060019080519060200190620000d4929190620014d4565b505050620000f7620000eb6200140660201b60201c565b6200140e60201b60201c565b6001600a60146101000a81548160ff02191690831515021790555082603460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081603560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060808181525050600581620001ab919062001d80565b600b81905550604051806101000160405280608260ff168152602001608260ff168152602001608260ff168152602001608260ff168152602001605060ff168152602001605060ff168152602001605060ff168152602001605060ff16815250600f60006012811062000223576200022262001db8565b5b019060086200023492919062001565565b50604051806101000160405280600260ff168152602001600160ff168152602001600360ff168152602001600160ff168152602001600660ff168152602001600260ff168152602001600360ff168152602001600460ff168152506021600060128110620002a757620002a662001db8565b5b01906008620002b892919062001565565b50604051806103c0016040528060be60ff16815260200160d760ff16815260200160c860ff168152602001606e60ff168152602001608260ff168152602001608760ff16815260200160a060ff16815260200160b960ff16815260200160c860ff16815260200160c860ff16815260200160d260ff16815260200160c860ff16815260200160c860ff16815260200160c860ff168152602001606460ff168152602001606460ff16815260200160b460ff16815260200160b460ff16815260200160c860ff16815260200160b460ff168152602001606460ff168152602001606460ff168152602001607860ff168152602001607860ff168152602001606460ff16815260200160c860ff16815260200160b460ff16815260200160c860ff16815260200160be60ff168152602001606460ff16815250600f60016012811062000407576200040662001db8565b5b0190601e6200041892919062001613565b50604051806103c00160405280600160ff168152602001600c60ff168152602001600460ff168152602001600060ff168152602001600360ff168152602001600660ff168152602001600760ff168152602001600960ff168152602001600060ff168152602001600a60ff168152602001600b60ff168152602001600f60ff168152602001600260ff168152602001600060ff168152602001600c60ff168152602001600e60ff168152602001600960ff168152602001600860ff168152602001600660ff168152602001600e60ff168152602001601860ff168152602001601760ff168152602001600d60ff168152602001601260ff168152602001601b60ff168152602001600b60ff168152602001601360ff168152602001601c60ff168152602001600560ff168152602001600160ff16815250602160016012811062000567576200056662001db8565b5b0190601e6200057892919062001613565b50604051806102000160405280606460ff168152602001606460ff168152602001607860ff168152602001605a60ff16815260200160b460ff168152602001608c60ff168152602001605a60ff168152602001609660ff168152602001609660ff168152602001607860ff168152602001606460ff168152602001607860ff168152602001605a60ff168152602001606460ff168152602001606460ff168152602001605a60ff16815250600f6002601281106200063b576200063a62001db8565b5b019060106200064c929190620016c1565b50604051806102000160405280600c60ff168152602001600660ff168152602001600260ff168152602001600060ff168152602001600160ff168152602001600360ff168152602001600260ff168152602001600560ff168152602001600860ff168152602001600460ff168152602001600a60ff168152602001600960ff168152602001600760ff168152602001600b60ff168152602001600d60ff168152602001600e60ff1681525060216002601281106200070f576200070e62001db8565b5b0190601062000720929190620016c1565b5060405180610280016040528060dc60ff16815260200160dd60ff168152602001606460ff16815260200160b560ff168152602001608c60ff16815260200160e060ff168152602001609360ff168152602001605a60ff16815260200160e460ff168152602001608c60ff16815260200160e060ff16815260200160c860ff168152602001608260ff16815260200160b460ff16815260200160cf60ff16815260200160ad60ff168152602001605460ff168152602001605060ff168152602001605a60ff168152602001606460ff16815250600f6003601281106200080b576200080a62001db8565b5b019060146200081c9291906200176f565b50604051806102800160405280600160ff168152602001600260ff168152602001600560ff168152602001600060ff168152602001600360ff168152602001600760ff168152602001600160ff168152602001600a60ff168152602001600560ff168152602001600a60ff168152602001600460ff168152602001600c60ff168152602001600b60ff168152602001600960ff168152602001601060ff168152602001600b60ff168152602001600660ff168152602001600860ff168152602001601160ff168152602001600e60ff16815250602160036012811062000907576200090662001db8565b5b01906014620009189291906200176f565b506040518060600160405280604b60ff168152602001606460ff168152602001602860ff16815250600f60046012811062000958576200095762001db8565b5b01906003620009699291906200181d565b506040518060600160405280600260ff168152602001600060ff168152602001600160ff168152506021600460128110620009a957620009a862001db8565b5b01906003620009ba9291906200181d565b506040518060e00160405280605060ff16815260200160e160ff16815260200160e360ff16815260200160e460ff168152602001607060ff16815260200160dc60ff168152602001608c60ff16815250600f60056012811062000a225762000a2162001db8565b5b0190600762000a33929190620018cb565b506040518060e00160405280600660ff168152602001600160ff168152602001600260ff168152602001600360ff168152602001600460ff168152602001600060ff168152602001600560ff16815250602160056012811062000a9b5762000a9a62001db8565b5b0190600762000aac929190620018cb565b506040518060a0016040528060be60ff16815260200160e360ff168152602001607060ff16815260200160c860ff16815260200160b460ff16815250600f60066012811062000b005762000aff62001db8565b5b0190600562000b1192919062001979565b506040518060a00160405280600060ff168152602001600260ff168152602001600460ff168152602001600160ff168152602001600360ff16815250602160066012811062000b655762000b6462001db8565b5b0190600562000b7692919062001979565b5060405180610100016040528060dc60ff16815260200160be60ff16815260200160be60ff168152602001603c60ff168152602001603260ff168152602001603c60ff168152602001603c60ff168152602001603260ff16815250600f60076012811062000be95762000be862001db8565b5b0190600862000bfa92919062001565565b50604051806101000160405280600260ff168152602001600160ff168152602001600260ff168152602001600060ff168152602001600160ff168152602001600560ff168152602001600360ff168152602001600760ff16815250602160076012811062000c6d5762000c6c62001db8565b5b0190600862000c7e92919062001565565b50604051806020016040528060ff8016815250600f60086012811062000ca95762000ca862001db8565b5b0190600162000cba92919062001a27565b506040518060200160405280600060ff16815250602160086012811062000ce65762000ce562001db8565b5b0190600162000cf792919062001a27565b506040518060e00160405280607860ff168152602001607860ff168152602001607860ff168152602001607860ff168152602001605060ff168152602001605060ff168152602001603260ff16815250600f60096012811062000d5f5762000d5e62001db8565b5b0190600762000d70929190620018cb565b506040518060e00160405280600260ff168152602001600360ff168152602001600260ff168152602001600060ff168152602001600160ff168152602001600560ff168152602001600360ff16815250602160096012811062000dd85762000dd762001db8565b5b0190600762000de9929190620018cb565b506040518060800160405280600a60ff168152602001606460ff16815260200160b460ff16815260200160fa60ff16815250600f600a6012811062000e335762000e3262001db8565b5b0190600462000e4492919062001ad5565b506040518060800160405280600060ff168152602001600160ff168152602001600260ff168152602001600360ff168152506021600a6012811062000e8e5762000e8d62001db8565b5b0190600462000e9f92919062001ad5565b50604051806020016040528060ff8016815250600f600b6012811062000eca5762000ec962001db8565b5b0190600162000edb92919062001a27565b506040518060200160405280600060ff168152506021600b6012811062000f075762000f0662001db8565b5b0190600162000f1892919062001a27565b506040518060a00160405280604660ff168152602001609660ff168152602001606460ff168152602001606460ff168152602001606460ff16815250600f600c6012811062000f6c5762000f6b62001db8565b5b0190600562000f7d92919062001979565b506040518060a00160405280600260ff168152602001600460ff168152602001600160ff168152602001600360ff168152602001600260ff168152506021600c6012811062000fd15762000fd062001db8565b5b0190600562000fe292919062001979565b50604051806020016040528060ff8016815250600f600d601281106200100d576200100c62001db8565b5b019060016200101e92919062001a27565b506040518060200160405280600060ff168152506021600d601281106200104a576200104962001db8565b5b019060016200105b92919062001a27565b50604051806101a0016040528060c860ff16815260200160dc60ff168152602001606460ff16815260200160ea60ff16815260200160ea60ff168152602001609660ff16815260200160b460ff168152602001608c60ff168152602001609660ff168152602001607860ff16815260200160c860ff16815260200160a060ff168152602001608c60ff16815250600f600e601281106200110057620010ff62001db8565b5b0190600d6200111192919062001b83565b50604051806101a00160405280600160ff168152602001600360ff168152602001600960ff168152602001600b60ff168152602001600a60ff168152602001600860ff168152602001600860ff168152602001600460ff168152602001600160ff168152602001600060ff168152602001600660ff168152602001600860ff168152602001600c60ff168152506021600e60128110620011b657620011b562001db8565b5b0190600d620011c792919062001b83565b50604051806101000160405280608c60ff168152602001608260ff16815260200160a560ff168152602001607860ff168152602001606460ff168152602001609660ff16815260200160a060ff168152602001606460ff16815250600f806012811062001239576200123862001db8565b5b019060086200124a92919062001565565b50604051806101000160405280600160ff168152602001600460ff168152602001600060ff168152602001600660ff168152602001600260ff168152602001600360ff168152602001600560ff168152602001600360ff168152506021600f60128110620012bd57620012bc62001db8565b5b01906008620012ce92919062001565565b50604051806020016040528060ff8016815250600f601060128110620012f957620012f862001db8565b5b019060016200130a92919062001a27565b506040518060200160405280600060ff16815250602160106012811062001336576200133562001db8565b5b019060016200134792919062001a27565b506040518060800160405280600860ff16815260200160a060ff168152602001604960ff16815260200160ff8016815250600f60116012811062001390576200138f62001db8565b5b01906004620013a192919062001ad5565b506040518060800160405280600260ff168152602001600360ff168152602001600360ff168152602001600360ff168152506021601160128110620013eb57620013ea62001db8565b5b01906004620013fc92919062001ad5565b5050505062001e4c565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620014e29062001e16565b90600052602060002090601f01602090048101928262001506576000855562001552565b82601f106200152157805160ff191683800117855562001552565b8280016001018555821562001552579182015b828111156200155157825182559160200191906001019062001534565b5b50905062001561919062001c31565b5090565b82805482825590600052602060002090601f01602090048101928215620016005791602002820160005b83821115620015cf57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026200158f565b8015620015fe5782816101000a81549060ff0219169055600101602081600001049283019260010302620015cf565b505b5090506200160f919062001c31565b5090565b82805482825590600052602060002090601f01602090048101928215620016ae5791602002820160005b838211156200167d57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026200163d565b8015620016ac5782816101000a81549060ff02191690556001016020816000010492830192600103026200167d565b505b509050620016bd919062001c31565b5090565b82805482825590600052602060002090601f016020900481019282156200175c5791602002820160005b838211156200172b57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620016eb565b80156200175a5782816101000a81549060ff02191690556001016020816000010492830192600103026200172b565b505b5090506200176b919062001c31565b5090565b82805482825590600052602060002090601f016020900481019282156200180a5791602002820160005b83821115620017d957835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262001799565b8015620018085782816101000a81549060ff0219169055600101602081600001049283019260010302620017d9565b505b50905062001819919062001c31565b5090565b82805482825590600052602060002090601f01602090048101928215620018b85791602002820160005b838211156200188757835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262001847565b8015620018b65782816101000a81549060ff021916905560010160208160000104928301926001030262001887565b505b509050620018c7919062001c31565b5090565b82805482825590600052602060002090601f01602090048101928215620019665791602002820160005b838211156200193557835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620018f5565b8015620019645782816101000a81549060ff021916905560010160208160000104928301926001030262001935565b505b50905062001975919062001c31565b5090565b82805482825590600052602060002090601f0160209004810192821562001a145791602002820160005b83821115620019e357835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620019a3565b801562001a125782816101000a81549060ff0219169055600101602081600001049283019260010302620019e3565b505b50905062001a23919062001c31565b5090565b82805482825590600052602060002090601f0160209004810192821562001ac25791602002820160005b8382111562001a9157835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262001a51565b801562001ac05782816101000a81549060ff021916905560010160208160000104928301926001030262001a91565b505b50905062001ad1919062001c31565b5090565b82805482825590600052602060002090601f0160209004810192821562001b705791602002820160005b8382111562001b3f57835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262001aff565b801562001b6e5782816101000a81549060ff021916905560010160208160000104928301926001030262001b3f565b505b50905062001b7f919062001c31565b5090565b82805482825590600052602060002090601f0160209004810192821562001c1e5791602002820160005b8382111562001bed57835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262001bad565b801562001c1c5782816101000a81549060ff021916905560010160208160000104928301926001030262001bed565b505b50905062001c2d919062001c31565b5090565b5b8082111562001c4c57600081600090555060010162001c32565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001c828262001c55565b9050919050565b62001c948162001c75565b811462001ca057600080fd5b50565b60008151905062001cb48162001c89565b92915050565b6000819050919050565b62001ccf8162001cba565b811462001cdb57600080fd5b50565b60008151905062001cef8162001cc4565b92915050565b60008060006060848603121562001d115762001d1062001c50565b5b600062001d218682870162001ca3565b935050602062001d348682870162001ca3565b925050604062001d478682870162001cde565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062001d8d8262001cba565b915062001d9a8362001cba565b92508262001dad5762001dac62001d51565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062001e2f57607f821691505b6020821081141562001e465762001e4562001de7565b5b50919050565b60805161596c62001e6f6000396000818161138a0152612224015261596c6000f3fe6080604052600436106102515760003560e01c806367f68fac11610139578063b88d4fde116100b6578063e05c57bf1161007a578063e05c57bf146108f3578063e1fc334f14610939578063e985e9c514610964578063f2fde38b146109a1578063f47c84c5146109ca578063fed51e70146109f557610251565b8063b88d4fde1461080c578063c002d23d14610835578063c084f54014610860578063c83293501461088b578063c87b56dd146108b657610251565b806394e56847116100fd57806394e568471461071357806395d89b411461075057806397cd9a341461077b578063a1b8f374146107a6578063a22cb465146107e357610251565b806367f68fac1461064d5780636e5640c61461066957806370a0823114610694578063715018a6146106d15780638da5cb5b146106e857610251565b80632f745c59116101d25780634018b1f8116101965780634018b1f81461052957806342842e0e146105545780634f02c4201461057d5780634f6ccce7146105a85780635c975abb146105e55780636352211e1461061057610251565b80632f745c591461043257806333df4b2c1461046f5780633431a753146104ac57806336838391146104d55780633ccfd60b1461051257610251565b8063095ea7b311610219578063095ea7b31461034f57806316c38b3c1461037857806318160ddd146103a157806323b872dd146103cc57806327de8f27146103f557610251565b806301ffc9a71461025657806302d2cd3914610293578063044a42f3146102bc57806306fdde03146102e7578063081812fc14610312575b600080fd5b34801561026257600080fd5b5061027d60048036038101906102789190613ade565b610a1e565b60405161028a9190613b26565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190613b9f565b610a98565b005b3480156102c857600080fd5b506102d1610b58565b6040516102de9190613be5565b60405180910390f35b3480156102f357600080fd5b506102fc610b5d565b6040516103099190613c99565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613ce7565b610bef565b6040516103469190613d23565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190613d3e565b610c74565b005b34801561038457600080fd5b5061039f600480360381019061039a9190613daa565b610d8c565b005b3480156103ad57600080fd5b506103b6610e27565b6040516103c39190613be5565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190613dd7565b610e34565b005b34801561040157600080fd5b5061041c60048036038101906104179190613ce7565b610ef1565b6040516104299190613be5565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613d3e565b610f18565b6040516104669190613be5565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613e2a565b610fbd565b6040516104a39190613e86565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce9190613ce7565b611003565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190613e2a565b611089565b6040516105099190613e86565b60405180910390f35b34801561051e57600080fd5b506105276110cf565b005b34801561053557600080fd5b5061053e61119b565b60405161054b9190613be5565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190613dd7565b6111a5565b005b34801561058957600080fd5b506105926111c5565b60405161059f9190613ebe565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca9190613ce7565b6111d9565b6040516105dc9190613be5565b60405180910390f35b3480156105f157600080fd5b506105fa61124a565b6040516106079190613b26565b60405180910390f35b34801561061c57600080fd5b5061063760048036038101906106329190613ce7565b611261565b6040516106449190613d23565b60405180910390f35b61066760048036038101906106629190613ed9565b611313565b005b34801561067557600080fd5b5061067e6118e3565b60405161068b9190613f78565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b69190613b9f565b611909565b6040516106c89190613be5565b60405180910390f35b3480156106dd57600080fd5b506106e66119c1565b005b3480156106f457600080fd5b506106fd611a49565b60405161070a9190613d23565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613ce7565b611a73565b604051610747919061407d565b60405180910390f35b34801561075c57600080fd5b50610765611bc1565b6040516107729190613c99565b60405180910390f35b34801561078757600080fd5b50610790611c53565b60405161079d91906140ba565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190613ce7565b611c79565b6040516107da9190613be5565b60405180910390f35b3480156107ef57600080fd5b5061080a600480360381019061080591906140d5565b611c91565b005b34801561081857600080fd5b50610833600480360381019061082e919061424a565b611e12565b005b34801561084157600080fd5b5061084a611e74565b6040516108579190613be5565b60405180910390f35b34801561086c57600080fd5b50610875611e80565b6040516108829190613be5565b60405180910390f35b34801561089757600080fd5b506108a0611e86565b6040516108ad9190613b26565b60405180910390f35b3480156108c257600080fd5b506108dd60048036038101906108d89190613ce7565b611e99565b6040516108ea9190613c99565b60405180910390f35b3480156108ff57600080fd5b5061091a60048036038101906109159190613ce7565b611f9a565b6040516109309a999897969594939291906142cd565b60405180910390f35b34801561094557600080fd5b5061094e612070565b60405161095b919061438a565b60405180910390f35b34801561097057600080fd5b5061098b600480360381019061098691906143a5565b612096565b6040516109989190613b26565b60405180910390f35b3480156109ad57600080fd5b506109c860048036038101906109c39190613b9f565b61212a565b005b3480156109d657600080fd5b506109df612222565b6040516109ec9190613be5565b60405180910390f35b348015610a0157600080fd5b50610a1c6004803603810190610a179190613daa565b612246565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a915750610a90826122df565b5b9050919050565b610aa06123c1565b73ffffffffffffffffffffffffffffffffffffffff16610abe611a49565b73ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90614431565b60405180910390fd5b80603360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081565b606060008054610b6c90614480565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890614480565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610bfa826123c9565b610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090614524565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c7f82611261565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce7906145b6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d0f6123c1565b73ffffffffffffffffffffffffffffffffffffffff161480610d3e5750610d3d81610d386123c1565b612096565b5b610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7490614648565b60405180910390fd5b610d878383612435565b505050565b610d946123c1565b73ffffffffffffffffffffffffffffffffffffffff16610db2611a49565b73ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90614431565b60405180910390fd5b8015610e1b57610e166124ee565b610e24565b610e23612591565b5b50565b6000600880549050905090565b603360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e756123c1565b73ffffffffffffffffffffffffffffffffffffffff1614610ee157610ea1610e9b6123c1565b82612633565b610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed7906146da565b60405180910390fd5b5b610eec838383612711565b505050565b6000600b548211610f055760009050610f13565b69043c33c193756480000090505b919050565b6000610f2383611909565b8210610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b9061476c565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600f8260128110610fcd57600080fd5b018181548110610fdc57600080fd5b9060005260206000209060209182820401919006915091509054906101000a900460ff1681565b61100b6123c1565b73ffffffffffffffffffffffffffffffffffffffff16611029611a49565b73ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690614431565b60405180910390fd5b80600b8190555050565b6021826012811061109957600080fd5b0181815481106110a857600080fd5b9060005260206000209060209182820401919006915091509054906101000a900460ff1681565b6110d76123c1565b73ffffffffffffffffffffffffffffffffffffffff166110f5611a49565b73ffffffffffffffffffffffffffffffffffffffff161461114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114290614431565b60405180910390fd5b611153611a49565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611198573d6000803e3d6000fd5b50565b6000600b54905090565b6111c083838360405180602001604052806000815250611e12565b505050565b600c60009054906101000a900461ffff1681565b60006111e3610e27565b8210611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906147fe565b60405180910390fd5b600882815481106112385761123761481e565b5b90600052602060002001549050919050565b6000600a60149054906101000a900460ff16905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561130a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611301906148bf565b60405180910390fd5b80915050919050565b61131b6123c1565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f9061492b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000082600c60009054906101000a900461ffff1661ffff166113c9919061497a565b111561140a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140190614a1c565b60405180910390fd5b60008211801561141b575060168211155b61145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190614a88565b60405180910390fd5b600b54600c60009054906101000a900461ffff1661ffff16101561153657600b5482600c60009054906101000a900461ffff1661ffff1661149b919061497a565b11156114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390614af4565b60405180910390fd5b346709935f581f050000836114f19190614b14565b14611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152890614bba565b60405180910390fd5b611544565b6000341461154357600080fd5b5b6000808261159b57600067ffffffffffffffff8111156115675761156661411f565b5b6040519080825280602002602001820160405280156115955781602001602082028036833780820191505090505b506115e5565b8367ffffffffffffffff8111156115b5576115b461411f565b5b6040519080825280602002602001820160405280156115e35781602001602082028036833780820191505090505b505b9050600080600090505b8581101561179e57600c600081819054906101000a900461ffff168092919061161790614bda565b91906101000a81548161ffff021916908361ffff1602179055505061164f600c60009054906101000a900461ffff1661ffff1661296d565b915061166f600c60009054906101000a900461ffff1661ffff16836129b3565b50600061167b83612b8c565b90508515806116bd575061168d6123c1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156116e5576116e081600c60009054906101000a900461ffff1661ffff16612cff565b611760565b611725603360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900461ffff1661ffff16612cff565b600c60009054906101000a900461ffff168483815181106117495761174861481e565b5b602002602001019061ffff16908161ffff16815250505b61177d600c60009054906101000a900461ffff1661ffff16610ef1565b85611788919061497a565b945050808061179690614c05565b9150506115ef565b50600083111561183f57603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac6117ee6123c1565b856040518363ffffffff1660e01b815260040161180c929190614c4e565b600060405180830381600087803b15801561182657600080fd5b505af115801561183a573d6000803e3d6000fd5b505050505b83156118dc57603360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdf8569f61188b6123c1565b846040518363ffffffff1660e01b81526004016118a9929190614d35565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b5050505050565b603460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561197a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197190614dd7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119c96123c1565b73ffffffffffffffffffffffffffffffffffffffff166119e7611a49565b73ffffffffffffffffffffffffffffffffffffffff1614611a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3490614431565b60405180910390fd5b611a476000612d1d565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a7b613a02565b600d6000838152602001908152602001600020604051806101400160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a900460ff1660ff1660ff1681526020016000820160069054906101000a900460ff1660ff1660ff1681526020016000820160079054906101000a900460ff1660ff1660ff1681526020016000820160089054906101000a900460ff1660ff1660ff1681526020016000820160099054906101000a900460ff1660ff1660ff16815250509050919050565b606060018054611bd090614480565b80601f0160208091040260200160405190810160405280929190818152602001828054611bfc90614480565b8015611c495780601f10611c1e57610100808354040283529160200191611c49565b820191906000526020600020905b815481529060010190602001808311611c2c57829003601f168201915b5050505050905090565b603360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b611c996123c1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90614e43565b60405180910390fd5b8060056000611d146123c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611dc16123c1565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e069190613b26565b60405180910390a35050565b611e23611e1d6123c1565b83612633565b611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e59906146da565b60405180910390fd5b611e6e84848484612de3565b50505050565b6709935f581f05000081565b600b5481565b603360009054906101000a900460ff1681565b6060611ea4826123c9565b611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90614ed5565b60405180910390fd5b603560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611f3e9190613be5565b60006040518083038186803b158015611f5657600080fd5b505afa158015611f6a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f939190614f96565b9050919050565b600d6020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16908060000160089054906101000a900460ff16908060000160099054906101000a900460ff1690508a565b603560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121326123c1565b73ffffffffffffffffffffffffffffffffffffffff16612150611a49565b73ffffffffffffffffffffffffffffffffffffffff16146121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d90614431565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90615051565b60405180910390fd5b61221f81612d1d565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b61224e6123c1565b73ffffffffffffffffffffffffffffffffffffffff1661226c611a49565b73ffffffffffffffffffffffffffffffffffffffff16146122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b990614431565b60405180910390fd5b80603360006101000a81548160ff02191690831515021790555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806123aa57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806123ba57506123b982612e3f565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124a883611261565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6124f661124a565b15612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252d906150bd565b60405180910390fd5b6001600a60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861257a6123c1565b6040516125879190613d23565b60405180910390a1565b61259961124a565b6125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90615129565b60405180910390fd5b6000600a60146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61261c6123c1565b6040516126299190613d23565b60405180910390a1565b600061263e826123c9565b61267d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612674906151bb565b60405180910390fd5b600061268883611261565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806126f757508373ffffffffffffffffffffffffffffffffffffffff166126df84610bef565b73ffffffffffffffffffffffffffffffffffffffff16145b8061270857506127078185612096565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661273182611261565b73ffffffffffffffffffffffffffffffffffffffff1614612787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277e9061524d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee906152df565b60405180910390fd5b612802838383612ea9565b61280d600082612435565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461285d91906152ff565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128b4919061497a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60003260014361297d91906152ff565b40428460405160200161299394939291906153c7565b6040516020818303038152906040528051906020012060001c9050919050565b6129bb613a02565b6129c482612fbd565b90506000600e60006129d5846131ca565b8152602001908152602001600020541415612b715780600d600085815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548160ff021916908360ff16021790555060e08201518160000160076101000a81548160ff021916908360ff1602179055506101008201518160000160086101000a81548160ff021916908360ff1602179055506101208201518160000160096101000a81548160ff021916908360ff16021790555090505082600e6000612b5a846131ca565b815260200190815260200160002081905550612b86565b612b8383612b7e8461296d565b6129b3565b90505b92915050565b6000600b54600c60009054906101000a900461ffff1661ffff16111580612bc457506000600a60f584901c612bc19190615444565b14155b15612bd857612bd16123c1565b9050612cfa565b6000603360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb59dfa6609085901c6040518263ffffffff1660e01b8152600401612c399190613be5565b60206040518083038186803b158015612c5157600080fd5b505afa158015612c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c89919061548a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612cd057612cc86123c1565b915050612cfa565b603360009054906101000a900460ff1615612cee5780915050612cfa565b612cf66123c1565b9150505b919050565b612d19828260405180602001604052806000815250613235565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612dee848484612711565b612dfa84848484613290565b612e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3090615529565b60405180910390fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612eb4838383613427565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ef757612ef28161342c565b612f36565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612f3557612f348382613475565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f7957612f74816135e2565b612fb8565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612fb757612fb682826136b3565b5b5b505050565b612fc5613a02565b6000600a61ffff8416612fd89190615444565b141581600001901515908115158152505060008160000151612ffb576009612ffe565b60005b9050601083901c925061302161ffff841682600061301c9190615549565b613732565b826020019060ff16908160ff1681525050601083901c925061305361ffff841682600161304e9190615549565b613732565b826040019060ff16908160ff1681525050601083901c925061308561ffff84168260026130809190615549565b613732565b826060019060ff16908160ff1681525050601083901c92506130b761ffff84168260036130b29190615549565b613732565b826080019060ff16908160ff1681525050601083901c92506130e961ffff84168260046130e49190615549565b613732565b8260a0019060ff16908160ff1681525050601083901c925061311b61ffff84168260056131169190615549565b613732565b8260c0019060ff16908160ff1681525050601083901c925061314d61ffff84168260066131489190615549565b613732565b8260e0019060ff16908160ff1681525050601083901c925061317f61ffff841682600761317a9190615549565b613732565b82610100019060ff16908160ff1681525050601083901c92506131b261ffff84168260086131ad9190615549565b613732565b82610120019060ff16908160ff168152505050919050565b600081600001518260200151836040015184608001518560e001518660c001518760600151886101000151896101200151604051602001613213999897969594939291906155df565b60405160208183030381529060405261322b906156bf565b60001c9050919050565b61323f8383613821565b61324c6000848484613290565b61328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328290615529565b60405180910390fd5b505050565b60006132b18473ffffffffffffffffffffffffffffffffffffffff166139ef565b1561341a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026132da6123c1565b8786866040518563ffffffff1660e01b81526004016132fc9493929190615770565b602060405180830381600087803b15801561331657600080fd5b505af192505050801561334757506040513d601f19601f8201168201806040525081019061334491906157d1565b60015b6133ca573d8060008114613377576040519150601f19603f3d011682016040523d82523d6000602084013e61337c565b606091505b506000815114156133c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133b990615529565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061341f565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161348284611909565b61348c91906152ff565b9050600060076000848152602001908152602001600020549050818114613571576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506135f691906152ff565b90506000600960008481526020019081526020016000205490506000600883815481106136265761362561481e565b5b9060005260206000200154905080600883815481106136485761364761481e565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613697576136966157fe565b5b6001900381819060005260206000200160009055905550505050565b60006136be83611909565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080600f8360ff166012811061374c5761374b61481e565b5b01805490508461375c919061582d565b9050600f8360ff16601281106137755761377461481e565b5b018160ff168154811061378b5761378a61481e565b5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1660088561ffff16901c61ffff1610156137ca578091505061381b565b60218360ff16601281106137e1576137e061481e565b5b018160ff16815481106137f7576137f661481e565b5b90600052602060002090602091828204019190069054906101000a900460ff169150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613888906158aa565b60405180910390fd5b61389a816123c9565b156138da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138d190615916565b60405180910390fd5b6138e660008383612ea9565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613936919061497a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b604051806101400160405280600015158152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613abb81613a86565b8114613ac657600080fd5b50565b600081359050613ad881613ab2565b92915050565b600060208284031215613af457613af3613a7c565b5b6000613b0284828501613ac9565b91505092915050565b60008115159050919050565b613b2081613b0b565b82525050565b6000602082019050613b3b6000830184613b17565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6c82613b41565b9050919050565b613b7c81613b61565b8114613b8757600080fd5b50565b600081359050613b9981613b73565b92915050565b600060208284031215613bb557613bb4613a7c565b5b6000613bc384828501613b8a565b91505092915050565b6000819050919050565b613bdf81613bcc565b82525050565b6000602082019050613bfa6000830184613bd6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c3a578082015181840152602081019050613c1f565b83811115613c49576000848401525b50505050565b6000601f19601f8301169050919050565b6000613c6b82613c00565b613c758185613c0b565b9350613c85818560208601613c1c565b613c8e81613c4f565b840191505092915050565b60006020820190508181036000830152613cb38184613c60565b905092915050565b613cc481613bcc565b8114613ccf57600080fd5b50565b600081359050613ce181613cbb565b92915050565b600060208284031215613cfd57613cfc613a7c565b5b6000613d0b84828501613cd2565b91505092915050565b613d1d81613b61565b82525050565b6000602082019050613d386000830184613d14565b92915050565b60008060408385031215613d5557613d54613a7c565b5b6000613d6385828601613b8a565b9250506020613d7485828601613cd2565b9150509250929050565b613d8781613b0b565b8114613d9257600080fd5b50565b600081359050613da481613d7e565b92915050565b600060208284031215613dc057613dbf613a7c565b5b6000613dce84828501613d95565b91505092915050565b600080600060608486031215613df057613def613a7c565b5b6000613dfe86828701613b8a565b9350506020613e0f86828701613b8a565b9250506040613e2086828701613cd2565b9150509250925092565b60008060408385031215613e4157613e40613a7c565b5b6000613e4f85828601613cd2565b9250506020613e6085828601613cd2565b9150509250929050565b600060ff82169050919050565b613e8081613e6a565b82525050565b6000602082019050613e9b6000830184613e77565b92915050565b600061ffff82169050919050565b613eb881613ea1565b82525050565b6000602082019050613ed36000830184613eaf565b92915050565b60008060408385031215613ef057613eef613a7c565b5b6000613efe85828601613cd2565b9250506020613f0f85828601613d95565b9150509250929050565b6000819050919050565b6000613f3e613f39613f3484613b41565b613f19565b613b41565b9050919050565b6000613f5082613f23565b9050919050565b6000613f6282613f45565b9050919050565b613f7281613f57565b82525050565b6000602082019050613f8d6000830184613f69565b92915050565b613f9c81613b0b565b82525050565b613fab81613e6a565b82525050565b61014082016000820151613fc86000850182613f93565b506020820151613fdb6020850182613fa2565b506040820151613fee6040850182613fa2565b5060608201516140016060850182613fa2565b5060808201516140146080850182613fa2565b5060a082015161402760a0850182613fa2565b5060c082015161403a60c0850182613fa2565b5060e082015161404d60e0850182613fa2565b50610100820151614062610100850182613fa2565b50610120820151614077610120850182613fa2565b50505050565b6000610140820190506140936000830184613fb1565b92915050565b60006140a482613f45565b9050919050565b6140b481614099565b82525050565b60006020820190506140cf60008301846140ab565b92915050565b600080604083850312156140ec576140eb613a7c565b5b60006140fa85828601613b8a565b925050602061410b85828601613d95565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61415782613c4f565b810181811067ffffffffffffffff821117156141765761417561411f565b5b80604052505050565b6000614189613a72565b9050614195828261414e565b919050565b600067ffffffffffffffff8211156141b5576141b461411f565b5b6141be82613c4f565b9050602081019050919050565b82818337600083830152505050565b60006141ed6141e88461419a565b61417f565b9050828152602081018484840111156142095761420861411a565b5b6142148482856141cb565b509392505050565b600082601f83011261423157614230614115565b5b81356142418482602086016141da565b91505092915050565b6000806000806080858703121561426457614263613a7c565b5b600061427287828801613b8a565b945050602061428387828801613b8a565b935050604061429487828801613cd2565b925050606085013567ffffffffffffffff8111156142b5576142b4613a81565b5b6142c18782880161421c565b91505092959194509250565b6000610140820190506142e3600083018d613b17565b6142f0602083018c613e77565b6142fd604083018b613e77565b61430a606083018a613e77565b6143176080830189613e77565b61432460a0830188613e77565b61433160c0830187613e77565b61433e60e0830186613e77565b61434c610100830185613e77565b61435a610120830184613e77565b9b9a5050505050505050505050565b600061437482613f45565b9050919050565b61438481614369565b82525050565b600060208201905061439f600083018461437b565b92915050565b600080604083850312156143bc576143bb613a7c565b5b60006143ca85828601613b8a565b92505060206143db85828601613b8a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061441b602083613c0b565b9150614426826143e5565b602082019050919050565b6000602082019050818103600083015261444a8161440e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061449857607f821691505b602082108114156144ac576144ab614451565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061450e602c83613c0b565b9150614519826144b2565b604082019050919050565b6000602082019050818103600083015261453d81614501565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006145a0602183613c0b565b91506145ab82614544565b604082019050919050565b600060208201905081810360008301526145cf81614593565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000614632603883613c0b565b915061463d826145d6565b604082019050919050565b6000602082019050818103600083015261466181614625565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006146c4603183613c0b565b91506146cf82614668565b604082019050919050565b600060208201905081810360008301526146f3816146b7565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614756602b83613c0b565b9150614761826146fa565b604082019050919050565b6000602082019050818103600083015261478581614749565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006147e8602c83613c0b565b91506147f38261478c565b604082019050919050565b60006020820190508181036000830152614817816147db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006148a9602983613c0b565b91506148b48261484d565b604082019050919050565b600060208201905081810360008301526148d88161489c565b9050919050565b7f4f6e6c7920454f41000000000000000000000000000000000000000000000000600082015250565b6000614915600883613c0b565b9150614920826148df565b602082019050919050565b6000602082019050818103600083015261494481614908565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061498582613bcc565b915061499083613bcc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156149c5576149c461494b565b5b828201905092915050565b7f416c6c20746f6b656e73206d696e746564000000000000000000000000000000600082015250565b6000614a06601183613c0b565b9150614a11826149d0565b602082019050919050565b60006020820190508181036000830152614a35816149f9565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7400000000000000000000000000600082015250565b6000614a72601383613c0b565b9150614a7d82614a3c565b602082019050919050565b60006020820190508181036000830152614aa181614a65565b9050919050565b7f416c6c20746f6b656e73206f6e2d73616c6520616c726561647920736f6c6400600082015250565b6000614ade601f83613c0b565b9150614ae982614aa8565b602082019050919050565b60006020820190508181036000830152614b0d81614ad1565b9050919050565b6000614b1f82613bcc565b9150614b2a83613bcc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b6357614b6261494b565b5b828202905092915050565b7f496e76616c6964207061796d656e7420616d6f756e7400000000000000000000600082015250565b6000614ba4601683613c0b565b9150614baf82614b6e565b602082019050919050565b60006020820190508181036000830152614bd381614b97565b9050919050565b6000614be582613ea1565b915061ffff821415614bfa57614bf961494b565b5b600182019050919050565b6000614c1082613bcc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c4357614c4261494b565b5b600182019050919050565b6000604082019050614c636000830185613d14565b614c706020830184613bd6565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614cac81613ea1565b82525050565b6000614cbe8383614ca3565b60208301905092915050565b6000602082019050919050565b6000614ce282614c77565b614cec8185614c82565b9350614cf783614c93565b8060005b83811015614d28578151614d0f8882614cb2565b9750614d1a83614cca565b925050600181019050614cfb565b5085935050505092915050565b6000604082019050614d4a6000830185613d14565b8181036020830152614d5c8184614cd7565b90509392505050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000614dc1602a83613c0b565b9150614dcc82614d65565b604082019050919050565b60006020820190508181036000830152614df081614db4565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614e2d601983613c0b565b9150614e3882614df7565b602082019050919050565b60006020820190508181036000830152614e5c81614e20565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614ebf602f83613c0b565b9150614eca82614e63565b604082019050919050565b60006020820190508181036000830152614eee81614eb2565b9050919050565b600067ffffffffffffffff821115614f1057614f0f61411f565b5b614f1982613c4f565b9050602081019050919050565b6000614f39614f3484614ef5565b61417f565b905082815260208101848484011115614f5557614f5461411a565b5b614f60848285613c1c565b509392505050565b600082601f830112614f7d57614f7c614115565b5b8151614f8d848260208601614f26565b91505092915050565b600060208284031215614fac57614fab613a7c565b5b600082015167ffffffffffffffff811115614fca57614fc9613a81565b5b614fd684828501614f68565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061503b602683613c0b565b915061504682614fdf565b604082019050919050565b6000602082019050818103600083015261506a8161502e565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006150a7601083613c0b565b91506150b282615071565b602082019050919050565b600060208201905081810360008301526150d68161509a565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000615113601483613c0b565b915061511e826150dd565b602082019050919050565b6000602082019050818103600083015261514281615106565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006151a5602c83613c0b565b91506151b082615149565b604082019050919050565b600060208201905081810360008301526151d481615198565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b6000615237602983613c0b565b9150615242826151db565b604082019050919050565b600060208201905081810360008301526152668161522a565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006152c9602483613c0b565b91506152d48261526d565b604082019050919050565b600060208201905081810360008301526152f8816152bc565b9050919050565b600061530a82613bcc565b915061531583613bcc565b9250828210156153285761532761494b565b5b828203905092915050565b60008160601b9050919050565b600061534b82615333565b9050919050565b600061535d82615340565b9050919050565b61537561537082613b61565b615352565b82525050565b6000819050919050565b6000819050919050565b6153a061539b8261537b565b615385565b82525050565b6000819050919050565b6153c16153bc82613bcc565b6153a6565b82525050565b60006153d38287615364565b6014820191506153e3828661538f565b6020820191506153f382856153b0565b60208201915061540382846153b0565b60208201915081905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061544f82613bcc565b915061545a83613bcc565b92508261546a57615469615415565b5b828206905092915050565b60008151905061548481613b73565b92915050565b6000602082840312156154a05761549f613a7c565b5b60006154ae84828501615475565b91505092915050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615513603283613c0b565b915061551e826154b7565b604082019050919050565b6000602082019050818103600083015261554281615506565b9050919050565b600061555482613e6a565b915061555f83613e6a565b92508260ff038211156155755761557461494b565b5b828201905092915050565b60008160f81b9050919050565b600061559882615580565b9050919050565b60006155aa8261558d565b9050919050565b6155c26155bd82613b0b565b61559f565b82525050565b6155d96155d482613e6a565b61558d565b82525050565b60006155eb828c6155b1565b6001820191506155fb828b6155c8565b60018201915061560b828a6155c8565b60018201915061561b82896155c8565b60018201915061562b82886155c8565b60018201915061563b82876155c8565b60018201915061564b82866155c8565b60018201915061565b82856155c8565b60018201915061566b82846155c8565b6001820191508190509a9950505050505050505050565b600081519050919050565b6000819050602082019050919050565b60006156a9825161537b565b80915050919050565b600082821b905092915050565b60006156ca82615682565b826156d48461568d565b90506156df8161569d565b9250602082101561571f5761571a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026156b2565b831692505b5050919050565b600082825260208201905092915050565b600061574282615682565b61574c8185615726565b935061575c818560208601613c1c565b61576581613c4f565b840191505092915050565b60006080820190506157856000830187613d14565b6157926020830186613d14565b61579f6040830185613bd6565b81810360608301526157b18184615737565b905095945050505050565b6000815190506157cb81613ab2565b92915050565b6000602082840312156157e7576157e6613a7c565b5b60006157f5848285016157bc565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061583882613e6a565b915061584383613e6a565b92508261585357615852615415565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615894602083613c0b565b915061589f8261585e565b602082019050919050565b600060208201905081810360008301526158c381615887565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615900601c83613c0b565b915061590b826158ca565b602082019050919050565b6000602082019050818103600083015261592f816158f3565b905091905056fea2646970667358221220526402f84042712ad3083d5cd2d1e33071017c0044d4084d7f379eaaceb0550564736f6c63430008090033000000000000000000000000f01992e69bb96ebe5ead3df95c4b09fd113460a1000000000000000000000000e3bbec18c950151f795146424b483da5c810ded50000000000000000000000000000000000000000000000000000000000002710