60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f53616c7574696e672046726f67000000000000000000000000000000000000008152506040518060400160405280600581526020017f5346524f4700000000000000000000000000000000000000000000000000000081525081600390816200008f9190620011ba565b508060049081620000a19190620011ba565b5050506000620000b662000ba860201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000603846036200017d577310ed43c718714eb63d5aa57b78b54704e256024e9050620001dd565b60614603620001a35773d99d1c33f9fc3444f8101754abc46c52416550d19050620001dc565b6001461480620001b35750600546145b15620001d657737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001db565b600080fd5b5b5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200130b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e491906200130b565b6040518363ffffffff1660e01b8152600401620003039291906200134e565b6020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034991906200130b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bb060201b60201c565b60006009819055506000600a81905550610bb8600b81905550610bb8600c81905550600b54600954620004569190620013aa565b600d81905550600c54600a546200046e9190620013aa565b600e8190555073ecd9c2cb26a7d6dc56d41c2129febcc26d2e06f2601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733265403897b80db188a240f3d49673b82ae60177600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601960006101000a81548160ff0219169083151502179055506001601860006200054f62000d8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016018600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601660006101000a81548160ff021916908315150217905550600160156000620006fd62000d8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860006200089062000d8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000620009a562000dab60201b60201c565b600a620009b3919062001546565b6509184e729fff620009c6919062001597565b905060006127106102b283620009dd919062001597565b620009e9919062001611565b905060006127106103e88462000a00919062001597565b62000a0c919062001611565b90506000828262000a1e9190620013aa565b8462000a2b919062001649565b905062000a61601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000db460201b60201c565b62000a95600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168462000db460201b60201c565b62000aa7338262000db460201b60201c565b61138862000aba62000f2c60201b60201c565b62000ac6919062001611565b6011819055506103e8601e62000ae162000f2c60201b60201c565b62000aed919062001597565b62000af9919062001611565b601a819055506103e8601e62000b1462000f2c60201b60201c565b62000b20919062001597565b62000b2c919062001611565b601b819055506103e8601e62000b4762000f2c60201b60201c565b62000b53919062001597565b62000b5f919062001611565b6017819055506000601460016101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055505050505050505062001865565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c19906200170b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8b90620017a3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d749190620017d6565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1d9062001843565b60405180910390fd5b62000e3a6000838362000f3660201b60201c565b806002600082825462000e4e9190620013aa565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ea59190620013aa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000f0c9190620017d6565b60405180910390a362000f286000838362000f3b60201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fc257607f821691505b60208210810362000fd85762000fd762000f7a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620010427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001003565b6200104e868362001003565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200109b620010956200108f8462001066565b62001070565b62001066565b9050919050565b6000819050919050565b620010b7836200107a565b620010cf620010c682620010a2565b84845462001010565b825550505050565b600090565b620010e6620010d7565b620010f3818484620010ac565b505050565b5b818110156200111b576200110f600082620010dc565b600181019050620010f9565b5050565b601f8211156200116a57620011348162000fde565b6200113f8462000ff3565b810160208510156200114f578190505b620011676200115e8562000ff3565b830182620010f8565b50505b505050565b600082821c905092915050565b60006200118f600019846008026200116f565b1980831691505092915050565b6000620011aa83836200117c565b9150826002028217905092915050565b620011c58262000f40565b67ffffffffffffffff811115620011e157620011e062000f4b565b5b620011ed825462000fa9565b620011fa8282856200111f565b600060209050601f8311600181146200123257600084156200121d578287015190505b6200122985826200119c565b86555062001299565b601f198416620012428662000fde565b60005b828110156200126c5784890151825560018201915060208501945060208101905062001245565b868310156200128c578489015162001288601f8916826200117c565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012d382620012a6565b9050919050565b620012e581620012c6565b8114620012f157600080fd5b50565b6000815190506200130581620012da565b92915050565b600060208284031215620013245762001323620012a1565b5b60006200133484828501620012f4565b91505092915050565b6200134881620012c6565b82525050565b60006040820190506200136560008301856200133d565b6200137460208301846200133d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620013b78262001066565b9150620013c48362001066565b9250828201905080821115620013df57620013de6200137b565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562001444578086048111156200141c576200141b6200137b565b5b60018516156200142c5780820291505b80810290506200143c85620013e5565b9450620013fc565b94509492505050565b6000826200145f576001905062001532565b816200146f576000905062001532565b81600181146200148857600281146200149357620014c9565b600191505062001532565b60ff841115620014a857620014a76200137b565b5b8360020a915084821115620014c257620014c16200137b565b5b5062001532565b5060208310610133831016604e8410600b8410161715620015035782820a905083811115620014fd57620014fc6200137b565b5b62001532565b620015128484846001620013f2565b925090508184048111156200152c576200152b6200137b565b5b81810290505b9392505050565b600060ff82169050919050565b6000620015538262001066565b9150620015608362001539565b92506200158f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200144d565b905092915050565b6000620015a48262001066565b9150620015b18362001066565b9250828202620015c18162001066565b91508282048414831517620015db57620015da6200137b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200161e8262001066565b91506200162b8362001066565b9250826200163e576200163d620015e2565b5b828204905092915050565b6000620016568262001066565b9150620016638362001066565b92508282039050818111156200167e576200167d6200137b565b5b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620016f360248362001684565b9150620017008262001695565b604082019050919050565b600060208201905081810360008301526200172681620016e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200178b60228362001684565b915062001798826200172d565b604082019050919050565b60006020820190508181036000830152620017be816200177c565b9050919050565b620017d08162001066565b82525050565b6000602082019050620017ed6000830184620017c5565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200182b601f8362001684565b91506200183882620017f3565b602082019050919050565b600060208201905081810360008301526200185e816200181c565b9050919050565b615c0180620018756000396000f3fe6080604052600436106102cd5760003560e01c806375f0a87411610175578063b6f7f681116100dc578063d2fcc00111610095578063e01af92c1161006f578063e01af92c14610b07578063e2f4560514610b30578063f2fde38b14610b5b578063f9d0831a14610b84576102d4565b8063d2fcc00114610a76578063dc4c7dbc14610a9f578063dd62ed3e14610aca576102d4565b8063b6f7f6811461097c578063bb85c6d1146109a5578063bdc52da8146109ce578063c0246668146109f9578063c04a541414610a22578063d2e335eb14610a4d576102d4565b806395d89b411161012e57806395d89b4114610846578063a457c2d714610871578063a8a69b9d146108ae578063a9059cbb146108eb578063aa4bde2814610928578063afa4f3b214610953576102d4565b806375f0a8741461075a578063790ca413146107855780637b3c83b1146107b0578063880bcbc1146107db5780638a8c523c146108045780638da5cb5b1461081b576102d4565b80632ce86fbf1161023457806356a6cabf116101ed57806366ca9b83116101c757806366ca9b83146106b25780636ddd1713146106db57806370a0823114610706578063715018a614610743576102d4565b806356a6cabf1461063357806359136fa51461065c5780635fc2e59614610687576102d4565b80632ce86fbf1461050d578063313ce56714610538578063395093511461056357806349bd5a5e146105a05780634ada218b146105cb5780634fbee193146105f6576102d4565b806318d9ceae1161028657806318d9ceae146103eb57806321a9d82a1461042857806323b872dd1461045357806327a14fc2146104905780632a6c7dba146104b95780632ba86bf2146104e2576102d4565b80630105d0fd146102d957806302dbd8f81461030457806306fdde031461032d578063095ea7b3146103585780631694505e1461039557806318160ddd146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610bad565b6040516102fb919061419f565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906141eb565b610bb3565b005b34801561033957600080fd5b50610342610d03565b60405161034f91906142bb565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061433b565b610d95565b60405161038c9190614396565b60405180910390f35b3480156103a157600080fd5b506103aa610db3565b6040516103b79190614410565b60405180910390f35b3480156103cc57600080fd5b506103d5610dd9565b6040516103e2919061419f565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d919061442b565b610de3565b60405161041f9190614396565b60405180910390f35b34801561043457600080fd5b5061043d610e39565b60405161044a9190614396565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190614458565b610e4c565b6040516104879190614396565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b291906144ab565b610f6b565b005b3480156104c557600080fd5b506104e060048036038101906104db9190614504565b6110d7565b005b3480156104ee57600080fd5b506104f7611226565b6040516105049190614396565b60405180910390f35b34801561051957600080fd5b50610522611239565b60405161052f919061419f565b60405180910390f35b34801561054457600080fd5b5061054d61123f565b60405161055a919061454d565b60405180910390f35b34801561056f57600080fd5b5061058a6004803603810190610585919061433b565b611248565b6040516105979190614396565b60405180910390f35b3480156105ac57600080fd5b506105b56112f4565b6040516105c29190614577565b60405180910390f35b3480156105d757600080fd5b506105e061131a565b6040516105ed9190614396565b60405180910390f35b34801561060257600080fd5b5061061d6004803603810190610618919061442b565b61132d565b60405161062a9190614396565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190614504565b611383565b005b34801561066857600080fd5b506106716114d2565b60405161067e919061419f565b60405180910390f35b34801561069357600080fd5b5061069c6114d8565b6040516106a9919061419f565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d491906141eb565b6114de565b005b3480156106e757600080fd5b506106f061162e565b6040516106fd9190614396565b60405180910390f35b34801561071257600080fd5b5061072d6004803603810190610728919061442b565b611641565b60405161073a919061419f565b60405180910390f35b34801561074f57600080fd5b50610758611689565b005b34801561076657600080fd5b5061076f6117e1565b60405161077c9190614577565b60405180910390f35b34801561079157600080fd5b5061079a611807565b6040516107a7919061419f565b60405180910390f35b3480156107bc57600080fd5b506107c561180d565b6040516107d2919061419f565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190614592565b611813565b005b34801561081057600080fd5b50610819611a53565b005b34801561082757600080fd5b50610830611b94565b60405161083d9190614577565b60405180910390f35b34801561085257600080fd5b5061085b611bbe565b60405161086891906142bb565b60405180910390f35b34801561087d57600080fd5b506108986004803603810190610893919061433b565b611c50565b6040516108a59190614396565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d0919061442b565b611d3b565b6040516108e29190614396565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d919061433b565b611d91565b60405161091f9190614396565b60405180910390f35b34801561093457600080fd5b5061093d611daf565b60405161094a919061419f565b60405180910390f35b34801561095f57600080fd5b5061097a600480360381019061097591906144ab565b611db5565b005b34801561098857600080fd5b506109a3600480360381019061099e91906141eb565b611ee6565b005b3480156109b157600080fd5b506109cc60048036038101906109c7919061442b565b6120bb565b005b3480156109da57600080fd5b506109e36122ee565b6040516109f09190614396565b60405180910390f35b348015610a0557600080fd5b50610a206004803603810190610a1b9190614592565b612301565b005b348015610a2e57600080fd5b50610a376124d3565b604051610a449190614577565b60405180910390f35b348015610a5957600080fd5b50610a746004803603810190610a6f9190614504565b6124f9565b005b348015610a8257600080fd5b50610a9d6004803603810190610a989190614592565b6125ad565b005b348015610aab57600080fd5b50610ab461277f565b604051610ac1919061419f565b60405180910390f35b348015610ad657600080fd5b50610af16004803603810190610aec91906145d2565b612785565b604051610afe919061419f565b60405180910390f35b348015610b1357600080fd5b50610b2e6004803603810190610b299190614504565b61280c565b005b348015610b3c57600080fd5b50610b45612915565b604051610b52919061419f565b60405180910390f35b348015610b6757600080fd5b50610b826004803603810190610b7d919061442b565b61291b565b005b348015610b9057600080fd5b50610bab6004803603810190610ba6919061442b565b612ae1565b005b601a5481565b610bbb612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061465e565b60405180910390fd5b81600a8190555080600c81905550600c54600a54610c6891906146ad565b600e81905550619c40600e54600d54610c8191906146ad565b1115610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990614753565b60405180910390fd5b7f12dd4f8337f0c236c7994706854cca8cd53921c0032cb0fba8cdb797e73f67c6600a54600c54604051610cf7929190614773565b60405180910390a15050565b606060038054610d12906147cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e906147cb565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050905090565b6000610da9610da2612d51565b8484612d59565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601660009054906101000a900460ff1681565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e98612d51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f545782811015610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f369061486e565b60405180910390fd5b610f5385610f4b612d51565b858403612d59565b5b610f5f858585612f22565b60019150509392505050565b610f73612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff99061465e565b60405180910390fd5b606461100c61123f565b600a61101891906149c1565b611020610dd9565b61102a9190614a3b565b6110349190614a3b565b811015611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d90614ade565b60405180910390fd5b61107e61123f565b600a61108a91906149c1565b816110959190614afe565b6017819055507f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59426017546040516110cc919061419f565b60405180910390a150565b6110df612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111659061465e565b60405180910390fd5b601660009054906101000a900460ff161515811515036111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90614bb2565b60405180910390fd5b80601660006101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1601660009054906101000a900460ff1660405161121b9190614396565b60405180910390a150565b601960009054906101000a900460ff1681565b600a5481565b60006012905090565b60006112ea611255612d51565b848460016000611263612d51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112e591906146ad565b612d59565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460019054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61138b612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114119061465e565b60405180910390fd5b601960009054906101000a900460ff1615158115150361146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690614c44565b60405180910390fd5b80601960006101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf601960009054906101000a900460ff166040516114c79190614396565b60405180910390a150565b601b5481565b600b5481565b6114e6612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c9061465e565b60405180910390fd5b8160098190555080600b81905550600b5460095461159391906146ad565b600d81905550619c40600e54600d546115ac91906146ad565b11156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490614753565b60405180910390fd5b7fccd61cb5df2cb048d1a7af40a431d6f247af01b6cf048f7a3f2aa9d313e2bc50600954600b54604051611622929190614773565b60405180910390a15050565b601260019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611691612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611720576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117179061465e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60095481565b61181b612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a19061465e565b60405180910390fd5b801515601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390614cd6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190614d42565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1082604051611a479190614396565b60405180910390a25050565b611a5b612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae19061465e565b60405180910390fd5b601460019054906101000a900460ff1615611b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3190614dae565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550426013819055506001601460006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611bcd906147cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611bf9906147cb565b8015611c465780601f10611c1b57610100808354040283529160200191611c46565b820191906000526020600020905b815481529060010190602001808311611c2957829003601f168201915b5050505050905090565b60008060016000611c5f612d51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1390614e40565b60405180910390fd5b611d30611d27612d51565b85858403612d59565b600191505092915050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611da5611d9e612d51565b8484612f22565b6001905092915050565b60175481565b611dbd612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061465e565b60405180910390fd5b620f4240611e58610dd9565b611e629190614a3b565b8111611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90614ed2565b60405180910390fd5b806011819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145601154604051611edb919061419f565b60405180910390a150565b611eee612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f749061465e565b60405180910390fd5b6103e8611f8861123f565b600a611f9491906149c1565b611f9c610dd9565b611fa69190614a3b565b611fb09190614a3b565b8210158015611ff157506103e8611fc561123f565b600a611fd191906149c1565b611fd9610dd9565b611fe39190614a3b565b611fed9190614a3b565b8110155b612030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202790614f64565b60405180910390fd5b61203861123f565b600a61204491906149c1565b8261204f9190614afe565b601a8190555061205d61123f565b600a61206991906149c1565b816120749190614afe565b601b819055507f8c8cbc911b80df94332ececb8eb0945274d76fa965600a0f01f42af3f8afb131601a54601b546040516120af929190614773565b60405180910390a15050565b6120c3612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612152576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121499061465e565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d990614ff6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224890615088565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516122e39190614577565b60405180910390a150565b601460009054906101000a900460ff1681565b612309612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f9061465e565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361242a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124219061511a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516124c79190614396565b60405180910390a25050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612501612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125879061465e565b60405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6125b5612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b9061465e565b60405180910390fd5b801515601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd90614cd6565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c826040516127739190614396565b60405180910390a25050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612814612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289a9061465e565b60405180910390fd5b801515601260019054906101000a900460ff161515036128f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ef906151ac565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b60115481565b612923612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a99061465e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a189061523e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612ae9612d51565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6f9061465e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdd906152d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c4957612c43473373ffffffffffffffffffffffffffffffffffffffff1661385690919063ffffffff16565b50612d4e565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612c899190614577565b602060405180830381865afa158015612ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cca9190615305565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612d07929190615332565b6020604051808303816000875af1158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a9190615370565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbf9061540f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2e906154a1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f15919061419f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8890615533565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff7906155c5565b60405180910390fd5b601460019054906101000a900460ff16806130645750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806130b85750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ee90615631565b60405180910390fd5b600081036131105761310b83836000613911565b613851565b601960009054906101000a900460ff161561336657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806131ce5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156132245750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561327a5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561336557600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361331e57601a54811115613319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613310906156c3565b60405180910390fd5b613364565b601b54811115613363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335a906156c3565b60405180910390fd5b5b5b5b600061337130611641565b9050600060115482101590508080156133975750601260009054906101000a900460ff16155b80156133f05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561340b57506000600e54600d5461340991906146ad565b115b80156134235750601260019054906101000a900460ff165b156134fc576001601260006101000a81548160ff0219169083151502179055506000600e54600d5461345591906146ad565b90506000600a5460095461346991906146ad565b90506000600c54600b5461347d91906146ad565b905060008211156134ae5760008383876134979190614afe565b6134a19190614a3b565b90506134ac81613b90565b505b60008111156134dd5760008382876134c69190614afe565b6134d09190614a3b565b90506134db81613eca565b505b6000601260006101000a81548160ff0219169083151502179055505050505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061359f5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806135b65750601260009054906101000a900460ff165b156135c45760009050613689565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361362357600d549050613688565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361368257600e549050613687565b600090505b5b5b60008111156136ca57600061271082866136a39190614afe565b6136ad9190614a3b565b905080856136bb91906156e3565b94506136c8873083613911565b505b601660009054906101000a900460ff161561384257601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137835750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137dd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156138415760006137ed86611641565b905060175485826137fe91906146ad565b111561383f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383690615789565b60405180910390fd5b505b5b61384d868686613911565b5050505b505050565b60008147101561389b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613892906157f5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff16836040516138c190615846565b60006040518083038185875af1925050503d80600081146138fe576040519150601f19603f3d011682016040523d82523d6000602084013e613903565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161397790615533565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036139ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139e6906155c5565b60405180910390fd5b6139fa83838361417c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a77906158cd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b1391906146ad565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b77919061419f565b60405180910390a3613b8a848484614181565b50505050565b6000600282613b9f9190614a3b565b905060008183613baf91906156e3565b905060004790506000600267ffffffffffffffff811115613bd357613bd26158ed565b5b604051908082528060200260200182016040528015613c015781602001602082028036833780820191505090505b5090503081600081518110613c1957613c1861591c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce49190615960565b81600181518110613cf857613cf761591c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401613d96959493929190615a86565b600060405180830381600087803b158015613db057600080fd5b505af1158015613dc4573d6000803e3d6000fd5b5050505060008247613dd691906156e3565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308760008061dead426040518863ffffffff1660e01b8152600401613e4196959493929190615ae0565b60606040518083038185885af1158015613e5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e849190615b41565b5050507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858286604051613eba93929190615b94565b60405180910390a1505050505050565b60004790506000600267ffffffffffffffff811115613eec57613eeb6158ed565b5b604051908082528060200260200182016040528015613f1a5781602001602082028036833780820191505090505b5090503081600081518110613f3257613f3161591c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ffd9190615960565b816001815181106140115761401061591c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016140af959493929190615a86565b600060405180830381600087803b1580156140c957600080fd5b505af11580156140dd573d6000803e3d6000fd5b50505050600082476140ef91906156e3565b905061413c81601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661385690919063ffffffff16565b507f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e62999848260405161416e929190614773565b60405180910390a150505050565b505050565b505050565b6000819050919050565b61419981614186565b82525050565b60006020820190506141b46000830184614190565b92915050565b600080fd5b6141c881614186565b81146141d357600080fd5b50565b6000813590506141e5816141bf565b92915050565b60008060408385031215614202576142016141ba565b5b6000614210858286016141d6565b9250506020614221858286016141d6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561426557808201518184015260208101905061424a565b60008484015250505050565b6000601f19601f8301169050919050565b600061428d8261422b565b6142978185614236565b93506142a7818560208601614247565b6142b081614271565b840191505092915050565b600060208201905081810360008301526142d58184614282565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614308826142dd565b9050919050565b614318816142fd565b811461432357600080fd5b50565b6000813590506143358161430f565b92915050565b60008060408385031215614352576143516141ba565b5b600061436085828601614326565b9250506020614371858286016141d6565b9150509250929050565b60008115159050919050565b6143908161437b565b82525050565b60006020820190506143ab6000830184614387565b92915050565b6000819050919050565b60006143d66143d16143cc846142dd565b6143b1565b6142dd565b9050919050565b60006143e8826143bb565b9050919050565b60006143fa826143dd565b9050919050565b61440a816143ef565b82525050565b60006020820190506144256000830184614401565b92915050565b600060208284031215614441576144406141ba565b5b600061444f84828501614326565b91505092915050565b600080600060608486031215614471576144706141ba565b5b600061447f86828701614326565b935050602061449086828701614326565b92505060406144a1868287016141d6565b9150509250925092565b6000602082840312156144c1576144c06141ba565b5b60006144cf848285016141d6565b91505092915050565b6144e18161437b565b81146144ec57600080fd5b50565b6000813590506144fe816144d8565b92915050565b60006020828403121561451a576145196141ba565b5b6000614528848285016144ef565b91505092915050565b600060ff82169050919050565b61454781614531565b82525050565b6000602082019050614562600083018461453e565b92915050565b614571816142fd565b82525050565b600060208201905061458c6000830184614568565b92915050565b600080604083850312156145a9576145a86141ba565b5b60006145b785828601614326565b92505060206145c8858286016144ef565b9150509250929050565b600080604083850312156145e9576145e86141ba565b5b60006145f785828601614326565b925050602061460885828601614326565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614648602083614236565b915061465382614612565b602082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006146b882614186565b91506146c383614186565b92508282019050808211156146db576146da61467e565b5b92915050565b7f546f74616c20466565732063616e6e6f742065786365656420746865206d617860008201527f696d756d00000000000000000000000000000000000000000000000000000000602082015250565b600061473d602483614236565b9150614748826146e1565b604082019050919050565b6000602082019050818103600083015261476c81614730565b9050919050565b60006040820190506147886000830185614190565b6147956020830184614190565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806147e357607f821691505b6020821081036147f6576147f561479c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614858602883614236565b9150614863826147fc565b604082019050919050565b600060208201905081810360008301526148878161484b565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156148e5578086048111156148c1576148c061467e565b5b60018516156148d05780820291505b80810290506148de8561488e565b94506148a5565b94509492505050565b6000826148fe57600190506149ba565b8161490c57600090506149ba565b8160018114614922576002811461492c5761495b565b60019150506149ba565b60ff84111561493e5761493d61467e565b5b8360020a9150848211156149555761495461467e565b5b506149ba565b5060208310610133831016604e8410600b84101617156149905782820a90508381111561498b5761498a61467e565b5b6149ba565b61499d848484600161489b565b925090508184048111156149b4576149b361467e565b5b81810290505b9392505050565b60006149cc82614186565b91506149d783614531565b9250614a047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846148ee565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a4682614186565b9150614a5183614186565b925082614a6157614a60614a0c565b5b828204905092915050565b7f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b6000614ac8602d83614236565b9150614ad382614a6c565b604082019050919050565b60006020820190508181036000830152614af781614abb565b9050919050565b6000614b0982614186565b9150614b1483614186565b9250828202614b2281614186565b91508282048414831517614b3957614b3861467e565b5b5092915050565b7f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060008201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b6000614b9c602d83614236565b9150614ba782614b40565b604082019050919050565b60006020820190508181036000830152614bcb81614b8f565b9050919050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c726561647960008201527f2073657420746f20746861742073746174650000000000000000000000000000602082015250565b6000614c2e603283614236565b9150614c3982614bd2565b604082019050919050565b60006020820190508181036000830152614c5d81614c21565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f2074686174207360008201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b6000614cc0602483614236565b9150614ccb82614c64565b604082019050919050565b60006020820190508181036000830152614cef81614cb3565b9050919050565b7f43616e277420736574207468697320616464726573732e000000000000000000600082015250565b6000614d2c601783614236565b9150614d3782614cf6565b602082019050919050565b60006020820190508181036000830152614d5b81614d1f565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000614d98601883614236565b9150614da382614d62565b602082019050919050565b60006020820190508181036000830152614dc781614d8b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614e2a602583614236565b9150614e3582614dce565b604082019050919050565b60006020820190508181036000830152614e5981614e1d565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b6000614ebc603f83614236565b9150614ec782614e60565b604082019050919050565b60006020820190508181036000830152614eeb81614eaf565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69732063616e6e6f742062652060008201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b6000614f4e603f83614236565b9150614f5982614ef2565b604082019050919050565b60006020820190508181036000830152614f7d81614f41565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000614fe0602883614236565b9150614feb82614f84565b604082019050919050565b6000602082019050818103600083015261500f81614fd3565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000615072602b83614236565b915061507d82615016565b604082019050919050565b600060208201905081810360008301526150a181615065565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000615104602a83614236565b915061510f826150a8565b604082019050919050565b60006020820190508181036000830152615133816150f7565b9050919050565b7f73776170456e61626c656420616c72656164792061742074686973207374617460008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000615196602283614236565b91506151a18261513a565b604082019050919050565b600060208201905081810360008301526151c581615189565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615228602683614236565b9150615233826151cc565b604082019050919050565b600060208201905081810360008301526152578161521b565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b60006152ba603783614236565b91506152c58261525e565b604082019050919050565b600060208201905081810360008301526152e9816152ad565b9050919050565b6000815190506152ff816141bf565b92915050565b60006020828403121561531b5761531a6141ba565b5b6000615329848285016152f0565b91505092915050565b60006040820190506153476000830185614568565b6153546020830184614190565b9392505050565b60008151905061536a816144d8565b92915050565b600060208284031215615386576153856141ba565b5b60006153948482850161535b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006153f9602483614236565b91506154048261539d565b604082019050919050565b60006020820190508181036000830152615428816153ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061548b602283614236565b91506154968261542f565b604082019050919050565b600060208201905081810360008301526154ba8161547e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061551d602583614236565b9150615528826154c1565b604082019050919050565b6000602082019050818103600083015261554c81615510565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006155af602383614236565b91506155ba82615553565b604082019050919050565b600060208201905081810360008301526155de816155a2565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b600061561b601883614236565b9150615626826155e5565b602082019050919050565b6000602082019050818103600083015261564a8161560e565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560008201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000602082015250565b60006156ad603b83614236565b91506156b882615651565b604082019050919050565b600060208201905081810360008301526156dc816156a0565b9050919050565b60006156ee82614186565b91506156f983614186565b92508282039050818111156157115761571061467e565b5b92915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b6000615773603083614236565b915061577e82615717565b604082019050919050565b600060208201905081810360008301526157a281615766565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006157df601d83614236565b91506157ea826157a9565b602082019050919050565b6000602082019050818103600083015261580e816157d2565b9050919050565b600081905092915050565b50565b6000615830600083615815565b915061583b82615820565b600082019050919050565b600061585182615823565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006158b7602683614236565b91506158c28261585b565b604082019050919050565b600060208201905081810360008301526158e6816158aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061595a8161430f565b92915050565b600060208284031215615976576159756141ba565b5b60006159848482850161594b565b91505092915050565b6000819050919050565b60006159b26159ad6159a88461598d565b6143b1565b614186565b9050919050565b6159c281615997565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6159fd816142fd565b82525050565b6000615a0f83836159f4565b60208301905092915050565b6000602082019050919050565b6000615a33826159c8565b615a3d81856159d3565b9350615a48836159e4565b8060005b83811015615a79578151615a608882615a03565b9750615a6b83615a1b565b925050600181019050615a4c565b5085935050505092915050565b600060a082019050615a9b6000830188614190565b615aa860208301876159b9565b8181036040830152615aba8186615a28565b9050615ac96060830185614568565b615ad66080830184614190565b9695505050505050565b600060c082019050615af56000830189614568565b615b026020830188614190565b615b0f60408301876159b9565b615b1c60608301866159b9565b615b296080830185614568565b615b3660a0830184614190565b979650505050505050565b600080600060608486031215615b5a57615b596141ba565b5b6000615b68868287016152f0565b9350506020615b79868287016152f0565b9250506040615b8a868287016152f0565b9150509250925092565b6000606082019050615ba96000830186614190565b615bb66020830185614190565b615bc36040830184614190565b94935050505056fea26469706673582212204fed2ecf22e3264977b3eb7cffe8ea3bec8513d75e9b92bd64cccf59bf2f783264736f6c63430008110033