6080604052662386f26fc100006000196200001b919062000831565b6000196200002a9190620007b8565b600655600060085560006009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573b599d27816722dc644e7291b4693446f28cd78a7601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507330bdb696c53d318c0926e3c1812364c84feb9fa3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550660110d9316ec000601655660110d9316ec000601755651b48eb57e0006018553480156200016557600080fd5b50600062000178620006d260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022d620006d260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030c57600080fd5b505afa15801562000321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034791906200071a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003aa57600080fd5b505afa158015620003bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e591906200071a565b6040518363ffffffff1660e01b8152600401620004049291906200076e565b602060405180830381600087803b1580156200041f57600080fd5b505af115801562000434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045a91906200071a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b0620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065d620006d260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006c391906200079b565b60405180910390a350620008e6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071481620008cc565b92915050565b600060208284031215620007335762000732620008c7565b5b6000620007438482850162000703565b91505092915050565b6200075781620007f3565b82525050565b620007688162000827565b82525050565b60006040820190506200078560008301856200074c565b6200079460208301846200074c565b9392505050565b6000602082019050620007b260008301846200075d565b92915050565b6000620007c58262000827565b9150620007d28362000827565b925082821015620007e857620007e762000869565b5b828203905092915050565b6000620008008262000807565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200083e8262000827565b91506200084b8362000827565b9250826200085e576200085d62000898565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008d781620007f3565b8114620008e357600080fd5b50565b61389580620008f66000396000f3fe6080604052600436106101695760003560e01c8063715018a6116100d157806395d89b411161008a578063bfd7928411610064578063bfd7928414610500578063c3c8cd801461053d578063dd62ed3e14610554578063f2fde38b1461059157610170565b806395d89b411461046f578063a2a957bb1461049a578063a9059cbb146104c357610170565b8063715018a614610397578063751039fc146103ae5780637d1db4a5146103c55780638da5cb5b146103f05780638f70ccf71461041b5780638f9a55c01461044457610170565b80632fd689e3116101235780632fd689e314610299578063313ce567146102c457806349bd5a5e146102ef5780636b9990531461031a5780636fc3eaec1461034357806370a082311461035a57610170565b8062b8cf2a1461017557806306fdde031461019e578063095ea7b3146101c95780631694505e1461020657806318160ddd1461023157806323b872dd1461025c57610170565b3661017057005b600080fd5b34801561018157600080fd5b5061019c6004803603810190610197919061298a565b6105ba565b005b3480156101aa57600080fd5b506101b36106e4565b6040516101c09190612dba565b60405180910390f35b3480156101d557600080fd5b506101f060048036038101906101eb919061294a565b610721565b6040516101fd9190612d84565b60405180910390f35b34801561021257600080fd5b5061021b61073f565b6040516102289190612d9f565b60405180910390f35b34801561023d57600080fd5b50610246610765565b6040516102539190612f9c565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e91906128f7565b610774565b6040516102909190612d84565b60405180910390f35b3480156102a557600080fd5b506102ae61084d565b6040516102bb9190612f9c565b60405180910390f35b3480156102d057600080fd5b506102d9610853565b6040516102e69190613011565b60405180910390f35b3480156102fb57600080fd5b5061030461085c565b6040516103119190612d69565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c919061285d565b610882565b005b34801561034f57600080fd5b50610358610972565b005b34801561036657600080fd5b50610381600480360381019061037c919061285d565b610a43565b60405161038e9190612f9c565b60405180910390f35b3480156103a357600080fd5b506103ac610a94565b005b3480156103ba57600080fd5b506103c3610be7565b005b3480156103d157600080fd5b506103da610c9c565b6040516103e79190612f9c565b60405180910390f35b3480156103fc57600080fd5b50610405610ca2565b6040516104129190612d69565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d91906129d3565b610ccb565b005b34801561045057600080fd5b50610459610d7d565b6040516104669190612f9c565b60405180910390f35b34801561047b57600080fd5b50610484610d83565b6040516104919190612dba565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190612a00565b610dc0565b005b3480156104cf57600080fd5b506104ea60048036038101906104e5919061294a565b610e3c565b6040516104f79190612d84565b60405180910390f35b34801561050c57600080fd5b506105276004803603810190610522919061285d565b610e5a565b6040516105349190612d84565b60405180910390f35b34801561054957600080fd5b50610552610e7a565b005b34801561056057600080fd5b5061057b600480360381019061057691906128b7565b610f53565b6040516105889190612f9c565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b3919061285d565b610fda565b005b6105c261119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064690612efc565b60405180910390fd5b60005b81518110156106e0576001601060008484815181106106745761067361338f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106d8906132e8565b915050610652565b5050565b60606040518060400160405280600a81526020017f5368697468657265756d00000000000000000000000000000000000000000000815250905090565b600061073561072e61119c565b84846111a4565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061078184848461136f565b6108428461078d61119c565b61083d8560405180606001604052806028815260200161383860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f361119c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf49092919063ffffffff16565b6111a4565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61088a61119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e90612efc565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b361119c565b73ffffffffffffffffffffffffffffffffffffffff161480610a295750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1161119c565b73ffffffffffffffffffffffffffffffffffffffff16145b610a3257600080fd5b6000479050610a4081611c58565b50565b6000610a8d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d53565b9050919050565b610a9c61119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090612efc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bef61119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612efc565b60405180910390fd5b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cd361119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790612efc565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f5348495445000000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e1a57600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610e50610e4961119c565b848461136f565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ebb61119c565b73ffffffffffffffffffffffffffffffffffffffff161480610f315750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f1961119c565b73ffffffffffffffffffffffffffffffffffffffff16145b610f3a57600080fd5b6000610f4530610a43565b9050610f5081611dc1565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fe261119c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690612efc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690612e5c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612f7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90612e7c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113629190612f9c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d690612f3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690612ddc565b60405180910390fd5b60008111611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990612f1c565b60405180910390fd5b61149a610ca2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150857506114d8610ca2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118f357601560149054906101000a900460ff1661159757611529610ca2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90612dfc565b60405180910390fd5b5b6016548111156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390612e3c565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116805750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612e9c565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461176c576017548161172184610a43565b61172b91906130d2565b1061176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612f5c565b60405180910390fd5b5b600061177730610a43565b90506000601854821015905060165482106117925760165491505b8080156117aa575060158054906101000a900460ff16155b80156118045750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561181c5750601560169054906101000a900460ff165b80156118725750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118c85750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f0576118d682611dc1565b600047905060008111156118ee576118ed47611c58565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061199a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a4d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a4c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a5b5760009050611be2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b065750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b1e57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611be157600a54600c81905550600b54600d819055505b5b611bee84848484612047565b50505050565b6000838311158290611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c339190612dba565b60405180910390fd5b5060008385611c4b91906131b3565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ca860028461207490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cd3573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d2460028461207490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d4f573d6000803e3d6000fd5b5050565b6000600654821115611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190612e1c565b60405180910390fd5b6000611da46120be565b9050611db9818461207490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611df857611df76133be565b5b604051908082528060200260200182016040528015611e265781602001602082028036833780820191505090505b5090503081600081518110611e3e57611e3d61338f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee057600080fd5b505afa158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f18919061288a565b81600181518110611f2c57611f2b61338f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f9330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ff7959493929190612fb7565b600060405180830381600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612055576120546120e9565b5b61206084848461212c565b8061206e5761206d6122f7565b5b50505050565b60006120b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230b565b905092915050565b60008060006120cb61236e565b915091506120e2818361207490919063ffffffff16565b9250505090565b6000600c541480156120fd57506000600d54145b156121075761212a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061213e876123ca565b95509550955095509550955061219c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227d816124da565b6122878483612597565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122e49190612f9c565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123499190612dba565b60405180910390fd5b50600083856123619190613128565b9050809150509392505050565b600080600060065490506000662386f26fc1000090506123a0662386f26fc1000060065461207490919063ffffffff16565b8210156123bd57600654662386f26fc100009350935050506123c6565b81819350935050505b9091565b60008060008060008060008060006123e78a600c54600d546125d1565b92509250925060006123f76120be565b9050600080600061240a8e878787612667565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061247483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf4565b905092915050565b600080828461248b91906130d2565b9050838110156124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c790612ebc565b60405180910390fd5b8091505092915050565b60006124e46120be565b905060006124fb82846126f090919063ffffffff16565b905061254f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ac8260065461243290919063ffffffff16565b6006819055506125c78160075461247c90919063ffffffff16565b6007819055505050565b6000806000806125fd60646125ef888a6126f090919063ffffffff16565b61207490919063ffffffff16565b905060006126276064612619888b6126f090919063ffffffff16565b61207490919063ffffffff16565b9050600061265082612642858c61243290919063ffffffff16565b61243290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061268085896126f090919063ffffffff16565b9050600061269786896126f090919063ffffffff16565b905060006126ae87896126f090919063ffffffff16565b905060006126d7826126c9858761243290919063ffffffff16565b61243290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127035760009050612765565b600082846127119190613159565b90508284826127209190613128565b14612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790612edc565b60405180910390fd5b809150505b92915050565b600061277e61277984613051565b61302c565b905080838252602082019050828560208602820111156127a1576127a06133f2565b5b60005b858110156127d157816127b788826127db565b8452602084019350602083019250506001810190506127a4565b5050509392505050565b6000813590506127ea816137f2565b92915050565b6000815190506127ff816137f2565b92915050565b600082601f83011261281a576128196133ed565b5b813561282a84826020860161276b565b91505092915050565b60008135905061284281613809565b92915050565b60008135905061285781613820565b92915050565b600060208284031215612873576128726133fc565b5b6000612881848285016127db565b91505092915050565b6000602082840312156128a05761289f6133fc565b5b60006128ae848285016127f0565b91505092915050565b600080604083850312156128ce576128cd6133fc565b5b60006128dc858286016127db565b92505060206128ed858286016127db565b9150509250929050565b6000806000606084860312156129105761290f6133fc565b5b600061291e868287016127db565b935050602061292f868287016127db565b925050604061294086828701612848565b9150509250925092565b60008060408385031215612961576129606133fc565b5b600061296f858286016127db565b925050602061298085828601612848565b9150509250929050565b6000602082840312156129a05761299f6133fc565b5b600082013567ffffffffffffffff8111156129be576129bd6133f7565b5b6129ca84828501612805565b91505092915050565b6000602082840312156129e9576129e86133fc565b5b60006129f784828501612833565b91505092915050565b60008060008060808587031215612a1a57612a196133fc565b5b6000612a2887828801612848565b9450506020612a3987828801612848565b9350506040612a4a87828801612848565b9250506060612a5b87828801612848565b91505092959194509250565b6000612a738383612a7f565b60208301905092915050565b612a88816131e7565b82525050565b612a97816131e7565b82525050565b6000612aa88261308d565b612ab281856130b0565b9350612abd8361307d565b8060005b83811015612aee578151612ad58882612a67565b9750612ae0836130a3565b925050600181019050612ac1565b5085935050505092915050565b612b04816131f9565b82525050565b612b138161323c565b82525050565b612b228161324e565b82525050565b6000612b3382613098565b612b3d81856130c1565b9350612b4d818560208601613284565b612b5681613401565b840191505092915050565b6000612b6e6023836130c1565b9150612b7982613412565b604082019050919050565b6000612b91603f836130c1565b9150612b9c82613461565b604082019050919050565b6000612bb4602a836130c1565b9150612bbf826134b0565b604082019050919050565b6000612bd7601c836130c1565b9150612be2826134ff565b602082019050919050565b6000612bfa6026836130c1565b9150612c0582613528565b604082019050919050565b6000612c1d6022836130c1565b9150612c2882613577565b604082019050919050565b6000612c406023836130c1565b9150612c4b826135c6565b604082019050919050565b6000612c63601b836130c1565b9150612c6e82613615565b602082019050919050565b6000612c866021836130c1565b9150612c918261363e565b604082019050919050565b6000612ca96020836130c1565b9150612cb48261368d565b602082019050919050565b6000612ccc6029836130c1565b9150612cd7826136b6565b604082019050919050565b6000612cef6025836130c1565b9150612cfa82613705565b604082019050919050565b6000612d126023836130c1565b9150612d1d82613754565b604082019050919050565b6000612d356024836130c1565b9150612d40826137a3565b604082019050919050565b612d5481613225565b82525050565b612d638161322f565b82525050565b6000602082019050612d7e6000830184612a8e565b92915050565b6000602082019050612d996000830184612afb565b92915050565b6000602082019050612db46000830184612b0a565b92915050565b60006020820190508181036000830152612dd48184612b28565b905092915050565b60006020820190508181036000830152612df581612b61565b9050919050565b60006020820190508181036000830152612e1581612b84565b9050919050565b60006020820190508181036000830152612e3581612ba7565b9050919050565b60006020820190508181036000830152612e5581612bca565b9050919050565b60006020820190508181036000830152612e7581612bed565b9050919050565b60006020820190508181036000830152612e9581612c10565b9050919050565b60006020820190508181036000830152612eb581612c33565b9050919050565b60006020820190508181036000830152612ed581612c56565b9050919050565b60006020820190508181036000830152612ef581612c79565b9050919050565b60006020820190508181036000830152612f1581612c9c565b9050919050565b60006020820190508181036000830152612f3581612cbf565b9050919050565b60006020820190508181036000830152612f5581612ce2565b9050919050565b60006020820190508181036000830152612f7581612d05565b9050919050565b60006020820190508181036000830152612f9581612d28565b9050919050565b6000602082019050612fb16000830184612d4b565b92915050565b600060a082019050612fcc6000830188612d4b565b612fd96020830187612b19565b8181036040830152612feb8186612a9d565b9050612ffa6060830185612a8e565b6130076080830184612d4b565b9695505050505050565b60006020820190506130266000830184612d5a565b92915050565b6000613036613047565b905061304282826132b7565b919050565b6000604051905090565b600067ffffffffffffffff82111561306c5761306b6133be565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130dd82613225565b91506130e883613225565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561311d5761311c613331565b5b828201905092915050565b600061313382613225565b915061313e83613225565b92508261314e5761314d613360565b5b828204905092915050565b600061316482613225565b915061316f83613225565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a8576131a7613331565b5b828202905092915050565b60006131be82613225565b91506131c983613225565b9250828210156131dc576131db613331565b5b828203905092915050565b60006131f282613205565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061324782613260565b9050919050565b600061325982613225565b9050919050565b600061326b82613272565b9050919050565b600061327d82613205565b9050919050565b60005b838110156132a2578082015181840152602081019050613287565b838111156132b1576000848401525b50505050565b6132c082613401565b810181811067ffffffffffffffff821117156132df576132de6133be565b5b80604052505050565b60006132f382613225565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561332657613325613331565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6137fb816131e7565b811461380657600080fd5b50565b613812816131f9565b811461381d57600080fd5b50565b61382981613225565b811461383457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122097bdb271d3d33484cb8a729fcfa05dded2bcee2867f1de1b336882ae4101ac3d64736f6c63430008070033