60c06040526000600d556001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055503480156200006757600080fd5b506040518060400160405280600c81526020017f42616279204f6b696e616d6900000000000000000000000000000000000000008152506040518060400160405280600881526020017f426f6b696e616d690000000000000000000000000000000000000000000000008152508160039080519060200190620000ec92919062000bd0565b5080600490805190602001906200010592919062000bd0565b50505060006200011a6200060c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001ea8160016200061460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000290919062000cea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000cea565b6040518363ffffffff1660e01b81526004016200033d92919062000d2d565b6020604051808303816000875af11580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000383919062000cea565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003cb60a0516001620006aa60201b60201c565b60006c01431e0fae6d7217caa0000000905060c8600182620003ee919062000d93565b620003fa919062000e23565b60068190555060c860018262000411919062000d93565b6200041d919062000e23565b600781905550606460018262000434919062000d93565b62000440919062000e23565b60088190555061271060198262000458919062000d93565b62000464919062000e23565b600a8190555060056010819055506001601181905550600060128190555060125460115460105462000497919062000e5b565b620004a3919062000e5b565b600f81905550600760148190555060016015819055506000601681905550601654601554601454620004d6919062000e5b565b620004e2919062000e5b565b601381905550620004fb8360016200061460201b60201c565b6200050e3060016200061460201b60201c565b6200052361dead60016200061460201b60201c565b620005368360016200075d60201b60201c565b620005493060016200075d60201b60201c565b6200055e61dead60016200075d60201b60201c565b82600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005f28382620008aa60201b60201c565b6200060383620009fb60201b60201c565b5050506200113f565b600033905090565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200069e92919062000ed5565b60405180910390a15050565b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200071382826200061460201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6200076d6200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f69062000f63565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200089e919062000f85565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200091d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009149062000ff2565b60405180910390fd5b806002600082825462000931919062000e5b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000988919062000e5b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ef919062001025565b60405180910390a35050565b62000a0b6200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a949062000f63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000b10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b0790620010b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000bde9062001109565b90600052602060002090601f01602090048101928262000c02576000855562000c4e565b82601f1062000c1d57805160ff191683800117855562000c4e565b8280016001018555821562000c4e579182015b8281111562000c4d57825182559160200191906001019062000c30565b5b50905062000c5d919062000c61565b5090565b5b8082111562000c7c57600081600090555060010162000c62565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cb28262000c85565b9050919050565b62000cc48162000ca5565b811462000cd057600080fd5b50565b60008151905062000ce48162000cb9565b92915050565b60006020828403121562000d035762000d0262000c80565b5b600062000d138482850162000cd3565b91505092915050565b62000d278162000ca5565b82525050565b600060408201905062000d44600083018562000d1c565b62000d53602083018462000d1c565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000da08262000d5a565b915062000dad8362000d5a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000de95762000de862000d64565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e308262000d5a565b915062000e3d8362000d5a565b92508262000e505762000e4f62000df4565b5b828204905092915050565b600062000e688262000d5a565b915062000e758362000d5a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ead5762000eac62000d64565b5b828201905092915050565b60008115159050919050565b62000ecf8162000eb8565b82525050565b600060408201905062000eec600083018562000d1c565b62000efb602083018462000ec4565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f4b60208362000f02565b915062000f588262000f13565b602082019050919050565b6000602082019050818103600083015262000f7e8162000f3c565b9050919050565b600060208201905062000f9c600083018462000ec4565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fda601f8362000f02565b915062000fe78262000fa2565b602082019050919050565b600060208201905081810360008301526200100d8162000fcb565b9050919050565b6200101f8162000d5a565b82525050565b60006020820190506200103c600083018462001014565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000620010a060268362000f02565b9150620010ad8262001042565b604082019050919050565b60006020820190508181036000830152620010d38162001091565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200112257607f821691505b60208210811415620011395762001138620010da565b5b50919050565b60805160a051615eee620011a460003960008181611446015281816117ca01528181611f35015261311a015260008181610dad015281816130c301528181614072015281816141530152818161417a01528181614216015261423d0152615eee6000f3fe6080604052600436106103545760003560e01c80638366e79a116101c6578063c18bc195116100f7578063ea4cfe1211610095578063f2fde38b1161006f578063f2fde38b14610c3f578063f5648a4f14610c68578063f637434214610c7f578063fb002c9714610caa5761035b565b8063ea4cfe1214610bbe578063ee40166e14610be9578063f11a24d314610c145761035b565b8063dc3f0d0f116100d1578063dc3f0d0f14610b16578063dd62ed3e14610b3f578063e2f4560514610b7c578063e884f26014610ba75761035b565b8063c18bc19514610a99578063d257b34f14610ac2578063d85ba06314610aeb5761035b565b8063a457c2d711610164578063b62496f51161013e578063b62496f5146109df578063bbc0c74214610a1c578063c024666814610a47578063c17b5b8c14610a705761035b565b8063a457c2d71461093a578063a9059cbb14610977578063aa4bde28146109b45761035b565b80638a8c523c116101a05780638a8c523c146108a45780638da5cb5b146108bb57806395d89b41146108e65780639a7a23d6146109115761035b565b80638366e79a1461081157806383716c661461084e57806388e765ff146108795761035b565b8063499b8394116102a05780636a486a8e1161023e578063715018a611610218578063715018a614610791578063751039fc146107a85780637571336a146107bf5780638095d564146107e85761035b565b80636a486a8e146106fe5780636ddd17131461072957806370a08231146107545761035b565b80634c16e19f1161027a5780634c16e19f146106525780634f77f6c01461067d5780635a139dd4146106a857806366d602ae146106d35761035b565b8063499b8394146105d357806349bd5a5e146105fc5780634a62bb65146106275761035b565b80631a8145bb1161030d5780632be32b61116102e75780632be32b6114610517578063313ce56714610540578063395093511461056b5780633a7f6237146105a85761035b565b80631a8145bb146104865780632307b441146104b157806323b872dd146104da5761035b565b806305e161e91461036057806306fdde031461038b578063095ea7b3146103b657806310d5de53146103f35780631694505e1461043057806318160ddd1461045b5761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610cd5565b6040516103829190614305565b60405180910390f35b34801561039757600080fd5b506103a0610cdb565b6040516103ad91906143b9565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190614479565b610d6d565b6040516103ea91906144d4565b60405180910390f35b3480156103ff57600080fd5b5061041a600480360381019061041591906144ef565b610d8b565b60405161042791906144d4565b60405180910390f35b34801561043c57600080fd5b50610445610dab565b604051610452919061457b565b60405180910390f35b34801561046757600080fd5b50610470610dcf565b60405161047d9190614305565b60405180910390f35b34801561049257600080fd5b5061049b610dd9565b6040516104a89190614305565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d391906147a1565b610ddf565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190614819565b610f80565b60405161050e91906144d4565b60405180910390f35b34801561052357600080fd5b5061053e6004803603810190610539919061486c565b611078565b005b34801561054c57600080fd5b506105556111db565b60405161056291906148b5565b60405180910390f35b34801561057757600080fd5b50610592600480360381019061058d9190614479565b6111e4565b60405161059f91906144d4565b60405180910390f35b3480156105b457600080fd5b506105bd611290565b6040516105ca91906148df565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906144ef565b6112b6565b005b34801561060857600080fd5b50610611611444565b60405161061e91906148df565b60405180910390f35b34801561063357600080fd5b5061063c611468565b60405161064991906144d4565b60405180910390f35b34801561065e57600080fd5b5061066761147b565b6040516106749190614305565b60405180910390f35b34801561068957600080fd5b50610692611481565b60405161069f9190614305565b60405180910390f35b3480156106b457600080fd5b506106bd611487565b6040516106ca9190614305565b60405180910390f35b3480156106df57600080fd5b506106e861148d565b6040516106f59190614305565b60405180910390f35b34801561070a57600080fd5b50610713611493565b6040516107209190614305565b60405180910390f35b34801561073557600080fd5b5061073e611499565b60405161074b91906144d4565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906144ef565b6114ac565b6040516107889190614305565b60405180910390f35b34801561079d57600080fd5b506107a66114f4565b005b3480156107b457600080fd5b506107bd61164c565b005b3480156107cb57600080fd5b506107e660048036038101906107e19190614926565b61172c565b005b3480156107f457600080fd5b5061080f600480360381019061080a9190614966565b6118b3565b005b34801561081d57600080fd5b50610838600480360381019061083391906149b9565b6119cc565b60405161084591906144d4565b60405180910390f35b34801561085a57600080fd5b50610863611c82565b6040516108709190614305565b60405180910390f35b34801561088557600080fd5b5061088e611c88565b60405161089b9190614305565b60405180910390f35b3480156108b057600080fd5b506108b9611c8e565b005b3480156108c757600080fd5b506108d0611de0565b6040516108dd91906148df565b60405180910390f35b3480156108f257600080fd5b506108fb611e0a565b60405161090891906143b9565b60405180910390f35b34801561091d57600080fd5b5061093860048036038101906109339190614926565b611e9c565b005b34801561094657600080fd5b50610961600480360381019061095c9190614479565b611fd0565b60405161096e91906144d4565b60405180910390f35b34801561098357600080fd5b5061099e60048036038101906109999190614479565b6120bb565b6040516109ab91906144d4565b60405180910390f35b3480156109c057600080fd5b506109c96120d9565b6040516109d69190614305565b60405180910390f35b3480156109eb57600080fd5b50610a066004803603810190610a0191906144ef565b6120df565b604051610a1391906144d4565b60405180910390f35b348015610a2857600080fd5b50610a316120ff565b604051610a3e91906144d4565b60405180910390f35b348015610a5357600080fd5b50610a6e6004803603810190610a699190614926565b612112565b005b348015610a7c57600080fd5b50610a976004803603810190610a929190614966565b612252565b005b348015610aa557600080fd5b50610ac06004803603810190610abb919061486c565b61236c565b005b348015610ace57600080fd5b50610ae96004803603810190610ae4919061486c565b6124cf565b005b348015610af757600080fd5b50610b00612637565b604051610b0d9190614305565b60405180910390f35b348015610b2257600080fd5b50610b3d6004803603810190610b38919061486c565b61263d565b005b348015610b4b57600080fd5b50610b666004803603810190610b6191906149b9565b6127a0565b604051610b739190614305565b60405180910390f35b348015610b8857600080fd5b50610b91612827565b604051610b9e9190614305565b60405180910390f35b348015610bb357600080fd5b50610bbc61282d565b005b348015610bca57600080fd5b50610bd36128c6565b604051610be091906148df565b60405180910390f35b348015610bf557600080fd5b50610bfe6128ec565b604051610c0b9190614305565b60405180910390f35b348015610c2057600080fd5b50610c296128f2565b604051610c369190614305565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c6191906144ef565b6128f8565b005b348015610c7457600080fd5b50610c7d612abf565b005b348015610c8b57600080fd5b50610c94612bc7565b604051610ca19190614305565b60405180910390f35b348015610cb657600080fd5b50610cbf612bcd565b604051610ccc9190614305565b60405180910390f35b60165481565b606060038054610cea90614a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1690614a28565b8015610d635780601f10610d3857610100808354040283529160200191610d63565b820191906000526020600020905b815481529060010190602001808311610d4657829003601f168201915b5050505050905090565b6000610d81610d7a612bd3565b8484612bdb565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60185481565b610de7612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90614aa6565b60405180910390fd5b8051825114610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190614b12565b60405180910390fd5b60c8825110610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590614ba4565b60405180910390fd5b60005b8251811015610f7b576000838281518110610f1f57610f1e614bc4565b5b602002602001015190506000670de0b6b3a7640000848481518110610f4757610f46614bc4565b5b6020026020010151610f599190614c22565b9050610f66338383612da6565b50508080610f7390614c7c565b915050610f01565b505050565b6000610f8d848484612da6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fd8612bd3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90614d37565b60405180910390fd5b61106c85611064612bd3565b858403612bdb565b60019150509392505050565b611080612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690614aa6565b60405180910390fd5b670de0b6b3a76400006103e86001611125610dcf565b61112f9190614c22565b6111399190614d86565b6111439190614d86565b811015611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90614e29565b60405180910390fd5b670de0b6b3a7640000816111999190614c22565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de410096006546040516111d09190614305565b60405180910390a150565b60006012905090565b60006112866111f1612bd3565b8484600160006111ff612bd3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112819190614e49565b612bdb565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112be612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490614aa6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490614f11565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60009054906101000a900460ff1681565b60195481565b60145481565b60105481565b60075481565b60135481565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114fc612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290614aa6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611654612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90614aa6565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b611734612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90614aa6565b60405180910390fd5b80611858577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90614fa3565b60405180910390fd5b5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118bb612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190614aa6565b60405180910390fd5b8260108190555081601181905550806012819055506012546011546010546119729190614e49565b61197c9190614e49565b600f81905550600f805411156119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be9061500f565b60405180910390fd5b505050565b60006119d6612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90614aa6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc9061507b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b906150e7565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b7f91906148df565b602060405180830381865afa158015611b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc0919061511c565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611bfd929190615149565b6020604051808303816000875af1158015611c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c409190615187565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611c73929190615149565b60405180910390a15092915050565b60125481565b60065481565b611c96612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90614aa6565b60405180910390fd5b600e60019054906101000a900460ff1615611d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6c90615200565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff02191690831515021790555043600d819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611e1990614a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4590614a28565b8015611e925780601f10611e6757610100808354040283529160200191611e92565b820191906000526020600020905b815481529060010190602001808311611e7557829003601f168201915b5050505050905090565b611ea4612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90614aa6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990615292565b60405180910390fd5b611fcc8282613a24565b5050565b60008060016000611fdf612bd3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561209c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209390615324565b60405180910390fd5b6120b06120a7612bd3565b85858403612bdb565b600191505092915050565b60006120cf6120c8612bd3565b8484612da6565b6001905092915050565b60085481565b601c6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b61211a612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a090614aa6565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161224691906144d4565b60405180910390a25050565b61225a612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e090614aa6565b60405180910390fd5b8260148190555081601581905550806016819055506016546015546014546123119190614e49565b61231b9190614e49565b60138190555060146013541115612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e90615390565b60405180910390fd5b505050565b612374612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa90614aa6565b60405180910390fd5b670de0b6b3a76400006103e86003612419610dcf565b6124239190614c22565b61242d9190614d86565b6124379190614d86565b811015612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247090615422565b60405180910390fd5b670de0b6b3a76400008161248d9190614c22565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516124c49190614305565b60405180910390a150565b6124d7612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90614aa6565b60405180910390fd5b620186a06001612574610dcf565b61257e9190614c22565b6125889190614d86565b8110156125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c1906154b4565b60405180910390fd5b6103e860016125d7610dcf565b6125e19190614c22565b6125eb9190614d86565b81111561262d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262490615546565b60405180910390fd5b80600a8190555050565b600f5481565b612645612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb90614aa6565b60405180910390fd5b670de0b6b3a76400006103e860016126ea610dcf565b6126f49190614c22565b6126fe9190614d86565b6127089190614d86565b81101561274a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612741906155d8565b60405180910390fd5b670de0b6b3a76400008161275e9190614c22565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516127959190614305565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b612835612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bb90614aa6565b60405180910390fd5b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60115481565b612900612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690614aa6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f69061566a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612ac7612bd3565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4d90614aa6565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612b7c906156bb565b60006040518083038185875af1925050503d8060008114612bb9576040519150601f19603f3d011682016040523d82523d6000602084013e612bbe565b606091505b50508091505050565b60155481565b60175481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4290615742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb2906157d4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d999190614305565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0d90615866565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7d906158f8565b60405180910390fd5b60008111612ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec090615964565b60405180910390fd5b600e60009054906101000a900460ff16156134ac57612ee6611de0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f545750612f24611de0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612f8d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612fc7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134ab57600e60019054906101000a900460ff166130c157601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130815750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b7906159d0565b60405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561316957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b50601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561320d5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132b457600654811115613257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324e90615a62565b60405180910390fd5b600854613263836114ac565b8261326e9190614e49565b11156132af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a690615ace565b60405180910390fd5b6134aa565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156133575750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156133a6576007548111156133a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161339890615b60565b60405180910390fd5b6134a9565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561344a5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134a85760085461345b836114ac565b826134669190614e49565b11156134a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349e90615ace565b60405180910390fd5b5b5b5b5b5b60006134b7306114ac565b90506000600a5482101590508080156134dc5750600e60029054906101000a900460ff165b80156134f55750600960009054906101000a900460ff16155b801561354b5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135a15750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f75750601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561363b576001600960006101000a81548160ff02191690831515021790555061361f613acf565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136e25750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136ec57600090505b6000808215613a0f576001436137029190614e49565b600d541015801561375c5750601c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137ae5760646063876137709190614c22565b61377a9190614d86565b90506137a988600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613cd4565b6139e0565b601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561380957506000601354115b156138c85760646013548761381e9190614c22565b6138289190614d86565b91506013546015548361383b9190614c22565b6138459190614d86565b601860008282546138569190614e49565b925050819055506013546014548361386e9190614c22565b6138789190614d86565b601760008282546138899190614e49565b92505081905550601354601654836138a19190614c22565b6138ab9190614d86565b601960008282546138bc9190614e49565b925050819055506139df565b601c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561392357506000600f54115b156139de576064600f54876139389190614c22565b6139429190614d86565b9150600f54601154836139559190614c22565b61395f9190614d86565b601860008282546139709190614e49565b92505081905550600f54601054836139889190614c22565b6139929190614d86565b601760008282546139a39190614e49565b92505081905550600f54601254836139bb9190614c22565b6139c59190614d86565b601960008282546139d69190614e49565b925050819055505b5b5b60008211156139f5576139f4883084613cd4565b5b8082613a019190614e49565b86613a0c9190615b80565b95505b613a1a888888613cd4565b5050505050505050565b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613a858282613f3f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000613ada306114ac565b90506000601954601754601854613af19190614e49565b613afb9190614e49565b90506000821480613b0c5750600081145b15613b18575050613cd2565b600a8054613b269190614c22565b821115613b3e57600a8054613b3b9190614c22565b91505b60008060028360185486613b529190614c22565b613b5c9190614d86565b613b669190614d86565b9050613b7c8185613b779190615b80565b613fd3565b6000479050600081905060006002601854613b979190614d86565b86613ba29190615b80565b60175484613bb09190614c22565b613bba9190614d86565b905060006002601854613bcd9190614d86565b87613bd89190615b80565b60195485613be69190614c22565b613bf09190614d86565b90508082613bfe9190614e49565b83613c099190615b80565b925060006018819055506000601781905550600085118015613c2b5750600083115b15613c3b57613c3a8584614210565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613c81906156bb565b60006040518083038185875af1925050503d8060008114613cbe576040519150601f19603f3d011682016040523d82523d6000602084013e613cc3565b606091505b50508096505050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3b90615866565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dab906158f8565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3190615c26565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613ecd9190614e49565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f319190614305565b60405180910390a350505050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67468282604051613fc7929190615c46565b60405180910390a15050565b6000600267ffffffffffffffff811115613ff057613fef61459b565b5b60405190808252806020026020018201604052801561401e5781602001602082028036833780820191505090505b509050308160008151811061403657614035614bc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ff9190615c84565b8160018151811061411357614112614bc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050614178307f000000000000000000000000000000000000000000000000000000000000000084612bdb565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016141da959493929190615daa565b600060405180830381600087803b1580156141f457600080fd5b505af1158015614208573d6000803e3d6000fd5b505050505050565b61423b307f000000000000000000000000000000000000000000000000000000000000000084612bdb565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016142a296959493929190615e04565b60606040518083038185885af11580156142c0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142e59190615e65565b5050505050565b6000819050919050565b6142ff816142ec565b82525050565b600060208201905061431a60008301846142f6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561435a57808201518184015260208101905061433f565b83811115614369576000848401525b50505050565b6000601f19601f8301169050919050565b600061438b82614320565b614395818561432b565b93506143a581856020860161433c565b6143ae8161436f565b840191505092915050565b600060208201905081810360008301526143d38184614380565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061441a826143ef565b9050919050565b61442a8161440f565b811461443557600080fd5b50565b60008135905061444781614421565b92915050565b614456816142ec565b811461446157600080fd5b50565b6000813590506144738161444d565b92915050565b600080604083850312156144905761448f6143e5565b5b600061449e85828601614438565b92505060206144af85828601614464565b9150509250929050565b60008115159050919050565b6144ce816144b9565b82525050565b60006020820190506144e960008301846144c5565b92915050565b600060208284031215614505576145046143e5565b5b600061451384828501614438565b91505092915050565b6000819050919050565b600061454161453c614537846143ef565b61451c565b6143ef565b9050919050565b600061455382614526565b9050919050565b600061456582614548565b9050919050565b6145758161455a565b82525050565b6000602082019050614590600083018461456c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6145d38261436f565b810181811067ffffffffffffffff821117156145f2576145f161459b565b5b80604052505050565b60006146056143db565b905061461182826145ca565b919050565b600067ffffffffffffffff8211156146315761463061459b565b5b602082029050602081019050919050565b600080fd5b600061465a61465584614616565b6145fb565b9050808382526020820190506020840283018581111561467d5761467c614642565b5b835b818110156146a657806146928882614438565b84526020840193505060208101905061467f565b5050509392505050565b600082601f8301126146c5576146c4614596565b5b81356146d5848260208601614647565b91505092915050565b600067ffffffffffffffff8211156146f9576146f861459b565b5b602082029050602081019050919050565b600061471d614718846146de565b6145fb565b905080838252602082019050602084028301858111156147405761473f614642565b5b835b8181101561476957806147558882614464565b845260208401935050602081019050614742565b5050509392505050565b600082601f83011261478857614787614596565b5b813561479884826020860161470a565b91505092915050565b600080604083850312156147b8576147b76143e5565b5b600083013567ffffffffffffffff8111156147d6576147d56143ea565b5b6147e2858286016146b0565b925050602083013567ffffffffffffffff811115614803576148026143ea565b5b61480f85828601614773565b9150509250929050565b600080600060608486031215614832576148316143e5565b5b600061484086828701614438565b935050602061485186828701614438565b925050604061486286828701614464565b9150509250925092565b600060208284031215614882576148816143e5565b5b600061489084828501614464565b91505092915050565b600060ff82169050919050565b6148af81614899565b82525050565b60006020820190506148ca60008301846148a6565b92915050565b6148d98161440f565b82525050565b60006020820190506148f460008301846148d0565b92915050565b614903816144b9565b811461490e57600080fd5b50565b600081359050614920816148fa565b92915050565b6000806040838503121561493d5761493c6143e5565b5b600061494b85828601614438565b925050602061495c85828601614911565b9150509250929050565b60008060006060848603121561497f5761497e6143e5565b5b600061498d86828701614464565b935050602061499e86828701614464565b92505060406149af86828701614464565b9150509250925092565b600080604083850312156149d0576149cf6143e5565b5b60006149de85828601614438565b92505060206149ef85828601614438565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614a4057607f821691505b60208210811415614a5457614a536149f9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614a9060208361432b565b9150614a9b82614a5a565b602082019050919050565b60006020820190508181036000830152614abf81614a83565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000614afc601e8361432b565b9150614b0782614ac6565b602082019050919050565b60006020820190508181036000830152614b2b81614aef565b9050919050565b7f43616e206f6e6c792061697264726f70203230302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b6000614b8e60368361432b565b9150614b9982614b32565b604082019050919050565b60006020820190508181036000830152614bbd81614b81565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c2d826142ec565b9150614c38836142ec565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c7157614c70614bf3565b5b828202905092915050565b6000614c87826142ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614cba57614cb9614bf3565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614d2160288361432b565b9150614d2c82614cc5565b604082019050919050565b60006020820190508181036000830152614d5081614d14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614d91826142ec565b9150614d9c836142ec565b925082614dac57614dab614d57565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000614e1360298361432b565b9150614e1e82614db7565b604082019050919050565b60006020820190508181036000830152614e4281614e06565b9050919050565b6000614e54826142ec565b9150614e5f836142ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614e9457614e93614bf3565b5b828201905092915050565b7f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60008201527f7420626520300000000000000000000000000000000000000000000000000000602082015250565b6000614efb60268361432b565b9150614f0682614e9f565b604082019050919050565b60006020820190508181036000830152614f2a81614eee565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614f8d60278361432b565b9150614f9882614f31565b604082019050919050565b60006020820190508181036000830152614fbc81614f80565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614ff9601d8361432b565b915061500482614fc3565b602082019050919050565b6000602082019050818103600083015261502881614fec565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b6000615065601a8361432b565b91506150708261502f565b602082019050919050565b6000602082019050818103600083015261509481615058565b9050919050565b7f43616e2774207769746864726177206e617469766520746f6b656e7300000000600082015250565b60006150d1601c8361432b565b91506150dc8261509b565b602082019050919050565b60006020820190508181036000830152615100816150c4565b9050919050565b6000815190506151168161444d565b92915050565b600060208284031215615132576151316143e5565b5b600061514084828501615107565b91505092915050565b600060408201905061515e60008301856148d0565b61516b60208301846142f6565b9392505050565b600081519050615181816148fa565b92915050565b60006020828403121561519d5761519c6143e5565b5b60006151ab84828501615172565b91505092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006151ea60178361432b565b91506151f5826151b4565b602082019050919050565b60006020820190508181036000830152615219816151dd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061527c60398361432b565b915061528782615220565b604082019050919050565b600060208201905081810360008301526152ab8161526f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061530e60258361432b565b9150615319826152b2565b604082019050919050565b6000602082019050818103600083015261533d81615301565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b600061537a601d8361432b565b915061538582615344565b602082019050919050565b600060208201905081810360008301526153a98161536d565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b600061540c602c8361432b565b9150615417826153b0565b604082019050919050565b6000602082019050818103600083015261543b816153ff565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061549e60358361432b565b91506154a982615442565b604082019050919050565b600060208201905081810360008301526154cd81615491565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b600061553060348361432b565b915061553b826154d4565b604082019050919050565b6000602082019050818103600083015261555f81615523565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006155c2602a8361432b565b91506155cd82615566565b604082019050919050565b600060208201905081810360008301526155f1816155b5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061565460268361432b565b915061565f826155f8565b604082019050919050565b6000602082019050818103600083015261568381615647565b9050919050565b600081905092915050565b50565b60006156a560008361568a565b91506156b082615695565b600082019050919050565b60006156c682615698565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061572c60248361432b565b9150615737826156d0565b604082019050919050565b6000602082019050818103600083015261575b8161571f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006157be60228361432b565b91506157c982615762565b604082019050919050565b600060208201905081810360008301526157ed816157b1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061585060258361432b565b915061585b826157f4565b604082019050919050565b6000602082019050818103600083015261587f81615843565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006158e260238361432b565b91506158ed82615886565b604082019050919050565b60006020820190508181036000830152615911816158d5565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b600061594e601d8361432b565b915061595982615918565b602082019050919050565b6000602082019050818103600083015261597d81615941565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006159ba60168361432b565b91506159c582615984565b602082019050919050565b600060208201905081810360008301526159e9816159ad565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000615a4c60288361432b565b9150615a57826159f0565b604082019050919050565b60006020820190508181036000830152615a7b81615a3f565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000615ab860188361432b565b9150615ac382615a82565b602082019050919050565b60006020820190508181036000830152615ae781615aab565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000615b4a602a8361432b565b9150615b5582615aee565b604082019050919050565b60006020820190508181036000830152615b7981615b3d565b9050919050565b6000615b8b826142ec565b9150615b96836142ec565b925082821015615ba957615ba8614bf3565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615c1060268361432b565b9150615c1b82615bb4565b604082019050919050565b60006020820190508181036000830152615c3f81615c03565b9050919050565b6000604082019050615c5b60008301856148d0565b615c6860208301846144c5565b9392505050565b600081519050615c7e81614421565b92915050565b600060208284031215615c9a57615c996143e5565b5b6000615ca884828501615c6f565b91505092915050565b6000819050919050565b6000615cd6615cd1615ccc84615cb1565b61451c565b6142ec565b9050919050565b615ce681615cbb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615d218161440f565b82525050565b6000615d338383615d18565b60208301905092915050565b6000602082019050919050565b6000615d5782615cec565b615d618185615cf7565b9350615d6c83615d08565b8060005b83811015615d9d578151615d848882615d27565b9750615d8f83615d3f565b925050600181019050615d70565b5085935050505092915050565b600060a082019050615dbf60008301886142f6565b615dcc6020830187615cdd565b8181036040830152615dde8186615d4c565b9050615ded60608301856148d0565b615dfa60808301846142f6565b9695505050505050565b600060c082019050615e1960008301896148d0565b615e2660208301886142f6565b615e336040830187615cdd565b615e406060830186615cdd565b615e4d60808301856148d0565b615e5a60a08301846142f6565b979650505050505050565b600080600060608486031215615e7e57615e7d6143e5565b5b6000615e8c86828701615107565b9350506020615e9d86828701615107565b9250506040615eae86828701615107565b915050925092509256fea2646970667358221220885079be8caaf8c2bdf8c4c983f25f4650317f3b16848a53f607be308dc3802064736f6c634300080b0033