6101606040523480156200001257600080fd5b506040518060400160405280600d81526020016c29a8aaa4a21023a0a6a290299960991b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600d81526020016c29a8aaa4a21023a0a6a290299960991b8152506040518060400160405280600881526020016729a8aaa4a210299960c11b8152508160039081620000ac9190620003e2565b506004620000bb8282620003e2565b505050620000d9600a83620001f960201b620012bf1790919060201c565b61012052620000f681600b620001f9602090811b620012bf17901c565b61014052815160208084019190912060e052815190820120610100524660a0526200018460e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506200019b60003362000249565b620001c77f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f3362000249565b620001f37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000249565b62000523565b600060208351101562000219576200021183620002ee565b905062000243565b8262000230836200033a60201b620012f01760201c565b906200023d9082620003e2565b5060ff90505b92915050565b60008281526009602090815260408083206001600160a01b038516845290915290205460ff16620002ea5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002a93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080829050601f8151111562000325578260405163305a27a960e01b81526004016200031c9190620004ae565b60405180910390fd5b80516200033282620004fe565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200036857607f821691505b6020821081036200038957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003dd57600081815260208120601f850160051c81016020861015620003b85750805b601f850160051c820191505b81811015620003d957828155600101620003c4565b5050505b505050565b81516001600160401b03811115620003fe57620003fe6200033d565b62000416816200040f845462000353565b846200038f565b602080601f8311600181146200044e5760008415620004355750858301515b600019600386901b1c1916600185901b178555620003d9565b600085815260208120601f198616915b828110156200047f578886015182559484019460019091019084016200045e565b50858210156200049e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b81811015620004dd57858101830151858201604001528201620004bf565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620003895760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516132e36200057e6000396000610c8c01526000610c61015260006117b001526000611788015260006116e30152600061170d0152600061173701526132e36000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80637028e2cd116101515780639ab24eb0116100c3578063d505accf11610087578063d505accf1461059e578063d5391393146105b1578063d547741f146105d8578063d9d98ce4146105eb578063dd62ed3e146105fe578063f1127ed81461061157600080fd5b80639ab24eb01461054a578063a217fddf1461055d578063a457c2d714610565578063a9059cbb14610578578063c3cda5201461058b57600080fd5b80638e539e8c116101155780638e539e8c146104e257806391d14854146104f557806391ddadf41461050857806395d89b41146105275780639711715a1461052f578063981b24d01461053757600080fd5b80637028e2cd1461045157806370a082311461047857806379cc6790146104a15780637ecebe00146104b457806384b0196e146104c757600080fd5b806339509351116101ea5780634ee2cd7e116101ae5780634ee2cd7e14610399578063587cde1e146103ac5780635c19a95c146103f05780635cffe9de14610403578063613255ab146104165780636fcfff451461042957600080fd5b806339509351146103455780633a46b1a81461035857806340c10f191461036b57806342966c681461037e5780634bf5d7e91461039157600080fd5b8063248a9ca311610231578063248a9ca3146102e35780632f2ff15d14610306578063313ce5671461031b5780633644e5151461032a57806336568abe1461033257600080fd5b806301ffc9a71461026e57806306fdde0314610296578063095ea7b3146102ab57806318160ddd146102be57806323b872dd146102d0575b600080fd5b61028161027c366004612b91565b61064e565b60405190151581526020015b60405180910390f35b61029e610685565b60405161028d9190612c0b565b6102816102b9366004612c33565b610717565b6002545b60405190815260200161028d565b6102816102de366004612c5f565b61072f565b6102c26102f1366004612ca0565b60009081526009602052604090206001015490565b610319610314366004612cb9565b610753565b005b6040516012815260200161028d565b6102c261077d565b610319610340366004612cb9565b61078c565b610281610353366004612c33565b61080f565b6102c2610366366004612c33565b610831565b610319610379366004612c33565b6108b6565b61031961038c366004612ca0565b6108ea565b61029e6108f7565b6102c26103a7366004612c33565b61098f565b6103d86103ba366004612ce9565b6001600160a01b039081166000908152600e60205260409020541690565b6040516001600160a01b03909116815260200161028d565b6103196103fe366004612ce9565b6109e8565b610281610411366004612d06565b6109f2565b6102c2610424366004612ce9565b610bd6565b61043c610437366004612ce9565b610bfe565b60405163ffffffff909116815260200161028d565b6102c27f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f81565b6102c2610486366004612ce9565b6001600160a01b031660009081526020819052604090205490565b6103196104af366004612c33565b610c20565b6102c26104c2366004612ce9565b610c35565b6104cf610c53565b60405161028d9796959493929190612da5565b6102c26104f0366004612ca0565b610cdc565b610281610503366004612cb9565b610d43565b610510610d6e565b60405165ffffffffffff909116815260200161028d565b61029e610d79565b610319610d88565b6102c2610545366004612ca0565b610dba565b6102c2610558366004612ce9565b610de5565b6102c2600081565b610281610573366004612c33565b610e67565b610281610586366004612c33565b610ee2565b610319610599366004612e4c565b610ef0565b6103196105ac366004612ea6565b611026565b6102c27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103196105e6366004612cb9565b61118a565b6102c26105f9366004612c33565b6111af565b6102c261060c366004612f14565b611210565b61062461061f366004612f42565b61123b565b60408051825163ffffffff1681526020928301516001600160e01b0316928101929092520161028d565b60006001600160e01b03198216637965db0b60e01b148061067f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606003805461069490612f79565b80601f01602080910402602001604051908101604052809291908181526020018280546106c090612f79565b801561070d5780601f106106e25761010080835404028352916020019161070d565b820191906000526020600020905b8154815290600101906020018083116106f057829003601f168201915b5050505050905090565b6000336107258185856112f3565b5060019392505050565b60003361073d858285611417565b610748858585611491565b506001949350505050565b60008281526009602052604090206001015461076e81611646565b6107788383611650565b505050565b60006107876116d6565b905090565b6001600160a01b03811633146108015760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61080b8282611801565b5050565b6000336107258185856108228383611210565b61082c9190612fc3565b6112f3565b600061083b610d6e565b65ffffffffffff16821061088d5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016107f8565b6001600160a01b0383166000908152600f602052604090206108af9083611868565b9392505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108e081611646565b6107788383611951565b6108f4338261195b565b50565b606043610902610d6e565b65ffffffffffff16146109575760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f646500000060448201526064016107f8565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0382166000908152600560205260408120819081906109b6908590611965565b91509150816109dd576001600160a01b0385166000908152602081905260409020546109df565b805b95945050505050565b6108f43382611a5b565b60006109fd85610bd6565b841115610a605760405162461bcd60e51b815260206004820152602b60248201527f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60448201526a30bc233630b9b42637b0b760a91b60648201526084016107f8565b6000610a6c86866111af565b9050610a788786611951565b6040516323e30c8b60e01b81527f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd9906001600160a01b038916906323e30c8b90610ad09033908b908b9088908c908c90600401612fd6565b6020604051808303816000875af1158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b139190613032565b14610b6c5760405162461bcd60e51b8152602060048201526024808201527f4552433230466c6173684d696e743a20696e76616c69642072657475726e2076604482015263616c756560e01b60648201526084016107f8565b6000610b828830610b7d858a612fc3565b611417565b811580610b9657506001600160a01b038116155b15610bb357610bae88610ba98489612fc3565b61195b565b610bc8565b610bbd888761195b565b610bc8888284611491565b506001979650505050505050565b60006001600160a01b0382163014610bef57600061067f565b60025461067f9060001961304b565b6001600160a01b0381166000908152600f602052604081205461067f90611ad4565b610c2b823383611417565b61080b828261195b565b6001600160a01b0381166000908152600c602052604081205461067f565b600060608082808083610c877f0000000000000000000000000000000000000000000000000000000000000000600a611b3d565b610cb27f0000000000000000000000000000000000000000000000000000000000000000600b611b3d565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ce6610d6e565b65ffffffffffff168210610d385760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016107f8565b61067f601083611868565b60009182526009602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061078743611be1565b60606004805461069490612f79565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f610db281611646565b61080b611c48565b6000806000610dca846006611965565b9150915081610ddb57600254610ddd565b805b949350505050565b6001600160a01b0381166000908152600f60205260408120548015610e54576001600160a01b0383166000908152600f6020526040902080546000198301908110610e3257610e32613074565b60009182526020909120015464010000000090046001600160e01b0316610e57565b60005b6001600160e01b03169392505050565b60003381610e758286611210565b905083811015610ed55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107f8565b61074882868684036112f3565b600033610725818585611491565b83421115610f405760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016107f8565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610fba90610fb29060a00160405160208183030381529060405280519060200120611ca2565b858585611ccf565b9050610fc581611cf7565b86146110135760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016107f8565b61101d8188611a5b565b50505050505050565b834211156110765760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016107f8565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886110a58c611cf7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061110082611ca2565b9050600061111082878787611ccf565b9050896001600160a01b0316816001600160a01b0316146111735760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016107f8565b61117e8a8a8a6112f3565b50505050505050505050565b6000828152600960205260409020600101546111a581611646565b6107788383611801565b60006001600160a01b03831630146112095760405162461bcd60e51b815260206004820152601b60248201527f4552433230466c6173684d696e743a2077726f6e6720746f6b656e000000000060448201526064016107f8565b60006108af565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600f60205260409020805463ffffffff841690811061127f5761127f613074565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b60006020835110156112db576112d483611d1f565b905061067f565b816112e684826130d8565b5060ff905061067f565b90565b6001600160a01b0383166113555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f8565b6001600160a01b0382166113b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006114238484611210565b9050600019811461148b578181101561147e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107f8565b61148b84848484036112f3565b50505050565b6001600160a01b0383166114f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f8565b6001600160a01b0382166115575760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f8565b611562838383611d5d565b6001600160a01b038316600090815260208190526040902054818110156115da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107f8565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361148b848484611d68565b6108f48133611d73565b61165a8282610d43565b61080b5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff191660011790556116923390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561172f57507f000000000000000000000000000000000000000000000000000000000000000046145b1561175957507f000000000000000000000000000000000000000000000000000000000000000090565b610787604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b61180b8282610d43565b1561080b5760008281526009602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8154600090818160058111156118c257600061188384611dcc565b61188d908561304b565b600088815260209020909150869082015463ffffffff1611156118b2578091506118c0565b6118bd816001612fc3565b92505b505b8082101561190f5760006118d68383611eb4565b600088815260209020909150869082015463ffffffff1611156118fb57809150611909565b611906816001612fc3565b92505b506118c2565b801561193b576000868152602090208101600019015464010000000090046001600160e01b031661193e565b60005b6001600160e01b03169695505050505050565b61080b8282611ecf565b61080b8282611f59565b600080600084116119b15760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b60448201526064016107f8565b6119b9611f71565b841115611a085760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e7420696400000060448201526064016107f8565b6000611a148486611f7c565b84549091508103611a2c576000809250925050611a54565b6001846001018281548110611a4357611a43613074565b906000526020600020015492509250505b9250929050565b6001600160a01b038281166000818152600e60208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461148b828483612029565b600063ffffffff821115611b395760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016107f8565b5090565b606060ff8314611b50576112d483612166565b818054611b5c90612f79565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8890612f79565b8015611bd55780601f10611baa57610100808354040283529160200191611bd5565b820191906000526020600020905b815481529060010190602001808311611bb857829003601f168201915b5050505050905061067f565b600065ffffffffffff821115611b395760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016107f8565b6000611c58600880546001019055565b6000611c62611f71565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb6781604051611c9591815260200190565b60405180910390a1919050565b600061067f611caf6116d6565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611ce0878787876121a5565b91509150611ced81612269565b5095945050505050565b6001600160a01b0381166000908152600c602052604090208054600181018255905b50919050565b600080829050601f81511115611d4a578260405163305a27a960e01b81526004016107f89190612c0b565b8051611d5582613198565b179392505050565b6107788383836123b3565b6107788383836123fb565b611d7d8282610d43565b61080b57611d8a8161242d565b611d9583602061243f565b604051602001611da69291906131bc565b60408051601f198184030181529082905262461bcd60e51b82526107f891600401612c0b565b600081600003611dde57506000919050565b60006001611deb846125db565b901c6001901b90506001818481611e0457611e04613231565b048201901c90506001818481611e1c57611e1c613231565b048201901c90506001818481611e3457611e34613231565b048201901c90506001818481611e4c57611e4c613231565b048201901c90506001818481611e6457611e64613231565b048201901c90506001818481611e7c57611e7c613231565b048201901c90506001818481611e9457611e94613231565b048201901c90506108af81828581611eae57611eae613231565b0461266f565b6000611ec36002848418613247565b6108af90848416612fc3565b611ed98282612685565b6002546001600160e01b031015611f4b5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084016107f8565b61148b601061275883612764565b611f6382826128d9565b61148b6010612a1e83612764565b600061078760085490565b81546000908103611f8f5750600061067f565b82546000905b80821015611fdc576000611fa98383611eb4565b60008781526020902090915085908201541115611fc857809150611fd6565b611fd3816001612fc3565b92505b50611f95565b60008211801561200857508361200586611ff760018661304b565b600091825260209091200190565b54145b156120215761201860018361304b565b9250505061067f565b50905061067f565b816001600160a01b0316836001600160a01b03161415801561204b5750600081115b15610778576001600160a01b038316156120d9576001600160a01b0383166000908152600f60205260408120819061208690612a1e85612764565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516120ce929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610778576001600160a01b0382166000908152600f60205260408120819061210f9061275885612764565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612157929190918252602082015260400190565b60405180910390a25050505050565b6060600061217383612a2a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156121dc5750600090506003612260565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612230573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661225957600060019250925050612260565b9150600090505b94509492505050565b600081600481111561227d5761227d613269565b036122855750565b600181600481111561229957612299613269565b036122e65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107f8565b60028160048111156122fa576122fa613269565b036123475760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107f8565b600381600481111561235b5761235b613269565b036108f45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107f8565b6001600160a01b0383166123d2576123ca82612a52565b610778612a84565b6001600160a01b0382166123e9576123ca83612a52565b6123f283612a52565b61077882612a52565b6001600160a01b038381166000908152600e602052604080822054858416835291205461077892918216911683612029565b606061067f6001600160a01b03831660145b6060600061244e83600261327f565b612459906002612fc3565b67ffffffffffffffff8111156124715761247161305e565b6040519080825280601f01601f19166020018201604052801561249b576020820181803683370190505b509050600360fc1b816000815181106124b6576124b6613074565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106124e5576124e5613074565b60200101906001600160f81b031916908160001a905350600061250984600261327f565b612514906001612fc3565b90505b600181111561258c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061254857612548613074565b1a60f81b82828151811061255e5761255e613074565b60200101906001600160f81b031916908160001a90535060049490941c9361258581613296565b9050612517565b5083156108af5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107f8565b600080608083901c156125f057608092831c92015b604083901c1561260257604092831c92015b602083901c1561261457602092831c92015b601083901c1561262657601092831c92015b600883901c1561263857600892831c92015b600483901c1561264a57600492831c92015b600283901c1561265c57600292831c92015b600183901c1561067f5760010192915050565b600081831061267e57816108af565b5090919050565b6001600160a01b0382166126db5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107f8565b6126e760008383611d5d565b80600260008282546126f99190612fc3565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361080b60008383611d68565b60006108af8284612fc3565b825460009081908181156127b15760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526127c6565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506127e684868863ffffffff16565b925060008211801561281057506127fb610d6e565b65ffffffffffff16816000015163ffffffff16145b156128555761281e83612a94565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff9092169190911790556128cf565b86604051806040016040528061287961286c610d6e565b65ffffffffffff16611ad4565b63ffffffff16815260200161288d86612a94565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b0382166129395760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107f8565b61294582600083611d5d565b6001600160a01b038216600090815260208190526040902054818110156129b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107f8565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361077883600084611d68565b60006108af828461304b565b600060ff8216601f81111561067f57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038116600090815260056020908152604080832091839052909120546108f49190612afd565b612afd565b612a926006612a7f60025490565b565b60006001600160e01b03821115611b395760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016107f8565b6000612b07611f71565b905080612b1384612b47565b1015610778578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b80546000908103612b5a57506000919050565b81548290612b6a9060019061304b565b81548110612b7a57612b7a613074565b90600052602060002001549050919050565b919050565b600060208284031215612ba357600080fd5b81356001600160e01b0319811681146108af57600080fd5b60005b83811015612bd6578181015183820152602001612bbe565b50506000910152565b60008151808452612bf7816020860160208601612bbb565b601f01601f19169290920160200192915050565b6020815260006108af6020830184612bdf565b6001600160a01b03811681146108f457600080fd5b60008060408385031215612c4657600080fd5b8235612c5181612c1e565b946020939093013593505050565b600080600060608486031215612c7457600080fd5b8335612c7f81612c1e565b92506020840135612c8f81612c1e565b929592945050506040919091013590565b600060208284031215612cb257600080fd5b5035919050565b60008060408385031215612ccc57600080fd5b823591506020830135612cde81612c1e565b809150509250929050565b600060208284031215612cfb57600080fd5b81356108af81612c1e565b600080600080600060808688031215612d1e57600080fd5b8535612d2981612c1e565b94506020860135612d3981612c1e565b935060408601359250606086013567ffffffffffffffff80821115612d5d57600080fd5b818801915088601f830112612d7157600080fd5b813581811115612d8057600080fd5b896020828501011115612d9257600080fd5b9699959850939650602001949392505050565b60ff60f81b881681526000602060e081840152612dc560e084018a612bdf565b8381036040850152612dd7818a612bdf565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015612e2957835183529284019291840191600101612e0d565b50909c9b505050505050505050505050565b803560ff81168114612b8c57600080fd5b60008060008060008060c08789031215612e6557600080fd5b8635612e7081612c1e565b95506020870135945060408701359350612e8c60608801612e3b565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215612ec157600080fd5b8735612ecc81612c1e565b96506020880135612edc81612c1e565b95506040880135945060608801359350612ef860808901612e3b565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612f2757600080fd5b8235612f3281612c1e565b91506020830135612cde81612c1e565b60008060408385031215612f5557600080fd5b8235612f6081612c1e565b9150602083013563ffffffff81168114612cde57600080fd5b600181811c90821680612f8d57607f821691505b602082108103611d1957634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561067f5761067f612fad565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905281018290526000828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b60006020828403121561304457600080fd5b5051919050565b8181038181111561067f5761067f612fad565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561077857600081815260208120601f850160051c810160208610156130b15750805b601f850160051c820191505b818110156130d0578281556001016130bd565b505050505050565b815167ffffffffffffffff8111156130f2576130f261305e565b613106816131008454612f79565b8461308a565b602080601f83116001811461313b57600084156131235750858301515b600019600386901b1c1916600185901b1785556130d0565b600085815260208120601f198616915b8281101561316a5788860151825594840194600190910190840161314b565b50858210156131885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516020808301519190811015611d195760001960209190910360031b1b16919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131f4816017850160208801612bbb565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613225816028840160208801612bbb565b01602801949350505050565b634e487b7160e01b600052601260045260246000fd5b60008261326457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b808202811582820484141761067f5761067f612fad565b6000816132a5576132a5612fad565b50600019019056fea2646970667358221220cdb30a487a0cabe475a78e5634fdc78dbf01bb74c782c5759746f310221eb61564736f6c63430008120033