60806040526040518060400160405280601381526020017f5348494241204f462057414c4c53545245455400000000000000000000000000815250600190816200004a9190620010b2565b506040518060400160405280600481526020017f24534f570000000000000000000000000000000000000000000000000000000081525060029081620000919190620010b2565b506008600360006101000a81548160ff021916908360ff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c5561012c600d556000600e556000600f556101c26010556000601155600360009054906101000a900460ff16600a62000196919062001329565b6305f5e100620001a791906200137a565b601455600360009054906101000a900460ff16600a620001c8919062001329565b610bb8620001d791906200137a565b601555620002116103e8620001fd6014805462000ac160201b62002f1c1790919060201c565b62000b4460201b62002f961790919060201c565b6016556200024b6103e8620002376014805462000ac160201b62002f1c1790919060201c565b62000b4460201b62002f961790919060201c565b6017556001601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550348015620002c757600080fd5b506000620002da62000b9660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073c15c578641569def84a40b6cbe382906e83e760890506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c91906200142f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000484573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004aa91906200142f565b6040518363ffffffff1660e01b8152600401620004c992919062001472565b6020604051808303816000875af1158015620004e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050f91906200142f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009b3600e546200099f600d54600c5462000b9e60201b62002fe01790919060201c565b62000b9e60201b62002fe01790919060201c565b601281905550620009f2601154620009de601054600f5462000b9e60201b62002fe01790919060201c565b62000b9e60201b62002fe01790919060201c565b60138190555062000a098262000c0160201b60201c565b601454600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000ab19190620014b0565b60405180910390a3505062001836565b600080830362000ad5576000905062000b3e565b6000828462000ae591906200137a565b905082848262000af69190620014fc565b1462000b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3090620015bb565b60405180910390fd5b809150505b92915050565b600062000b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dd060201b60201c565b905092915050565b600033905090565b600080828462000baf9190620015dd565b90508381101562000bf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bee9062001668565b60405180910390fd5b8091505092915050565b62000c1162000b9660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000ca1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9890620016da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000d13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d0a9062001772565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829062000e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e11919062001812565b60405180910390fd5b506000838562000e2b9190620014fc565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000eba57607f821691505b60208210810362000ed05762000ecf62000e72565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000efb565b62000f46868362000efb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f9362000f8d62000f878462000f5e565b62000f68565b62000f5e565b9050919050565b6000819050919050565b62000faf8362000f72565b62000fc762000fbe8262000f9a565b84845462000f08565b825550505050565b600090565b62000fde62000fcf565b62000feb81848462000fa4565b505050565b5b8181101562001013576200100760008262000fd4565b60018101905062000ff1565b5050565b601f82111562001062576200102c8162000ed6565b620010378462000eeb565b8101602085101562001047578190505b6200105f620010568562000eeb565b83018262000ff0565b50505b505050565b600082821c905092915050565b6000620010876000198460080262001067565b1980831691505092915050565b6000620010a2838362001074565b9150826002028217905092915050565b620010bd8262000e38565b67ffffffffffffffff811115620010d957620010d862000e43565b5b620010e5825462000ea1565b620010f282828562001017565b600060209050601f8311600181146200112a576000841562001115578287015190505b62001121858262001094565b86555062001191565b601f1984166200113a8662000ed6565b60005b8281101562001164578489015182556001820191506020850194506020810190506200113d565b8683101562001184578489015162001180601f89168262001074565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200122757808604811115620011ff57620011fe62001199565b5b60018516156200120f5780820291505b80810290506200121f85620011c8565b9450620011df565b94509492505050565b60008262001242576001905062001315565b8162001252576000905062001315565b81600181146200126b57600281146200127657620012ac565b600191505062001315565b60ff8411156200128b576200128a62001199565b5b8360020a915084821115620012a557620012a462001199565b5b5062001315565b5060208310610133831016604e8410600b8410161715620012e65782820a905083811115620012e057620012df62001199565b5b62001315565b620012f58484846001620011d5565b925090508184048111156200130f576200130e62001199565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013368262000f5e565b915062001343836200131c565b9250620013727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001230565b905092915050565b6000620013878262000f5e565b9150620013948362000f5e565b9250828202620013a48162000f5e565b91508282048414831517620013be57620013bd62001199565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013f782620013ca565b9050919050565b6200140981620013ea565b81146200141557600080fd5b50565b6000815190506200142981620013fe565b92915050565b600060208284031215620014485762001447620013c5565b5b6000620014588482850162001418565b91505092915050565b6200146c81620013ea565b82525050565b600060408201905062001489600083018562001461565b62001498602083018462001461565b9392505050565b620014aa8162000f5e565b82525050565b6000602082019050620014c760008301846200149f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015098262000f5e565b9150620015168362000f5e565b925082620015295762001528620014cd565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015a360218362001534565b9150620015b08262001545565b604082019050919050565b60006020820190508181036000830152620015d68162001594565b9050919050565b6000620015ea8262000f5e565b9150620015f78362000f5e565b925082820190508082111562001612576200161162001199565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001650601b8362001534565b91506200165d8262001618565b602082019050919050565b60006020820190508181036000830152620016838162001641565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620016c260208362001534565b9150620016cf826200168a565b602082019050919050565b60006020820190508181036000830152620016f581620016b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200175a60268362001534565b91506200176782620016fc565b604082019050919050565b600060208201905081810360008301526200178d816200174b565b9050919050565b60005b83811015620017b457808201518184015260208101905062001797565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017de8262000e38565b620017ea818562001534565b9350620017fc81856020860162001794565b6200180781620017c0565b840191505092915050565b600060208201905081810360008301526200182e8184620017d1565b905092915050565b61577c80620018466000396000f3fe6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a36e4c4ced9625a1683fafb9dc962bb4c9eafc8ee4cf66e13e38468b11b3f13264736f6c63430008120033