608060405260006038553480156200001657600080fd5b506040516200563338038062005633833981016040819052620000399162000def565b89518a908a906200005290600090602085019062000a89565b5080516200006890600190602084019062000a89565b505050620000856200007f620000f960201b60201c565b620000fd565b62000090886200014f565b6200009e87878787620001b7565b4340604255620000ae8362000225565b620000ba82826200027f565b60005b600c811015620000e857620000d38133620003a3565b80620000df8162001147565b915050620000bd565b5050505050505050505050620011bd565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b031633146200019e5760405162461bcd60e51b815260206004820181905260248201526000805160206200561383398151915260448201526064015b60405180910390fd5b8051620001b390603990602084019062000a89565b5050565b600a546001600160a01b03163314620002025760405162461bcd60e51b8152602060048201819052602482015260008051602062005613833981519152604482015260640162000195565b603a849055603b8390556200021a8260001962000f97565b603d55603e55505050565b600a546001600160a01b03163314620002705760405162461bcd60e51b8152602060048201819052602482015260008051602062005613833981519152604482015260640162000195565b620001b3600b82600c62000b18565b600a546001600160a01b03163314620002ca5760405162461bcd60e51b8152602060048201819052602482015260008051602062005613833981519152604482015260640162000195565b620002d9602783600c62000b18565b5060005b81518110156200039e576026600083838151811062000300576200030062001191565b60200260200101516000015160008151811062000321576200032162001191565b602002602001015181526020019081526020016000208282815181106200034c576200034c62001191565b60209081029190910181015182546001810184556000938452928290208151805192949190910192620003859284929091019062000b48565b5050508080620003959062001147565b915050620002dd565b505050565b600a546001600160a01b03163314620003ee5760405162461bcd60e51b8152602060048201819052602482015260008051602062005613833981519152604482015260640162000195565b60388054906000620004008362001147565b919050555062000419816038546200043a60201b60201c565b60385462000428908362000590565b604254603854620001b3919062000614565b6001600160a01b038216620004925760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640162000195565b6000818152600260205260409020546001600160a01b031615620004f95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640162000195565b6200050760008383620006a0565b6001600160a01b03821660009081526003602052604081208054600192906200053290849062000f7c565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000601782600c8110620005a857620005a862001191565b015460008381526023602090815260408083208484528252808320879055868352602490915290208190559050601782600c8110620005eb57620005eb62001191565b018054906000620005fc8362001147565b90915550505060009182526025602052604090912055565b6041548111156200069a576040546200062f90600262001003565b604155603c5460ff166200065a57603b54603a805460009062000654908490620010ce565b90915550505b603f5460ff166200068257603e54603d80546000906200067c90849062000f97565b90915550505b60408054906000620006948362001147565b91905055505b50604255565b620006b88383836200076c60201b6200231a1760201c565b6001600160a01b038316620006cc57505050565b6001600160a01b038216620006e057505050565b826001600160a01b0316826001600160a01b0316146200039e576000818152603360209081526040808320546001600160a01b03871684526034909252822080549192839262000732908490620010f0565b90915550506001600160a01b038316600090815260346020526040812080548392906200076190849062000f7c565b909155505050505050565b620007848383836200039e60201b62000d9b1760201c565b6001600160a01b038316620007e257620007dc81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b62000808565b816001600160a01b0316836001600160a01b031614620008085762000808838262000848565b6001600160a01b03821662000822576200039e81620008f5565b826001600160a01b0316826001600160a01b0316146200039e576200039e8282620009af565b60006001620008628462000a0060201b6200184f1760201c565b6200086e9190620010f0565b600083815260076020526040902054909150808214620008c2576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906200090990600190620010f0565b6000838152600960205260408120546008805493945090928490811062000934576200093462001191565b90600052602060002001549050806008838154811062000958576200095862001191565b60009182526020808320909101929092558281526009909152604080822084905585825281205560088054806200099357620009936200117b565b6001900381819060005260206000200160009055905550505050565b6000620009c78362000a0060201b6200184f1760201c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160a01b03821662000a6d5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840162000195565b506001600160a01b031660009081526003602052604090205490565b82805462000a97906200110a565b90600052602060002090601f01602090048101928262000abb576000855562000b06565b82601f1062000ad657805160ff191683800117855562000b06565b8280016001018555821562000b06579182015b8281111562000b0657825182559160200191906001019062000ae9565b5062000b1492915062000b85565b5090565b82600c810192821562000b06579160200282018281111562000b0657825182559160200191906001019062000ae9565b82805482825590600052602060002090810192821562000b06579160200282018281111562000b0657825182559160200191906001019062000ae9565b5b8082111562000b14576000815560010162000b86565b600082601f83011262000bae57600080fd5b8151602062000bc762000bc18362000f56565b62000f23565b80838252828201915082860187848660051b890101111562000be857600080fd5b60005b8581101562000ccd5781516001600160401b038082111562000c0c57600080fd5b90890190818b03601f190187131562000c2457600080fd5b62000c2e62000ef8565b878301518281111562000c4057600080fd5b8084019350508b603f84011262000c5657600080fd5b878301519150604062000c6d62000bc18462000f56565b808482528a820191508286018f848760051b890101111562000c8e57600080fd5b600096505b8587101562000cb3578051835260019690960195918b01918b0162000c93565b508352505086525050928401929084019060010162000beb565b5090979650505050505050565b600082601f83011262000cec57600080fd5b6040516101808082016001600160401b038111838210171562000d135762000d13620011a7565b604052818482810187101562000d2857600080fd5b600092505b600c83101562000d4f5780518252600192909201916020918201910162000d2d565b509195945050505050565b600082601f83011262000d6c57600080fd5b81516001600160401b0381111562000d885762000d88620011a7565b602062000d9e601f8301601f1916820162000f23565b828152858284870101111562000db357600080fd5b60005b8381101562000dd357858101830151828201840152820162000db6565b8381111562000de55760008385840101525b5095945050505050565b6000806000806000806000806000806104008b8d03121562000e1057600080fd5b8a516001600160401b038082111562000e2857600080fd5b62000e368e838f0162000d5a565b9b5060208d015191508082111562000e4d57600080fd5b62000e5b8e838f0162000d5a565b9a5060408d015191508082111562000e7257600080fd5b62000e808e838f0162000d5a565b995060608d0151985060808d0151975060a08d0151965060c08d0151955062000ead8e60e08f0162000cda565b945062000ebf8e6102608f0162000cda565b93506103e08d015191508082111562000ed757600080fd5b5062000ee68d828e0162000b9c565b9150509295989b9194979a5092959850565b604051602081016001600160401b038111828210171562000f1d5762000f1d620011a7565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000f4e5762000f4e620011a7565b604052919050565b60006001600160401b0382111562000f725762000f72620011a7565b5060051b60200190565b6000821982111562000f925762000f9262001165565b500190565b60008262000fb557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000ffb57816000190482111562000fdf5762000fdf62001165565b8085161562000fed57918102915b93841c939080029062000fbf565b509250929050565b600062001011838362001018565b9392505050565b6000826200102957506001620010c8565b816200103857506000620010c8565b81600181146200105157600281146200105c576200107c565b6001915050620010c8565b60ff84111562001070576200107062001165565b50506001821b620010c8565b5060208310610133831016604e8410600b8410161715620010a1575081810a620010c8565b620010ad838362000fba565b8060001904821115620010c457620010c462001165565b0290505b92915050565b6000816000190483118215151615620010eb57620010eb62001165565b500290565b60008282101562001105576200110562001165565b500390565b600181811c908216806200111f57607f821691505b602082108114156200114157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200115e576200115e62001165565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61444680620011cd6000396000f3fe6080604052600436106102fc5760003560e01c80636d9f89d41161018f578063a68fda48116100e1578063cccea8ff1161008a578063ea8e916711610064578063ea8e9167146109d9578063ec67170914610a06578063f2fde38b14610a2657600080fd5b8063cccea8ff14610943578063e939567914610963578063e985e9c51461098357600080fd5b8063c662a989116100bb578063c662a989146108e3578063c7d8b10614610903578063c87b56dd1461092357600080fd5b8063a68fda4814610883578063b0a8496f146108a3578063b88d4fde146108c357600080fd5b806375402b6e1161014357806395d89b411161011d57806395d89b4114610838578063a03e39c91461084d578063a22cb4651461086357600080fd5b806375402b6e146107c057806384bc17a2146107ed5780638da5cb5b1461080d57600080fd5b80636f9fb98a116101745780636f9fb98a1461077857806370a082311461078b578063715018a6146107ab57600080fd5b80636d9f89d4146107385780636edbd0f41461074b57600080fd5b80632bf4638e116102535780634f6ccce7116101fc578063596e40c8116101d6578063596e40c8146106d65780636352211e146107035780636c0360eb1461072357600080fd5b80634f6ccce71461060d57806354e13c0a1461062d57806355f804b3146106b657600080fd5b806342842e0e1161022d57806342842e0e146105ba57806342966c68146105da578063449a52f8146105fa57600080fd5b80632bf4638e1461057c5780632f745c591461059257806333f2537a146105b257600080fd5b80630b760b18116102b55780631b3e20021161028f5780631b3e20021461050f5780631c6e9b1f1461052f57806323b872dd1461055c57600080fd5b80630b760b18146103e3578063115366681461046057806318160ddd146104fa57600080fd5b806306fdde03116102e657806306fdde031461035a578063081812fc1461037c578063095ea7b3146103c157600080fd5b80629a9b7b1461030157806301ffc9a71461032a575b600080fd5b34801561030d57600080fd5b5061031760385481565b6040519081526020015b60405180910390f35b34801561033657600080fd5b5061034a610345366004613c43565b610a46565b6040519015158152602001610321565b34801561036657600080fd5b5061036f610aa2565b6040516103219190613f88565b34801561038857600080fd5b5061039c610397366004613cc6565b610b34565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610321565b3480156103cd57600080fd5b506103e16103dc366004613a3a565b610c13565b005b3480156103ef57600080fd5b506104536103fe366004613903565b604080518082018252600080825260209182018190528251808401845273ffffffffffffffffffffffffffffffffffffffff949094168082526034835283822054855281526035825291909120549082015290565b6040516103219190613f9b565b34801561046c57600080fd5b506104e361047b366004613a3a565b6042546040805160609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208086019190915260348501929092526054808501939093528051808503909301835260749093019092528051910120603d54811091565b604080519215158352602083019190915201610321565b34801561050657600080fd5b50600854610317565b34801561051b57600080fd5b506103e161052a366004613cdf565b610da0565b34801561053b57600080fd5b5061031761054a366004613cc6565b60336020526000908152604090205481565b34801561056857600080fd5b506103e1610577366004613958565b610e63565b34801561058857600080fd5b5061031760365481565b34801561059e57600080fd5b506103176105ad366004613a3a565b610f04565b6103e1610fd3565b3480156105c657600080fd5b506103e16105d5366004613958565b61116e565b3480156105e657600080fd5b506103e16105f5366004613cc6565b611189565b6103e1610608366004613a3a565b61125f565b34801561061957600080fd5b50610317610628366004613cc6565b6113c8565b34801561063957600080fd5b50603a54603b54603c54603d54603e54603f5460405460415460425461066a98979660ff9081169695941692919089565b60408051998a5260208a01989098529515159688019690965260608701939093526080860191909152151560a085015260c084015260e083019190915261010082015261012001610321565b3480156106c257600080fd5b506103e16106d1366004613c7d565b611486565b3480156106e257600080fd5b506106f66106f1366004613903565b61151a565b6040516103219190613eed565b34801561070f57600080fd5b5061039c61071e366004613cc6565b61164a565b34801561072f57600080fd5b5061036f6116fc565b6103e1610746366004613c27565b61178a565b34801561075757600080fd5b50610317610766366004613903565b60356020526000908152604090205481565b34801561078457600080fd5b5047610317565b34801561079757600080fd5b506103176107a6366004613903565b61184f565b3480156107b757600080fd5b506103e161191d565b3480156107cc57600080fd5b506103176107db366004613903565b60346020526000908152604090205481565b3480156107f957600080fd5b506103e1610808366004613c0b565b6119aa565b34801561081957600080fd5b50600a5473ffffffffffffffffffffffffffffffffffffffff1661039c565b34801561084457600080fd5b5061036f611a69565b34801561085957600080fd5b5061031760375481565b34801561086f57600080fd5b506103e161087e366004613a10565b611a78565b34801561088f57600080fd5b5061031761089e366004613cc6565b611b8f565b3480156108af57600080fd5b506103e16108be366004613a81565b611ba6565b3480156108cf57600080fd5b506103e16108de366004613994565b611cea565b3480156108ef57600080fd5b506103e16108fe366004613d02565b611d8c565b34801561090f57600080fd5b5061031761091e366004613cc6565b611e4c565b34801561092f57600080fd5b5061036f61093e366004613cc6565b611e5c565b34801561094f57600080fd5b506103e161095e366004613a64565b611ebf565b34801561096f57600080fd5b5061036f61097e366004613cc6565b611f4d565b34801561098f57600080fd5b5061034a61099e366004613925565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156109e557600080fd5b506109f96109f4366004613cc6565b6120db565b6040516103219190613f44565b348015610a1257600080fd5b50610317610a21366004613cc6565b6121a9565b348015610a3257600080fd5b506103e1610a41366004613903565b6121ea565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610a9c5750610a9c82612420565b92915050565b606060008054610ab190614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610add90614256565b8015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16610bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610c1e8261164a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610be1565b3373ffffffffffffffffffffffffffffffffffffffff82161480610d055750610d05813361099e565b610d91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610be1565b610d9b8383612503565b505050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610e21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b60388054906000610e31836142aa565b9190505550610e42816038546125a3565b610e4e60385483612771565b610e5f603a600801546038546127ed565b5050565b610e6d338261286e565b610ef9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610be1565b610d9b8383836129de565b6000610f0f8361184f565b8210610f9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610be1565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b336000610fdf8261184f565b73ffffffffffffffffffffffffffffffffffffffff831660008181526034602052604090819020549051929350917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649061103c9084815260200190565b60405180910390a281158015906110535750600081115b15610d9b5760405173ffffffffffffffffffffffffffffffffffffffff84169082156108fc029083906000818181858888f1935050505015801561109b573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff8316600090815260356020526040812080548392906110d190849061404e565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152603460205260408120819055603680548392906111109084906141de565b925050819055508060376000828254611129919061404e565b90915550600090505b828110156111685760006111468583610f04565b6000908152603360205260408120555080611160816142aa565b915050611132565b50505050565b610d9b83838360405180602001604052806000815250611cea565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff166111b757600080fd5b60006111c28261164a565b905073ffffffffffffffffffffffffffffffffffffffff811633146111e657600080fd5b600082815260336020908152604080832080549084905573ffffffffffffffffffffffffffffffffffffffff851684526034909252822080549192839261122e9084906141de565b92505081905550806036600082825461124791906141de565b90915550611256905083612c50565b610d9b83612d13565b60425460408051606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602080830191909152603482019390935260548082018590528251808303909101815260749091019091528051910120603d54811090816112cd57600080fd5b603a5434146112db57600080fd5b600081426040516020016112f9929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120603880549192506000611341836142aa565b9190505550611352826038546127ed565b61135b81612dec565b611367336038546125a3565b60006113756103e8836142e3565b61138090600161404e565b905060005b600b81600c811061139857611398614384565b01548211156113b357806113ab816142aa565b915050611385565b6113bf60385482612771565b50505050505050565b60006113d360085490565b8210611461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610be1565b6008828154811061147457611474614384565b90600052602060002001549050919050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314611507576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b8051610e5f9060399060208401906136da565b60608160006115288261184f565b90508061157557604080516000808252602082019092529061156c565b60408051808201909152600080825260208201528152602001906001900390816115455790505b50949350505050565b60008167ffffffffffffffff811115611590576115906143b3565b6040519080825280602002602001820160405280156115d557816020015b60408051808201909152600080825260208201528152602001906001900390816115ae5790505b50905060005b8281101561156c5760006115ef8583610f04565b90506040518060400160405280828152602001603360008481526020019081526020016000205481525083838151811061162b5761162b614384565b6020026020010181905250508080611642906142aa565b9150506115db565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610be1565b6039805461170990614256565b80601f016020809104026020016040519081016040528092919081815260200182805461173590614256565b80156117825780601f1061175757610100808354040283529160200191611782565b820191906000526020600020905b81548152906001019060200180831161176557829003601f168201915b505050505081565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b8082156118225760365461181f90476141de565b90505b604051339082156108fc029083906000818181858888f19350505050158015611168573d6000803e3d6000fd5b600073ffffffffffffffffffffffffffffffffffffffff82166118f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610be1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b6119a86000613104565b565b600a5473ffffffffffffffffffffffffffffffffffffffff163314611a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b603c80549215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00938416179055603f805491151591909216179055565b606060018054610ab190614256565b73ffffffffffffffffffffffffffffffffffffffff8216331415611af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610be1565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600b81600c8110611b9f57600080fd5b0154905081565b600a5473ffffffffffffffffffffffffffffffffffffffff163314611c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b611c34602783600c61375e565b5060005b8151811015610d9b5760266000838381518110611c5757611c57614384565b602002602001015160000151600081518110611c7557611c75614384565b60200260200101518152602001908152602001600020828281518110611c9d57611c9d614384565b60209081029190910181015182546001810184556000938452928290208151805192949190910192611cd49284929091019061378b565b5050508080611ce2906142aa565b915050611c38565b611cf4338361286e565b611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610be1565b6111688484848461317b565b600a5473ffffffffffffffffffffffffffffffffffffffff163314611e0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b603a849055603b839055611e41827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff614066565b603d55603e55505050565b602781600c8110611b9f57600080fd5b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16611e8d57600080fd5b6039611e9883611f4d565b604051602001611ea9929190613d9a565b6040516020818303038152906040529050919050565b600a5473ffffffffffffffffffffffffffffffffffffffff163314611f40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b610e5f600b82600c61375e565b60408051606480825260a08201909252606091906000908260208201818036833701905050905060005b8415611ff9576000611f8a600a876142e3565b9050611f97600a87614066565b9550611fa481603061404e565b60f81b8383611fb2816142aa565b945081518110611fc457611fc4614384565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050611f77565b60008167ffffffffffffffff811115612014576120146143b3565b6040519080825280601f01601f19166020018201604052801561203e576020820181803683370190505b50905060005b828110156120d15783600161205983866141de565b61206391906141de565b8151811061207357612073614384565b602001015160f81c60f81b82828151811061209057612090614384565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806120c9816142aa565b915050612044565b5095945050505050565b6060600b8211156120eb57600080fd5b6000601783600c811061210057612100614384565b0154905060008167ffffffffffffffff81111561211f5761211f6143b3565b604051908082528060200260200182016040528015612148578160200160208202803683370190505b50905060005b828110156121a1576000858152602360209081526040808320848452909152902054825183908390811061218457612184614384565b602090810291909101015280612199816142aa565b91505061214e565b509392505050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff166121d757600080fd5b5060009081526025602052604090205490565b600a5473ffffffffffffffffffffffffffffffffffffffff16331461226b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610be1565b73ffffffffffffffffffffffffffffffffffffffff811661230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610be1565b61231781613104565b50565b73ffffffffffffffffffffffffffffffffffffffff83166123825761237d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6123bf565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123bf576123bf838261321e565b73ffffffffffffffffffffffffffffffffffffffff82166123e357610d9b816132d5565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610d9b57610d9b8282613384565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806124b357507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610a9c57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a9c565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155819061255d8261164a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b73ffffffffffffffffffffffffffffffffffffffff8216612620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610be1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156126ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610be1565b6126b8600083836133d5565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906126ee90849061404e565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000601782600c811061278657612786614384565b015460008381526023602090815260408083208484528252808320879055868352602490915290208190559050601782600c81106127c6576127c6614384565b0180549060006127d5836142aa565b90915550505060009182526025602052604090912055565b604154811115612868576040546128059060026140db565b604155603c5460ff1661282d57603b54603a80546000906128279084906141a1565b90915550505b603f5460ff1661285257603e54603d805460009061284c908490614066565b90915550505b60408054906000612862836142aa565b91905055505b50604255565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1661291f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610be1565b600061292a8361164a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061299957508373ffffffffffffffffffffffffffffffffffffffff1661298184610b34565b73ffffffffffffffffffffffffffffffffffffffff16145b806129d6575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166129fe8261164a565b73ffffffffffffffffffffffffffffffffffffffff1614612aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610be1565b73ffffffffffffffffffffffffffffffffffffffff8216612b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610be1565b612b4e8383836133d5565b612b59600082612503565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805460019290612b8f9084906141de565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290612bca90849061404e565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600081815260256020526040812054906001601783600c8110612c7557612c75614384565b0154612c8191906141de565b600084815260246020526040902054909150808214612cca5760008381526023602090815260408083208584528252808320548484528184208190558352602490915290208190555b60008481526025602090815260408083208390556024909152812055601783600c8110612cf957612cf9614384565b018054906000612d0883614221565b919050555050505050565b6000612d1e8261164a565b9050612d2c816000846133d5565b612d37600083612503565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600360205260408120805460019290612d6d9084906141de565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b346000808381612dfb816142aa565b9350604051602001612e17929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090506000602681612e5f600c856142e3565b81526020019081526020016000209050848380612e7b906142aa565b9450604051602001612e97929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012081549092506000908290612ee190856142e3565b81548110612ef157612ef1614384565b6000918252602082200191505b81548110156113bf576000828281548110612f1b57612f1b614384565b60009182526020822001549150601782600c8110612f3b57612f3b614384565b0154905080612f4b5750506130f2565b8887612f56816142aa565b9850604051602001612f72929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000858152602390935290822090975081612fc3848a6142e3565b81526020019081526020016000205490506000602784600c8110612fe957612fe9614384565b0154905060006064612ffb838d6141a1565b6130059190614066565b90508060336000858152602001908152602001600020600082825461302a919061404e565b909155506000905061303b8461164a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526034602052604081208054929350849290919061307590849061404e565b92505081905550816036600082825461308e919061404e565b90915550506038546040805188815260208101859052869273ffffffffffffffffffffffffffffffffffffffff85169290917f4d22c521bcd5982b45759419512fca837125546c4ff15d0b15eb01a62e93e017910160405180910390a45050505050505b806130fc816142aa565b915050612efe565b600a805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6131868484846129de565b613192848484846134db565b611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610be1565b6000600161322b8461184f565b61323591906141de565b6000838152600760205260409020549091508082146132955773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b50600091825260076020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600681528383209183525290812055565b6008546000906132e7906001906141de565b6000838152600960205260408120546008805493945090928490811061330f5761330f614384565b90600052602060002001549050806008838154811061333057613330614384565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061336857613368614355565b6001900381819060005260206000200160009055905550505050565b600061338f8361184f565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6133e083838361231a565b73ffffffffffffffffffffffffffffffffffffffff831661340057505050565b73ffffffffffffffffffffffffffffffffffffffff821661342057505050565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610d9b5760008181526033602090815260408083205473ffffffffffffffffffffffffffffffffffffffff87168452603490925282208054919283926134969084906141de565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260346020526040812080548392906134d090849061404e565b909155505050505050565b600073ffffffffffffffffffffffffffffffffffffffff84163b156136cf576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290613552903390899088908890600401613ea4565b602060405180830381600087803b15801561356c57600080fd5b505af19250505080156135ba575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526135b791810190613c60565b60015b613684573d8080156135e8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ed565b606091505b50805161367c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610be1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506129d6565b506001949350505050565b8280546136e690614256565b90600052602060002090601f016020900481019282613708576000855561374e565b82601f1061372157805160ff191683800117855561374e565b8280016001018555821561374e579182015b8281111561374e578251825591602001919060010190613733565b5061375a9291506137c5565b5090565b82600c810192821561374e579160200282018281111561374e578251825591602001919060010190613733565b82805482825590600052602060002090810192821561374e579160200282018281111561374e578251825591602001919060010190613733565b5b8082111561375a57600081556001016137c6565b600067ffffffffffffffff8311156137f4576137f46143b3565b61382560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613fdb565b905082815283838301111561383957600080fd5b828260208301376000602084830101529392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461387457600080fd5b919050565b600082601f83011261388a57600080fd5b60405161018080820182811067ffffffffffffffff821117156138af576138af6143b3565b60405281848281018710156138c357600080fd5b600092505b600c8310156138e8578035825260019290920191602091820191016138c8565b509195945050505050565b8035801515811461387457600080fd5b60006020828403121561391557600080fd5b61391e82613850565b9392505050565b6000806040838503121561393857600080fd5b61394183613850565b915061394f60208401613850565b90509250929050565b60008060006060848603121561396d57600080fd5b61397684613850565b925061398460208501613850565b9150604084013590509250925092565b600080600080608085870312156139aa57600080fd5b6139b385613850565b93506139c160208601613850565b925060408501359150606085013567ffffffffffffffff8111156139e457600080fd5b8501601f810187136139f557600080fd5b613a04878235602084016137da565b91505092959194509250565b60008060408385031215613a2357600080fd5b613a2c83613850565b915061394f602084016138f3565b60008060408385031215613a4d57600080fd5b613a5683613850565b946020939093013593505050565b60006101808284031215613a7757600080fd5b61391e8383613879565b6000806101a08385031215613a9557600080fd5b613a9f8484613879565b915061018083013567ffffffffffffffff80821115613abd57600080fd5b818501915085601f830112613ad157600080fd5b613ae3613ade833561402a565b613fdb565b808335825260208201915060208401886020863560051b8701011115613b0857600080fd5b60005b8535811015613bfc578482351115613b2257600080fd5b8135860160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d03011215613b5857600080fd5b613b60613fb2565b8660208301351115613b7157600080fd5b6020820135820191508b603f830112613b8957600080fd5b6020820135613b9a613ade8261402a565b80828252602082019150604085018f60408560051b8801011115613bbd57600080fd5b600095505b83861015613be157803583526001959095019460209283019201613bc2565b50835250508552506020938401939190910190600101613b0b565b50959890975095505050505050565b60008060408385031215613c1e57600080fd5b613a2c836138f3565b60008060408385031215613c3a57600080fd5b613a56836138f3565b600060208284031215613c5557600080fd5b813561391e816143e2565b600060208284031215613c7257600080fd5b815161391e816143e2565b600060208284031215613c8f57600080fd5b813567ffffffffffffffff811115613ca657600080fd5b8201601f81018413613cb757600080fd5b6129d6848235602084016137da565b600060208284031215613cd857600080fd5b5035919050565b60008060408385031215613cf257600080fd5b8235915061394f60208401613850565b60008060008060808587031215613d1857600080fd5b5050823594602084013594506040840135936060013592509050565b60008151808452613d4c8160208601602086016141f5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008151613d908185602086016141f5565b9290920192915050565b600080845481600182811c915080831680613db657607f831692505b6020808410821415613def577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015613e035760018114613e3257613e5f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650613e5f565b60008b81526020902060005b86811015613e575781548b820152908501908301613e3e565b505084890196505b505050505050613e9b613e95827f2f00000000000000000000000000000000000000000000000000000000000000815260010190565b85613d7e565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613ee36080830184613d34565b9695505050505050565b602080825282518282018190526000919060409081850190868401855b82811015613f3757613f2784835180518252602090810151910152565b9284019290850190600101613f0a565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f7c57835183529284019291840191600101613f60565b50909695505050505050565b60208152600061391e6020830184613d34565b815181526020808301519082015260408101610a9c565b6040516020810167ffffffffffffffff81118282101715613fd557613fd56143b3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614022576140226143b3565b604052919050565b600067ffffffffffffffff821115614044576140446143b3565b5060051b60200190565b60008219821115614061576140616142f7565b500190565b60008261407557614075614326565b500490565b600181815b808511156140d357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156140b9576140b96142f7565b808516156140c657918102915b93841c939080029061407f565b509250929050565b600061391e83836000826140f157506001610a9c565b816140fe57506000610a9c565b8160018114614114576002811461411e5761413a565b6001915050610a9c565b60ff84111561412f5761412f6142f7565b50506001821b610a9c565b5060208310610133831016604e8410600b841016171561415d575081810a610a9c565b614167838361407a565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614199576141996142f7565b029392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141d9576141d96142f7565b500290565b6000828210156141f0576141f06142f7565b500390565b60005b838110156142105781810151838201526020016141f8565b838111156111685750506000910152565b600081614230576142306142f7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600181811c9082168061426a57607f821691505b602082108114156142a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142dc576142dc6142f7565b5060010190565b6000826142f2576142f2614326565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461231757600080fdfea26469706673582212208f5dd14bb2f8a04ae81ed7a565ecc75dbde4ad256c6225200ba15218f91a9cff64736f6c634300080700334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000028ed6103d00000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000021c00000000000000000000000000000000000000000000000000000000000002a80000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000036600000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004b0000000000000000000000000000000000000000000000000000000000000055000000000000000000000000000000000000000000000000000000000000005f0000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000a446565702053706163650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065350414345210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004868747470733a2f2f636c6f75642d637562652d7573322e73332e616d617a6f6e6177732e636f6d2f6465657073706163652f7075626c69632f706c616e65742f6d65746164617461000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d0000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e400000000000000000000000000000000000000000000000000000000000000ee00000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000010c00000000000000000000000000000000000000000000000000000000000001160000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012a0000000000000000000000000000000000000000000000000000000000000134000000000000000000000000000000000000000000000000000000000000013e00000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000152000000000000000000000000000000000000000000000000000000000000015c00000000000000000000000000000000000000000000000000000000000001660000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017a0000000000000000000000000000000000000000000000000000000000000184000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000019800000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001f60000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020a0000000000000000000000000000000000000000000000000000000000000214000000000000000000000000000000000000000000000000000000000000021e00000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000232000000000000000000000000000000000000000000000000000000000000023c00000000000000000000000000000000000000000000000000000000000002460000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025a0000000000000000000000000000000000000000000000000000000000000264000000000000000000000000000000000000000000000000000000000000026e00000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000282000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000029600000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002f60000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030a0000000000000000000000000000000000000000000000000000000000000314000000000000000000000000000000000000000000000000000000000000031e00000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000332000000000000000000000000000000000000000000000000000000000000033c00000000000000000000000000000000000000000000000000000000000003460000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035a0000000000000000000000000000000000000000000000000000000000000364000000000000000000000000000000000000000000000000000000000000036e0000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000003860000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039a00000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003fa0000000000000000000000000000000000000000000000000000000000000402000000000000000000000000000000000000000000000000000000000000040c00000000000000000000000000000000000000000000000000000000000004160000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042a0000000000000000000000000000000000000000000000000000000000000434000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000446000000000000000000000000000000000000000000000000000000000000044e00000000000000000000000000000000000000000000000000000000000004560000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000046a0000000000000000000000000000000000000000000000000000000000000474000000000000000000000000000000000000000000000000000000000000047c0000000000000000000000000000000000000000000000000000000000000484000000000000000000000000000000000000000000000000000000000000048c0000000000000000000000000000000000000000000000000000000000000494000000000000000000000000000000000000000000000000000000000000049c00000000000000000000000000000000000000000000000000000000000004a400000000000000000000000000000000000000000000000000000000000004ac00000000000000000000000000000000000000000000000000000000000004b400000000000000000000000000000000000000000000000000000000000004bc00000000000000000000000000000000000000000000000000000000000004c400000000000000000000000000000000000000000000000000000000000004cc00000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000004d80000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b