60806040526040518060400160405280600881526020017f506f53546f6b656e00000000000000000000000000000000000000000000000081525060059080519060200190620000519291906200042a565b506040518060400160405280600381526020017f504f350000000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f9291906200042a565b506012600760006101000a81548160ff021916908360ff16021790555073b9019e43caae19c1a8453767bf9869f16bcabc88600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507315785bff68f6bc951e933a19308a51f93fcbea6c600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507339cfee2e7e4afdedaf32fbce9086a0c3516228ea600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bf3825fe7f09e836ce029d100648b313f7456a8e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610258600f5561070860105561096060115561558c60125567016345785d8a0000601355600760009054906101000a900460ff1660ff16600a0a620186a002601455600760009054906101000a900460ff1660ff16600a0a62030d4002601555604160165567016345785d8a00006017553480156200028e57600080fd5b5033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900460ff1660ff16600a0a6305f45a6002601981905550600760009054906101000a900460ff1660ff16600a0a6301fc1e2002601a819055504260088190555043600981905550601a54601b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a5460188190555042600a81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a3620004d9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200046d57805160ff19168380011785556200049e565b828001600101855582156200049e579182015b828111156200049d57825182559160200191906001019062000480565b5b509050620004ad9190620004b1565b5090565b620004d691905b80821115620004d2576000816000905550600101620004b8565b5090565b90565b61384f80620004e96000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806390762a8b116100f9578063bb35d94c11610097578063dd62ed3e11610071578063dd62ed3e146107c3578063e1c3bac61461083b578063e709877a14610859578063f2fde38b146108dd576101c4565b8063bb35d94c14610743578063ca21d8bd1461074d578063cbd8877e146107a5576101c4565b80639fd4da40116100d35780639fd4da4014610683578063a58203df146106a1578063a9059cbb146106bf578063b2552fc414610725576101c4565b806390762a8b1461057a57806395d89b41146105a85780639e85bc831461062b576101c4565b8063313ce5671161016657806370a082311161014057806370a08231146104625780637419f190146104ba5780637fb8b61e146104d85780638da5cb5b14610530576101c4565b8063313ce567146103c457806342cbb15c146103e85780636dd7d8ea14610406576101c4565b806318160ddd116101a257806318160ddd146102d45780631ca8baaf146102f257806323b872dd146103205780632ab4d052146103a6576101c4565b806306fdde03146101c9578063095ea7b31461024c5780631249c58b146102b2575b600080fd5b6101d1610921565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c3565b604051808215151515815260200191505060405180910390f35b6102ba610b4c565b604051808215151515815260200191505060405180910390f35b6102dc611190565b6040518082815260200191505060405180910390f35b61031e6004803603602081101561030857600080fd5b8101908080359060200190929190505050611196565b005b61038c6004803603606081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611211565b604051808215151515815260200191505060405180910390f35b6103ae61183c565b6040518082815260200191505060405180910390f35b6103cc611842565b604051808260ff1660ff16815260200191505060405180910390f35b6103f0611859565b6040518082815260200191505060405180910390f35b6104486004803603602081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611875565b604051808215151515815260200191505060405180910390f35b6104a46004803603602081101561047857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b47565b6040518082815260200191505060405180910390f35b6104c2611b90565b6040518082815260200191505060405180910390f35b61051a600480360360208110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b96565b6040518082815260200191505060405180910390f35b610538611bfd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a66004803603602081101561059057600080fd5b8101908080359060200190929190505050611c23565b005b6105b0611f56565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f05780820151818401526020810190506105d5565b50505050905090810190601f16801561061d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61066d6004803603602081101561064157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff8565b6040518082815260200191505060405180910390f35b61068b61205f565b6040518082815260200191505060405180910390f35b6106a9612065565b6040518082815260200191505060405180910390f35b61070b600480360360408110156106d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061206b565b604051808215151515815260200191505060405180910390f35b61072d61258f565b6040518082815260200191505060405180910390f35b61074b6127a7565b005b61078f6004803603602081101561076357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612882565b6040518082815260200191505060405180910390f35b6107ad612895565b6040518082815260200191505060405180910390f35b610825600480360360408110156107d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061289b565b6040518082815260200191505060405180910390f35b610843612922565b6040518082815260200191505060405180910390f35b61089b6004803603602081101561086f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612928565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61091f600480360360208110156108f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612991565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109b95780601f1061098e576101008083540402835291602001916109b9565b820191906000526020600020905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b6000808214158015610a5257506000601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610a5c57600080fd5b81601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600060195460185410610b5e57600080fd5b6000602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610c13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4d75737420766f746520746f206e6f646500000000000000000000000000000081525060200191505060405180910390fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610c63576000905061118d565b6000601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610cb6576000905061118d565b6000610cc133612a69565b905060008111610cd557600091505061118d565b6000610cff6064610cf160165485612cf790919063ffffffff16565b612d7d90919063ffffffff16565b90506000601f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050601454601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610edd576000610dc38385612dc790919063ffffffff16565b9050610dda81601854612e1190919063ffffffff16565b601881905550610e3281601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1190919063ffffffff16565b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b610ef282601854612e1190919063ffffffff16565b601881905550610f4a82601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1190919063ffffffff16565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fd89190613758565b601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600193505050505b90565b60185481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111f057600080fd5b600760009054906101000a900460ff1660ff16600a0a810260148190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611298576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806137d76023913960400191505060405180910390fd5b6000601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061136b83601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc790919063ffffffff16565b601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140083601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1190919063ffffffff16565b601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114568382612dc790919063ffffffff16565b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36000601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156115d257601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006115d19190613758565b5b6000429050601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280601b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280866fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505061182f86612e99565b6001925050509392505050565b60195481565b6000600760009054906101000a900460ff16905090565b600061187060095443612dc790919063ffffffff16565b905090565b6000601454601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161192d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f64652062616c616e636520746f6f206c6f7700000000000000000000000081525060200191505060405180910390fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506015548111156119815760155490505b6119d381601e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1190919063ffffffff16565b601e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082601f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc836040518082815260200191505060405180910390a36001915050919050565b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60015481565b6000600760009054906101000a900460ff1660ff16600a0a601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481611bf557fe5b049050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c7d57600080fd5b60008111611c8a57600080fd5b611cdc81601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc790919063ffffffff16565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611d6a9190613758565b601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050611ec681601854612dc790919063ffffffff16565b601881905550611ee181601a54612dc790919063ffffffff16565b601a81905550611eff600a8202601954612dc790919063ffffffff16565b6019819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fee5780601f10611fc357610100808354040283529160200191611fee565b820191906000526020600020905b815481529060010190602001808311611fd157829003601f168201915b5050505050905090565b6000600760009054906101000a900460ff1660ff16600a0a602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161205757fe5b049050919050565b601a5481565b60145481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806120d257508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156120e6576120df610b4c565b9050612589565b601754821415612100576120f983611875565b9050612589565b61215282601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc790919063ffffffff16565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e782601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1190919063ffffffff16565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36000601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111561232657601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006123259190613758565b5b6000429050601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280856fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505061258333612e99565b60019150505b92915050565b600080429050601354915060006125c56012546125b7600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b14156125ec576125e560646013546102bc02612d7d90919063ffffffff16565b91506127a3565b6001612617601254612609600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b141561263e57612637606460135461019a02612d7d90919063ffffffff16565b91506127a2565b600261266960125461265b600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b141561268f57612688606460135460e602612d7d90919063ffffffff16565b91506127a1565b60036126ba6012546126ac600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b14156126e0576126d96064601354607802612d7d90919063ffffffff16565b91506127a0565b600461270b6012546126fd600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b14156127315761272a6064601354604002612d7d90919063ffffffff16565b915061279f565b600561275c60125461274e600a5485612dc790919063ffffffff16565b612d7d90919063ffffffff16565b14156127825761277b6064601354602002612d7d90919063ffffffff16565b915061279e565b61279b6064601354601002612d7d90919063ffffffff16565b91505b5b5b5b5b5b5090565b6000600760009054906101000a900460ff1660ff16600a0a620249f00290506000735ca1b949aabc6a52280094894c0275c2322bd7709050600073a62c66652054e387ee655f52d19a755d85e42f0b9050600073c1c0d9534b6c666184d233fa5b603ed0a760478c905060007304115c9e0f2c0266990dcf5727e6068a1f96141f90506000734b6d7492312a88975e6078795e2d32138ea6401d905061284d858761206b565b50612858848761206b565b50612863838761206b565b5061286e828761206b565b50612879818761206b565b50505050505050565b600061288e82426131d2565b9050919050565b60025481565b6000601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b6000601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129eb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612a2557600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a544210158015612a7f57506000600a54115b612a8857600080fd5b60004290506000612a9984836131d2565b905060008111612aae57600092505050612cf2565b600060135490506000612ae0601254612ad2600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612b0757612b0060646013546102bc02612d7d90919063ffffffff16565b9050612cbe565b6001612b32601254612b24600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612b5957612b52606460135461019a02612d7d90919063ffffffff16565b9050612cbd565b6002612b84601254612b76600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612baa57612ba3606460135460e602612d7d90919063ffffffff16565b9050612cbc565b6003612bd5601254612bc7600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612bfb57612bf46064601354607802612d7d90919063ffffffff16565b9050612cbb565b6004612c26601254612c18600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612c4c57612c456064601354604002612d7d90919063ffffffff16565b9050612cba565b6005612c77601254612c69600a5487612dc790919063ffffffff16565b612d7d90919063ffffffff16565b1415612c9d57612c966064601354602002612d7d90919063ffffffff16565b9050612cb9565b612cb66064601354601002612d7d90919063ffffffff16565b90505b5b5b5b5b5b612cec600760009054906101000a900460ff1660ff16600a0a61016d02828402612d7d90919063ffffffff16565b93505050505b919050565b600080831415612d0a5760009050612d77565b6000828402905082848281612d1b57fe5b0414612d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806137fa6021913960400191505060405180910390fd5b809150505b92915050565b6000612dbf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506135d2565b905092915050565b6000612e0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613698565b905092915050565b600080828401905083811015612e8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b602060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156131cf576000601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156130e25761309a602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dc790919063ffffffff16565b601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613128565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055505b50565b600080601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501161322657600090506135cc565b600080905060008090505b601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561350557613305601054601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106132cb57fe5b9060005260206000200160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16612e1190919063ffffffff16565b841015613311576134f8565b600061339b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061336057fe5b9060005260206000200160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1686612dc790919063ffffffff16565b90506011548111156133ad5760115490505b613445601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106133fa57fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684612e1190919063ffffffff16565b506134f461345e600f5483612d7d90919063ffffffff16565b601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106134a857fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff160285612e1190919063ffffffff16565b9350505b8080600101915050613231565b506015548111156135ca57600061359b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154811061356057fe5b9060005260206000200160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1685612dc790919063ffffffff16565b90506011548111156135ad5760115490505b6135c2600f5482612d7d90919063ffffffff16565b601554029250505b505b92915050565b6000808311829061367e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613643578082015181840152602081019050613628565b50505050905090810190601f1680156136705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161368a57fe5b049050809150509392505050565b6000838311158290613745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561370a5780820151818401526020810190506136ef565b50505050905090810190601f1680156137375780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b50805460008255906000526020600020908101906137769190613779565b50565b6137d391905b808211156137cf57600080820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556000820160106101000a81549067ffffffffffffffff02191690555060010161377f565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820bc05556785f97ad273c31545d5d6eec1a340cfac8669e295c65c6738c4bbf28564736f6c63430005100032