60806040526040805190810160405280600881526020017f426c6f636b57524b00000000000000000000000000000000000000000000000081525060099080519060200190620000519291906200092b565b506040805190810160405280600381526020017f57524b0000000000000000000000000000000000000000000000000000000000815250600a90805190602001906200009f9291906200092b565b506004600b60006101000a81548160ff021916908360ff160217905550612710601255348015620000cf57600080fd5b5033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600681620001229190620009b2565b5033600660018154811015156200013557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860006101000a81548160ff021916908360ff16021790555073ecced56a201d1a6d1da31a060868f96acdba99b3600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ab3edd46e9d52e1b3131757e1ed87fa885f48019600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507397eae8151487e054112e27d8c2ee5f17b3c6a83c600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d6e4e287a4ae2e9d8bf7f0323f440acc0d5ad301600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036f64014dc93800601254620008d264010000000002620033dd179091906401000000009004565b6010819055506200039e6377359400601254620008d264010000000002620033dd179091906401000000009004565b601181905550620003cb6011546010546200090e640100000000026200332f179091906401000000009004565b600c81905550601054600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040518082815260200191505060405180910390a3601154600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6011546040518082815260200191505060405180910390a3600c546001819055506002600560006101000a81548160ff021916908360ff1602179055507301c06a5ec5433c60ddaa16406f5a3fffffffffff60148190555073a0e021fc3538ed52f9a3d79249ff1d3a67f91c42601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550635cdb0220601781905550635ebd872060158190555065451f2100c000601b8190555065271bb7b9b000601c81905550656c3ad8ba7000601d81905550601c54601a81905550620186a0601e81905550612710601f819055506107d06020819055506104e2602181905550610271602281905550610138602381905550609c6024819055506075602581905550606860268190555060646027819055506200070d64e8d4a51000601b546200090e640100000000026200332f179091906401000000009004565b6028819055506200073e6501d1a94a20006028546200090e640100000000026200332f179091906401000000009004565b6029819055506200076f65048c273950006029546200090e640100000000026200332f179091906401000000009004565b602a81905550620007a065048c27395000602a546200090e640100000000026200332f179091906401000000009004565b602b81905550620007d165048c27395000602b546200090e640100000000026200332f179091906401000000009004565b602c819055506200080265048c27395000602c546200090e640100000000026200332f179091906401000000009004565b602d819055506200083365048c27395000602d546200090e640100000000026200332f179091906401000000009004565b602e819055506200086465048c27395000602e546200090e640100000000026200332f179091906401000000009004565b602f819055506200089565048c27395000602f546200090e640100000000026200332f179091906401000000009004565b603081905550620008c665048c273950006030546200090e640100000000026200332f179091906401000000009004565b60318190555062000a09565b600080831415620008e7576000905062000908565b8183029050818382811515620008f957fe5b041415156200090457fe5b8090505b92915050565b600081830190508281101515156200092257fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200096e57805160ff19168380011785556200099f565b828001600101855582156200099f579182015b828111156200099e57825182559160200191906001019062000981565b5b509050620009ae9190620009e1565b5090565b815481835581811115620009dc57818360005260206000209182019101620009db9190620009e1565b5b505050565b62000a0691905b8082111562000a02576000816000905550600101620009e8565b5090565b90565b61419d8062000a196000396000f30060806040526004361061021a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305f7939a1461022557806306fdde0314610250578063095ea7b3146102e05780630d48669a146103455780631515bc2b146103b257806318160ddd146103e15780631bfd816b1461040c57806323b872dd146104635780632ff2e9dc146104e8578063313ce56714610513578063355274ea14610544578063379b4ed01461056f5780634042b66f1461059a578063485d7d94146105c55780634b023cf8146106085780634b6753bc1461064b5780634f935945146106765780635946748c146106a557806363cc4aa2146106d057806366188463146106e75780636c791e041461074c578063705388631461077c57806370a08231146107c9578063715018a614610820578063771a3a1d146108375780637b5f4f5b146108685780637dd6ab72146108ab578063819d95c1146109025780638da5cb5b1461092d57806395d89b4114610984578063a31f898214610a14578063a9059cbb14610a45578063b7a8807c14610aaa578063cf1c316a14610ad5578063d6d2229114610b18578063d73dd62314610bdf578063dd62ed3e14610c44578063e3175c4d14610cbb578063e5ee34a214610d12578063ec8ac4d814610d69578063edf4d84714610d9f578063f2fde38b14610df6578063f4dab3ff14610e39578063fe9fbb8014610e64575b61022333610ebf565b005b34801561023157600080fd5b5061023a610f79565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b50610265610f7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a557808201518184015260208101905061028a565b50505050905090810190601f1680156102d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ec57600080fd5b5061032b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061101d565b604051808215151515815260200191505060405180910390f35b34801561035157600080fd5b506103706004803603810190808035906020019092919050505061110f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103be57600080fd5b506103c761114d565b604051808215151515815260200191505060405180910390f35b3480156103ed57600080fd5b506103f6611159565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611163565b005b34801561046f57600080fd5b506104ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b0565b604051808215151515815260200191505060405180910390f35b3480156104f457600080fd5b506104fd611b1c565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b50610528611b22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561055057600080fd5b50610559611b35565b6040518082815260200191505060405180910390f35b34801561057b57600080fd5b50610584611b3b565b6040518082815260200191505060405180910390f35b3480156105a657600080fd5b506105af611b41565b6040518082815260200191505060405180910390f35b3480156105d157600080fd5b50610606600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b47565b005b34801561061457600080fd5b50610649600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c45565b005b34801561065757600080fd5b50610660611d21565b6040518082815260200191505060405180910390f35b34801561068257600080fd5b5061068b611d27565b604051808215151515815260200191505060405180910390f35b3480156106b157600080fd5b506106ba611d36565b6040518082815260200191505060405180910390f35b3480156106dc57600080fd5b506106e5611d40565b005b3480156106f357600080fd5b50610732600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f0d565b604051808215151515815260200191505060405180910390f35b34801561075857600080fd5b5061077a600480360381019080803560ff16906020019092919050505061219f565b005b34801561078857600080fd5b506107c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612219565b005b3480156107d557600080fd5b5061080a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124cd565b6040518082815260200191505060405180910390f35b34801561082c57600080fd5b50610835612515565b005b34801561084357600080fd5b5061084c61261a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561087457600080fd5b506108a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262d565b005b3480156108b757600080fd5b506108c0612709565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090e57600080fd5b5061091761272f565b6040518082815260200191505060405180910390f35b34801561093957600080fd5b50610942612735565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099057600080fd5b5061099961275b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d95780820151818401526020810190506109be565b50505050905090810190601f168015610a065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2057600080fd5b50610a296127f9565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a5157600080fd5b50610a90600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061280c565b604051808215151515815260200191505060405180910390f35b348015610ab657600080fd5b50610abf612bdd565b6040518082815260200191505060405180910390f35b348015610ae157600080fd5b50610b16600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612be3565b005b348015610b2457600080fd5b50610bdd600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612dab565b005b348015610beb57600080fd5b50610c2a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612dd5565b604051808215151515815260200191505060405180910390f35b348015610c5057600080fd5b50610ca5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fd1565b6040518082815260200191505060405180910390f35b348015610cc757600080fd5b50610cd0613058565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1e57600080fd5b50610d2761307e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebf565b005b348015610dab57600080fd5b50610db46130a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e0257600080fd5b50610e37600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130ca565b005b348015610e4557600080fd5b50610e4e613132565b6040518082815260200191505060405180910390f35b348015610e7057600080fd5b50610ea5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061313c565b604051808215151515815260200191505060405180910390f35b600080349150610ecf83836131aa565b610ed88261323e565b9050610eef8260185461332f90919063ffffffff16565b601881905550610eff838261334b565b610f07613359565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188484604051808381526020018281526020019250505060405180910390a3505050565b60115481565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110155780601f10610fea57610100808354040283529160200191611015565b820191906000526020600020905b815481529060010190602001808311610ff857829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60068181548110151561111e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006015544211905090565b6000600154905090565b600061116e3361313c565b151561117957600080fd5b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156111e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561122457600080fd5b61129783600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130e82846133c490919063ffffffff16565b9050611361816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361149d82600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156115f057600080fd5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115151561163d57600080fd5b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111515156116c857600080fd5b611719846000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117936064611785600560009054906101000a900460ff1660ff16876133dd90919063ffffffff16565b61341590919063ffffffff16565b91506117a882856133c490919063ffffffff16565b90506117fb816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361191582600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a0884600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001925050509392505050565b600c5481565b600b60009054906101000a900460ff1681565b60145481565b60165481565b60185481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba357600080fd5b611bac8161313c565b1515611bb757600080fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008600081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff1602179055505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ca157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cdd57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155481565b60006014546018541015905090565b6000601a54905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d9c57600080fd5b611da461114d565b1515611daf57600080fd5b6000601a54111515611dc057600080fd5b611e35601a54600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1227f9baa9c17a74ae4200a9a412668d5892cbf9f1cc63bdcd07cc1be0634192601a546040518082815260200191505060405180910390a2565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310151561201f576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b3565b61203283826133c490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121fb57600080fd5b80600560006101000a81548160ff021916908360ff16021790555050565b6122223361313c565b151561222d57600080fd5b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561229c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156122d857600080fd5b61234b81600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612400816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257157600080fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900460ff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156126c557600080fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127f15780601f106127c6576101008083540402835291602001916127f1565b820191906000526020600020905b8154815290600101906020018083116127d457829003601f168201915b505050505081565b600860009054906101000a900460ff1681565b60008060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561284c57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115151561289957600080fd5b6128ea846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129646064612956600560009054906101000a900460ff1660ff16876133dd90919063ffffffff16565b61341590919063ffffffff16565b915061297982856133c490919063ffffffff16565b90506129cc816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612ae682600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019250505092915050565b60175481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c3f57600080fd5b60001515600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612da8576001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060068054809190600101612d049190614120565b50806006612d2160016006805490506133c490919063ffffffff16565b815481101515612d2d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff160217905550505b50565b612db43361313c565b1515612dbf57600080fd5b612dcd86868686868661342b565b505050505050565b6000612e6682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561312657600080fd5b61312f81613a50565b50565b6000601954905090565b600060011515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156131a057600190506131a5565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156131e657600080fd5b600081141515156131f657600080fd5b60145461320e8260185461332f90919063ffffffff16565b1115151561321b57600080fd5b601754421015801561322f57506015544211155b151561323a57600080fd5b5050565b6000806000806000806000806000613257600154613b4c565b95506132628a613d3c565b9450600193505b831561331f57858511156132ed5785975061328f8860015461332f90919063ffffffff16565b92506132a4888861332f90919063ffffffff16565b96506132bb6016548961341590919063ffffffff16565b91506132d0828b6133c490919063ffffffff16565b90506132db83613b4c565b95506132e681613d3c565b945061331a565b613300858861332f90919063ffffffff16565b9650600093506133108686613d88565b61331985613da5565b5b613269565b8698505050505050505050919050565b6000818301905082811015151561334257fe5b80905092915050565b6133558282613dc3565b5050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156133c1573d6000803e3d6000fd5b50565b60008282111515156133d257fe5b818303905092915050565b6000808314156133f0576000905061340f565b818302905081838281151561340157fe5b0414151561340b57fe5b8090505b92915050565b6000818381151561342257fe5b04905092915050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561346b57600080fd5b6000151560048a6040518082805190602001908083835b6020831015156134a75780518252602082019150602081019050602083039250613482565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151415156134f657600080fd5b61350287878787613e75565b925061350e838a613f63565b91508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561354a57600080fd5b61355d858761332f90919063ffffffff16565b90506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156135ac57600080fd5b61360f85613601886000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c490919063ffffffff16565b6133c490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136a2866000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061375785600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160048a6040518082805190602001908083835b6020831015156137f557805182526020820191506020810190506020830392506137d0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f339e733e8f3d5b80a99579a1bd0d885dd3d96783439f354abebcd98f88b6462c896040518082815260200191505060405180910390a4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f339e733e8f3d5b80a99579a1bd0d885dd3d96783439f354abebcd98f88b6462c886040518082815260200191505060405180910390a48673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613a8c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080602c54831015613c4857602a54831015613bee57602854831015613b9457613b78601e5461405b565b613b8d836028546133c490919063ffffffff16565b9050613be9565b602954831015613bc557613ba9601f5461405b565b613bbe836029546133c490919063ffffffff16565b9050613be8565b613bd060205461405b565b613be583602a546133c490919063ffffffff16565b90505b5b613c43565b602b54831015613c1f57613c0360215461405b565b613c1883602b546133c490919063ffffffff16565b9050613c42565b613c2a60225461405b565b613c3f83602c546133c490919063ffffffff16565b90505b5b613d33565b602f54831015613cdd57602d54831015613c8357613c6760235461405b565b613c7c83602d546133c490919063ffffffff16565b9050613cd8565b602e54831015613cb457613c9860245461405b565b613cad83602e546133c490919063ffffffff16565b9050613cd7565b613cbf60255461405b565b613cd483602f546133c490919063ffffffff16565b90505b5b613d32565b603054831015613d0e57613cf260265461405b565b613d07836030546133c490919063ffffffff16565b9050613d31565b613d1960275461405b565b613d2e836031546133c490919063ffffffff16565b90505b5b5b80915050919050565b6000613d81670de0b6b3a7640000613d73601254613d65601654876133dd90919063ffffffff16565b6133dd90919063ffffffff16565b61341590919063ffffffff16565b9050919050565b613d9b81836133c490919063ffffffff16565b6019819055505050565b613dba81601c546133c490919063ffffffff16565b601a8190555050565b613dd88160015461332f90919063ffffffff16565b600181905550613e2f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008085858585604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018481526020018381526020018281526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515613f205780518252602082019150602081019050602083039250613efb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050613f5881614065565b915050949350505050565b60008060008060418551141515613f7d5760009350614052565b6020850151925060408501519150606085015160001a9050601b8160ff161015613fa857601b810190505b601b8160ff1614158015613fc05750601c8160ff1614155b15613fce5760009350614052565b600186828585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614045573d6000803e3d6000fd5b5050506020604051035193505b50505092915050565b8060168190555050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156140ec57805182526020820191506020810190506020830392506140c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b81548183558181111561414757818360005260206000209182019101614146919061414c565b5b505050565b61416e91905b8082111561416a576000816000905550600101614152565b5090565b905600a165627a7a72305820f6c48654dbdf5d07f556060f1719a80abb203dac97e4fce2e43b511dd59fdf030029