From: Mu-Woong Lee Date: Thu, 8 Jun 2017 12:22:05 +0000 (+0900) Subject: Rename the class Json to avoid symbol conflicts with Jsoncpp X-Git-Tag: accepted/tizen/unified/20170609.204945^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afe5b816b71d2aadab2df7b96b1f8cacc1942358;p=platform%2Fcore%2Fcontext%2Fcontext-provider.git Rename the class Json to avoid symbol conflicts with Jsoncpp Plus, my-place detector has been removed. Change-Id: Ic1d11300cc1d185ff7a47bc06e1ce1a37ce3f0e3 Signed-off-by: Mu-Woong Lee --- diff --git a/common/client/DBusClient.cpp b/common/client/DBusClient.cpp index 85c9d75..a8079a6 100644 --- a/common/client/DBusClient.cpp +++ b/common/client/DBusClient.cpp @@ -220,7 +220,7 @@ SO_EXPORT int DBusClient::isSupported(std::string subject) return __request(REQ_SUPPORT, __generateReqId(), subject.c_str(), NULL, NULL, NULL); } -SO_EXPORT int DBusClient::subscribe(std::string subject, Json option, int *reqId, Json *result) +SO_EXPORT int DBusClient::subscribe(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *result) { IF_FAIL_RETURN(__init(), ERR_OPERATION_FAILED); ASSERT_NOT_NULL(reqId); @@ -250,7 +250,7 @@ SO_EXPORT int DBusClient::unsubscribe(std::string subject, int reqId) return __request(REQ_UNSUBSCRIBE, reqId, subject.c_str(), NULL, NULL, NULL); } -SO_EXPORT int DBusClient::read(std::string subject, Json option, int *reqId, Json *result) +SO_EXPORT int DBusClient::read(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *result) { IF_FAIL_RETURN(__init(), ERR_OPERATION_FAILED); ASSERT_NOT_NULL(reqId); @@ -271,7 +271,7 @@ SO_EXPORT int DBusClient::read(std::string subject, Json option, int *reqId, Jso return error; } -SO_EXPORT int DBusClient::readSync(std::string subject, Json option, int *reqId, Json *outputData) +SO_EXPORT int DBusClient::readSync(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *outputData) { IF_FAIL_RETURN(__init(), ERR_OPERATION_FAILED); ASSERT_NOT_NULL(reqId); @@ -292,7 +292,7 @@ SO_EXPORT int DBusClient::readSync(std::string subject, Json option, int *reqId, return error; } -SO_EXPORT int DBusClient::write(std::string subject, Json inputData) +SO_EXPORT int DBusClient::write(std::string subject, CtxJson1 inputData) { IF_FAIL_RETURN(__init(), ERR_OPERATION_FAILED); @@ -307,7 +307,7 @@ SO_EXPORT int DBusClient::write(std::string subject, Json inputData) return error; } -SO_EXPORT int DBusClient::write(std::string subject, Json inputData, Json *result) +SO_EXPORT int DBusClient::write(std::string subject, CtxJson1 inputData, CtxJson1 *result) { IF_FAIL_RETURN(__init(), ERR_OPERATION_FAILED); diff --git a/common/include/ContextProvider.h b/common/include/ContextProvider.h index 2d89262..c98ff79 100644 --- a/common/include/ContextProvider.h +++ b/common/include/ContextProvider.h @@ -19,7 +19,7 @@ #include #include -#include +#include #define OPS_SUBSCRIBE 1 #define OPS_READ 2 @@ -36,17 +36,17 @@ namespace ctx { const char* getSubject(); virtual bool isSupported(); - virtual int subscribe(Json option, Json *requestResult); - virtual int unsubscribe(Json option); - virtual int read(Json option, Json *requestResult); - virtual int write(Json data, Json *requestResult); + virtual int subscribe(CtxJson1 option, CtxJson1 *requestResult); + virtual int unsubscribe(CtxJson1 option); + virtual int read(CtxJson1 option, CtxJson1 *requestResult); + virtual int write(CtxJson1 data, CtxJson1 *requestResult); virtual void getPrivilege(std::vector &privilege); virtual bool unloadable(); - bool publish(Json option, int error, Json dataUpdated); - bool replyToRead(Json option, int error, Json dataRead); + bool publish(CtxJson1 option, int error, CtxJson1 dataUpdated); + bool replyToRead(CtxJson1 option, int error, CtxJson1 dataRead); protected: ContextProvider(const char *subject); diff --git a/common/include/Json.h b/common/include/CtxJson1.h similarity index 69% rename from common/include/Json.h rename to common/include/CtxJson1.h index 31a9d11..76f3470 100644 --- a/common/include/Json.h +++ b/common/include/CtxJson1.h @@ -31,47 +31,47 @@ do { \ namespace ctx { - class Json { + class CtxJson1 { public: - Json(); - Json(const char *s); - Json(const std::string &s); - - /* This Json(const Json &j) only copies the reference to the underlying Json node. - * Therefore, changes applied to a Json object affect the other. - * If you need to create a 'real' copy of a Json, which can be manipulated separately, - * utilize the str() function, e.g., ctx::Json copy(original.str()); + CtxJson1(); + CtxJson1(const char *s); + CtxJson1(const std::string &s); + + /* This CtxJson1(const CtxJson1 &j) only copies the reference to the underlying CtxJson1 node. + * Therefore, changes applied to a CtxJson1 object affect the other. + * If you need to create a 'real' copy of a CtxJson1, which can be manipulated separately, + * utilize the str() function, e.g., ctx::CtxJson1 copy(original.str()); */ - Json(const Json &j); + CtxJson1(const CtxJson1 &j); - ~Json(); + ~CtxJson1(); - Json& operator=(const char *s); - Json& operator=(const std::string &s); + CtxJson1& operator=(const char *s); + CtxJson1& operator=(const std::string &s); - /* This operator=(const Json &j) only copies the reference to the underlying Json node. - * Therefore, changes applied to a Json object affect the other. - * If you need to create a 'real' copy of a Json, which can be manipulated separately, - * utilize the str() function, e.g., ctx::Json copy = original.str(); + /* This operator=(const CtxJson1 &j) only copies the reference to the underlying CtxJson1 node. + * Therefore, changes applied to a CtxJson1 object affect the other. + * If you need to create a 'real' copy of a CtxJson1, which can be manipulated separately, + * utilize the str() function, e.g., ctx::CtxJson1 copy = original.str(); */ - Json& operator=(const Json &j); + CtxJson1& operator=(const CtxJson1 &j); - bool operator==(const Json &rhs); - bool operator!=(const Json &rhs); + bool operator==(const CtxJson1 &rhs); + bool operator!=(const CtxJson1 &rhs); std::string str(); bool getKeys(std::list *list); bool valid(); - bool set(const char *path, const char *key, Json &val); + bool set(const char *path, const char *key, CtxJson1 &val); bool set(const char *path, const char *key, int val); bool set(const char *path, const char *key, int64_t val); bool set(const char *path, const char *key, double val); bool set(const char *path, const char *key, std::string val); bool set(const char *path, const char *key, GVariant *val); - bool get(const char *path, const char *key, Json *val); + bool get(const char *path, const char *key, CtxJson1 *val); bool get(const char *path, const char *key, int *val); bool get(const char *path, const char *key, int64_t *val); bool get(const char *path, const char *key, double *val); @@ -83,19 +83,19 @@ namespace ctx { /* Array operations */ int getSize(const char *path, const char *key); - bool append(const char *path, const char *key, Json &val); + bool append(const char *path, const char *key, CtxJson1 &val); bool append(const char *path, const char *key, int val); bool append(const char *path, const char *key, int64_t val); bool append(const char *path, const char *key, double val); bool append(const char *path, const char *key, std::string val); - bool setAt(const char *path, const char *key, int index, Json &val); + bool setAt(const char *path, const char *key, int index, CtxJson1 &val); bool setAt(const char *path, const char *key, int index, int val); bool setAt(const char *path, const char *key, int index, int64_t val); bool setAt(const char *path, const char *key, int index, double val); bool setAt(const char *path, const char *key, int index, std::string val); - bool getAt(const char *path, const char *key, int index, Json *val); + bool getAt(const char *path, const char *key, int index, CtxJson1 *val); bool getAt(const char *path, const char *key, int index, int *val); bool getAt(const char *path, const char *key, int index, int64_t *val); bool getAt(const char *path, const char *key, int index, double *val); diff --git a/common/include/CustomRegister.h b/common/include/CustomRegister.h index 5134613..081ec7e 100644 --- a/common/include/CustomRegister.h +++ b/common/include/CustomRegister.h @@ -18,7 +18,7 @@ #define _CONTEXT_CUSTOM_REGISTER_H_ #include -#include +#include namespace ctx { @@ -28,7 +28,7 @@ namespace ctx { public: virtual ~CustomRegister(); - bool registerCustomProvider(const char* subject, int operation, Json attribute, Json option, const char* owner = NULL); + bool registerCustomProvider(const char* subject, int operation, CtxJson1 attribute, CtxJson1 option, const char* owner = NULL); bool unregisterCustomProvider(const char* subject); protected: diff --git a/common/include/DBusClient.h b/common/include/DBusClient.h index c865e80..ee13e65 100644 --- a/common/include/DBusClient.h +++ b/common/include/DBusClient.h @@ -35,12 +35,12 @@ namespace ctx { int isSupported(std::string subject); - int subscribe(std::string subject, Json option, int *reqId, Json *result); + int subscribe(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *result); int unsubscribe(std::string subject, int reqId); - int read(std::string subject, Json option, int *reqId, Json *result); - int readSync(std::string subject, Json option, int *reqId, Json *outputData); - int write(std::string subject, Json inputData); - int write(std::string subject, Json inputData, Json *result); + int read(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *result); + int readSync(std::string subject, CtxJson1 option, int *reqId, CtxJson1 *outputData); + int write(std::string subject, CtxJson1 inputData); + int write(std::string subject, CtxJson1 inputData, CtxJson1 *result); int call(const char *method); diff --git a/common/include/DatabaseManager.h b/common/include/DatabaseManager.h index a0fe0ad..c7aa403 100644 --- a/common/include/DatabaseManager.h +++ b/common/include/DatabaseManager.h @@ -45,7 +45,7 @@ namespace ctx { * @param[in] record A json object containing key, value pairs. * @param[in] listener A listener object to receive the result. Allows NULL. */ - bool insert(unsigned int queryId, const char *tableName, Json record, IDatabaseListener *listener = NULL); + bool insert(unsigned int queryId, const char *tableName, CtxJson1 record, IDatabaseListener *listener = NULL); /** * @brief Executes a SQL query. Async. @@ -70,7 +70,7 @@ namespace ctx { * @param[in] record A json object containing key, value pairs. * @param[out] rowId The row id of the inserted record. If fails, a negative integer. */ - bool insertSync(const char *tableName, Json record, int64_t *rowId); + bool insertSync(const char *tableName, CtxJson1 record, int64_t *rowId); /** * @brief Executes a SQL query. Sync. @@ -78,7 +78,7 @@ namespace ctx { * @param[in] query A query to be executed. * @param[out] records Query result. */ - bool executeSync(const char *query, std::vector *records); + bool executeSync(const char *query, std::vector *records); private: static bool __init(); diff --git a/common/include/IContextManager.h b/common/include/IContextManager.h index 4bb2561..87c38a0 100644 --- a/common/include/IContextManager.h +++ b/common/include/IContextManager.h @@ -18,7 +18,7 @@ #define _CONTEXT_I_CONTEXT_MANAGER_H_ #include -#include +#include namespace ctx { @@ -28,8 +28,8 @@ namespace ctx { public: virtual ~IContextManager(); - virtual bool publish(const char *subject, Json &option, int error, Json &dataUpdated) = 0; - virtual bool replyToRead(const char *subject, Json &option, int error, Json &dataRead) = 0; + virtual bool publish(const char *subject, CtxJson1 &option, int error, CtxJson1 &dataUpdated) = 0; + virtual bool replyToRead(const char *subject, CtxJson1 &option, int error, CtxJson1 &dataRead) = 0; }; /* class IContextManager */ } /* namespace ctx */ diff --git a/common/include/ICustomRegister.h b/common/include/ICustomRegister.h index eca3596..6f53314 100644 --- a/common/include/ICustomRegister.h +++ b/common/include/ICustomRegister.h @@ -18,7 +18,7 @@ #define _CONTEXT_I_CUSTOM_REGISTER_H_ #include -#include +#include namespace ctx { @@ -28,7 +28,7 @@ namespace ctx { public: virtual ~ICustomRegister(){}; - virtual bool registerCustomProvider(const char *subject, int operation, Json &attribute, Json &option, const char* owner = NULL) = 0; + virtual bool registerCustomProvider(const char *subject, int operation, CtxJson1 &attribute, CtxJson1 &option, const char* owner = NULL) = 0; virtual bool unregisterCustomProvider(const char *subject) = 0; }; /* class ICustomRegister */ diff --git a/common/include/IDBusClientListener.h b/common/include/IDBusClientListener.h index 1463425..c5cbcda 100644 --- a/common/include/IDBusClientListener.h +++ b/common/include/IDBusClientListener.h @@ -22,14 +22,14 @@ #endif #include -#include +#include namespace ctx { class SO_EXPORT IDBusClientListener { public: virtual ~IDBusClientListener(); - virtual void onPublish(std::string subject, int reqId, int error, Json event) = 0; + virtual void onPublish(std::string subject, int reqId, int error, CtxJson1 event) = 0; }; } /* namespace ctx */ diff --git a/common/include/IDatabaseListener.h b/common/include/IDatabaseListener.h index 96205cb..142dd6e 100644 --- a/common/include/IDatabaseListener.h +++ b/common/include/IDatabaseListener.h @@ -18,7 +18,7 @@ #define _CONTEXT_I_DATABASE_LISTENER_H_ #include -#include +#include #include namespace ctx { @@ -48,7 +48,7 @@ namespace ctx { * @param[in] error Error code. If success, 0. Otherwise, a negative value. * @param[in] records Data records retreived. */ - virtual void onExecuted(unsigned int queryId, int error, std::vector& records) = 0; + virtual void onExecuted(unsigned int queryId, int error, std::vector& records) = 0; }; } /* namespace ctx */ diff --git a/common/server/ContextProvider.cpp b/common/server/ContextProvider.cpp index ac2758c..bb92493 100644 --- a/common/server/ContextProvider.cpp +++ b/common/server/ContextProvider.cpp @@ -40,22 +40,22 @@ bool ContextProvider::isSupported() return true; } -int ContextProvider::subscribe(Json option, Json *requestResult) +int ContextProvider::subscribe(CtxJson1 option, CtxJson1 *requestResult) { return ERR_NOT_SUPPORTED; } -int ContextProvider::unsubscribe(Json option) +int ContextProvider::unsubscribe(CtxJson1 option) { return ERR_NOT_SUPPORTED; } -int ContextProvider::read(Json option, Json *requestResult) +int ContextProvider::read(CtxJson1 option, CtxJson1 *requestResult) { return ERR_NOT_SUPPORTED; } -int ContextProvider::write(Json data, Json *requestResult) +int ContextProvider::write(CtxJson1 data, CtxJson1 *requestResult) { return ERR_NOT_SUPPORTED; } @@ -69,12 +69,12 @@ bool ContextProvider::unloadable() return true; } -bool ContextProvider::publish(Json option, int error, Json dataUpdated) +bool ContextProvider::publish(CtxJson1 option, int error, CtxJson1 dataUpdated) { return __contextMgr->publish(__subject, option, error, dataUpdated); } -bool ContextProvider::replyToRead(Json option, int error, Json dataRead) +bool ContextProvider::replyToRead(CtxJson1 option, int error, CtxJson1 dataRead) { return __contextMgr->replyToRead(__subject, option, error, dataRead); } diff --git a/common/server/CustomRegistser.cpp b/common/server/CustomRegistser.cpp index 313d685..cceb499 100644 --- a/common/server/CustomRegistser.cpp +++ b/common/server/CustomRegistser.cpp @@ -29,7 +29,7 @@ CustomRegister::~CustomRegister() { } -bool CustomRegister::registerCustomProvider(const char* subject, int operation, Json attribute, Json option, const char* owner) +bool CustomRegister::registerCustomProvider(const char* subject, int operation, CtxJson1 attribute, CtxJson1 option, const char* owner) { return __customRegister->registerCustomProvider(subject, operation, attribute, option, owner); } diff --git a/common/server/DatabaseManager.cpp b/common/server/DatabaseManager.cpp index 008c450..b94ebf3 100644 --- a/common/server/DatabaseManager.cpp +++ b/common/server/DatabaseManager.cpp @@ -79,7 +79,7 @@ SO_EXPORT bool DatabaseManager::createTable(unsigned int queryId, const char *ta return __databaseThread->createTable(queryId, tableName, columns, option, listener); } -SO_EXPORT bool DatabaseManager::insert(unsigned int queryId, const char *tableName, Json record, IDatabaseListener *listener) +SO_EXPORT bool DatabaseManager::insert(unsigned int queryId, const char *tableName, CtxJson1 record, IDatabaseListener *listener) { return __databaseThread->insert(queryId, tableName, record, listener); } @@ -94,12 +94,12 @@ SO_EXPORT bool DatabaseManager::createTableSync(const char *tableName, const cha return __databaseThread->createTableSync(tableName, columns, option); } -SO_EXPORT bool DatabaseManager::insertSync(const char *tableName, Json record, int64_t *rowId) +SO_EXPORT bool DatabaseManager::insertSync(const char *tableName, CtxJson1 record, int64_t *rowId) { return __databaseThread->insertSync(tableName, record, rowId); } -SO_EXPORT bool DatabaseManager::executeSync(const char *query, std::vector *records) +SO_EXPORT bool DatabaseManager::executeSync(const char *query, std::vector *records) { return __databaseThread->executeSync(query, records); } diff --git a/common/server/DatabaseThread.cpp b/common/server/DatabaseThread.cpp index 66e622e..12a8725 100644 --- a/common/server/DatabaseThread.cpp +++ b/common/server/DatabaseThread.cpp @@ -74,7 +74,7 @@ bool DatabaseThread::createTable(unsigned int queryId, const char *tableName, co return true; } -bool DatabaseThread::insert(unsigned int queryId, const char *tableName, Json record, IDatabaseListener *listener) +bool DatabaseThread::insert(unsigned int queryId, const char *tableName, CtxJson1 record, IDatabaseListener *listener) { std::string query = __composeInsert(tableName, record); IF_FAIL_RETURN(!query.empty(), false); @@ -135,7 +135,7 @@ bool DatabaseThread::createTableSync(const char *tableName, const char *columns, return true; } -bool DatabaseThread::insertSync(const char *tableName, Json record, int64_t *rowId) +bool DatabaseThread::insertSync(const char *tableName, CtxJson1 record, int64_t *rowId) { IF_FAIL_RETURN(tableName && rowId, false); @@ -143,7 +143,7 @@ bool DatabaseThread::insertSync(const char *tableName, Json record, int64_t *row IF_FAIL_RETURN(!query.empty(), false); _SD("SQL: %s", query.c_str()); - std::vector queryResult; + std::vector queryResult; char *err = NULL; int ret; { @@ -166,7 +166,7 @@ bool DatabaseThread::insertSync(const char *tableName, Json record, int64_t *row return true; } -bool DatabaseThread::executeSync(const char *query, std::vector *records) +bool DatabaseThread::executeSync(const char *query, std::vector *records) { IF_FAIL_RETURN(query, false); @@ -217,7 +217,7 @@ std::string DatabaseThread::__composeCreate(const char *tableName, const char *c return query; } -std::string DatabaseThread::__composeInsert(const char *tableName, Json record) +std::string DatabaseThread::__composeInsert(const char *tableName, CtxJson1 record) { std::string cols; std::string vals; @@ -259,7 +259,7 @@ void DatabaseThread::__execute(QueryType type, unsigned int queryId, const char { _SD("SQL(%d): %s", queryId, query); - std::vector *queryResult = new(std::nothrow) std::vector; + std::vector *queryResult = new(std::nothrow) std::vector; IF_FAIL_VOID_TAG(queryResult, _E, "Memory allocation failed"); char *err = NULL; @@ -281,7 +281,7 @@ void DatabaseThread::__execute(QueryType type, unsigned int queryId, const char return; } -void DatabaseThread::__dispatchResult(QueryType type, unsigned int queryId, IDatabaseListener *listener, int error, std::vector *result) +void DatabaseThread::__dispatchResult(QueryType type, unsigned int queryId, IDatabaseListener *listener, int error, std::vector *result) { QueryResult *qr = new(std::nothrow) QueryResult(); IF_FAIL_VOID_TAG(qr, _E, "Memory allocation failed"); @@ -299,8 +299,8 @@ int DatabaseThread::__executionCb(void *userData, int dim, char **value, char ** { IF_FAIL_RETURN(userData, 0); - std::vector *records = static_cast*>(userData); - Json row; + std::vector *records = static_cast*>(userData); + CtxJson1 row; bool columnNull = false; for (int i = 0; i < dim; ++i) { diff --git a/common/server/DatabaseThread.h b/common/server/DatabaseThread.h index 4e3b608..3164f76 100644 --- a/common/server/DatabaseThread.h +++ b/common/server/DatabaseThread.h @@ -32,11 +32,11 @@ namespace ctx { void close(); bool createTable(unsigned int queryId, const char *tableName, const char *columns, const char *option = NULL, IDatabaseListener *listener = NULL); - bool insert(unsigned int queryId, const char *tableName, Json record, IDatabaseListener *listener = NULL); + bool insert(unsigned int queryId, const char *tableName, CtxJson1 record, IDatabaseListener *listener = NULL); bool execute(unsigned int queryId, const char *query, IDatabaseListener *listener = NULL); bool createTableSync(const char *tableName, const char *columns, const char *option = NULL); - bool insertSync(const char *tableName, Json record, int64_t *rowId); - bool executeSync(const char *query, std::vector *records); + bool insertSync(const char *tableName, CtxJson1 record, int64_t *rowId); + bool executeSync(const char *query, std::vector *records); private: enum QueryType { @@ -56,17 +56,17 @@ namespace ctx { unsigned int id; int error; IDatabaseListener *listener; - std::vector *result; + std::vector *result; }; void onEvent(int type, void* data); void deleteEvent(int type, void* data); std::string __composeCreate(const char *tableName, const char *columns, const char *option); - std::string __composeInsert(const char *tableName, Json record); + std::string __composeInsert(const char *tableName, CtxJson1 record); void __execute(QueryType type, unsigned int queryId, const char *query, IDatabaseListener *listener); - void __dispatchResult(QueryType type, unsigned int queryId, IDatabaseListener *listener, int error, std::vector *result); + void __dispatchResult(QueryType type, unsigned int queryId, IDatabaseListener *listener, int error, std::vector *result); static int __executionCb(void *userData, int dim, char **value, char **column); static gboolean __dispatcher(gpointer data); diff --git a/common/shared/Json.cpp b/common/shared/CtxJson1.cpp similarity index 76% rename from common/shared/Json.cpp rename to common/shared/CtxJson1.cpp index 2f8a1b8..461448b 100644 --- a/common/shared/Json.cpp +++ b/common/shared/CtxJson1.cpp @@ -22,7 +22,7 @@ #include #include #include -#include +#include #define PATH_DELIM '.' #define MAX_PRECISION 15 @@ -86,30 +86,30 @@ static double __string_to_double(const char* in) return out; } -SO_EXPORT Json::Json() : +SO_EXPORT CtxJson1::CtxJson1() : __jsonNode(NULL) { JsonObject *obj = json_object_new(); - IF_FAIL_VOID_TAG(obj, _E, "Json object construction failed"); + IF_FAIL_VOID_TAG(obj, _E, "CtxJson1 object construction failed"); __jsonNode = json_node_new(JSON_NODE_OBJECT); if (!__jsonNode) { json_object_unref(obj); - _E("Json object construction failed"); + _E("CtxJson1 object construction failed"); } json_node_set_object(__jsonNode, obj); json_object_unref(obj); } -SO_EXPORT Json::Json(const Json &j) +SO_EXPORT CtxJson1::CtxJson1(const CtxJson1 &j) : __jsonNode(NULL) { __jsonNode = json_node_copy(j.__jsonNode); - IF_FAIL_VOID_TAG(__jsonNode, _E, "Json object construction failed"); + IF_FAIL_VOID_TAG(__jsonNode, _E, "CtxJson1 object construction failed"); } -SO_EXPORT Json::Json(const char *s) +SO_EXPORT CtxJson1::CtxJson1(const char *s) : __jsonNode(NULL) { if (s) { @@ -119,7 +119,7 @@ SO_EXPORT Json::Json(const char *s) } } -SO_EXPORT Json::Json(const std::string &s) +SO_EXPORT CtxJson1::CtxJson1(const std::string &s) : __jsonNode(NULL) { if (s.empty()) { @@ -129,12 +129,12 @@ SO_EXPORT Json::Json(const std::string &s) } } -SO_EXPORT Json::~Json() +SO_EXPORT CtxJson1::~CtxJson1() { __release(); } -void Json::__parse(const char *s) +void CtxJson1::__parse(const char *s) { gboolean result; JsonParser *parser = NULL; @@ -157,7 +157,7 @@ CATCH: g_object_unref(parser); } -void Json::__release() +void CtxJson1::__release() { if (__jsonNode) { json_node_free(__jsonNode); @@ -165,22 +165,22 @@ void Json::__release() } } -SO_EXPORT bool Json::valid() +SO_EXPORT bool CtxJson1::valid() { return (__jsonNode != NULL); } -SO_EXPORT Json& Json::operator=(const Json &j) +SO_EXPORT CtxJson1& CtxJson1::operator=(const CtxJson1 &j) { __release(); __jsonNode = json_node_copy(j.__jsonNode); if (!__jsonNode) { - _E("Json object copy failed"); + _E("CtxJson1 object copy failed"); } return *this; } -SO_EXPORT Json& Json::operator=(const char *s) +SO_EXPORT CtxJson1& CtxJson1::operator=(const char *s) { __release(); if (s) { @@ -191,7 +191,7 @@ SO_EXPORT Json& Json::operator=(const char *s) return *this; } -SO_EXPORT Json& Json::operator=(const std::string &s) +SO_EXPORT CtxJson1& CtxJson1::operator=(const std::string &s) { __release(); if (s.empty()) { @@ -202,19 +202,19 @@ SO_EXPORT Json& Json::operator=(const std::string &s) return *this; } -SO_EXPORT bool Json::operator==(const Json &rhs) +SO_EXPORT bool CtxJson1::operator==(const CtxJson1 &rhs) { return __nodeEq(__jsonNode, rhs.__jsonNode); } -SO_EXPORT bool Json::operator!=(const Json &rhs) +SO_EXPORT bool CtxJson1::operator!=(const CtxJson1 &rhs) { return !operator==(rhs); } -char* Json::__strDup() +char* CtxJson1::__strDup() { - IF_FAIL_RETURN_TAG(__jsonNode, NULL, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(__jsonNode, NULL, _E, "CtxJson1 object not initialized"); JsonGenerator *jgen = NULL; char *output = NULL; @@ -238,7 +238,7 @@ CATCH: return NULL; } -SO_EXPORT std::string Json::str() +SO_EXPORT std::string CtxJson1::str() { std::string output; char *_s = __strDup(); @@ -301,9 +301,9 @@ static JsonObject* __traverse(JsonNode *jnode, const char *path, bool force) return jobj; } -SO_EXPORT bool Json::set(const char *path, const char *key, Json &val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, CtxJson1 &val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val.__jsonNode, false, _E, "Invalid parameter"); JsonObject *jobj = __traverse(__jsonNode, path, true); @@ -314,19 +314,19 @@ SO_EXPORT bool Json::set(const char *path, const char *key, Json &val) json_object_set_member(jobj, key, val.__jsonNode); val.__jsonNode = NULL; - val = Json(); + val = CtxJson1(); return true; } -SO_EXPORT bool Json::set(const char *path, const char *key, int val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, int val) { return set(path, key, static_cast(val)); } -SO_EXPORT bool Json::set(const char *path, const char *key, int64_t val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, int64_t val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, false, _E, "Invalid parameter"); JsonObject *jobj = __traverse(__jsonNode, path, true); @@ -339,14 +339,14 @@ SO_EXPORT bool Json::set(const char *path, const char *key, int64_t val) return true; } -SO_EXPORT bool Json::set(const char *path, const char *key, double val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, double val) { return set(path, key, __double_to_string(val)); } -SO_EXPORT bool Json::set(const char *path, const char *key, std::string val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, std::string val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, false, _E, "Invalid parameter"); JsonObject *jobj = __traverse(__jsonNode, path, true); @@ -360,10 +360,10 @@ SO_EXPORT bool Json::set(const char *path, const char *key, std::string val) return true; } -SO_EXPORT bool Json::set(const char *path, const char *key, GVariant *val) +SO_EXPORT bool CtxJson1::set(const char *path, const char *key, GVariant *val) { #if JSON_CHECK_VERSION(0, 14, 0) - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); const gchar *typeStr = g_variant_get_type_string(val); @@ -372,7 +372,7 @@ SO_EXPORT bool Json::set(const char *path, const char *key, GVariant *val) json_node_t *node = json_gvariant_serialize(val); IF_FAIL_RETURN_TAG(node, false, _E, "GVariant manipulation failed"); - Json gvarJson; + CtxJson1 gvarJson; gvarJson.set(NULL, GVAR_TYPES, std::string(typeStr)); json_object_set_member(json_node_get_object(gvarJson.__jsonNode), GVAR_VALUES, node); @@ -383,9 +383,9 @@ SO_EXPORT bool Json::set(const char *path, const char *key, GVariant *val) #endif } -SO_EXPORT bool Json::get(const char *path, const char *key, Json *val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, CtxJson1 *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); JsonObject *jobj = NULL; @@ -421,9 +421,9 @@ static JsonNode* __get_value_node(JsonNode *jnode, const char *path, const char return node; } -SO_EXPORT bool Json::get(const char *path, const char *key, int *val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, int *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); int64_t v; @@ -436,9 +436,9 @@ SO_EXPORT bool Json::get(const char *path, const char *key, int *val) return false; } -SO_EXPORT bool Json::get(const char *path, const char *key, int64_t *val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, int64_t *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); JsonNode *node = __get_value_node(__jsonNode, path, key); @@ -457,9 +457,9 @@ SO_EXPORT bool Json::get(const char *path, const char *key, int64_t *val) return true; } -SO_EXPORT bool Json::get(const char *path, const char *key, double *val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, double *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); JsonNode *node = __get_value_node(__jsonNode, path, key); @@ -479,9 +479,9 @@ SO_EXPORT bool Json::get(const char *path, const char *key, double *val) return true; } -SO_EXPORT bool Json::get(const char *path, const char *key, std::string *val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, std::string *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); JsonNode *node = __get_value_node(__jsonNode, path, key); @@ -497,14 +497,14 @@ SO_EXPORT bool Json::get(const char *path, const char *key, std::string *val) return true; } -SO_EXPORT bool Json::get(const char *path, const char *key, GVariant **val) +SO_EXPORT bool CtxJson1::get(const char *path, const char *key, GVariant **val) { #if JSON_CHECK_VERSION(0, 14, 0) - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val, false, _E, "Invalid parameter"); bool ret; - Json gvarJson; + CtxJson1 gvarJson; ret = get(path, key, &gvarJson); IF_FAIL_RETURN(ret, false); @@ -512,7 +512,7 @@ SO_EXPORT bool Json::get(const char *path, const char *key, GVariant **val) ret = gvarJson.get(NULL, GVAR_TYPES, &gvarTypes); IF_FAIL_RETURN(ret, false); - Json gvarValues; + CtxJson1 gvarValues; ret = gvarJson.get(NULL, GVAR_VALUES, &gvarValues); IF_FAIL_RETURN(ret, false); @@ -529,9 +529,9 @@ SO_EXPORT bool Json::get(const char *path, const char *key, GVariant **val) #endif } -SO_EXPORT bool Json::remove(const char *path, const char *key) +SO_EXPORT bool CtxJson1::remove(const char *path, const char *key) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, false, _E, "Invalid parameter"); JsonObject *jobj = __traverse(__jsonNode, path, true); @@ -568,9 +568,9 @@ static JsonArray* __get_array(JsonNode *jnode, const char *path, const char *key return json_node_get_array(node); } -SO_EXPORT int Json::getSize(const char *path, const char *key) +SO_EXPORT int CtxJson1::getSize(const char *path, const char *key) { - IF_FAIL_RETURN_TAG(this->__jsonNode, -1, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, -1, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, -1, _E, "Invalid parameter"); JsonArray *jarr = __get_array(__jsonNode, path, key, false); @@ -579,9 +579,9 @@ SO_EXPORT int Json::getSize(const char *path, const char *key) return json_array_get_length(jarr); } -SO_EXPORT bool Json::append(const char *path, const char *key, Json &val) +SO_EXPORT bool CtxJson1::append(const char *path, const char *key, CtxJson1 &val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val.__jsonNode, false, _E, "Invalid parameter"); JsonArray *arr = __get_array(__jsonNode, path, key, true); @@ -589,19 +589,19 @@ SO_EXPORT bool Json::append(const char *path, const char *key, Json &val) json_array_add_element(arr, val.__jsonNode); val.__jsonNode = NULL; - val = Json(); + val = CtxJson1(); return true; } -SO_EXPORT bool Json::append(const char *path, const char *key, int val) +SO_EXPORT bool CtxJson1::append(const char *path, const char *key, int val) { return append(path, key, static_cast(val)); } -SO_EXPORT bool Json::append(const char *path, const char *key, int64_t val) +SO_EXPORT bool CtxJson1::append(const char *path, const char *key, int64_t val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, false, _E, "Invalid parameter"); JsonArray *arr = __get_array(__jsonNode, path, key, true); @@ -611,14 +611,14 @@ SO_EXPORT bool Json::append(const char *path, const char *key, int64_t val) return true; } -SO_EXPORT bool Json::append(const char *path, const char *key, double val) +SO_EXPORT bool CtxJson1::append(const char *path, const char *key, double val) { return append(path, key, __double_to_string(val)); } -SO_EXPORT bool Json::append(const char *path, const char *key, std::string val) +SO_EXPORT bool CtxJson1::append(const char *path, const char *key, std::string val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key, false, _E, "Invalid parameter"); JsonArray *arr = __get_array(__jsonNode, path, key, true); @@ -642,9 +642,9 @@ static JsonNode* __get_array_elem(JsonNode *jnode, const char *path, const char return node; } -SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, Json &val) +SO_EXPORT bool CtxJson1::setAt(const char *path, const char *key, int index, CtxJson1 &val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(val.__jsonNode && key && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -656,19 +656,19 @@ SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, Json &v json_node_set_object(node, obj); json_node_free(val.__jsonNode); val.__jsonNode = NULL; - val = Json(); + val = CtxJson1(); return true; } -SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, int val) +SO_EXPORT bool CtxJson1::setAt(const char *path, const char *key, int index, int val) { return setAt(path, key, index, static_cast(val)); } -SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, int64_t val) +SO_EXPORT bool CtxJson1::setAt(const char *path, const char *key, int index, int64_t val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -679,14 +679,14 @@ SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, int64_t return true; } -SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, double val) +SO_EXPORT bool CtxJson1::setAt(const char *path, const char *key, int index, double val) { return setAt(path, key, index, __double_to_string(val)); } -SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, std::string val) +SO_EXPORT bool CtxJson1::setAt(const char *path, const char *key, int index, std::string val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -697,9 +697,9 @@ SO_EXPORT bool Json::setAt(const char *path, const char *key, int index, std::st return true; } -SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, Json *val) +SO_EXPORT bool CtxJson1::getAt(const char *path, const char *key, int index, CtxJson1 *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -716,9 +716,9 @@ SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, Json *v return true; } -SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, int *val) +SO_EXPORT bool CtxJson1::getAt(const char *path, const char *key, int index, int *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val && index >= 0, false, _E, "Invalid parameter"); int64_t v; @@ -730,9 +730,9 @@ SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, int *va return false; } -SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, int64_t *val) +SO_EXPORT bool CtxJson1::getAt(const char *path, const char *key, int index, int64_t *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -754,9 +754,9 @@ SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, int64_t return true; } -SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, double *val) +SO_EXPORT bool CtxJson1::getAt(const char *path, const char *key, int index, double *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -780,9 +780,9 @@ SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, double return true; } -SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, std::string *val) +SO_EXPORT bool CtxJson1::getAt(const char *path, const char *key, int index, std::string *val) { - IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "Json object not initialized"); + IF_FAIL_RETURN_TAG(this->__jsonNode, false, _E, "CtxJson1 object not initialized"); IF_FAIL_RETURN_TAG(key && val && index >= 0, false, _E, "Invalid parameter"); JsonNode *node = __get_array_elem(__jsonNode, path, key, index); @@ -801,13 +801,13 @@ SO_EXPORT bool Json::getAt(const char *path, const char *key, int index, std::st return true; } -bool Json::__getMembers(json_node_t *node, std::list &list) +bool CtxJson1::__getMembers(json_node_t *node, std::list &list) { IF_FAIL_RETURN(node, false); list.clear(); JsonObject *jobj = json_node_get_object(node); - IF_FAIL_RETURN_TAG(jobj, false, _E, "Getting Json object failed"); + IF_FAIL_RETURN_TAG(jobj, false, _E, "Getting CtxJson1 object failed"); GList *members = json_object_get_members(jobj); IF_FAIL_RETURN(members, true); @@ -828,13 +828,13 @@ bool Json::__getMembers(json_node_t *node, std::list &list) return true; } -SO_EXPORT bool Json::getKeys(std::list* list) +SO_EXPORT bool CtxJson1::getKeys(std::list* list) { IF_FAIL_RETURN_TAG(list, false, _E, "Invalid parameter"); return __getMembers(__jsonNode, *list); } -bool Json::__nodeEq(json_node_t *lhs, json_node_t *rhs) +bool CtxJson1::__nodeEq(json_node_t *lhs, json_node_t *rhs) { IF_FAIL_RETURN(lhs && rhs, false); @@ -860,7 +860,7 @@ bool Json::__nodeEq(json_node_t *lhs, json_node_t *rhs) return true; } -bool Json::__valueEq(json_node_t *lhs, json_node_t *rhs) +bool CtxJson1::__valueEq(json_node_t *lhs, json_node_t *rhs) { GType ltype = json_node_get_value_type(lhs); GType rtype = json_node_get_value_type(rhs); @@ -879,7 +879,7 @@ bool Json::__valueEq(json_node_t *lhs, json_node_t *rhs) } } -bool Json::__objectEq(json_node_t *lhs, json_node_t *rhs) +bool CtxJson1::__objectEq(json_node_t *lhs, json_node_t *rhs) { std::list lm, rm; IF_FAIL_RETURN(__getMembers(lhs, lm), false); @@ -907,7 +907,7 @@ bool Json::__objectEq(json_node_t *lhs, json_node_t *rhs) return true; } -bool Json::__arrayEq(json_node_t *lhs, json_node_t *rhs) +bool CtxJson1::__arrayEq(json_node_t *lhs, json_node_t *rhs) { JsonArray *larr = json_node_get_array(lhs); JsonArray *rarr = json_node_get_array(rhs); diff --git a/include/ProviderList.h b/include/ProviderList.h index 6f8dff4..2061320 100644 --- a/include/ProviderList.h +++ b/include/ProviderList.h @@ -25,7 +25,7 @@ #define LIB_PREFIX "/context-service/libctx-prvd-" #define LIB_EXTENSION ".so" -/* Json Formats */ +/* CtxJson1 Formats */ #define TRIG_DEF_RANK "\"Rank\":{\"type\":\"integer\",\"minimum\":1}" #define TRIG_DEF_TOTAL_COUNT "\"TotalCount\":{\"type\":\"integer\",\"minimum\":0}" #define TRIG_DEF_TIME_OF_DAY "\"TimeOfDay\":{\"type\":\"string\"}" diff --git a/src/activity/Activity.cpp b/src/activity/Activity.cpp index f1a5da1..1b07fec 100644 --- a/src/activity/Activity.cpp +++ b/src/activity/Activity.cpp @@ -49,7 +49,7 @@ void ActivityProvider::__handleUpdate(activity_type_e activity, const activity_d { IF_FAIL_VOID_TAG(activity == __activityType, _E, "Invalid activity: %d", activity); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_EVENT, VAL_DETECTED); activity_accuracy_e accuracy = ACTIVITY_ACCURACY_LOW; diff --git a/src/app-stats/ActiveWindowMonitor.cpp b/src/app-stats/ActiveWindowMonitor.cpp index 2f06201..5c33248 100644 --- a/src/app-stats/ActiveWindowMonitor.cpp +++ b/src/app-stats/ActiveWindowMonitor.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include "../shared/SystemInfo.h" #include "AppStatisticsTypes.h" @@ -135,7 +135,7 @@ void ctx::AppUseMonitor::__createRecord(std::string appId) int systemVolume; int mediaVolume; std::string bssid; - Json data; + CtxJson1 data; data.set(NULL, KEY_APP_ID, appId); if (ctx::system_info::getAudioJackState(&audioJack)) diff --git a/src/app-stats/AppStatsLogger.cpp b/src/app-stats/AppStatsLogger.cpp index 8b7e045..a1da303 100644 --- a/src/app-stats/AppStatsLogger.cpp +++ b/src/app-stats/AppStatsLogger.cpp @@ -51,12 +51,12 @@ void AppStatsLogger::getPrivilege(std::vector &privilege) privilege.push_back(PRIV_APP_HISTORY); } -int AppStatsLogger::subscribe(Json option, Json* requestResult) +int AppStatsLogger::subscribe(CtxJson1 option, CtxJson1* requestResult) { return ERR_NONE; } -int AppStatsLogger::unsubscribe(Json option) +int AppStatsLogger::unsubscribe(CtxJson1 option) { return ERR_NONE; } diff --git a/src/app-stats/AppStatsLogger.h b/src/app-stats/AppStatsLogger.h index 3c9fbc1..10cc6a1 100644 --- a/src/app-stats/AppStatsLogger.h +++ b/src/app-stats/AppStatsLogger.h @@ -29,8 +29,8 @@ namespace ctx { AppStatsLogger(); ~AppStatsLogger(); - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); void getPrivilege(std::vector &privilege); diff --git a/src/app-stats/AppStatsProvider.cpp b/src/app-stats/AppStatsProvider.cpp index 2b8bb3f..e049034 100644 --- a/src/app-stats/AppStatsProvider.cpp +++ b/src/app-stats/AppStatsProvider.cpp @@ -33,7 +33,7 @@ void AppStatsProvider::getPrivilege(std::vector &privilege) privilege.push_back(PRIV_APP_HISTORY); } -int AppStatsProvider::read(Json option, Json *requestResult) +int AppStatsProvider::read(CtxJson1 option, CtxJson1 *requestResult) { AppDbHandle *handle = new(std::nothrow) AppDbHandle(this); IF_FAIL_RETURN_TAG(handle, ERR_OPERATION_FAILED, _E, "Memory allocation failed"); diff --git a/src/app-stats/AppStatsProvider.h b/src/app-stats/AppStatsProvider.h index 767a523..0711de4 100644 --- a/src/app-stats/AppStatsProvider.h +++ b/src/app-stats/AppStatsProvider.h @@ -24,7 +24,7 @@ namespace ctx { class AppStatsProvider : public ContextProvider { public: - int read(Json option, Json *requestResult); + int read(CtxJson1 option, CtxJson1 *requestResult); void getPrivilege(std::vector &privilege); protected: diff --git a/src/app-stats/DbHandle.cpp b/src/app-stats/DbHandle.cpp index 414bac1..63f89e9 100644 --- a/src/app-stats/DbHandle.cpp +++ b/src/app-stats/DbHandle.cpp @@ -30,7 +30,7 @@ AppDbHandle::~AppDbHandle() { } -int AppDbHandle::read(Json filter) +int AppDbHandle::read(CtxJson1 filter) { std::string query; const char *subject = reqProvider->getSubject(); @@ -63,7 +63,7 @@ int AppDbHandle::read(Json filter) return ERR_NONE; } -std::string AppDbHandle::createWhereClauseWithDeviceStatus(Json filter) +std::string AppDbHandle::createWhereClauseWithDeviceStatus(CtxJson1 filter) { std::stringstream whereClause; std::string bssid; @@ -80,19 +80,19 @@ std::string AppDbHandle::createWhereClauseWithDeviceStatus(Json filter) return whereClause.str(); } -std::string AppDbHandle::createSqlPeakTime(Json filter) +std::string AppDbHandle::createSqlPeakTime(CtxJson1 filter) { return StatsDbHandleBase::createSqlPeakTime(filter, APP_TABLE_USAGE_LOG, createWhereClause(filter)); } -std::string AppDbHandle::createSqlCommonSetting(Json filter) +std::string AppDbHandle::createSqlCommonSetting(CtxJson1 filter) { return StatsDbHandleBase::createSqlCommonSetting(filter, APP_TABLE_USAGE_LOG, createWhereClause(filter)); } -std::string AppDbHandle::createSqlFrequency(Json filter) +std::string AppDbHandle::createSqlFrequency(CtxJson1 filter) { - Json filterCleaned; + CtxJson1 filterCleaned; std::string weekStr; std::string timeOfDay; std::string appId; @@ -136,7 +136,7 @@ std::string AppDbHandle::createSqlFrequency(Json filter) return query.str(); } -std::string AppDbHandle::createSqlRecentlyUsed(Json filter) +std::string AppDbHandle::createSqlRecentlyUsed(CtxJson1 filter) { std::stringstream query; int limit = DEFAULT_LIMIT; @@ -157,7 +157,7 @@ std::string AppDbHandle::createSqlRecentlyUsed(Json filter) return query.str(); } -std::string AppDbHandle::createSqlFrequentlyUsed(Json filter) +std::string AppDbHandle::createSqlFrequentlyUsed(CtxJson1 filter) { std::stringstream query; int limit = DEFAULT_LIMIT; @@ -178,7 +178,7 @@ std::string AppDbHandle::createSqlFrequentlyUsed(Json filter) return query.str(); } -std::string AppDbHandle::createSqlRarelyUsed(Json filter) +std::string AppDbHandle::createSqlRarelyUsed(CtxJson1 filter) { std::stringstream query; int limit = DEFAULT_LIMIT; @@ -201,11 +201,11 @@ std::string AppDbHandle::createSqlRarelyUsed(Json filter) return query.str(); } -void AppDbHandle::replyTriggerItem(int error, Json &jsonResult) +void AppDbHandle::replyTriggerItem(int error, CtxJson1 &jsonResult) { IF_FAIL_VOID_TAG(STR_EQ(reqProvider->getSubject(), APP_SUBJ_FREQUENCY), _E, "Invalid subject"); - Json results; + CtxJson1 results; std::string valStr; int val; diff --git a/src/app-stats/DbHandle.h b/src/app-stats/DbHandle.h index 9084d87..4a06374 100644 --- a/src/app-stats/DbHandle.h +++ b/src/app-stats/DbHandle.h @@ -18,7 +18,7 @@ #define _CONTEXT_STATS_APP_DB_HANDLE_H_ #include -#include +#include #include "../shared/DbHandleBase.h" namespace ctx { @@ -27,17 +27,17 @@ namespace ctx { AppDbHandle(ContextProvider *provider); ~AppDbHandle(); - int read(Json filter); + int read(CtxJson1 filter); protected: - std::string createWhereClauseWithDeviceStatus(Json filter); - std::string createSqlRecentlyUsed(Json filter); - std::string createSqlFrequentlyUsed(Json filter); - std::string createSqlRarelyUsed(Json filter); - std::string createSqlPeakTime(Json filter); - std::string createSqlCommonSetting(Json filter); - std::string createSqlFrequency(Json filter); - void replyTriggerItem(int error, Json &jsonResult); + std::string createWhereClauseWithDeviceStatus(CtxJson1 filter); + std::string createSqlRecentlyUsed(CtxJson1 filter); + std::string createSqlFrequentlyUsed(CtxJson1 filter); + std::string createSqlRarelyUsed(CtxJson1 filter); + std::string createSqlPeakTime(CtxJson1 filter); + std::string createSqlCommonSetting(CtxJson1 filter); + std::string createSqlFrequency(CtxJson1 filter); + void replyTriggerItem(int error, CtxJson1 &jsonResult); }; } diff --git a/src/app-stats/DbInit.cpp b/src/app-stats/DbInit.cpp index 652950b..de7e5c7 100644 --- a/src/app-stats/DbInit.cpp +++ b/src/app-stats/DbInit.cpp @@ -15,7 +15,7 @@ */ #include -#include +#include #include #include "AppStatisticsTypes.h" #include "DbInit.h" @@ -77,7 +77,7 @@ bool ctx::AppDbInitializer::__packageInfoCb(package_info_h packageInfo, void *us bool ctx::AppDbInitializer::__appInfoCb(package_info_app_component_type_e compType, const char *appId, void *userData) { - Json data; + CtxJson1 data; DatabaseManager dbManager; data.set(NULL, KEY_APP_ID, appId); @@ -92,7 +92,7 @@ void ctx::AppDbInitializer::onInserted(unsigned int queryId, int error, int64_t { } -void ctx::AppDbInitializer::onExecuted(unsigned int queryId, int error, std::vector& records) +void ctx::AppDbInitializer::onExecuted(unsigned int queryId, int error, std::vector& records) { if (queryId != EMPTY_CHECKER_QID) { _E("Unknown Query ID: %d", queryId); diff --git a/src/app-stats/DbInit.h b/src/app-stats/DbInit.h index c8d18c2..d3530b4 100644 --- a/src/app-stats/DbInit.h +++ b/src/app-stats/DbInit.h @@ -30,7 +30,7 @@ namespace ctx { void onTableCreated(unsigned int queryId, int error); void onInserted(unsigned int queryId, int error, int64_t rowId); - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); static bool __packageInfoCb(package_info_h packageInfo, void *userData); static bool __appInfoCb(package_info_app_component_type_e compType, const char *appId, void *userData); diff --git a/src/app-stats/InstallMonitor.cpp b/src/app-stats/InstallMonitor.cpp index a89ce95..b8151fa 100644 --- a/src/app-stats/InstallMonitor.cpp +++ b/src/app-stats/InstallMonitor.cpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include "AppStatisticsTypes.h" @@ -83,7 +83,7 @@ bool ctx::AppInstallMonitor::__appInfoCb(package_info_app_component_type_e compT DatabaseManager dbManager; if (__lastEventType == PACKAGE_MANAGER_EVENT_TYPE_INSTALL) { - Json data; + CtxJson1 data; data.set(NULL, KEY_APP_ID, appId); dbManager.insert(0, APP_TABLE_REMOVABLE_APP, data, NULL); } else if (__lastEventType == PACKAGE_MANAGER_EVENT_TYPE_UNINSTALL) { diff --git a/src/app-stats/InstallMonitor.h b/src/app-stats/InstallMonitor.h index a022946..eb4a19b 100644 --- a/src/app-stats/InstallMonitor.h +++ b/src/app-stats/InstallMonitor.h @@ -35,7 +35,7 @@ namespace ctx { void onTableCreated(unsigned int queryId, int error) {} void onInserted(unsigned int queryId, int error, int64_t rowId) {} - void onExecuted(unsigned int queryId, int error, std::vector& records) {} + void onExecuted(unsigned int queryId, int error, std::vector& records) {} public: AppInstallMonitor(); diff --git a/src/app-stats/app_inactive_detector/AppInactiveDetector.cpp b/src/app-stats/app_inactive_detector/AppInactiveDetector.cpp index ad13698..bb92f40 100644 --- a/src/app-stats/app_inactive_detector/AppInactiveDetector.cpp +++ b/src/app-stats/app_inactive_detector/AppInactiveDetector.cpp @@ -15,7 +15,7 @@ */ #include -#include +#include #include "AppInactiveDetector.h" #include "AppInactiveDetectorTypes.h" #include "InactiveDetector.h" @@ -48,17 +48,17 @@ void ctx::AppInactiveDetectorProvider::destroy(void *data) _I(BLUE("Destroyed")); } -int ctx::AppInactiveDetectorProvider::subscribe(ctx::Json option, ctx::Json* requestResult) +int ctx::AppInactiveDetectorProvider::subscribe(ctx::CtxJson1 option, ctx::CtxJson1* requestResult) { return ERR_NOT_SUPPORTED; } -int ctx::AppInactiveDetectorProvider::unsubscribe(ctx::Json option) +int ctx::AppInactiveDetectorProvider::unsubscribe(ctx::CtxJson1 option) { return ERR_NOT_SUPPORTED; } -int ctx::AppInactiveDetectorProvider::read(ctx::Json option, ctx::Json* requestResult) +int ctx::AppInactiveDetectorProvider::read(ctx::CtxJson1 option, ctx::CtxJson1* requestResult) { _I(BLUE("Read")); _J("Option", option); @@ -67,7 +67,7 @@ int ctx::AppInactiveDetectorProvider::read(ctx::Json option, ctx::Json* requestR return error == ERR_NONE ? ERR_NONE : error; } -int ctx::AppInactiveDetectorProvider::write(ctx::Json data, ctx::Json* requestResult) +int ctx::AppInactiveDetectorProvider::write(ctx::CtxJson1 data, ctx::CtxJson1* requestResult) { return ERR_NOT_SUPPORTED; } diff --git a/src/app-stats/app_inactive_detector/AppInactiveDetector.h b/src/app-stats/app_inactive_detector/AppInactiveDetector.h index 693c082..87c61e2 100644 --- a/src/app-stats/app_inactive_detector/AppInactiveDetector.h +++ b/src/app-stats/app_inactive_detector/AppInactiveDetector.h @@ -32,10 +32,10 @@ namespace ctx { static ContextProvider *create(void *data); static void destroy(void *data); - int subscribe(ctx::Json option, ctx::Json *requestResult); - int unsubscribe(ctx::Json option); - int read(ctx::Json option, ctx::Json *requestResult); - int write(ctx::Json data, ctx::Json *requestResult); + int subscribe(ctx::CtxJson1 option, ctx::CtxJson1 *requestResult); + int unsubscribe(ctx::CtxJson1 option); + int read(ctx::CtxJson1 option, ctx::CtxJson1 *requestResult); + int write(ctx::CtxJson1 data, ctx::CtxJson1 *requestResult); bool isSupported(); diff --git a/src/app-stats/app_inactive_detector/InactiveDetector.cpp b/src/app-stats/app_inactive_detector/InactiveDetector.cpp index 5f32585..35deb40 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetector.cpp +++ b/src/app-stats/app_inactive_detector/InactiveDetector.cpp @@ -82,7 +82,7 @@ void ctx::InactiveDetector::onClusterUpdateFinished(std::vector *appsWi delete appsWithWeight; } -int ctx::InactiveDetector::read(const char *subject, ctx::Json option) +int ctx::InactiveDetector::read(const char *subject, ctx::CtxJson1 option) { ctx::InactiveDetectorStorage *handle = new(std::nothrow) ctx::InactiveDetectorStorage(); IF_FAIL_RETURN_TAG(handle, ERR_OPERATION_FAILED, _E, "Memory allocation failed"); @@ -96,12 +96,12 @@ int ctx::InactiveDetector::read(const char *subject, ctx::Json option) return ERR_NONE; } -ctx::Json ctx::InactiveDetector::toJson(std::vector *appInfos) +ctx::CtxJson1 ctx::InactiveDetector::toJson(std::vector *appInfos) { - ctx::Json data; + ctx::CtxJson1 data; for(auto appInfo = appInfos->begin(); appInfo != appInfos->end(); appInfo++) { - ctx::Json appJ; + ctx::CtxJson1 appJ; appJ.set(NULL, APP_INACTIVE_DETECTOR_APPINFO_COLUMN_PACKAGE_NAME, appInfo->packageName); appJ.set(NULL, APP_INACTIVE_DETECTOR_APPINFO_COLUMN_IS_NODISPLAY, appInfo->isNodisplay); appJ.set(NULL, APP_INACTIVE_DETECTOR_APPINFO_COLUMN_IS_ENABLED, appInfo->isEnabled); diff --git a/src/app-stats/app_inactive_detector/InactiveDetector.h b/src/app-stats/app_inactive_detector/InactiveDetector.h index 9a15ec8..8ca1c90 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetector.h +++ b/src/app-stats/app_inactive_detector/InactiveDetector.h @@ -18,7 +18,7 @@ #define _CONTEXT_INACTIVE_DETECTOR_H_ #include -#include +#include #include #include "AppInactiveDetectorTypes.h" #include @@ -34,11 +34,11 @@ namespace ctx { InactiveDetector(); ~InactiveDetector(); - int read(const char *subject, ctx::Json option); + int read(const char *subject, ctx::CtxJson1 option); int updateClusters(); void onClusterUpdateFinished(std::vector *appsClassified, int error); - ctx::Json toJson(std::vector *apps); + ctx::CtxJson1 toJson(std::vector *apps); bool onTimerExpired(int timerId); }; /* class InactiveDetector */ diff --git a/src/app-stats/app_inactive_detector/InactiveDetectorClassificator.h b/src/app-stats/app_inactive_detector/InactiveDetectorClassificator.h index 59ceecd..cb26bd2 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetectorClassificator.h +++ b/src/app-stats/app_inactive_detector/InactiveDetectorClassificator.h @@ -19,7 +19,7 @@ #include #include "AppInactiveDetectorTypes.h" -#include +#include namespace ctx { diff --git a/src/app-stats/app_inactive_detector/InactiveDetectorClassificatorKmeans.h b/src/app-stats/app_inactive_detector/InactiveDetectorClassificatorKmeans.h index 8b39943..08576b4 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetectorClassificatorKmeans.h +++ b/src/app-stats/app_inactive_detector/InactiveDetectorClassificatorKmeans.h @@ -19,7 +19,7 @@ #include #include "InactiveDetectorClassificatorKmeansTypes.h" -#include +#include namespace ctx { diff --git a/src/app-stats/app_inactive_detector/InactiveDetectorStorage.cpp b/src/app-stats/app_inactive_detector/InactiveDetectorStorage.cpp index 8349947..a01a313 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetectorStorage.cpp +++ b/src/app-stats/app_inactive_detector/InactiveDetectorStorage.cpp @@ -32,8 +32,8 @@ return ret; }*/ -// expected Json format example: {timeframe: 1; isActive: 0} -int ctx::InactiveDetectorStorage::read(const char *subject, ctx::Json filter) +// expected CtxJson1 format example: {timeframe: 1; isActive: 0} +int ctx::InactiveDetectorStorage::read(const char *subject, ctx::CtxJson1 filter) { std::string query; query = __getQueryGetApps(subject, filter); @@ -49,7 +49,7 @@ int ctx::InactiveDetectorStorage::read(const char *subject, ctx::Json filter) return ERR_NONE; } -std::string ctx::InactiveDetectorStorage::__getQueryGetApps(const char *subject, ctx::Json filter) +std::string ctx::InactiveDetectorStorage::__getQueryGetApps(const char *subject, ctx::CtxJson1 filter) { double timeframe; int isActive; @@ -117,7 +117,7 @@ std::string ctx::InactiveDetectorStorage::__getSubqueryFormValues(std::vector& records, std::vector *appsWithWeights, bool resultMode) +void ctx::InactiveDetectorStorage::__jsonToObject(std::vector& records, std::vector *appsWithWeights, bool resultMode) { for (auto row = records.begin(); row != records.end(); row++) { AppInfo appWithWeight; @@ -139,7 +139,7 @@ void ctx::InactiveDetectorStorage::__jsonToObject(std::vector& records, st } } -void ctx::InactiveDetectorStorage::onExecuted(unsigned int queryId, int error, std::vector& records) +void ctx::InactiveDetectorStorage::onExecuted(unsigned int queryId, int error, std::vector& records) { if (error != ERR_NONE) { _E("queryId:%d, error:%d", queryId, error); diff --git a/src/app-stats/app_inactive_detector/InactiveDetectorStorage.h b/src/app-stats/app_inactive_detector/InactiveDetectorStorage.h index 2974ba0..f990c84 100644 --- a/src/app-stats/app_inactive_detector/InactiveDetectorStorage.h +++ b/src/app-stats/app_inactive_detector/InactiveDetectorStorage.h @@ -19,7 +19,7 @@ #include #include "AppInactiveDetectorTypes.h" -#include +#include #include namespace ctx { @@ -29,14 +29,14 @@ namespace ctx { private: //int type; //TODO: enum void __injectParams(std::string& str, const std::string& from, const std::string& to); - void __jsonToObject(std::vector& records, std::vector *appsWithWeights, bool resultMode); - std::string __getQueryGetApps(const char *subject, ctx::Json filter); + void __jsonToObject(std::vector& records, std::vector *appsWithWeights, bool resultMode); + std::string __getQueryGetApps(const char *subject, ctx::CtxJson1 filter); std::string __getQueryUpdateApps(std::vector *appsWithWeights); std::string __getSubqueryFormValues(std::vector *appsWithWeights); void onTableCreated(unsigned int queryId, int error) {} void onInserted(unsigned int queryId, int error, int64_t rowId) {} - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); DatabaseManager __dbManager; @@ -44,7 +44,7 @@ namespace ctx { InactiveDetectorStorage(); ~InactiveDetectorStorage(); - int read(const char *subject, ctx::Json filter); + int read(const char *subject, ctx::CtxJson1 filter); int updateRanks(); int getAppsInfoWithWeights(double timestampFrom); diff --git a/src/battery-stats/BatteryMonitor.cpp b/src/battery-stats/BatteryMonitor.cpp index bee0c26..a4720ad 100644 --- a/src/battery-stats/BatteryMonitor.cpp +++ b/src/battery-stats/BatteryMonitor.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "BatteryMonitor.h" #define DEFAULT_ROW_ID_STR "1" @@ -66,7 +66,7 @@ void BatteryMonitor::destroy() void BatteryMonitor::initialize() { - std::vector records; + std::vector records; __dbMgr.executeSync( "CREATE TABLE IF NOT EXISTS " BATTERY_USAGE_TABLE \ " (" BATTERY_USAGE_TABLE_COLUMNS ")", &records); @@ -82,7 +82,7 @@ void BatteryMonitor::initialize() bool BatteryMonitor::__loadLastInfo() { - std::vector records; + std::vector records; bool ret = __dbMgr.executeSync( "SELECT * FROM " BATTERY_LAST_INFO_TABLE \ " WHERE " BATTERY_ROW_ID " = " DEFAULT_ROW_ID_STR, &records); @@ -199,7 +199,7 @@ int BatteryMonitor::stop() bool BatteryMonitor::__getLastCpuUsageTable(CpuUsageMap* lastHeartCpuLog) { - std::vector cpuLog; + std::vector cpuLog; bool ret = __dbMgr.executeSync("SELECT * FROM " BATTERY_LAST_CPU_USAGE_TABLE, &cpuLog); IF_FAIL_RETURN_TAG(ret, false, _E, "Failed to load last cpu times of apps"); @@ -234,7 +234,7 @@ bool BatteryMonitor::__processBatteryUsage() bool ret = __heartReader->dbOpen(); IF_FAIL_RETURN_TAG(ret, true, _E, "Failed to open heart db"); - std::vector heartCpuLog; + std::vector heartCpuLog; ret = __heartReader->readCpuLog(__lastHeartAccessTime, &heartCpuLog); __heartReader->dbClose(); @@ -250,7 +250,7 @@ bool BatteryMonitor::__processBatteryUsage() ret = __getLastCpuUsageTable(&lastHeartCpuLog); // Calculate per app battery usage - std::vector usage; + std::vector usage; __analyzer.calculateBatteryUsage(heartCpuLog, lastHeartCpuLog, &usage); // Insert battery usage @@ -267,7 +267,7 @@ bool BatteryMonitor::__processBatteryUsage() return true; } -bool BatteryMonitor::__insertBatteryUsageLog(std::vector& usage) +bool BatteryMonitor::__insertBatteryUsageLog(std::vector& usage) { IF_FAIL_RETURN_TAG(usage.size(), true, _W, "No data"); std::string query("INSERT INTO " BATTERY_USAGE_TABLE \ diff --git a/src/battery-stats/BatteryMonitor.h b/src/battery-stats/BatteryMonitor.h index bb6092a..07b5549 100644 --- a/src/battery-stats/BatteryMonitor.h +++ b/src/battery-stats/BatteryMonitor.h @@ -44,7 +44,7 @@ namespace ctx { bool __updateLastInfo(); bool __processBatteryUsage(); - bool __insertBatteryUsageLog(std::vector& usage); + bool __insertBatteryUsageLog(std::vector& usage); bool __updateLastCpuUsageLog(CpuUsageMap& usage); bool __getLastCpuUsageTable(CpuUsageMap* lastCpuUsage); void __removeExpiredLog(); diff --git a/src/battery-stats/BatteryStatsLogger.cpp b/src/battery-stats/BatteryStatsLogger.cpp index 3b7af49..8eac2cf 100644 --- a/src/battery-stats/BatteryStatsLogger.cpp +++ b/src/battery-stats/BatteryStatsLogger.cpp @@ -36,12 +36,12 @@ void BatteryStatsLogger::getPrivilege(std::vector &privilege) privilege.push_back(BATTERY_HISTORY_PRIV); } -int BatteryStatsLogger::subscribe(Json option, Json* requestResult) +int BatteryStatsLogger::subscribe(CtxJson1 option, CtxJson1* requestResult) { return BatteryMonitor::getInstance()->start(); } -int BatteryStatsLogger::unsubscribe(Json option) +int BatteryStatsLogger::unsubscribe(CtxJson1 option) { return BatteryMonitor::getInstance()->stop(); } diff --git a/src/battery-stats/BatteryStatsLogger.h b/src/battery-stats/BatteryStatsLogger.h index ef02bb1..970fc2d 100644 --- a/src/battery-stats/BatteryStatsLogger.h +++ b/src/battery-stats/BatteryStatsLogger.h @@ -28,8 +28,8 @@ namespace ctx { BatteryStatsLogger(); ~BatteryStatsLogger(); - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); void getPrivilege(std::vector &privilege); }; diff --git a/src/battery-stats/BatteryStatsProvider.cpp b/src/battery-stats/BatteryStatsProvider.cpp index 53899ff..c866c3e 100644 --- a/src/battery-stats/BatteryStatsProvider.cpp +++ b/src/battery-stats/BatteryStatsProvider.cpp @@ -32,7 +32,7 @@ void BatteryStatsProvider::getPrivilege(std::vector &privilege) privilege.push_back(BATTERY_HISTORY_PRIV); } -BatteryStatsQuerier* BatteryStatsProvider::getQuerier(Json option) +BatteryStatsQuerier* BatteryStatsProvider::getQuerier(CtxJson1 option) { BatteryStatsQuerier *querier = new(std::nothrow) BatteryStatsQuerier(this, option); IF_FAIL_RETURN_TAG(querier, NULL, _E, "Memory allocation failed"); diff --git a/src/battery-stats/BatteryStatsProvider.h b/src/battery-stats/BatteryStatsProvider.h index 94d0341..2163b97 100644 --- a/src/battery-stats/BatteryStatsProvider.h +++ b/src/battery-stats/BatteryStatsProvider.h @@ -25,14 +25,14 @@ namespace ctx { class BatteryStatsProvider : public ContextProvider { public: - virtual int read(Json option, Json *requestResult) = 0; + virtual int read(CtxJson1 option, CtxJson1 *requestResult) = 0; void getPrivilege(std::vector &privilege); protected: BatteryStatsProvider(const char *subject); virtual ~BatteryStatsProvider(); - BatteryStatsQuerier* getQuerier(Json option); + BatteryStatsQuerier* getQuerier(CtxJson1 option); }; } /* namespace ctx */ diff --git a/src/battery-stats/BatteryUsage.cpp b/src/battery-stats/BatteryUsage.cpp index 532234c..91ae8c8 100644 --- a/src/battery-stats/BatteryUsage.cpp +++ b/src/battery-stats/BatteryUsage.cpp @@ -30,7 +30,7 @@ BatteryUsageProvider::~BatteryUsageProvider() { } -int BatteryUsageProvider::read(Json option, Json *requestResult) +int BatteryUsageProvider::read(CtxJson1 option, CtxJson1 *requestResult) { BatteryMonitor::getInstance()->prepareData(); diff --git a/src/battery-stats/BatteryUsage.h b/src/battery-stats/BatteryUsage.h index bc748ba..cfcee56 100644 --- a/src/battery-stats/BatteryUsage.h +++ b/src/battery-stats/BatteryUsage.h @@ -26,7 +26,7 @@ namespace ctx { BatteryUsageProvider(); ~BatteryUsageProvider(); - int read(Json option, Json *requestResult); + int read(CtxJson1 option, CtxJson1 *requestResult); }; } diff --git a/src/battery-stats/BatteryUsageAnalyzer.cpp b/src/battery-stats/BatteryUsageAnalyzer.cpp index cdc0d39..a7af85b 100644 --- a/src/battery-stats/BatteryUsageAnalyzer.cpp +++ b/src/battery-stats/BatteryUsageAnalyzer.cpp @@ -28,7 +28,7 @@ BatteryUsageAnalyzer::~BatteryUsageAnalyzer() { } -void BatteryUsageAnalyzer::calculateBatteryUsage(std::vector& cpuLog, CpuUsageMap& recentCpuUsageMap, std::vector* usage) +void BatteryUsageAnalyzer::calculateBatteryUsage(std::vector& cpuLog, CpuUsageMap& recentCpuUsageMap, std::vector* usage) { std::string appId; int timestamp; @@ -77,7 +77,7 @@ void BatteryUsageAnalyzer::calculateBatteryUsage(std::vector& cpuLog, CpuU if (prevTimestamp > timestamp) prevTimestamp = timestamp; - Json row; + CtxJson1 row; row.set(NULL, BATTERY_APP_ID, appId); row.set(NULL, BATTERY_START_TIME, prevTimestamp); row.set(NULL, BATTERY_END_TIME, timestamp); diff --git a/src/battery-stats/BatteryUsageAnalyzer.h b/src/battery-stats/BatteryUsageAnalyzer.h index 1e4ec73..3618d0d 100644 --- a/src/battery-stats/BatteryUsageAnalyzer.h +++ b/src/battery-stats/BatteryUsageAnalyzer.h @@ -18,7 +18,7 @@ #define _CONTEXT_BATTERY_USAGE_ANALYZER_H_ #include -#include +#include #include "BatteryStatisticsTypes.h" namespace ctx { @@ -28,7 +28,7 @@ namespace ctx { BatteryUsageAnalyzer(); ~BatteryUsageAnalyzer(); - void calculateBatteryUsage(std::vector& cpuUsageLog, CpuUsageMap& lastCpuUsage, std::vector* usage); + void calculateBatteryUsage(std::vector& cpuUsageLog, CpuUsageMap& lastCpuUsage, std::vector* usage); }; } /* namespace ctx */ diff --git a/src/battery-stats/HeartDbReader.cpp b/src/battery-stats/HeartDbReader.cpp index ee79f85..2275164 100644 --- a/src/battery-stats/HeartDbReader.cpp +++ b/src/battery-stats/HeartDbReader.cpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include "BatteryStatisticsTypes.h" #include "HeartDbReader.h" @@ -79,7 +79,7 @@ void HeartDbReader::dbClose() __dbRefCount = 0; } -bool HeartDbReader::readCpuLog(int lastHeartAccessTime, std::vector* cpuUsageLog) +bool HeartDbReader::readCpuLog(int lastHeartAccessTime, std::vector* cpuUsageLog) { IF_FAIL_RETURN(__heartDb, false); @@ -103,9 +103,9 @@ int HeartDbReader::__cpuUsageLogCb(void *userData, int dim, char **value, char * { IF_FAIL_RETURN(userData, 0); - std::vector *records = static_cast*>(userData); - Json row; - Json newRow; + std::vector *records = static_cast*>(userData); + CtxJson1 row; + CtxJson1 newRow; bool columnNull = false; for (int i = 0; i < dim; ++i) { @@ -126,7 +126,7 @@ int HeartDbReader::__cpuUsageLogCb(void *userData, int dim, char **value, char * return 0; } -void HeartDbReader::__convertCpuUsageLog(Json& row, Json* newRow) +void HeartDbReader::__convertCpuUsageLog(CtxJson1& row, CtxJson1* newRow) { std::string appId; std::string timestamp; diff --git a/src/battery-stats/HeartDbReader.h b/src/battery-stats/HeartDbReader.h index b219919..6e5b08d 100644 --- a/src/battery-stats/HeartDbReader.h +++ b/src/battery-stats/HeartDbReader.h @@ -32,12 +32,12 @@ namespace ctx { bool dbOpen(); void dbClose(); - bool readCpuLog(int __lastHeartAccessTime, std::vector* cpuUsageLog); + bool readCpuLog(int __lastHeartAccessTime, std::vector* cpuUsageLog); bool requestSync(); private: static int __cpuUsageLogCb(void *userData, int dim, char **value, char **column); - static void __convertCpuUsageLog(Json& row, Json* newRow); + static void __convertCpuUsageLog(CtxJson1& row, CtxJson1* newRow); bool __initializeDBusConnection(); void __releaseDBusConnection(); diff --git a/src/battery-stats/Querier.cpp b/src/battery-stats/Querier.cpp index f5ce03f..3f15adb 100644 --- a/src/battery-stats/Querier.cpp +++ b/src/battery-stats/Querier.cpp @@ -36,7 +36,7 @@ using namespace ctx; -BatteryStatsQuerier::BatteryStatsQuerier(ContextProvider *provider, Json option) : +BatteryStatsQuerier::BatteryStatsQuerier(ContextProvider *provider, CtxJson1 option) : __provider(provider), __option(option) { @@ -99,20 +99,20 @@ void BatteryStatsQuerier::onInserted(unsigned int queryId, int error, int64_t ro { } -void BatteryStatsQuerier::onExecuted(unsigned int queryId, int error, std::vector& records) +void BatteryStatsQuerier::onExecuted(unsigned int queryId, int error, std::vector& records) { - Json response; + CtxJson1 response; __convertToResponse(records, response); __provider->replyToRead(__option, error, response); delete this; } -void BatteryStatsQuerier::__convertToResponse(std::vector &sqlResult, Json &response) +void BatteryStatsQuerier::__convertToResponse(std::vector &sqlResult, CtxJson1 &response) { response = "{\"" KEY_QUERY_RESULT "\":[]}"; - for (Json& tuple : sqlResult) { + for (CtxJson1& tuple : sqlResult) { response.append(NULL, KEY_QUERY_RESULT, tuple); } } diff --git a/src/battery-stats/Querier.h b/src/battery-stats/Querier.h index 6d320ae..e14c6e5 100644 --- a/src/battery-stats/Querier.h +++ b/src/battery-stats/Querier.h @@ -24,7 +24,7 @@ namespace ctx { class BatteryStatsQuerier : public IDatabaseListener { public: - BatteryStatsQuerier(ContextProvider *provider, Json option); + BatteryStatsQuerier(ContextProvider *provider, CtxJson1 option); ~BatteryStatsQuerier(); // For now, Default result size(10) isn't applied, unlike other history type. @@ -38,14 +38,14 @@ namespace ctx { void onTableCreated(unsigned int queryId, int error); void onInserted(unsigned int queryId, int error, int64_t rowId); - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); private: - void __convertToResponse(std::vector &sqlResult, Json& response); + void __convertToResponse(std::vector &sqlResult, CtxJson1& response); DatabaseManager __dbMgr; ContextProvider *__provider; - Json __option; + CtxJson1 __option; }; } diff --git a/src/battery-stats/RecentBatteryUsage.cpp b/src/battery-stats/RecentBatteryUsage.cpp index eda9d8e..4f71aed 100644 --- a/src/battery-stats/RecentBatteryUsage.cpp +++ b/src/battery-stats/RecentBatteryUsage.cpp @@ -28,7 +28,7 @@ RecentBatteryUsageProvider::~RecentBatteryUsageProvider() { } -int RecentBatteryUsageProvider::read(Json option, Json *requestResult) +int RecentBatteryUsageProvider::read(CtxJson1 option, CtxJson1 *requestResult) { BatteryMonitor::getInstance()->prepareData(); diff --git a/src/battery-stats/RecentBatteryUsage.h b/src/battery-stats/RecentBatteryUsage.h index 2cb7c54..771a627 100644 --- a/src/battery-stats/RecentBatteryUsage.h +++ b/src/battery-stats/RecentBatteryUsage.h @@ -26,7 +26,7 @@ namespace ctx { RecentBatteryUsageProvider(); ~RecentBatteryUsageProvider(); - int read(Json option, Json *requestResult); + int read(CtxJson1 option, CtxJson1 *requestResult); }; } diff --git a/src/call/Call.cpp b/src/call/Call.cpp index 24c1f0c..721a1d7 100644 --- a/src/call/Call.cpp +++ b/src/call/Call.cpp @@ -36,7 +36,7 @@ static telephony_noti_e __callNotiIds[] = TELEPHONY_NOTI_VIDEO_CALL_STATUS_ALERTING, TELEPHONY_NOTI_VIDEO_CALL_STATUS_INCOMING, }; -static Json __latest; +static CtxJson1 __latest; CallStateProvider::CallStateProvider() : BasicProvider(SUBJ_STATE_CALL) @@ -67,7 +67,7 @@ void CallStateProvider::__updateCb(telephony_h handle, telephony_noti_e notiId, void CallStateProvider::__handleUpdate(telephony_h handle, telephony_noti_e notiId, void* id) { - Json data; + CtxJson1 data; unsigned int count; telephony_call_h *callList; @@ -302,7 +302,7 @@ int CallStateProvider::unsubscribe() return ERR_NONE; } -bool CallStateProvider::__readCurrentStatus(telephony_h& handle, Json* data) +bool CallStateProvider::__readCurrentStatus(telephony_h& handle, CtxJson1* data) { unsigned int count = 0; telephony_call_h *callList = NULL; @@ -353,7 +353,7 @@ int CallStateProvider::read() } bool ret = true; - Json data; + CtxJson1 data; data.set(NULL, KEY_STATE, VAL_IDLE); for (unsigned int i = 0; i < __handleList.count; i++) { diff --git a/src/call/Call.h b/src/call/Call.h index 7fc03dc..ef4a911 100644 --- a/src/call/Call.h +++ b/src/call/Call.h @@ -42,7 +42,7 @@ namespace ctx { void __releaseTelephony(); bool __setCallback(); void __unsetCallback(); - bool __readCurrentStatus(telephony_h& handle, Json* data); + bool __readCurrentStatus(telephony_h& handle, CtxJson1* data); bool __getCallState(telephony_call_h& handle, std::string& state); bool __getCallType(telephony_call_h& handle, std::string& type); diff --git a/src/contacts/Contacts.cpp b/src/contacts/Contacts.cpp index fc7d006..6684e47 100644 --- a/src/contacts/Contacts.cpp +++ b/src/contacts/Contacts.cpp @@ -64,7 +64,7 @@ void ContactsChangeProvider::__handleUpdate(const char* viewUri) std::string view = (STR_EQ(viewUri, _contacts_my_profile._uri)? VAL_MY_PROFILE : VAL_PERSON); IF_FAIL_VOID_TAG(!__isConsecutiveChange(viewUri), _D, "Ignore consecutive db change: %s", view.c_str()); - Json data; + CtxJson1 data; data.set(NULL, KEY_EVENT, VAL_CHANGED); data.set(NULL, KEY_TYPE, view); publish(NULL, ERR_NONE, data); diff --git a/src/custom/CustomManager.cpp b/src/custom/CustomManager.cpp index 5ec516f..1a650f1 100644 --- a/src/custom/CustomManager.cpp +++ b/src/custom/CustomManager.cpp @@ -27,10 +27,10 @@ using namespace ctx; static std::map __customMap; static DatabaseManager __dbManager; -static bool __isValidFact(std::string subject, Json& fact); -static bool __checkValueInt(Json& tmpl, std::string key, int value); -static bool __checkValueString(Json& tmpl, std::string key, std::string value); -static bool __checkValueEnum(Json& tmpl, std::string key, std::string value); +static bool __isValidFact(std::string subject, CtxJson1& fact); +static bool __checkValueInt(CtxJson1& tmpl, std::string key, int value); +static bool __checkValueString(CtxJson1& tmpl, std::string key, std::string value); +static bool __checkValueEnum(CtxJson1& tmpl, std::string key, std::string value); CustomManager::CustomManager() : BasicProvider(SUBJ_CUSTOM) @@ -64,7 +64,7 @@ int CustomManager::unsubscribe() return ERR_NONE; } -int CustomManager::write(Json data, Json *requestResult) +int CustomManager::write(CtxJson1 data, CtxJson1 *requestResult) { int error = ERR_NONE; std::string req; @@ -77,7 +77,7 @@ int CustomManager::write(Json data, Json *requestResult) std::string subj = std::string(SUBJ_CUSTOM) + TRIG_SUBJECT_SEPERATOR + packageId + TRIG_SUBJECT_SEPERATOR + name; if (req == TRIG_CUSTOM_REQ_ADD) { - Json tmpl; + CtxJson1 tmpl; data.get(NULL, TRIG_TMPL_KEY_ATTRIBUTE, &tmpl); error = __addCustomItem(subj, name, tmpl, packageId); @@ -87,7 +87,7 @@ int CustomManager::write(Json data, Json *requestResult) requestResult->set(NULL, TRIG_TMPL_KEY_SUBJECT, subj); } } else if (req == TRIG_CUSTOM_REQ_PUBLISH) { - Json fact; + CtxJson1 fact; data.get(NULL, TRIG_CUSTOM_KEY_FACT, &fact); error = __publishData(subj, fact); @@ -108,7 +108,7 @@ ContextProvider* CustomManager::getProvider(const char* subject) bool CustomManager::__initialize() { /* Create custom template table */ - std::vector record; + std::vector record; bool ret = __dbManager.executeSync(CREATE_CUSTOM_TMPL_TABLE_QUERY, &record); IF_FAIL_RETURN_TAG(ret, false, _E, "Create template table failed"); @@ -118,9 +118,9 @@ bool CustomManager::__initialize() IF_FAIL_RETURN(record.size() > 0, true); int error; - std::vector::iterator vedEnd = record.end(); + std::vector::iterator vedEnd = record.end(); for (auto vecPos = record.begin(); vecPos != vedEnd; ++vecPos) { - Json elem = *vecPos; + CtxJson1 elem = *vecPos; std::string subject; std::string name; std::string attributes; @@ -130,7 +130,7 @@ bool CustomManager::__initialize() elem.get(NULL, CUSTOM_COLUMN_ATTRIBUTE, &attributes); elem.get(NULL, CUSTOM_COLUMN_OWNER, &owner); - error = __addCustomItem(subject.c_str(), name, Json(attributes), owner, true); + error = __addCustomItem(subject.c_str(), name, CtxJson1(attributes), owner, true); if (error != ERR_NONE) { _E("Failed to add custom item(%s): %#x", subject.c_str(), error); } @@ -139,7 +139,7 @@ bool CustomManager::__initialize() return true; } -int CustomManager::__addCustomItem(std::string subject, std::string name, Json tmpl, std::string owner, bool isInit) +int CustomManager::__addCustomItem(std::string subject, std::string name, CtxJson1 tmpl, std::string owner, bool isInit) { std::map::iterator it; it = __customMap.find(subject); @@ -164,7 +164,7 @@ int CustomManager::__addCustomItem(std::string subject, std::string name, Json t if (!isInit) { std::string q = std::string(INSERT_CUSTOM_TMPL_QUERY) + "('" + subject + "', '" + name + "', '" + tmpl.str() + "', '" + owner + "'); "; - std::vector record; + std::vector record; bool ret = __dbManager.executeSync(q.c_str(), &record); IF_FAIL_RETURN_TAG(ret, ERR_OPERATION_FAILED, _E, "Failed to query custom templates"); } @@ -184,14 +184,14 @@ int CustomManager::__removeCustomItem(std::string subject) /* Delete item from custom template db */ std::string q = std::string(DELETE_CUSTOM_TMPL_QUERY) + "'" + subject + "'"; - std::vector record; + std::vector record; bool ret = __dbManager.executeSync(q.c_str(), &record); IF_FAIL_RETURN_TAG(ret, ERR_OPERATION_FAILED, _E, "Failed to query custom templates"); return ERR_NONE; } -int CustomManager::__publishData(std::string subject, Json fact) +int CustomManager::__publishData(std::string subject, CtxJson1 fact) { std::map::iterator it; it = __customMap.find(subject); @@ -204,9 +204,9 @@ int CustomManager::__publishData(std::string subject, Json fact) return ERR_NONE; } -bool __isValidFact(std::string subject, Json& fact) +bool __isValidFact(std::string subject, CtxJson1& fact) { - Json tmpl = __customMap[subject]->getTemplate(); + CtxJson1 tmpl = __customMap[subject]->getTemplate(); IF_FAIL_RETURN_TAG(tmpl != EMPTY_JSON_OBJECT, false, _E, "Failed to get template"); bool ret; @@ -254,7 +254,7 @@ bool __isValidFact(std::string subject, Json& fact) return true; } -bool __checkValueInt(Json& tmpl, std::string key, int value) +bool __checkValueInt(CtxJson1& tmpl, std::string key, int value) { int min, max; @@ -269,13 +269,13 @@ bool __checkValueInt(Json& tmpl, std::string key, int value) return true; } -bool __checkValueString(Json& tmpl, std::string key, std::string value) +bool __checkValueString(CtxJson1& tmpl, std::string key, std::string value) { /* any value is accepted */ return true; } -bool __checkValueEnum(Json& tmpl, std::string key, std::string value) +bool __checkValueEnum(CtxJson1& tmpl, std::string key, std::string value) { /* check acceptable value */ std::string tmplValue; diff --git a/src/custom/CustomManager.h b/src/custom/CustomManager.h index 8561cce..babb0eb 100644 --- a/src/custom/CustomManager.h +++ b/src/custom/CustomManager.h @@ -30,7 +30,7 @@ namespace ctx { int subscribe(); int unsubscribe(); - int write(Json data, Json *requestResult); + int write(CtxJson1 data, CtxJson1 *requestResult); bool isSupported(); @@ -40,9 +40,9 @@ namespace ctx { private: bool __initialize(); - int __addCustomItem(std::string subject, std::string name, ctx::Json tmpl, std::string owner, bool isInit = false); + int __addCustomItem(std::string subject, std::string name, ctx::CtxJson1 tmpl, std::string owner, bool isInit = false); int __removeCustomItem(std::string subject); - int __publishData(std::string, ctx::Json fact); + int __publishData(std::string, ctx::CtxJson1 fact); }; } diff --git a/src/custom/CustomProvider.cpp b/src/custom/CustomProvider.cpp index 53f23c6..2874c4f 100644 --- a/src/custom/CustomProvider.cpp +++ b/src/custom/CustomProvider.cpp @@ -18,7 +18,7 @@ using namespace ctx; -CustomProvider::CustomProvider(const char* subject, std::string name, Json tmpl, std::string owner) : +CustomProvider::CustomProvider(const char* subject, std::string name, CtxJson1 tmpl, std::string owner) : BasicProvider(subject), __name(name), __tmpl(tmpl), @@ -53,13 +53,13 @@ int CustomProvider::unsubscribe() int CustomProvider::read() { - Json data = __latest.str(); + CtxJson1 data = __latest.str(); replyToRead(NULL, ERR_NONE, data); return ERR_NONE; } -void CustomProvider::handleUpdate(Json data) +void CustomProvider::handleUpdate(CtxJson1 data) { /* Store latest state for read request */ __latest = data.str(); @@ -72,7 +72,7 @@ std::string CustomProvider::getOwner() return __owner; } -Json CustomProvider::getTemplate() +CtxJson1 CustomProvider::getTemplate() { return __tmpl; } diff --git a/src/custom/CustomProvider.h b/src/custom/CustomProvider.h index 3def760..031d9ad 100644 --- a/src/custom/CustomProvider.h +++ b/src/custom/CustomProvider.h @@ -24,7 +24,7 @@ namespace ctx { class CustomProvider : public BasicProvider { public: - CustomProvider(const char* subject, std::string name, ctx::Json tmpl, std::string owner); + CustomProvider(const char* subject, std::string name, ctx::CtxJson1 tmpl, std::string owner); ~CustomProvider(); int subscribe(); @@ -35,16 +35,16 @@ namespace ctx { bool unloadable(); - void handleUpdate(ctx::Json data); + void handleUpdate(ctx::CtxJson1 data); std::string getOwner(); - ctx::Json getTemplate(); + ctx::CtxJson1 getTemplate(); private: std::string __name; - ctx::Json __tmpl; + ctx::CtxJson1 __tmpl; std::string __owner; - ctx::Json __latest; + ctx::CtxJson1 __latest; }; } diff --git a/src/email/Email.cpp b/src/email/Email.cpp index 69f4250..f1351f4 100644 --- a/src/email/Email.cpp +++ b/src/email/Email.cpp @@ -49,13 +49,13 @@ void EmailEventProvider::onSignal(const char* sender, const char* path, const ch if (subType == NOTI_DOWNLOAD_FINISH) { //TODO: Check if this signal actually means that there are new mails _D("sub type: %d, gi1: %d, gc: %s, gi2: %d, gi3: %d", subType, gi1, gc, gi2, gi3); - Json dataUpdated; + CtxJson1 dataUpdated; dataUpdated.set(NULL, KEY_EVENT, VAL_RECEIVED); publish(NULL, ERR_NONE, dataUpdated); } else if (subType == NOTI_SEND_FINISH) { _D("sub type: %d, gi1: %d, gc: %s, gi2: %d, gi3: %d", subType, gi1, gc, gi2, gi3); - Json dataUpdated; + CtxJson1 dataUpdated; dataUpdated.set(NULL, KEY_EVENT, VAL_SENT); publish(NULL, ERR_NONE, dataUpdated); } diff --git a/src/geofence/GeofenceMonitorHandle.cpp b/src/geofence/GeofenceMonitorHandle.cpp index cf896b2..93c5b92 100644 --- a/src/geofence/GeofenceMonitorHandle.cpp +++ b/src/geofence/GeofenceMonitorHandle.cpp @@ -15,7 +15,7 @@ */ #include -#include +#include #include "PlaceGeofenceProvider.h" #include "GeofenceMonitorHandle.h" @@ -168,10 +168,10 @@ void GeofenceMonitorHandle::__emitStateChange() __prevState = currentState; - Json option; + CtxJson1 option; option.set(NULL, KEY_PLACE_ID, __placeId); - Json data; + CtxJson1 data; data.set(NULL, KEY_PLACE_ID, __placeId); data.set(NULL, KEY_EVENT, __getStateString(currentState)); diff --git a/src/geofence/PlaceGeofenceProvider.cpp b/src/geofence/PlaceGeofenceProvider.cpp index 10f7923..23388f6 100644 --- a/src/geofence/PlaceGeofenceProvider.cpp +++ b/src/geofence/PlaceGeofenceProvider.cpp @@ -52,7 +52,7 @@ bool PlaceGeofenceProvider::unloadable() return false; } -int PlaceGeofenceProvider::subscribe(Json option, Json *requestResult) +int PlaceGeofenceProvider::subscribe(CtxJson1 option, CtxJson1 *requestResult) { int placeId = -1; option.get(NULL, KEY_PLACE_ID, &placeId); @@ -79,7 +79,7 @@ int PlaceGeofenceProvider::subscribe(Json option, Json *requestResult) return ERR_NONE; } -int PlaceGeofenceProvider::unsubscribe(Json option) +int PlaceGeofenceProvider::unsubscribe(CtxJson1 option) { int placeId = -1; option.get(NULL, KEY_PLACE_ID, &placeId); diff --git a/src/geofence/PlaceGeofenceProvider.h b/src/geofence/PlaceGeofenceProvider.h index 5556fd5..6cbbd08 100644 --- a/src/geofence/PlaceGeofenceProvider.h +++ b/src/geofence/PlaceGeofenceProvider.h @@ -30,8 +30,8 @@ namespace ctx { PlaceGeofenceProvider(); ~PlaceGeofenceProvider(); - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); bool isSupported(); void getPrivilege(std::vector &privilege); diff --git a/src/headphone/Headphone.cpp b/src/headphone/Headphone.cpp index 63ec01b..efa221f 100644 --- a/src/headphone/Headphone.cpp +++ b/src/headphone/Headphone.cpp @@ -73,7 +73,7 @@ int HeadphoneStateProvider::read() if (!__beingSubscribed) __connected = __getCurrentStatus(); - Json data; + CtxJson1 data; __generateDataPacket(&data); replyToRead(NULL, ERR_NONE, data); @@ -134,7 +134,7 @@ bool HeadphoneStateProvider::__getCurrentStatus() return ((__audioJackState != RUNTIME_INFO_AUDIO_JACK_STATUS_UNCONNECTED) || __btAudioState); } -void HeadphoneStateProvider::__generateDataPacket(Json* data) +void HeadphoneStateProvider::__generateDataPacket(CtxJson1* data) { data->set(NULL, KEY_IS_CONNECTED, __connected ? VAL_TRUE : VAL_FALSE); @@ -159,7 +159,7 @@ bool HeadphoneStateProvider::__handleUpdate() IF_FAIL_RETURN(prevState != __connected, false); - Json data; + CtxJson1 data; __generateDataPacket(&data); publish(NULL, ERR_NONE, data); return true; diff --git a/src/headphone/Headphone.h b/src/headphone/Headphone.h index 62e1b88..2c188c6 100644 --- a/src/headphone/Headphone.h +++ b/src/headphone/Headphone.h @@ -50,7 +50,7 @@ namespace ctx { void __unsetBtAudioCallback(); void __setBtAudioState(bool state); - void __generateDataPacket(Json* data); + void __generateDataPacket(CtxJson1* data); bool __handleUpdate(); void __handleAudioJackEvent(); static gboolean __handleBtEvent(gpointer data); diff --git a/src/media-stats/DbHandle.cpp b/src/media-stats/DbHandle.cpp index fdfadfc..b623594 100644 --- a/src/media-stats/DbHandle.cpp +++ b/src/media-stats/DbHandle.cpp @@ -31,7 +31,7 @@ MediaDbHandle::~MediaDbHandle() { } -int MediaDbHandle::read(Json filter) +int MediaDbHandle::read(CtxJson1 filter) { //TODO: filter validation (in the API side?) std::string query; @@ -66,7 +66,7 @@ int MediaDbHandle::read(Json filter) return ERR_NONE; } -std::string MediaDbHandle::createWhereClause(int mediaType, Json filter) +std::string MediaDbHandle::createWhereClause(int mediaType, CtxJson1 filter) { std::stringstream whereClause; @@ -76,21 +76,21 @@ std::string MediaDbHandle::createWhereClause(int mediaType, Json filter) return whereClause.str(); } -std::string MediaDbHandle::createSqlPeakTime(int mediaType, Json filter) +std::string MediaDbHandle::createSqlPeakTime(int mediaType, CtxJson1 filter) { std::string where = createWhereClause(mediaType, filter); return StatsDbHandleBase::createSqlPeakTime(filter, MEDIA_TABLE_NAME, where); } -std::string MediaDbHandle::createSqlCommonSetting(int mediaType, Json filter) +std::string MediaDbHandle::createSqlCommonSetting(int mediaType, CtxJson1 filter) { std::string where = createWhereClause(mediaType, filter); return StatsDbHandleBase::createSqlCommonSetting(filter, MEDIA_TABLE_NAME, where); } -std::string MediaDbHandle::createSqlFrequency(int mediaType, Json filter) +std::string MediaDbHandle::createSqlFrequency(int mediaType, CtxJson1 filter) { - Json filterCleaned; + CtxJson1 filterCleaned; std::string weekStr; std::string timeOfDay; @@ -111,12 +111,12 @@ std::string MediaDbHandle::createSqlFrequency(int mediaType, Json filter) return query.str(); } -void MediaDbHandle::replyTriggerItem(int error, Json &jsonResult) +void MediaDbHandle::replyTriggerItem(int error, CtxJson1 &jsonResult) { IF_FAIL_VOID_TAG(STR_EQ(reqProvider->getSubject(), MEDIA_SUBJ_MUSIC_FREQUENCY) || STR_EQ(reqProvider->getSubject(), MEDIA_SUBJ_VIDEO_FREQUENCY), _E, "Invalid subject"); - Json results; + CtxJson1 results; int val; jsonResult.get(NULL, KEY_TOTAL_COUNT, &val); diff --git a/src/media-stats/DbHandle.h b/src/media-stats/DbHandle.h index 8b7f1c1..42b5ad6 100644 --- a/src/media-stats/DbHandle.h +++ b/src/media-stats/DbHandle.h @@ -18,7 +18,7 @@ #define _CONTEXT_STATS_MEDIA_DB_HANDLE_H_ #include -#include +#include #include "../shared/DbHandleBase.h" namespace ctx { @@ -27,14 +27,14 @@ namespace ctx { MediaDbHandle(ContextProvider *provider); ~MediaDbHandle(); - int read(Json filter); + int read(CtxJson1 filter); protected: - std::string createWhereClause(int mediaType, Json filter); - std::string createSqlPeakTime(int mediaType, Json filter); - std::string createSqlCommonSetting(int mediaType, Json filter); - std::string createSqlFrequency(int mediaType, Json filter); - void replyTriggerItem(int error, Json &jsonResult); + std::string createWhereClause(int mediaType, CtxJson1 filter); + std::string createSqlPeakTime(int mediaType, CtxJson1 filter); + std::string createSqlCommonSetting(int mediaType, CtxJson1 filter); + std::string createSqlFrequency(int mediaType, CtxJson1 filter); + void replyTriggerItem(int error, CtxJson1 &jsonResult); }; } diff --git a/src/media-stats/MediaContentMonitor.cpp b/src/media-stats/MediaContentMonitor.cpp index bf29b2d..179121f 100644 --- a/src/media-stats/MediaContentMonitor.cpp +++ b/src/media-stats/MediaContentMonitor.cpp @@ -132,7 +132,7 @@ void ctx::MediaContentMonitor::__updatePlayCount(const char *uuid, int type, int __dbManager.execute(0, query.str().c_str(), this); } -void ctx::MediaContentMonitor::onExecuted(unsigned int queryId, int error, std::vector& records) +void ctx::MediaContentMonitor::onExecuted(unsigned int queryId, int error, std::vector& records) { IF_FAIL_VOID(!records.empty()); @@ -146,7 +146,7 @@ void ctx::MediaContentMonitor::__insertLog(int mediaType) { int systemVolume = -1, mediaVolume = -1, audioJack = -1; - Json data; + CtxJson1 data; data.set(NULL, CX_MEDIA_TYPE, mediaType); if (ctx::system_info::getAudioJackState(&audioJack)) diff --git a/src/media-stats/MediaContentMonitor.h b/src/media-stats/MediaContentMonitor.h index 84610b3..8b64e15 100644 --- a/src/media-stats/MediaContentMonitor.h +++ b/src/media-stats/MediaContentMonitor.h @@ -42,7 +42,7 @@ namespace ctx { void onTableCreated(unsigned int queryId, int error) {} void onInserted(unsigned int queryId, int error, int64_t rowId) {} - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); void onSignal(const char *sender, const char *path, const char *iface, const char *name, GVariant *param); public: diff --git a/src/media-stats/MediaStatsLogger.cpp b/src/media-stats/MediaStatsLogger.cpp index 75fc326..622dec2 100644 --- a/src/media-stats/MediaStatsLogger.cpp +++ b/src/media-stats/MediaStatsLogger.cpp @@ -33,12 +33,12 @@ void MediaStatsLogger::getPrivilege(std::vector &privilege) privilege.push_back(PRIV_MEDIA_HISTORY); } -int MediaStatsLogger::subscribe(Json option, Json* requestResult) +int MediaStatsLogger::subscribe(CtxJson1 option, CtxJson1* requestResult) { return ERR_NONE; } -int MediaStatsLogger::unsubscribe(Json option) +int MediaStatsLogger::unsubscribe(CtxJson1 option) { return ERR_NONE; } diff --git a/src/media-stats/MediaStatsLogger.h b/src/media-stats/MediaStatsLogger.h index 60b8f12..0f077aa 100644 --- a/src/media-stats/MediaStatsLogger.h +++ b/src/media-stats/MediaStatsLogger.h @@ -27,8 +27,8 @@ namespace ctx { MediaStatsLogger(); ~MediaStatsLogger(); - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); void getPrivilege(std::vector &privilege); private: diff --git a/src/media-stats/MediaStatsProvider.cpp b/src/media-stats/MediaStatsProvider.cpp index ed05640..dba21d5 100644 --- a/src/media-stats/MediaStatsProvider.cpp +++ b/src/media-stats/MediaStatsProvider.cpp @@ -39,7 +39,7 @@ bool MediaStatsProvider::isSupported() return true; } -int MediaStatsProvider::read(Json option, Json* requestResult) +int MediaStatsProvider::read(CtxJson1 option, CtxJson1* requestResult) { MediaDbHandle *handle = new(std::nothrow) MediaDbHandle(this); IF_FAIL_RETURN_TAG(handle, ERR_OPERATION_FAILED, _E, "Memory allocation failed"); diff --git a/src/media-stats/MediaStatsProvider.h b/src/media-stats/MediaStatsProvider.h index 26a32cc..c5e6aec 100644 --- a/src/media-stats/MediaStatsProvider.h +++ b/src/media-stats/MediaStatsProvider.h @@ -24,7 +24,7 @@ namespace ctx { class MediaStatsProvider : public ContextProvider { public: - int read(Json option, Json* requestResult); + int read(CtxJson1 option, CtxJson1* requestResult); bool isSupported(); void getPrivilege(std::vector &privilege); diff --git a/src/message/Message.cpp b/src/message/Message.cpp index ed14fe8..5b7c2e9 100644 --- a/src/message/Message.cpp +++ b/src/message/Message.cpp @@ -57,7 +57,7 @@ void MessageEventProvider::__handleUpdate(msg_struct_t msg) int err; int type; char address[MAX_ADDR_SIZE]; - Json data; + CtxJson1 data; err = msg_get_int_value(msg, MSG_MESSAGE_TYPE_INT, &type); IF_FAIL_VOID_TAG(err == MSG_SUCCESS, _W, "Getting message type failed"); diff --git a/src/my-place/CMakeLists.txt b/src/my-place/CMakeLists.txt deleted file mode 100644 index cc19619..0000000 --- a/src/my-place/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -SET(target "${target_prefix}-my-place") -SET(target_myplace_utils_static "${target}-utils_static") - -INCLUDE_DIRECTORIES(utils) - -SET(DEPS ${DEPS} - gmodule-2.0 - capi-location-manager - capi-network-wifi -) - -FILE(GLOB SRCS *.cpp facade/*.cpp visit-detector/*.cpp) - -INCLUDE(FindPkgConfig) -PKG_CHECK_MODULES(PKG_MYPLACE REQUIRED ${DEPS}) - -FOREACH(flag ${PKG_MYPLACE_CFLAGS}) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") -ENDFOREACH(flag) - -ADD_LIBRARY(${target} SHARED ${SRCS}) -TARGET_LINK_LIBRARIES(${target} ${PKG_MYPLACE_LDFLAGS} ${target_shared} ${target_myplace_utils_static}) - -INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target_dir}) - -ADD_SUBDIRECTORY(utils) -ADD_SUBDIRECTORY(place) -ADD_SUBDIRECTORY(visit-categer) \ No newline at end of file diff --git a/src/my-place/CreateProvider.cpp b/src/my-place/CreateProvider.cpp deleted file mode 100644 index abeb994..0000000 --- a/src/my-place/CreateProvider.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include "PlaceRecognitionProvider.h" - -using namespace ctx; - -extern "C" SO_EXPORT ContextProvider* CreateProvider(const char *subject) -{ - ADD_PROVIDER(SUBJ_PLACE_DETECTION, PlaceRecognitionProvider); - - return NULL; -} diff --git a/src/my-place/PlaceRecognitionProvider.cpp b/src/my-place/PlaceRecognitionProvider.cpp deleted file mode 100644 index fd30973..0000000 --- a/src/my-place/PlaceRecognitionProvider.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "PlaceRecognitionProvider.h" -#include - -void ctx::PlaceRecognitionProvider::getPrivilege(std::vector &privilege) -{ - privilege.push_back(PRIV_LOCATION); - privilege.push_back(PRIV_NETWORK); -} - -int ctx::PlaceRecognitionProvider::subscribe(ctx::Json option, ctx::Json* requestResult) -{ - /* NOTE: This function needs to return ERR_NONE. - Otherwise, context-service will automatically delete this object. */ - return ERR_NONE; -} - -int ctx::PlaceRecognitionProvider::unsubscribe(ctx::Json option) -{ - /* NOTE: As the above subscribe() returns ERR_NONE, in parallel, - this function also needs to return ERR_NONE. */ - return ERR_NONE; -} - -int ctx::PlaceRecognitionProvider::read(ctx::Json option, ctx::Json* requestResult) -{ - _D(BLUE("Read")); - _J("Option", option); - - std::string request; - Json dataRead; - option.get(NULL, PLACE_DETECTION_REQUEST, &request); - bool consent = __engine.getConsent(); - int ret = ERR_NONE; - if (request == PLACE_DETECTION_REQUEST_CONSENT) { - dataRead.set(NULL, PLACE_DETECTION_REQUEST_CONSENT, consent ? MYPLACE_SETTING_VALUE_TRUE : MYPLACE_SETTING_VALUE_FALSE); - } else if (request == PLACE_DETECTION_REQUEST_LIST) { - if (consent) - dataRead = UserPlaces::getPlaces(); - else - ret = ERR_NOT_STARTED; - } else { - ret = ERR_INVALID_PARAMETER; - } - - replyToRead(option, ret, dataRead); - return ret; -} - -int ctx::PlaceRecognitionProvider::write(ctx::Json data, ctx::Json* requestResult) -{ - _D(BLUE("Write")); - _J("Data", data); - - std::string value; - IF_FAIL_RETURN_TAG( - data.get(NULL, PLACE_DETECTION_REQUEST_CONSENT, &value), - ERR_NOT_SUPPORTED, - _E, - "Invalid write request"); - if (value == MYPLACE_SETTING_VALUE_TRUE) { - __engine.setConsent(true); - } else if (value == MYPLACE_SETTING_VALUE_FALSE) { - __engine.setConsent(false); - } else { - _E("Invalid write parameter %s = '%s'", PLACE_DETECTION_REQUEST_CONSENT, value.c_str()); - return ERR_INVALID_PARAMETER; - } - return ERR_NONE; -} - -bool ctx::PlaceRecognitionProvider::isSupported() -{ - bool locationSupport = util::getSystemInfoBool("tizen.org/feature/location"); - bool wifiSupport = util::getSystemInfoBool("tizen.org/feature/network.wifi"); - _D("locationSupport = %d, wifiSupport = %d", locationSupport, wifiSupport); - return locationSupport && wifiSupport; -} diff --git a/src/my-place/PlaceRecognitionProvider.h b/src/my-place/PlaceRecognitionProvider.h deleted file mode 100644 index 4a3a96c..0000000 --- a/src/my-place/PlaceRecognitionProvider.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_H_ -#define _CONTEXT_PLACE_RECOGNITION_H_ - -#include -#include -#include "facade/UserPlaces.h" - -namespace ctx { - - class PlaceRecognitionProvider : public ContextProvider { - - public: - PlaceRecognitionProvider() : - ContextProvider(SUBJ_PLACE_DETECTION), - __engine(PLACE_RECOG_HIGH_ACCURACY_MODE) {} - - ~PlaceRecognitionProvider() {} - - int subscribe(ctx::Json option, ctx::Json *requestResult); - int unsubscribe(ctx::Json option); - int read(ctx::Json option, ctx::Json *requestResult); - int write(ctx::Json data, ctx::Json *requestResult); - - bool isSupported(); - void getPrivilege(std::vector &privilege); - - private: - UserPlaces __engine; - - }; /* class PlaceRecognitionProvider */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_H_ */ diff --git a/src/my-place/facade/UserPlaces.cpp b/src/my-place/facade/UserPlaces.cpp deleted file mode 100755 index 067d595..0000000 --- a/src/my-place/facade/UserPlaces.cpp +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include "UserPlaces.h" -#include -#include -#include -#include - -#define SO_PATH _LIBDIR_ "/context-service/libctx-prvd-my-place-places-detector.so" - -typedef void (*places_detector_t)(); - -#define __GET_PLACES_QUERY "SELECT "\ - PLACE_COLUMN_CATEG_ID ", "\ - PLACE_COLUMN_CATEG_CONFIDENCE ", "\ - PLACE_COLUMN_NAME ", "\ - PLACE_COLUMN_LOCATION_VALID ", "\ - PLACE_COLUMN_LOCATION_LATITUDE ", "\ - PLACE_COLUMN_LOCATION_LONGITUDE ", "\ - PLACE_COLUMN_LOCATION_ACCURACY ", "\ - PLACE_COLUMN_WIFI_APS ", "\ - PLACE_COLUMN_CREATE_DATE \ - " FROM " PLACE_TABLE - -#define __GET_WIFI_APS_MAP_QUERY "SELECT "\ - WIFI_APS_MAP_COLUMN_MAC ", "\ - WIFI_APS_MAP_COLUMN_NETWORK_NAME \ - " FROM " WIFI_APS_MAP_TABLE - -#define __MYPLACE_SETTINGS_TABLE_COLUMNS \ - MYPLACE_SETTINGS_COLUMN_KEY " TEXT NOT NULL UNIQUE, "\ - MYPLACE_SETTINGS_COLUMN_VALUE " TEXT NOT NULL"\ - -#define __GET_USER_CONSENT_QUERY "SELECT "\ - MYPLACE_SETTINGS_COLUMN_VALUE \ - " FROM " MYPLACE_SETTINGS_TABLE \ - " WHERE " MYPLACE_SETTINGS_COLUMN_KEY \ - "='" MYPLACE_SETTING_KEY_USER_CONSENT "';" - -ctx::UserPlaces::UserPlaces(PlaceRecogMode energyMode): - __visitDetector(nullptr), - __timerId(-1), - __started(false), - __energyMode(energyMode) -{ - _D(""); - __dbCreateMyPlaceSettingsTable(); - if (getConsent()) - __start(); -} - -ctx::UserPlaces::~UserPlaces() -{ - __stop(); -}; - -ctx::Json ctx::UserPlaces::getPlaces() -{ - std::vector records = __dbGetPlaces(); - std::map wifiAPsMap = __dbGetWifiAPsMap(); - std::vector> places = __placesFromJsons(records, wifiAPsMap); - return UserPlaces::__composeJson(places); -} - -ctx::Json ctx::UserPlaces::__composeJson(std::vector> places) -{ - ctx::Json data; - for (std::shared_ptr place : places) { - ctx::Json placeJson; - placeJson.set(NULL, PLACE_CATEG_ID, static_cast(place->categId)); - placeJson.set(NULL, PLACE_CATEG_CONFIDENCE, static_cast(place->categConfidence)); - placeJson.set(NULL, PLACE_NAME, place->name); - if (place->locationValid) { - ctx::Json locationJson; - locationJson.set(NULL, PLACE_LOCATION_LATITUDE, static_cast(place->location.latitude)); - locationJson.set(NULL, PLACE_LOCATION_LONGITUDE, static_cast(place->location.longitude)); - locationJson.set(NULL, PLACE_LOCATION_ACCURACY, static_cast(place->location.accuracy)); - placeJson.set(NULL, PLACE_LOCATION, locationJson); - } - if (place->wifiAps.size()) { - ctx::Json wifiApsListJson; - for (std::pair ap : place->wifiAps) { - ctx::Json wifiApJson; - wifiApJson.set(NULL, PLACE_WIFI_AP_MAC, ap.first); - wifiApJson.set(NULL, PLACE_WIFI_AP_NETWORK_NAME, ap.second); - wifiApsListJson.append(NULL, PLACE_WIFI_APS, wifiApJson); - } - placeJson.set(NULL, PLACE_WIFI_APS, wifiApsListJson); - } - placeJson.set(NULL, PLACE_CREATE_DATE, static_cast(place->createDate)); - data.append(NULL, PLACE_DATA_READ, placeJson); - } - _J("returns ", data); - return data; -} - -void ctx::UserPlaces::setMode(PlaceRecogMode energyMode) -{ - __energyMode = energyMode; - if (__visitDetector) - __visitDetector->setMode(energyMode); -} - -bool ctx::UserPlaces::onTimerExpired(int timerId) -{ - _D("Try to detect places from user visits"); - GModule *soHandle = g_module_open(SO_PATH, G_MODULE_BIND_LAZY); - IF_FAIL_RETURN_TAG(soHandle, true, _E, "%s", g_module_error()); - - gpointer symbol; - if (!g_module_symbol(soHandle, "detectPlaces", &symbol) || symbol == NULL) { - _E("%s", g_module_error()); - g_module_close(soHandle); - return true; - } - - places_detector_t detectPlaces = reinterpret_cast(symbol); - - detectPlaces(); - g_module_close(soHandle); - return true; -} - -std::vector ctx::UserPlaces::__dbGetPlaces() -{ - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(__GET_PLACES_QUERY, &records); - _D("load places execute query result: %s", ret ? "SUCCESS" : "FAIL"); - return records; -} - -std::map ctx::UserPlaces::__dbGetWifiAPsMap() -{ - std::vector records; - std::map wifiAPsMap; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(__GET_WIFI_APS_MAP_QUERY, &records); - _D("load Wifi APs map (size = %d), result: %s", records.size(), ret ? "SUCCESS" : "FAIL"); - std::string mac = ""; - std::string networkName = ""; - for (Json record : records) { - record.get(NULL, WIFI_APS_MAP_COLUMN_MAC, &mac); - record.get(NULL, WIFI_APS_MAP_COLUMN_NETWORK_NAME, &networkName); - wifiAPsMap.insert(std::pair(mac, networkName)); - } - return wifiAPsMap; -} - -std::shared_ptr ctx::UserPlaces::__placeFromJson(Json &row, std::map &wifiAPsMap) -{ - std::shared_ptr place = std::make_shared(); - __placeCategoryFromJson(row, *place); - row.get(NULL, PLACE_COLUMN_NAME, &(place->name)); - __placeLocationFromJson(row, *place); - __placeWifiAPsFromJson(row, wifiAPsMap, *place); - __placeCreateDateFromJson(row, *place); - _D("db_result: categId: %d; place: name: %s; locationValid: %d; latitude: %lf, longitude: %lf, createDate: %d", place->categId, place->name.c_str(), place->locationValid, place->location.latitude, place->location.longitude, place->createDate); - return place; -} - -void ctx::UserPlaces::__placeCategoryFromJson(Json &row, ctx::Place &place) -{ - int categId; - row.get(NULL, PLACE_COLUMN_CATEG_ID, &categId); - // This is due to the fact the JSON module API interface doesn't handle enum - place.categId = static_cast(categId); -} - -void ctx::UserPlaces::__placeLocationFromJson(Json &row, ctx::Place &place) -{ - int locationValidInt; - row.get(NULL, PLACE_COLUMN_LOCATION_VALID, &locationValidInt); - place.locationValid = (bool) locationValidInt; - row.get(NULL, PLACE_COLUMN_LOCATION_LATITUDE, &(place.location.latitude)); - row.get(NULL, PLACE_COLUMN_LOCATION_LONGITUDE, &(place.location.longitude)); - row.get(NULL, PLACE_COLUMN_LOCATION_ACCURACY, &(place.location.accuracy)); -} - -void ctx::UserPlaces::__placeWifiAPsFromJson(Json &row, std::map &wifiAPsMap, ctx::Place &place) -{ - std::string wifiAps; - row.get(NULL, PLACE_COLUMN_WIFI_APS, &wifiAps); - std::stringstream ss; - ss << wifiAps; - std::shared_ptr macSet = std::make_shared(); - ss >> *macSet; - for (ctx::Mac mac : *macSet) { - place.wifiAps.insert(std::pair(mac, wifiAPsMap[mac])); - } -} - -void ctx::UserPlaces::__placeCreateDateFromJson(Json &row, ctx::Place &place) -{ - int createDate; - row.get(NULL, PLACE_COLUMN_CREATE_DATE, &(createDate)); - // This is due to the fact the JSON module API interface doesn't handle time_t - place.createDate = static_cast(createDate); -} - -std::vector> ctx::UserPlaces::__placesFromJsons(std::vector& records, std::map &wifiAPsMap) -{ - std::vector> places; - _D("db_result: number of all places: %d", records.size()); - - for (Json &row : records) { - std::shared_ptr place = __placeFromJson(row, wifiAPsMap); - places.push_back(place); - } - _D("number of all places in vector: %d", places.size()); - return places; -} - -void ctx::UserPlaces::__dbCreateMyPlaceSettingsTable() -{ - DatabaseManager dbManager; - bool ret = dbManager.createTableSync(MYPLACE_SETTINGS_TABLE, __MYPLACE_SETTINGS_TABLE_COLUMNS); - _D("db: Myplace setting Table Creation Result: %s", ret ? "SUCCESS" : "FAIL"); -} - -void ctx::UserPlaces::setConsent(bool consent) -{ - _D(""); - DatabaseManager dbManager; - std::vector records; - std::stringstream query; - query << "REPLACE INTO " MYPLACE_SETTINGS_TABLE \ - " ( " MYPLACE_SETTINGS_COLUMN_KEY ", " MYPLACE_SETTINGS_COLUMN_VALUE " )" \ - " VALUES ( '" MYPLACE_SETTING_KEY_USER_CONSENT "', '"; - if (consent) { - query << MYPLACE_SETTING_VALUE_TRUE; - if (!__started) - __start(); - } else { - query << MYPLACE_SETTING_VALUE_FALSE; - if (__started) - __stop(); - } - query << "' );"; - - bool ret = dbManager.executeSync(query.str().c_str(), &records); - IF_FAIL_VOID_TAG(ret, _E, "Setting user consent (value = %d) to database failed", consent); -} - -bool ctx::UserPlaces::getConsent() -{ - _D(""); - DatabaseManager dbManager; - std::vector records; - bool ret = dbManager.executeSync(__GET_USER_CONSENT_QUERY, &records); - IF_FAIL_RETURN_TAG(ret, MYPLACE_SETTING_USER_CONSENT_DEFAULT, _E, "Getting user consent from database failed"); - if (records.size()) { - std::string consentStr; - records[0].get(NULL, MYPLACE_SETTINGS_COLUMN_VALUE, &consentStr); - if (consentStr == MYPLACE_SETTING_VALUE_TRUE) { - _D("User consent value from db: TRUE"); - return true; - } else if (consentStr == MYPLACE_SETTING_VALUE_FALSE) { - _D("User consent value from db: FALSE"); - return false; - } else { - _E("Unknown user consent value \"%s\" from db, it should be \"%s\" or \"%s\"", - consentStr.c_str(), - MYPLACE_SETTING_VALUE_TRUE, - MYPLACE_SETTING_VALUE_FALSE); - } - } - // consent record empty or unknown value - setConsent(MYPLACE_SETTING_USER_CONSENT_DEFAULT); - return MYPLACE_SETTING_USER_CONSENT_DEFAULT; -} - -void ctx::UserPlaces::__start() -{ - _D(""); - time_t now = std::time(nullptr); - __visitDetector = new(std::nothrow) VisitDetector(now, __energyMode); - if (__visitDetector == nullptr) { - _E("Cannot initialize VisitDetector"); - return; - } - __timerId = __timerManager.setAt( // execute once every night - PLACES_DETECTOR_TASK_START_HOUR, - PLACES_DETECTOR_TASK_START_MINUTE, - DayOfWeek::EVERYDAY, - this); - if (__timerId < 0) { - _E("timer set FAIL"); - return; - } else { - _D("timer set SUCCESS"); - } - __started = true; -} - -void ctx::UserPlaces::__stop() -{ - _D(""); - if (__timerId >= 0) { - __timerManager.remove(__timerId); - __timerId = -1; - } - if (__visitDetector) { - delete __visitDetector; - __visitDetector = nullptr; - } - __started = false; -} diff --git a/src/my-place/facade/UserPlaces.h b/src/my-place/facade/UserPlaces.h deleted file mode 100644 index bc552cc..0000000 --- a/src/my-place/facade/UserPlaces.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_USER_PLACES_H_ -#define _CONTEXT_PLACE_RECOGNITION_USER_PLACES_H_ - -#include -#include -#include -#include -#include -#include -#include "../visit-detector/VisitDetector.h" -#include - -namespace ctx { - - class UserPlaces : public ITimerListener { - - private: - VisitDetector *__visitDetector; - int __timerId; - TimerManager __timerManager; - bool __started; - PlaceRecogMode __energyMode; - static std::vector __dbGetPlaces(); - static std::map __dbGetWifiAPsMap(); - static std::shared_ptr __placeFromJson(Json &row, std::map &wifiAPsMap); - static void __placeCategoryFromJson(Json &row, ctx::Place &place); - static void __placeLocationFromJson(Json &row, ctx::Place &place); - static void __placeWifiAPsFromJson(Json &row, std::map &wifiAPsMap, ctx::Place &place); - static void __placeCreateDateFromJson(Json &row, ctx::Place &place); - static std::vector> __placesFromJsons( - std::vector& records, - std::map &wifiAPsMap); - static std::vector> __getPlaces(); - static Json __composeJson(std::vector> places); - static void __dbCreateMyPlaceSettingsTable(); - void __start(); - void __stop(); - - bool onTimerExpired(int timerId); - - UserPlaces(const UserPlaces&) = delete; - UserPlaces& operator=(const UserPlaces&) = delete; - - public: - UserPlaces(PlaceRecogMode energyMode = PLACE_RECOG_HIGH_ACCURACY_MODE); - ~UserPlaces(); - - void setMode(PlaceRecogMode energyMode); - static ctx::Json getPlaces(); - void setConsent(bool consent); - bool getConsent(); - - }; /* class UserPlaces */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_USER_PLACES_H_ */ diff --git a/src/my-place/place/CMakeLists.txt b/src/my-place/place/CMakeLists.txt deleted file mode 100644 index 7ac705f..0000000 --- a/src/my-place/place/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -SET(target "${target_prefix}-my-place-places-detector") - -INCLUDE_DIRECTORIES(../utils) - -FILE(GLOB SRCS *.cpp) - -ADD_LIBRARY(${target} SHARED ${SRCS}) -TARGET_LINK_LIBRARIES(${target} ${target_myplace_utils_static}) - -INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target_dir}) \ No newline at end of file diff --git a/src/my-place/place/Graph.cpp b/src/my-place/place/Graph.cpp deleted file mode 100644 index 82ccc72..0000000 --- a/src/my-place/place/Graph.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include "Graph.h" - -std::shared_ptr ctx::graph::connectedComponents(Graph &graph) -{ - std::shared_ptr ccs = std::make_shared(); - std::set fringe; - - for (Node i = 0; i < static_cast(graph.size()); i++) { - if (!graph[i]) - continue; - - // neighbourhood of node i exists (was not removed) - std::shared_ptr c = std::make_shared(); - ccs->push_back(c); - fringe.insert(i); - while (!fringe.empty()) { - Node currNode = *fringe.begin(); - fringe.erase(fringe.begin()); - c->insert(currNode); - - std::shared_ptr currNhood = graph[currNode]; - for (Node nhoodNode : *currNhood) { - if (graph[nhoodNode] && fringe.find(nhoodNode) == fringe.end()) - fringe.insert(nhoodNode); - } - graph[currNode].reset(); // removing current node - } - } - return ccs; -} diff --git a/src/my-place/place/Graph.h b/src/my-place/place/Graph.h deleted file mode 100644 index 542b0cd..0000000 --- a/src/my-place/place/Graph.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_GRAPH_H_ -#define _CONTEXT_PLACE_RECOGNITION_GRAPH_H_ - -#include -#include -#include - -namespace ctx { - -namespace graph { - - typedef int Node; - typedef std::set NeighbourNodes; - typedef std::vector> Graph; - typedef std::set Component; - typedef std::vector> Components; - - /* - * make connected components of a given graph - * caution: the graph will be changed (its nodes will be cleared) - */ - std::shared_ptr connectedComponents(Graph &graph); - -} /* namespace graph */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_GRAPH_H_ */ diff --git a/src/my-place/place/PlaceCateger.cpp b/src/my-place/place/PlaceCateger.cpp deleted file mode 100644 index 603e857..0000000 --- a/src/my-place/place/PlaceCateger.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "PlaceCateger.h" -#include -#include -#include -#include -#include - -void ctx::PlaceCateger::__reduceOutliers(ctx::Visits &visits) -{ - int size = visits.size(); - visits.erase(std::remove_if( - visits.begin(), - visits.end(), - [](Visit v)->bool { - return v.categs[PLACE_CATEG_ID_HOME] < PLACES_CATEGER_MIN_VISITS_SCORE - && v.categs[PLACE_CATEG_ID_WORK] < PLACES_CATEGER_MIN_VISITS_SCORE - && v.categs[PLACE_CATEG_ID_OTHER] < PLACES_CATEGER_MIN_VISITS_SCORE; - }), - visits.end()); - int newSize = visits.size(); - if (size != newSize) - _D("Visits number from %d to %d (visits min scores checking)", size, newSize); -} - -/* - * Change category if home or work has to few visits - */ -bool ctx::PlaceCateger::__reduceCategory(const PlaceCategId &categId, const ctx::Visits &visits) -{ - return (categId == PLACE_CATEG_ID_HOME && visits.size() < PLACES_CATEGER_MIN_VISITS_PER_HOME) - || (categId == PLACE_CATEG_ID_WORK && visits.size() < PLACES_CATEGER_MIN_VISITS_PER_WORK); -} - -void ctx::PlaceCateger::categorize(ctx::Visits &visits, ctx::Place &place) -{ - __reduceOutliers(visits); - - place.categId = PLACE_CATEG_ID_NONE; - place.categConfidence = 0.0; - - if (!visits.empty()) { - const std::vector categIds = { - PLACE_CATEG_ID_HOME, - PLACE_CATEG_ID_WORK, - PLACE_CATEG_ID_OTHER - }; - num_t sumScore = 0.0; - num_t maxScore = 0.0; - for (PlaceCategId categId : categIds) { - std::vector categVector = __categVectorFromVisits(visits, categId); - int i, j; - num_t score = median(categVector, i, j); - sumScore += score; - if (score > maxScore) { - maxScore = score; - place.categId = categId; - } - } - if (sumScore > 0) - place.categConfidence = maxScore / sumScore; - if (__reduceCategory(place.categId, visits)) { - place.categId = PLACE_CATEG_ID_OTHER; - place.categConfidence = 0.0; - } - } - - place.name = __categId2Name(place.categId); -} - -std::vector ctx::PlaceCateger::__categVectorFromVisits(const ctx::Visits &visits, PlaceCategId categId) -{ - std::vector vec; - for (auto &visit : visits) { - auto search = visit.categs.find(categId); - if (search != visit.categs.end()) - vec.push_back(search->second); - } - return vec; -} - -std::string ctx::PlaceCateger::__categId2Name(PlaceCategId categId) { - switch (categId) { - case PLACE_CATEG_ID_HOME: - return "home"; - case PLACE_CATEG_ID_WORK: - return "work"; - case PLACE_CATEG_ID_OTHER: - return "other"; - case PLACE_CATEG_ID_NONE: - return "none"; - default: - return ""; - } -} diff --git a/src/my-place/place/PlaceCateger.h b/src/my-place/place/PlaceCateger.h deleted file mode 100644 index dd6943f..0000000 --- a/src/my-place/place/PlaceCateger.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_PLACE_CATEGER_ -#define _CONTEXT_PLACE_RECOGNITION_PLACE_CATEGER_ - -#include -#include -#include -#include -#include - -namespace ctx { - - class PlaceCateger { - - private: - static bool __reduceCategory(const PlaceCategId &categId, const ctx::Visits &visits); - static void __reduceOutliers(Visits &visits); - static std::vector __categVectorFromVisits(const ctx::Visits &visits, PlaceCategId categId); - static std::string __categId2Name(PlaceCategId categId); - - public: - static void categorize(ctx::Visits &visits, ctx::Place &place); - - }; /* class PlaceCateger */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_PLACE_CATEGER_ */ diff --git a/src/my-place/place/PlacesDetector.cpp b/src/my-place/place/PlacesDetector.cpp deleted file mode 100644 index 96e9a41..0000000 --- a/src/my-place/place/PlacesDetector.cpp +++ /dev/null @@ -1,383 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include "PlacesDetector.h" -#include "PlaceCateger.h" -#include -#ifdef DEBUG_MODE -#include -#endif /* DEBUG_MODE */ -#include -#include -#include -#include -#include -#include - -#define __DELETE_PLACES_QUERY "DELETE FROM " PLACE_TABLE - -#ifdef DEBUG_MODE -#define __USER_PLACES_FILE "/tmp/user_places.txt" -#endif /* DEBUG_MODE */ - -#define __GET_VISITS_QUERY "SELECT "\ - VISIT_COLUMN_END_TIME ", "\ - VISIT_COLUMN_START_TIME ", "\ - VISIT_COLUMN_WIFI_APS ", "\ - VISIT_COLUMN_LOCATION_VALID ", "\ - VISIT_COLUMN_LOCATION_LATITUDE ", "\ - VISIT_COLUMN_LOCATION_LONGITUDE ", "\ - VISIT_COLUMN_LOCATION_ACCURACY ", "\ - VISIT_COLUMN_CATEG_HOME ", "\ - VISIT_COLUMN_CATEG_WORK ", "\ - VISIT_COLUMN_CATEG_OTHER \ - " FROM " VISIT_TABLE - -#define __PLACE_TABLE_COLUMNS \ - PLACE_COLUMN_CATEG_ID " INTEGER, "\ - PLACE_COLUMN_CATEG_CONFIDENCE " REAL, "\ - PLACE_COLUMN_NAME " TEXT, "\ - PLACE_COLUMN_LOCATION_VALID " INTEGER, "\ - PLACE_COLUMN_LOCATION_LATITUDE " REAL, "\ - PLACE_COLUMN_LOCATION_LONGITUDE " REAL, "\ - PLACE_COLUMN_LOCATION_ACCURACY " REAL, "\ - PLACE_COLUMN_WIFI_APS " STRING, "\ - PLACE_COLUMN_CREATE_DATE " timestamp" - -void ctx::PlacesDetector::detectPlaces() -{ - _D(""); - __dbCreateTable(); - __dbDeletePlaces(); - __dbDeleteOldEntries(); - std::vector records = __dbGetVisits(); - Visits visits = __visitsFromJsons(records); - __processVisits(visits); -} - -std::vector ctx::PlacesDetector::__dbGetVisits() -{ - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(__GET_VISITS_QUERY, &records); - _D("load visits execute query result: %s", ret ? "SUCCESS" : "FAIL"); - return records; -} - -double ctx::PlacesDetector::__doubleValueFromJson(Json &row, const char* key) -{ - double value; - row.get(NULL, key, &value); - _D("key: %s, value: %lf", key, value); - return value; -} - -ctx::Categs ctx::PlacesDetector::__visitCategsFromJson(Json &row) -{ - Categs categs; - categs[PLACE_CATEG_ID_HOME] = __doubleValueFromJson(row, VISIT_COLUMN_CATEG_HOME); - categs[PLACE_CATEG_ID_WORK] = __doubleValueFromJson(row, VISIT_COLUMN_CATEG_WORK); - categs[PLACE_CATEG_ID_OTHER] = __doubleValueFromJson(row, VISIT_COLUMN_CATEG_OTHER); - return categs; -} - -void ctx::PlacesDetector::__visitLocationFromJson(Json &row, ctx::Visit &visit) -{ - int locationValidInt; - row.get(NULL, VISIT_COLUMN_LOCATION_VALID, &locationValidInt); - visit.locationValid = (bool) locationValidInt; - row.get(NULL, VISIT_COLUMN_LOCATION_LATITUDE, &(visit.location.latitude)); - row.get(NULL, VISIT_COLUMN_LOCATION_LONGITUDE, &(visit.location.longitude)); - row.get(NULL, VISIT_COLUMN_LOCATION_ACCURACY, &(visit.location.accuracy)); -} - -ctx::Visit ctx::PlacesDetector::__visitFromJson(Json &row) -{ - int startTime; - int endTime; - std::string str; - row.get(NULL, VISIT_COLUMN_START_TIME, &startTime); - row.get(NULL, VISIT_COLUMN_END_TIME, &endTime); - row.get(NULL, VISIT_COLUMN_WIFI_APS, &str); - - std::stringstream ss; - ss << str; - std::shared_ptr macSet = std::make_shared(); - ss >> *macSet; - - Interval interval(startTime, endTime); - Categs categs = __visitCategsFromJson(row); - - Visit visit(interval, macSet, categs); - - __visitLocationFromJson(row, visit); - - return visit; -} - -ctx::Visits ctx::PlacesDetector::__visitsFromJsons(std::vector& records) -{ - Visits visits; - _D("db_result: number of all visits: %d", records.size()); - - for (Json &row : records) { - Visit visit = __visitFromJson(row); - visits.push_back(visit); - } - _D("number of all visits in vector: %d", visits.size()); - return visits; -} - - -void ctx::PlacesDetector::__reduceOutliers(ctx::Visits &visits) -{ - int size = visits.size(); - visits.erase(std::remove_if( - visits.begin(), - visits.end(), - [](Visit v)->bool { - int minutes = (v.interval.end - v.interval.start) / 60; - return (minutes < PLACES_DETECTOR_MIN_VISIT_DURATION_MINUTES) - || (minutes > PLACES_DETECTOR_MAX_VISIT_DURATION_MINUTES); - }), - visits.end()); - int newSize = visits.size(); - if (size != newSize) - _D("Visits number from %d to %d (to short and to long reduction)", size, newSize); -} - -std::vector> ctx::PlacesDetector::__processVisits(ctx::Visits &visits, bool testMode) -{ -#ifdef DEBUG_MODE - std::vector placesVisits; -#endif /* DEBUG_MODE */ - - std::vector> newDetectedPlaces; - - __reduceOutliers(visits); - auto components = __mergeVisits(visits); - - for (std::shared_ptr component : *components) { - // Small places outliers reduction - if (!testMode && component->size() < PLACES_DETECTOR_MIN_VISITS_PER_BIG_PLACE) - continue; - std::shared_ptr merged = std::make_shared(); - for (graph::Node i : *component) { - merged->push_back(visits[i]); - } - std::shared_ptr place = __placeFromMergedVisits(*merged); - if (place->categId == PLACE_CATEG_ID_NONE) - continue; - newDetectedPlaces.push_back(place); - if (!testMode) - __dbInsertPlace(*place); - -#ifdef DEBUG_MODE - { - Visits placeVisits; - for (graph::Node i : *component) { - placeVisits.push_back(visits[i]); - } - placesVisits.push_back(placeVisits); - } -#endif /* DEBUG_MODE */ - } - -#ifdef DEBUG_MODE - { - std::ofstream out(__USER_PLACES_FILE); - for (size_t i = 0; i < newDetectedPlaces.size(); i++) { - DebugUtils::printPlace2Stream(*newDetectedPlaces[i], out); - Visits placeVisits = placesVisits[i]; - for (Visit visit : placeVisits) { - visit.printShort2Stream(out); - } - } - out.close(); - Gmap::writeMap(newDetectedPlaces); - } -#endif /* DEBUG_MODE */ - -return newDetectedPlaces; -} - -void ctx::PlacesDetector::__mergeLocation(const Visits &visits, Place &place) -{ - std::vector latitudes; - std::vector longitudes; - std::vector accuracy; - place.locationValid = false; - for (const Visit& visit : visits) { - if (visit.locationValid) { - latitudes.push_back(visit.location.latitude); - longitudes.push_back(visit.location.longitude); - accuracy.push_back(visit.location.accuracy); - place.locationValid = true; - } - } - if (place.locationValid) { - place.location = medianLocation(latitudes, longitudes, accuracy); - _D("place location set: lat=%.8f, lon=%.8f, acc=%.8f", - place.location.latitude, - place.location.longitude, - place.location.accuracy); - } else { - _D("place location not set"); - } -} - -std::shared_ptr ctx::PlacesDetector::__placeFromMergedVisits(Visits &mergedVisits) -{ - std::shared_ptr place = std::make_shared(); - place->createDate = std::time(nullptr); - std::vector> macSets; - for (const Visit &visit : mergedVisits) { - macSets.push_back(visit.macSet); - } - std::shared_ptr allMacs = macSetsUnion(macSets); - __mergeLocation(mergedVisits, *place); - PlaceCateger::categorize(mergedVisits, *place); - - /* - * At this stage getting network names associated with Wifi AP MAC addresses is not needed (by looking - * to Wifi APs MAC addresses to network names map in database). This additional information for place - * is needed only when place is returned for external clients (getting straight from the database). - */ - for (ctx::Mac mac : *allMacs) { - place->wifiAps.insert(std::pair(mac, "")); - } - - return place; -} - -void ctx::PlacesDetector::__reduceOutliers(std::shared_ptr &cc) -{ - int size = cc->size(); - cc->erase(std::remove_if(cc->begin(), - cc->end(), - [](std::shared_ptr &c)->bool { - return c->size() < PLACES_DETECTOR_MIN_VISITS_PER_PLACE; - }), - cc->end()); - int newSize = cc->size(); - if (size != newSize) - _D("Connected components from %d to %d (min visit per place)", size, newSize); -} - -std::shared_ptr ctx::PlacesDetector::__mergeVisits(const std::vector &visits) -{ - auto graph = __graphFromVisits(visits); - auto cc = graph::connectedComponents(*graph); - __reduceOutliers(cc); - return cc; -} - -std::shared_ptr ctx::PlacesDetector::__graphFromVisits(const std::vector &visits) -{ - std::shared_ptr graph = std::make_shared(); - graph->resize(visits.size()); - for (size_t i = 0; i < visits.size(); i++) { - (*graph)[i] = std::make_shared(); - for (size_t j = 0; j < i; j++) { - if (similarity::isJoint(*visits[i].macSet, *visits[j].macSet)) { - (*graph)[i]->insert(j); - (*graph)[j]->insert(i); - } - } - } - return graph; -} - -void ctx::PlacesDetector::__dbDeletePlaces() -{ - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(__DELETE_PLACES_QUERY, &records); - _D("delete places execute query result: %s", ret ? "SUCCESS" : "FAIL"); -} - -void ctx::PlacesDetector::__dbDeleteOldEntries() -{ - time_t currentTime; - time(¤tTime); - time_t thresholdTime = currentTime - PLACES_DETECTOR_RETENTION_SECONDS; - __dbDeleteOlderVisitsThan(thresholdTime); - __dbDeleteOlderWifiAPsThan(thresholdTime); -} - -void ctx::PlacesDetector::__dbDeleteOlderVisitsThan(time_t threshold) -{ - std::stringstream query; - query << "DELETE FROM " << VISIT_TABLE; - query << " WHERE " << VISIT_COLUMN_END_TIME << " < " << threshold; - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(query.str().c_str(), &records); - _D("deleting visits older than: %d, result: %s", threshold, ret ? "SUCCESS" : "FAIL"); -} - -void ctx::PlacesDetector::__dbDeleteOlderWifiAPsThan(time_t threshold) -{ - std::stringstream query; - query << "DELETE FROM " << WIFI_APS_MAP_TABLE; - query << " WHERE " << WIFI_APS_MAP_COLUMN_INSERT_TIME << " < " << threshold; - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(query.str().c_str(), &records); - _D("deleting Wifi APs older than: %d, result: %s", threshold, ret ? "SUCCESS" : "FAIL"); -} - -void ctx::PlacesDetector::__dbCreateTable() -{ - DatabaseManager dbManager; - bool ret = dbManager.createTableSync(PLACE_TABLE, __PLACE_TABLE_COLUMNS); - _D("db: place Table Creation Result: %s", ret ? "SUCCESS" : "FAIL"); -} - -void ctx::PlacesDetector::__dbInsertPlace(const Place &place) -{ - Json data; - data.set(NULL, PLACE_COLUMN_CATEG_ID, place.categId); - data.set(NULL, PLACE_COLUMN_CATEG_CONFIDENCE, place.categConfidence); - data.set(NULL, PLACE_COLUMN_NAME, place.name); - - data.set(NULL, PLACE_COLUMN_LOCATION_VALID, place.locationValid); - data.set(NULL, PLACE_COLUMN_LOCATION_LATITUDE, place.location.latitude); - data.set(NULL, PLACE_COLUMN_LOCATION_LONGITUDE, place.location.longitude); - data.set(NULL, PLACE_COLUMN_LOCATION_ACCURACY, place.location.accuracy); - std::string wifiAps; - for (std::pair ap : place.wifiAps) { - wifiAps.append(ap.first); - wifiAps.append(","); - } - wifiAps = wifiAps.substr(0, wifiAps.size()-1); - data.set(NULL, PLACE_COLUMN_WIFI_APS, wifiAps); - data.set(NULL, PLACE_COLUMN_CREATE_DATE, static_cast(place.createDate)); - - int64_t rowId; - DatabaseManager dbManager; - bool ret = dbManager.insertSync(PLACE_TABLE, data, &rowId); - _D("insert place execute query result: %s", ret ? "SUCCESS" : "FAIL"); -} - -extern "C" SO_EXPORT void detectPlaces() -{ - ctx::PlacesDetector::detectPlaces(); -} diff --git a/src/my-place/place/PlacesDetector.h b/src/my-place/place/PlacesDetector.h deleted file mode 100644 index ad07355..0000000 --- a/src/my-place/place/PlacesDetector.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_PLACES_DETECTOR_ -#define _CONTEXT_PLACE_RECOGNITION_PLACES_DETECTOR_ - -#include -#include -#include -#include -#include "Graph.h" - -namespace ctx { - - class PlacesDetector { - - private: - static double __doubleValueFromJson(Json &row, const char* key); - static Categs __visitCategsFromJson(Json &row); - static void __visitLocationFromJson(Json &row, ctx::Visit &visit); - static Visit __visitFromJson(Json &row); - static Visits __visitsFromJsons(std::vector& records); - - static std::shared_ptr __graphFromVisits(const std::vector &visits); - - static void __dbCreateTable(); - static void __dbDeletePlaces(); - static void __dbDeleteOldEntries(); - static void __dbDeleteOlderVisitsThan(time_t threshold); - static void __dbDeleteOlderWifiAPsThan(time_t threshold); - static std::vector __dbGetVisits(); - static void __dbInsertPlace(const Place &place); - - static std::shared_ptr __placeFromMergedVisits(Visits &mergedVisits); - static std::vector> __processVisits(Visits &visits, bool testMode = false); - static void __mergeLocation(const Visits &mergedVisits, Place &place); - static std::shared_ptr __mergeVisits(const std::vector &visits); - static void __reduceOutliers(Visits &visits); - static void __reduceOutliers(std::shared_ptr &cc); - - PlacesDetector(); - - public: - static void detectPlaces(); - - }; /* class PlacesDetector */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_PLACES_DETECTOR_ */ diff --git a/src/my-place/utils/CMakeLists.txt b/src/my-place/utils/CMakeLists.txt deleted file mode 100644 index 2ecc5e4..0000000 --- a/src/my-place/utils/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -SET(target ${target_myplace_utils_static}) - -FILE(GLOB SRCS *.cpp) - -ADD_LIBRARY(${target} STATIC ${SRCS}) \ No newline at end of file diff --git a/src/my-place/utils/DebugUtils.cpp b/src/my-place/utils/DebugUtils.cpp deleted file mode 100644 index 7cd292f..0000000 --- a/src/my-place/utils/DebugUtils.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "DebugUtils.h" -#include -#include - -/* - * Number of digits after decimal point used in geo coordinates. - */ -#define GEO_LOCATION_PRECISION 7 - -std::string ctx::DebugUtils::humanReadableDateTime(time_t timestamp, std::string format, size_t size, bool utc) -{ - struct tm timeinfo; - struct tm *result; - tzset(); - if (utc) { - format += " UTC"; - size += 4; - result = gmtime_r(×tamp, &timeinfo); - } else { - result = localtime_r(×tamp, &timeinfo); - } - char buffer[size]; - if (result) { - strftime(buffer, size, format.c_str(), &timeinfo); - } else { - snprintf(buffer, size, "NULL"); - } - return std::string(buffer); -} - -void ctx::DebugUtils::printPlace2Stream(const Place &place, std::ostream &out) -{ - out << "PLACE:" << std::endl; - out << "__CATEGORY: " << place.name << std::endl; - if (place.locationValid) { - out << "__LOCATION: lat=" << std::setprecision(GEO_LOCATION_PRECISION + 2) << place.location.latitude; - out << ", lon=" << place.location.longitude << std::setprecision(5) << std::endl; - } - out << "__WIFI:" << std::endl; - for (std::pair ap : place.wifiAps) { - out << "____ " << ap.first << " : " << ap.second << std::endl; - } - out << "__CREATE_DATE: " << humanReadableDateTime(place.createDate, "%F %T", 80) << std::endl; -} diff --git a/src/my-place/utils/DebugUtils.h b/src/my-place/utils/DebugUtils.h deleted file mode 100644 index 5505e82..0000000 --- a/src/my-place/utils/DebugUtils.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_DEBUG_UTILS_H_ -#define _CONTEXT_PLACE_RECOGNITION_DEBUG_UTILS_H_ - -#include -#include -#include -#include - -namespace ctx { - - class DebugUtils { - - public: - static std::string humanReadableDateTime(time_t timestamp, std::string format, size_t size, bool utc = false); - static void printPlace2Stream(const Place &place, std::ostream &out); - - }; /* class DebugUtils */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_DEBUG_UTILS_H_ */ diff --git a/src/my-place/utils/Gmap.cpp b/src/my-place/utils/Gmap.cpp deleted file mode 100644 index 28c3d34..0000000 --- a/src/my-place/utils/Gmap.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Gmap.h" -#include -#include - -const std::string ctx::Gmap::__HTML_HEADER = R"( - - - - - - Simple markers - - - - - -
- - -)"; - -std::string ctx::Gmap::__iconForCategId(PlaceCategId categId) -{ - switch (categId) { - case PLACE_CATEG_ID_HOME: return "markerH.png"; - case PLACE_CATEG_ID_WORK: return "markerW.png"; - case PLACE_CATEG_ID_OTHER: return "markerO.png"; - case PLACE_CATEG_ID_NONE: return "markerN.png"; - default: return "markerD.png"; - } -} - -void ctx::Gmap::__placeMarker2Stream(const ctx::Place& place, std::ostream& out) -{ - if (place.locationValid) { - out << "new google.maps.Marker({" << std::endl; - out << " position: new google.maps.LatLng(" << place.location.latitude << "," << place.location.longitude << ")," << std::endl; - out << " map: map," << std::endl; - out << " icon: \"http://maps.google.com/mapfiles/" << __iconForCategId(place.categId)<< "\"" << std::endl; - out << "});" << std::endl; - } -} - -void ctx::Gmap::__html2Stream(const std::vector>& places, std::ostream& out) -{ - out << __HTML_HEADER; - for (std::shared_ptr place : places) { - __placeMarker2Stream(*place, out); - } - out << __HTML_FOOTER; -} - -void ctx::Gmap::writeMap(const std::vector>& places) -{ - std::ofstream out(GMAP_FILE); - __html2Stream(places, out); -} diff --git a/src/my-place/utils/Gmap.h b/src/my-place/utils/Gmap.h deleted file mode 100644 index 9e5c930..0000000 --- a/src/my-place/utils/Gmap.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_GMAP_H_ -#define _CONTEXT_PLACE_RECOGNITION_GMAP_H_ - -#include "UserPlacesTypes.h" - -#define GMAP_FILE "/tmp/user_places_map.html" - -namespace ctx { - - /* - * Class for generating a HTML page with GoogleMaps with all user places. - * This class is for test/demo purposes only. - */ - class Gmap { - - private: - static const std::string __HTML_HEADER; - static const std::string __HTML_FOOTER; - static std::string __iconForCategId(PlaceCategId categId); - static void __placeMarker2Stream(const Place& place, std::ostream& out); - static void __html2Stream(const std::vector>& places, std::ostream& out); - - public: - static void writeMap(const std::vector>& places); - - }; /* class Gmap */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_GMAP_H_ */ diff --git a/src/my-place/utils/Median.cpp b/src/my-place/utils/Median.cpp deleted file mode 100644 index 0ccd3ed..0000000 --- a/src/my-place/utils/Median.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include "Median.h" - -static bool compareFun(std::pair &i, std::pair &j) { - return (i.first < j.first); -} - -double ctx::median(std::vector &values, int &elemIdx, int &evenCaseElemIdx) -{ - if (values.empty()) { - _E("Median of empty set"); - return -1; - } - std::vector> valuesTemp; - for (size_t i = 0; i < values.size(); i++) { - valuesTemp.push_back(std::pair(values[i], i)); - } - int n = valuesTemp.size() / 2; - std::nth_element(valuesTemp.begin(), valuesTemp.begin() + n, valuesTemp.end(), compareFun); - std::pair valuesTempN = valuesTemp[n]; - elemIdx = valuesTempN.second; - if (valuesTemp.size() % 2 == 1) { //odd size - evenCaseElemIdx = -1; - return valuesTempN.first; - } else { // even size - std::nth_element(valuesTemp.begin(), valuesTemp.begin() + n - 1, valuesTemp.end()); - evenCaseElemIdx = valuesTemp[n - 1].second; - return 0.5 * (valuesTempN.first + valuesTemp[n - 1].first); - } -} - -ctx::Location ctx::medianLocation(std::vector &latitudes, std::vector &longitudes, std::vector &accuracy) -{ - ctx::Location location; - if (latitudes.empty() || latitudes.size() != longitudes.size() || latitudes.size() != accuracy.size()) { - _E("Incorrect input vectors size"); - return location; - } - int idx; - int additionalIdx; - location.latitude = median(latitudes, idx, additionalIdx); - double latitudeAccuracy = accuracy[idx]; - if (additionalIdx >= 0) { - latitudeAccuracy = 0.5 * (latitudeAccuracy + accuracy[additionalIdx]); - } - location.longitude = median(longitudes, idx, additionalIdx); - double longitudeAccuracy = accuracy[idx]; - if (additionalIdx >= 0) { - longitudeAccuracy = 0.5 * (longitudeAccuracy + accuracy[additionalIdx]); - } - location.accuracy = 0.5 * (latitudeAccuracy + longitudeAccuracy); - return location; -} diff --git a/src/my-place/utils/Median.h b/src/my-place/utils/Median.h deleted file mode 100644 index 275fa13..0000000 --- a/src/my-place/utils/Median.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_MEDIAN_ -#define _CONTEXT_PLACE_RECOGNITION_MEDIAN_ - -#include "UserPlacesTypes.h" -#include - -namespace ctx { - - double median(std::vector &values, int &elemIdx, int &evenCaseElemIdx); - ctx::Location medianLocation(std::vector &latitudes, std::vector &longitudes, std::vector &accuracy); - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_MEDIAN_ */ diff --git a/src/my-place/utils/Similarity.h b/src/my-place/utils/Similarity.h deleted file mode 100644 index f78b675..0000000 --- a/src/my-place/utils/Similarity.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_SIMILAR_H_ -#define _CONTEXT_PLACE_RECOGNITION_SIMILAR_H_ - -#include "UserPlacesTypes.h" - -namespace ctx { - -namespace similarity { - - template ctx::share_t overlap1stOver2nd(const T &s1, const T &s2) - { - if (s2.empty()) - return 0; - int count = 0; - for (auto e : s2) { - if (s1.find(e) != s1.end()) - count++; - } - return (ctx::share_t) count / s2.size(); - } - - template ctx::share_t overlapBiggerOverSmaller(const T &s1, const T &s2) - { - if (s1.size() > s2.size()) { - return similarity::overlap1stOver2nd(s1, s2); - } else { - return similarity::overlap1stOver2nd(s2, s1); - } - } - - template bool isJoint(const T &s1, const T &s2) - { - for (auto e : s2) { - if (s1.find(e) != s1.end()) - return true; - } - return false; - } - -} /* namespace similarity */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_SIMILAR_H_ */ diff --git a/src/my-place/utils/UserPlacesParams.h b/src/my-place/utils/UserPlacesParams.h deleted file mode 100644 index ccb136b..0000000 --- a/src/my-place/utils/UserPlacesParams.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_USER_PLACES_PARAMS_H_ -#define _CONTEXT_PLACE_RECOGNITION_USER_PLACES_PARAMS_H_ - -/* - * WiFi scanning frequency (in minutes) in PLACE_RECOG_HIGH_ACCURACY_MODE. - */ -#define WIFI_LOGGER_INTERVAL_MINUTES_HIGH_ACCURACY 3 - -/* - * WiFi scanning frequency (in minutes) in PLACE_RECOG_LOW_POWER_MODE. - */ -#define WIFI_LOGGER_INTERVAL_MINUTES_LOW_POWER 60 - -/* - * Time window taken into consideration (in seconds) in PLACE_RECOG_HIGH_ACCURACY_MODE. - */ -#define VISIT_DETECTOR_PERIOD_SECONDS_HIGH_ACCURACY 360 - -/* - * Time window taken into consideration (in seconds) in PLACE_RECOG_LOW_POWER_MODE. - */ -#define VISIT_DETECTOR_PERIOD_SECONDS_LOW_POWER 3600 - -/* - * Overlap threshold between two sets of mac addresses (overlap - * coefficient for two sets should be higher than this threshold - * in order to detect stable radio environment); =< 1.0 - * New parameter in algorithm compared to original version of PlaceSense! - */ -#define VISIT_DETECTOR_OVERLAP 0.8f - -/* - * Specifies how many stable intervals must be seen to - * indicate an entrance to a place; >= 1 - */ -#define VISIT_DETECTOR_STABLE_DEPTH 1 - -/* - * Representatives threshold (representatnive beacon - * response rate should be higher than this threshold); =< 1.0 - */ -#define VISIT_DETECTOR_REP_THRESHOLD 0.9f - -/* - * Specifies how long scans must be unstable to indicate a leave form a place; >= 1 - */ -#define VISIT_DETECTOR_TOLERANCE_DEPTH 3 - -#define PLACES_DETECTOR_TASK_START_HOUR 3 -#define PLACES_DETECTOR_TASK_START_MINUTE 11 -#define PLACES_DETECTOR_RETENTION_DAYS 30 -#define PLACES_DETECTOR_RETENTION_SECONDS 24 * 60 * 60 * PLACES_DETECTOR_RETENTION_DAYS - -/* - * Minimal duration of visit (in minutes) taking into account for place detection - */ -#define PLACES_DETECTOR_MIN_VISIT_DURATION_MINUTES 15 - -/* - * Maximum duration of visit (in minutes) taking into account for place detection - */ -#define PLACES_DETECTOR_MAX_VISIT_DURATION_MINUTES 5 * 24 * 60 - -/* - * Minimum visits number per place - */ -#define PLACES_DETECTOR_MIN_VISITS_PER_PLACE 1 - -/* - * Minimum visits number per big place - */ -#define PLACES_DETECTOR_MIN_VISITS_PER_BIG_PLACE 4 - -/* - * Minimal visit category score for taking this visit into consideration during - * place categorization - */ -#define PLACES_CATEGER_MIN_VISITS_SCORE 0.1 - -/* - * Minimum visits number per home - */ -#define PLACES_CATEGER_MIN_VISITS_PER_HOME 3 - -/* - * Minimum visits number per work - */ -#define PLACES_CATEGER_MIN_VISITS_PER_WORK 2 - -/* - * Default user consent value for place detection - */ -#define MYPLACE_SETTING_USER_CONSENT_DEFAULT false - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_USER_PLACES_PARAMS_H_ */ diff --git a/src/my-place/utils/UserPlacesTypes.cpp b/src/my-place/utils/UserPlacesTypes.cpp deleted file mode 100644 index 1b8857f..0000000 --- a/src/my-place/utils/UserPlacesTypes.cpp +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include "UserPlacesTypes.h" -#include "UserPlacesParams.h" -#include "DebugUtils.h" - -#define __MAC_STRING_COMPONENTS_SEPARATOR ':' -#define __MAC_SET_STRING_DELIMITER ',' - -ctx::Mac::Mac(const std::string& str) -{ - std::stringstream ss(str); - try { - ss >> *this; - } catch (std::runtime_error &e) { - _E("%s", e.what()); - } -} - -ctx::Mac::Mac(const char *str) -{ - std::stringstream ss(str); - try { - ss >> *this; - } catch (std::runtime_error &e) { - _E("%s", e.what()); - } -} - -std::istream& ctx::operator>>(std::istream &input, ctx::Mac &mac) -{ - int h; - char colon; - for (size_t i = 0; i < ctx::Mac::MAC_SIZE; i++) { - input >> std::hex; - input >> h; - mac.c[i] = h; - if (i + 1 >= ctx::Mac::MAC_SIZE) - break; - input >> colon; - if (colon != __MAC_STRING_COMPONENTS_SEPARATOR) - throw std::runtime_error("Invalid MAC format"); - } - input >> std::dec; - return input; -} - -std::ostream& ctx::operator<<(std::ostream &output, const ctx::Mac &mac) -{ - size_t i = 0; - while (true) { - output << std::hex << std::setfill('0') << std::setw(2); - output << static_cast(mac.c[i]); - i++; - if (i >= Mac::MAC_SIZE) - break; - output << __MAC_STRING_COMPONENTS_SEPARATOR; - } - output << std::dec; - return output; -} - -ctx::Mac::operator std::string() const -{ - std::stringstream ss; - ss << *this; - return ss.str(); -} - -bool ctx::operator==(const Mac &m1, const Mac &m2) -{ - for (size_t i = 0; i < Mac::MAC_SIZE; i++) { - if (m1.c[i] != m2.c[i]) - return false; - } - return true; -} - -bool ctx::operator!=(const Mac &m1, const Mac &m2) -{ - return !(m1 == m2); -} - -bool ctx::operator<(const Mac &m1, const Mac &m2) -{ - unsigned char c1, c2; - for (size_t i = 0; i < Mac::MAC_SIZE; i++) { - c1 = m1.c[i]; - c2 = m2.c[i]; - if (c1 < c2) - return true; - if (c1 > c2) - return false; - } - return false; // they are equal -} - -std::istream& ctx::operator>>(std::istream &input, ctx::MacSet &macSet) -{ - Mac mac; - char delimeter; - while (!input.eof()) { - try { - input >> mac; - } catch (std::runtime_error &e) { - _E("Cannot read macSet. Exception: %s", e.what()); - break; - } - macSet.insert(mac); - if (input.eof()) - break; - delimeter = input.get(); - if (delimeter != __MAC_SET_STRING_DELIMITER) { - input.unget(); - break; - } - } - return input; -} - -std::ostream& ctx::operator<<(std::ostream &output, const ctx::MacSet &macSet) -{ - std::vector macVec(macSet.size()); - std::copy(macSet.begin(), macSet.end(), macVec.begin()); - std::sort(macVec.begin(), macVec.end()); - - bool first = true; - for (auto &mac: macVec) { - if (first) { - first = false; - } else { - output << __MAC_SET_STRING_DELIMITER; - } - output << mac; - } - return output; -} - -void ctx::LocationEvent::log() -{ - std::string time_str = DebugUtils::humanReadableDateTime(timestamp, "%T", 9); - _D("location lat=%.8f, lon=%.8f, acc=%.2f[m], time=%s", - coordinates.latitude, - coordinates.longitude, - coordinates.accuracy, - time_str.c_str()); -} - -void ctx::Visit::setLocation(Location location_) -{ - locationValid = true; - location = location_; -} - -void ctx::Visit::printShort2Stream(std::ostream &out) const -{ - // print only valid visits - if (interval.end != 0) { - float duration = ((float) (interval.end - interval.start)) / 3600; // [h] - out << "__VISIT " << duration << "h: "; - out << DebugUtils::humanReadableDateTime(interval.start, "%m/%d %H:%M", 15) << " ÷ "; - out << DebugUtils::humanReadableDateTime(interval.end, "%m/%d %H:%M", 15) << std::endl; - } -} - -bool ctx::operator==(const ctx::Visit &v1, const ctx::Visit &v2) -{ - return v1.interval.start == v2.interval.start - && v1.interval.end == v2.interval.end - && v1.categs == v2.categs - && v1.location.latitude == v2.location.latitude - && v1.location.longitude == v2.location.longitude - && v1.location.accuracy == v2.location.accuracy - && v1.locationValid == v2.locationValid - && v1.macSet == v2.macSet; -} - -ctx::MacSet ctx::macSetFromString(const std::string &str) -{ - MacSet macSet; - std::stringstream ss; - ss << str; - ss >> macSet; - return macSet; -} - -bool ctx::operator>(const Mac &m1, const Mac &m2) -{ - return m2 < m1; -} - -std::shared_ptr ctx::macSetFromMacs2Counts(const Macs2Counts &macs2Counts) -{ - std::shared_ptr macSet(std::make_shared()); - for (auto &macCount: macs2Counts) { - macSet->insert(macCount.first); - } - return macSet; -} - -std::shared_ptr ctx::macSetsUnion(const std::vector> &macSets) -{ - std::shared_ptr unionSet = std::make_shared(); - for (std::shared_ptr macSet : macSets) { - unionSet->insert(macSet->begin(), macSet->end()); - } - return unionSet; -} - -ctx::Interval::Interval(time_t start_, time_t end_) : start(start_), end(end_) { - if (end_ < start_) - _E("Negative interval, start=%d, end=%d", start_, end_); -} diff --git a/src/my-place/utils/UserPlacesTypes.h b/src/my-place/utils/UserPlacesTypes.h deleted file mode 100644 index 7955080..0000000 --- a/src/my-place/utils/UserPlacesTypes.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_USER_PLACES_TYPES_H_ -#define _CONTEXT_PLACE_RECOGNITION_USER_PLACES_TYPES_H_ - -#include -#include -#include -#include -#include -#include -#include -#include - -// Database -#define VISIT_TABLE "Log_Myplace_Visit" -#define VISIT_COLUMN_START_TIME "start_time" -#define VISIT_COLUMN_END_TIME "end_time" -#define VISIT_COLUMN_WIFI_APS "wifi_aps" -#define VISIT_COLUMN_CATEGORY "category" -#define VISIT_COLUMN_LOCATION_VALID "location_valid" -#define VISIT_COLUMN_LOCATION_LATITUDE "location_latitude" -#define VISIT_COLUMN_LOCATION_LONGITUDE "location_longitude" -#define VISIT_COLUMN_LOCATION_ACCURACY "location_accuracy" -#define VISIT_COLUMN_CATEG_HOME "categ_home" -#define VISIT_COLUMN_CATEG_WORK "categ_work" -#define VISIT_COLUMN_CATEG_OTHER "categ_other" - -#define WIFI_APS_MAP_TABLE "Log_Myplace_WifiAPsMap" -#define WIFI_APS_MAP_COLUMN_MAC "mac" -#define WIFI_APS_MAP_COLUMN_NETWORK_NAME "network_name" -#define WIFI_APS_MAP_COLUMN_INSERT_TIME "insert_time" - -#define PLACE_TABLE "Log_Myplace_Place" -#define PLACE_COLUMN_CATEG_ID "categ_id" -#define PLACE_COLUMN_CATEG_CONFIDENCE "categ_confidence" -#define PLACE_COLUMN_NAME "name" -#define PLACE_COLUMN_LOCATION_VALID "location_valid" -#define PLACE_COLUMN_LOCATION_LATITUDE "location_latitude" -#define PLACE_COLUMN_LOCATION_LONGITUDE "location_longitude" -#define PLACE_COLUMN_LOCATION_ACCURACY "location_accuracy" -#define PLACE_COLUMN_WIFI_APS "wifi_aps" -#define PLACE_COLUMN_CREATE_DATE "create_date" - -#define WIFI_TABLE "Log_Myplace_Wifi" -#define WIFI_COLUMN_TIMESTAMP "timestamp" -#define WIFI_COLUMN_BSSID "bssid" -#define WIFI_COLUMN_ESSID "essid" - -#define LOCATION_TABLE "Log_Myplace_Location" -#define LOCATION_COLUMN_LATITUDE "latitude" -#define LOCATION_COLUMN_LONGITUDE "longitude" -#define LOCATION_COLUMN_ACCURACY "accuracy" -#define LOCATION_COLUMN_TIMESTAMP "timestamp" - -#define MYPLACE_SETTINGS_TABLE "Myplace_Settings" -#define MYPLACE_SETTINGS_COLUMN_KEY "key" -#define MYPLACE_SETTINGS_COLUMN_VALUE "value" -#define MYPLACE_SETTING_KEY_USER_CONSENT PLACE_DETECTION_REQUEST_CONSENT - -enum PlaceRecogMode { - PLACE_RECOG_HIGH_ACCURACY_MODE = 0, - PLACE_RECOG_LOW_POWER_MODE = 1 -}; - -namespace ctx { - - /* - * type for numerical computations - */ - typedef double num_t; - - /* - * mac address - */ - class Mac { - - public: - const static size_t MAC_SIZE = 6; // number of bytes for mac address. - unsigned char c[MAC_SIZE]; - - Mac() {}; - Mac(const std::string &str); - Mac(const char *str); - operator std::string() const; - - }; /* class Mac */ - - std::istream &operator>>(std::istream &input, ctx::Mac &mac); - std::ostream &operator<<(std::ostream &output, const ctx::Mac &mac); - bool operator==(const ctx::Mac &m1, const ctx::Mac &m2); - bool operator!=(const ctx::Mac &m1, const ctx::Mac &m2); - bool operator<(const ctx::Mac &m1, const ctx::Mac &m2); - bool operator>(const ctx::Mac &m1, const ctx::Mac &m2); - -} /* namespace ctx */ - -namespace std { - - template <> struct hash { - size_t operator()(const ctx::Mac & m) const { - size_t h = 1; - for (size_t i = 0; i < ctx::Mac::MAC_SIZE; i++) { - h = h * 37 + m.c[i]; - } - return h; - } - }; - -} /* namespace std */ - -namespace ctx { - - typedef float share_t; - typedef int count_t; - - typedef std::unordered_map Macs2Counts; - typedef std::unordered_map Macs2Shares; - - typedef std::unordered_set MacSet; - - std::istream &operator>>(std::istream &input, ctx::MacSet &macSet); - std::ostream &operator<<(std::ostream &output, const ctx::MacSet &macSet); - ctx::MacSet macSetFromString(const std::string &str); - - std::shared_ptr macSetsUnion(const std::vector> &macSets); - - struct Interval { - time_t start; - time_t end; - - Interval(time_t start, time_t end); - }; - -} /* namespace ctx */ - -namespace std { - - template <> struct hash { - size_t operator()(const ctx::Interval & interval) const { - return interval.end * interval.start; - } - }; - -} /* namespace std */ - -namespace ctx { - - /* - * fully describes interval data after the interval is finished - */ - struct Frame { - Interval interval; - count_t numberOfTimestamps; - Macs2Counts macs2Counts; - - Frame(Interval interval_) : interval(interval_), numberOfTimestamps(0) {}; - }; - - /* - * mac address + its timestamp - */ - struct MacEvent { - time_t timestamp; - Mac mac; - std::string networkName; - - MacEvent(time_t timestamp_, Mac mac_, std::string networkName_ = "") - : timestamp(timestamp_) - , mac(mac_) - , networkName(networkName_) {} - }; - - typedef std::map Categs; // scores of categories - - /* - * location + timestamp + method - */ - struct LocationEvent { - Location coordinates; - time_t timestamp; - - LocationEvent(double latitude_, double longitude_, double accuracy_, time_t timestamp_) : - coordinates(latitude_, longitude_, accuracy_), - timestamp(timestamp_) {} - - void log(); - - }; /* struct LocationEvent */ - - struct Visit { - Interval interval; - std::shared_ptr macSet; - Categs categs; - bool locationValid; - Location location; // makes sense if locationValid == true; - - Visit(Interval interval_, std::shared_ptr macSet_ = std::make_shared(), Categs categs_ = Categs()) : - interval(interval_), - macSet(macSet_), - categs(categs_), - locationValid(false) {} - void setLocation(Location location); - void printShort2Stream(std::ostream &out) const; - - }; /* struct Visit */ - - bool operator==(const Visit &v1, const Visit &v2); - typedef std::vector Visits; - typedef std::vector MacEvents; // used to store current interval logs - - std::shared_ptr macSetFromMacs2Counts(const Macs2Counts &macs2Counts); - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_USER_PLACES_TYPES_H_ */ diff --git a/src/my-place/visit-categer/CMakeLists.txt b/src/my-place/visit-categer/CMakeLists.txt deleted file mode 100644 index f127d61..0000000 --- a/src/my-place/visit-categer/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -SET(target "${target_prefix}-my-place-visit-categer") - -INCLUDE_DIRECTORIES(../utils) - -FILE(GLOB SRCS *.cpp) - -ADD_LIBRARY(${target} SHARED ${SRCS}) -TARGET_LINK_LIBRARIES(${target} ${target_myplace_utils_static}) - -INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target_dir}) \ No newline at end of file diff --git a/src/my-place/visit-categer/Mahal.cpp b/src/my-place/visit-categer/Mahal.cpp deleted file mode 100644 index 4e2a364..0000000 --- a/src/my-place/visit-categer/Mahal.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Mahal.h" -#include -#include - -ctx::num_t ctx::MahalModel::__distance(const std::vector &v1, const std::vector &v2, const std::vector &m) -{ - size_t n = v1.size(); - if (m.size() != n * n) { - _E("m.size() != n * n"); - return 0.0; // this value does not make any sense - } - - std::vector diff(n); - for (size_t i = 0; i < n; i++) { - diff[i] = v2[i] - v1[i]; - } - - num_t dist2 = 0; // squared distance - for (size_t j = 0; j < n; j++) { - for (size_t i = 0; i < n; i++) { - dist2 += m[i * n + j] * diff[i] * diff[j]; - } - } - return sqrt(dist2); -} - -ctx::num_t ctx::MahalModel::distance(const std::vector &v) -{ - return __distance(v, __mean, __sigma); -} diff --git a/src/my-place/visit-categer/Mahal.h b/src/my-place/visit-categer/Mahal.h deleted file mode 100644 index 26e6235..0000000 --- a/src/my-place/visit-categer/Mahal.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_MAHAL_H_ -#define _CONTEXT_PLACE_RECOGNITION_MAHAL_H_ - -#include -#include - -namespace ctx { - - /* - * Class for Mahalanobis distance computation. - */ - class MahalModel { - - private: - std::vector __mean; - std::vector __sigma; // represents square matrix row-wise - static num_t __distance(const std::vector &v1, const std::vector &v2, const std::vector &m); - - public: - MahalModel(std::vector mean, std::vector sigma) : - __mean(mean), - __sigma(sigma) { } - num_t distance(const std::vector &v); - - }; /* class MahalModel */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_MAHAL_H_ */ diff --git a/src/my-place/visit-categer/PiecewiseLin.cpp b/src/my-place/visit-categer/PiecewiseLin.cpp deleted file mode 100644 index fab52c0..0000000 --- a/src/my-place/visit-categer/PiecewiseLin.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "PiecewiseLin.h" -#include - -ctx::PiecewiseLin::PiecewiseLin(std::vector xs, std::vector vs) : - __xs(xs), - __vs(vs), - __n(xs.size()) -{ - if (xs.size() != vs.size()) { - _E("Input arguments have different sizes"); - return; - } -} - -ctx::num_t ctx::PiecewiseLin::value(num_t x) -{ - if (x <= __xs[0]) { - return __vs[0]; - } else if (x >= __xs[__n-1]) { - return __vs[__n - 1]; - } else { - num_t xp = __xs[0]; - for (size_t i = 1; i < __n; i++) { - num_t xn = __xs[i]; - if (x <= xn) { - num_t d = xn - xp; - num_t dxp = x - xp; - num_t dxn = xn - x; - return (dxn * __vs[i-1] + dxp * __vs[i]) / d; - } - xp = xn; - } - } - _E("Function should return result earlier"); - return 0.0; // this value does not make any sense -} diff --git a/src/my-place/visit-categer/PiecewiseLin.h b/src/my-place/visit-categer/PiecewiseLin.h deleted file mode 100644 index 4ff497b..0000000 --- a/src/my-place/visit-categer/PiecewiseLin.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_PIECEWISE_LIN_ -#define _CONTEXT_PLACE_RECOGNITION_PIECEWISE_LIN_ - -#include - -namespace ctx { - - /* - * Piecewise linear function. Used for approximation. - */ - class PiecewiseLin { - - private: - std::vector __xs; // nodes - std::vector __vs; // values in nodes - size_t __n; - - public: - PiecewiseLin(std::vector xs, std::vector vs); - num_t value(num_t x); - - }; /* PiecewiseLin */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_PIECEWISE_LIN_ */ diff --git a/src/my-place/visit-categer/ProbFeaturesModel.h b/src/my-place/visit-categer/ProbFeaturesModel.h deleted file mode 100644 index 141125c..0000000 --- a/src/my-place/visit-categer/ProbFeaturesModel.h +++ /dev/null @@ -1,30291 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_FEATURES_MODEL_H_ -#define _CONTEXT_PLACE_RECOGNITION_FEATURES_MODEL_H_ - -namespace ctx { - -namespace prob_features { - - /* - * Probabilities for whole week with minutes resolution - * from beginning of the week (sunday -> monday midnight) <0, 10080). - * Key is PlaceCategId: - * PLACE_CATEG_ID_HOME - * PLACE_CATEG_ID_WORK - * PLACE_CATEG_ID_OTHER - */ - std::map> weekModel { - { PLACE_CATEG_ID_HOME, - { - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9833333333333330, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9830508474576270, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9827586206896550, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9821428571428570, - 0.9821428571428570, - 0.9821428571428570, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770, - 0.9821428571428570, - 0.9821428571428570, - 0.9821428571428570, - 0.9821428571428570, - 0.9821428571428570, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9636363636363640, - 0.9636363636363640, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9629629629629630, - 0.9629629629629630, - 0.9629629629629630, - 0.9629629629629630, - 0.9629629629629630, - 0.9629629629629630, - 0.9454545454545450, - 0.9454545454545450, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9122807017543860, - 0.9122807017543860, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9245283018867930, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9215686274509800, - 0.9215686274509800, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8490566037735850, - 0.8490566037735850, - 0.8490566037735850, - 0.8490566037735850, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8148148148148150, - 0.8148148148148150, - 0.8148148148148150, - 0.8148148148148150, - 0.8148148148148150, - 0.8113207547169810, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7924528301886790, - 0.7924528301886790, - 0.7924528301886790, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7692307692307690, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7169811320754720, - 0.7169811320754720, - 0.7169811320754720, - 0.7115384615384620, - 0.7000000000000000, - 0.7000000000000000, - 0.6875000000000000, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6666666666666670, - 0.6400000000000000, - 0.6274509803921570, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6078431372549020, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5882352941176470, - 0.5882352941176470, - 0.5882352941176470, - 0.5882352941176470, - 0.5882352941176470, - 0.5769230769230770, - 0.5769230769230770, - 0.5600000000000000, - 0.5490196078431370, - 0.5208333333333330, - 0.5208333333333330, - 0.5208333333333330, - 0.5208333333333330, - 0.5208333333333330, - 0.5102040816326530, - 0.4893617021276600, - 0.4893617021276600, - 0.4893617021276600, - 0.4893617021276600, - 0.4444444444444440, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4255319148936170, - 0.4130434782608700, - 0.4130434782608700, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3478260869565220, - 0.3478260869565220, - 0.3478260869565220, - 0.3478260869565220, - 0.3478260869565220, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3111111111111110, - 0.3111111111111110, - 0.2790697674418600, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2666666666666670, - 0.2666666666666670, - 0.2666666666666670, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2244897959183670, - 0.2244897959183670, - 0.2200000000000000, - 0.2156862745098040, - 0.2156862745098040, - 0.2156862745098040, - 0.2075471698113210, - 0.2075471698113210, - 0.1923076923076920, - 0.1923076923076920, - 0.1886792452830190, - 0.1886792452830190, - 0.1886792452830190, - 0.1886792452830190, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1481481481481480, - 0.1481481481481480, - 0.1428571428571430, - 0.1428571428571430, - 0.1379310344827590, - 0.1379310344827590, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1034482758620690, - 0.1034482758620690, - 0.1000000000000000, - 0.1000000000000000, - 0.0983606557377049, - 0.0983606557377049, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0677966101694915, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0819672131147541, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0862068965517241, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.1034482758620690, - 0.1034482758620690, - 0.1034482758620690, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1090909090909090, - 0.1090909090909090, - 0.1111111111111110, - 0.1111111111111110, - 0.1090909090909090, - 0.1111111111111110, - 0.1090909090909090, - 0.1111111111111110, - 0.1132075471698110, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1320754716981130, - 0.1320754716981130, - 0.1346153846153850, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1481481481481480, - 0.1636363636363640, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1578947368421050, - 0.1724137931034480, - 0.1724137931034480, - 0.1754385964912280, - 0.1785714285714290, - 0.1785714285714290, - 0.1818181818181820, - 0.1851851851851850, - 0.1851851851851850, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1785714285714290, - 0.1851851851851850, - 0.1851851851851850, - 0.1818181818181820, - 0.1964285714285710, - 0.1818181818181820, - 0.1818181818181820, - 0.1964285714285710, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.2105263157894740, - 0.2142857142857140, - 0.2321428571428570, - 0.2280701754385960, - 0.2280701754385960, - 0.2321428571428570, - 0.2321428571428570, - 0.2500000000000000, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2500000000000000, - 0.2500000000000000, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2592592592592590, - 0.2545454545454540, - 0.2545454545454540, - 0.2592592592592590, - 0.2592592592592590, - 0.2592592592592590, - 0.2777777777777780, - 0.2777777777777780, - 0.2641509433962260, - 0.2692307692307690, - 0.2692307692307690, - 0.2745098039215690, - 0.2830188679245280, - 0.2884615384615380, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.2884615384615380, - 0.2941176470588230, - 0.2884615384615380, - 0.2884615384615380, - 0.3000000000000000, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.3000000000000000, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.3265306122448980, - 0.3265306122448980, - 0.3200000000000000, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3478260869565220, - 0.3695652173913040, - 0.3695652173913040, - 0.3695652173913040, - 0.4130434782608700, - 0.4130434782608700, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4489795918367350, - 0.4888888888888890, - 0.5000000000000000, - 0.5000000000000000, - 0.5000000000000000, - 0.5000000000000000, - 0.5116279069767440, - 0.5116279069767440, - 0.5116279069767440, - 0.5238095238095240, - 0.5238095238095240, - 0.5365853658536590, - 0.5365853658536590, - 0.5348837209302320, - 0.5348837209302320, - 0.5227272727272730, - 0.5348837209302320, - 0.5348837209302320, - 0.5348837209302320, - 0.5227272727272730, - 0.5227272727272730, - 0.5000000000000000, - 0.5000000000000000, - 0.5111111111111110, - 0.5111111111111110, - 0.5227272727272730, - 0.5227272727272730, - 0.4893617021276600, - 0.5000000000000000, - 0.5102040816326530, - 0.5102040816326530, - 0.5200000000000000, - 0.5306122448979590, - 0.5200000000000000, - 0.5294117647058820, - 0.5294117647058820, - 0.5294117647058820, - 0.5192307692307690, - 0.5094339622641510, - 0.5094339622641510, - 0.5094339622641510, - 0.5294117647058820, - 0.5384615384615380, - 0.5471698113207550, - 0.5471698113207550, - 0.5471698113207550, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5636363636363640, - 0.5535714285714290, - 0.5535714285714290, - 0.5535714285714290, - 0.5636363636363640, - 0.5714285714285710, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5925925925925930, - 0.5925925925925930, - 0.5925925925925930, - 0.5925925925925930, - 0.5818181818181820, - 0.5925925925925930, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6956521739130430, - 0.7111111111111110, - 0.7111111111111110, - 0.7111111111111110, - 0.7272727272727270, - 0.7272727272727270, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7826086956521740, - 0.7826086956521740, - 0.7826086956521740, - 0.7872340425531920, - 0.7872340425531920, - 0.7872340425531920, - 0.7708333333333330, - 0.7400000000000000, - 0.7400000000000000, - 0.7551020408163260, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7058823529411760, - 0.7058823529411760, - 0.7115384615384620, - 0.7115384615384620, - 0.7115384615384620, - 0.7169811320754720, - 0.7169811320754720, - 0.7307692307692310, - 0.7307692307692310, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7600000000000000, - 0.7600000000000000, - 0.7647058823529410, - 0.7647058823529410, - 0.7500000000000000, - 0.7500000000000000, - 0.7800000000000000, - 0.7800000000000000, - 0.7692307692307690, - 0.7647058823529410, - 0.7647058823529410, - 0.7800000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8200000000000000, - 0.8200000000000000, - 0.8039215686274510, - 0.8039215686274510, - 0.8039215686274510, - 0.8039215686274510, - 0.8235294117647060, - 0.8076923076923080, - 0.7924528301886790, - 0.7924528301886790, - 0.7924528301886790, - 0.7884615384615380, - 0.8076923076923080, - 0.8076923076923080, - 0.8076923076923080, - 0.8113207547169810, - 0.8113207547169810, - 0.8148148148148150, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8148148148148150, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8333333333333330, - 0.8518518518518520, - 0.8545454545454550, - 0.8545454545454550, - 0.8571428571428570, - 0.8571428571428570, - 0.8596491228070170, - 0.8596491228070170, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8500000000000000, - 0.8500000000000000, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8793103448275860, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8620689655172410, - 0.8620689655172410, - 0.8771929824561400, - 0.8793103448275860, - 0.8813559322033900, - 0.8813559322033900, - 0.8965517241379310, - 0.8965517241379310, - 0.8965517241379310, - 0.8965517241379310, - 0.8965517241379310, - 0.8965517241379310, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8793103448275860, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.9000000000000000, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9137931034482760, - 0.9137931034482760, - 0.9137931034482760, - 0.9137931034482760, - 0.9137931034482760, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9016393442622950, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9062500000000000, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9508196721311470, - 0.9508196721311470, - 0.9508196721311470, - 0.9508196721311470, - 0.9516129032258060, - 0.9516129032258060, - 0.9523809523809520, - 0.9523809523809520, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9836065573770490, - 0.9836065573770490, - 0.9836065573770490, - 0.9836065573770490, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9838709677419350, - 0.9841269841269840, - 0.9841269841269840, - 0.9841269841269840, - 0.9841269841269840, - 0.9841269841269840, - 0.9841269841269840, - 0.9843750000000000, - 0.9843750000000000, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9848484848484850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9846153846153850, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 0.9843750000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 1.0000000000000000, - 0.9661016949152540, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9473684210526320, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9137931034482760, - 0.9122807017543860, - 0.9122807017543860, - 0.9122807017543860, - 0.9122807017543860, - 0.9107142857142860, - 0.9272727272727270, - 0.9107142857142860, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.8947368421052630, - 0.9107142857142860, - 0.9107142857142860, - 0.9107142857142860, - 0.9107142857142860, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8727272727272730, - 0.8888888888888890, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8490566037735850, - 0.8490566037735850, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8000000000000000, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7818181818181820, - 0.7777777777777780, - 0.7454545454545450, - 0.7454545454545450, - 0.7407407407407410, - 0.7407407407407410, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7307692307692310, - 0.7254901960784310, - 0.7254901960784310, - 0.7254901960784310, - 0.7254901960784310, - 0.7058823529411760, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.6800000000000000, - 0.6800000000000000, - 0.6666666666666670, - 0.6666666666666670, - 0.6600000000000000, - 0.6600000000000000, - 0.6600000000000000, - 0.6470588235294120, - 0.6346153846153850, - 0.6037735849056600, - 0.6037735849056600, - 0.5961538461538460, - 0.5769230769230770, - 0.5576923076923080, - 0.5576923076923080, - 0.5576923076923080, - 0.5471698113207550, - 0.5471698113207550, - 0.5471698113207550, - 0.5471698113207550, - 0.5471698113207550, - 0.5471698113207550, - 0.5294117647058820, - 0.5294117647058820, - 0.5294117647058820, - 0.5294117647058820, - 0.5200000000000000, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5200000000000000, - 0.5200000000000000, - 0.5200000000000000, - 0.5200000000000000, - 0.5200000000000000, - 0.5200000000000000, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5000000000000000, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4509803921568630, - 0.4600000000000000, - 0.4285714285714290, - 0.4285714285714290, - 0.4285714285714290, - 0.4285714285714290, - 0.3958333333333330, - 0.3958333333333330, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3541666666666670, - 0.3333333333333330, - 0.3265306122448980, - 0.3265306122448980, - 0.3061224489795920, - 0.3000000000000000, - 0.2941176470588230, - 0.2941176470588230, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2340425531914890, - 0.2340425531914890, - 0.2391304347826090, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2045454545454550, - 0.1956521739130430, - 0.1914893617021280, - 0.1875000000000000, - 0.1632653061224490, - 0.1632653061224490, - 0.1600000000000000, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1403508771929820, - 0.1403508771929820, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1166666666666670, - 0.1166666666666670, - 0.1166666666666670, - 0.1166666666666670, - 0.1166666666666670, - 0.1166666666666670, - 0.1147540983606560, - 0.1147540983606560, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.0967741935483871, - 0.0967741935483871, - 0.1093750000000000, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0769230769230769, - 0.0769230769230769, - 0.0781250000000000, - 0.0781250000000000, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0491803278688525, - 0.0491803278688525, - 0.0500000000000000, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0476190476190476, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0468750000000000, - 0.0476190476190476, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0476190476190476, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0333333333333333, - 0.0344827586206897, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0357142857142857, - 0.0363636363636364, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0363636363636364, - 0.0370370370370370, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0317460317460317, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0937500000000000, - 0.0952380952380952, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.1000000000000000, - 0.1147540983606560, - 0.1147540983606560, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1311475409836070, - 0.1333333333333330, - 0.1355932203389830, - 0.1355932203389830, - 0.1333333333333330, - 0.1333333333333330, - 0.1290322580645160, - 0.1269841269841270, - 0.1406250000000000, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1562500000000000, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1562500000000000, - 0.1562500000000000, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1562500000000000, - 0.1562500000000000, - 0.1562500000000000, - 0.1562500000000000, - 0.1562500000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1718750000000000, - 0.1846153846153850, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1904761904761900, - 0.1774193548387100, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1864406779661020, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1929824561403510, - 0.2000000000000000, - 0.1964285714285710, - 0.1964285714285710, - 0.2000000000000000, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2115384615384620, - 0.2222222222222220, - 0.2222222222222220, - 0.2181818181818180, - 0.2181818181818180, - 0.2142857142857140, - 0.2142857142857140, - 0.2142857142857140, - 0.2241379310344830, - 0.2241379310344830, - 0.2280701754385960, - 0.2321428571428570, - 0.2363636363636360, - 0.2321428571428570, - 0.2321428571428570, - 0.2321428571428570, - 0.2321428571428570, - 0.2407407407407410, - 0.2592592592592590, - 0.2745098039215690, - 0.2745098039215690, - 0.2884615384615380, - 0.3000000000000000, - 0.3265306122448980, - 0.3265306122448980, - 0.3400000000000000, - 0.3400000000000000, - 0.3400000000000000, - 0.3400000000000000, - 0.3333333333333330, - 0.3333333333333330, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3541666666666670, - 0.3541666666666670, - 0.3400000000000000, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3653846153846150, - 0.3888888888888890, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4181818181818180, - 0.4181818181818180, - 0.4181818181818180, - 0.4385964912280700, - 0.4285714285714290, - 0.4285714285714290, - 0.4285714285714290, - 0.4285714285714290, - 0.4285714285714290, - 0.4464285714285710, - 0.4545454545454550, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4705882352941180, - 0.5000000000000000, - 0.5098039215686270, - 0.5098039215686270, - 0.5192307692307690, - 0.5098039215686270, - 0.5098039215686270, - 0.5098039215686270, - 0.5000000000000000, - 0.5000000000000000, - 0.4905660377358490, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4727272727272730, - 0.4727272727272730, - 0.4727272727272730, - 0.4727272727272730, - 0.4727272727272730, - 0.4807692307692310, - 0.4807692307692310, - 0.4807692307692310, - 0.4905660377358490, - 0.5000000000000000, - 0.5000000000000000, - 0.4909090909090910, - 0.4909090909090910, - 0.5192307692307690, - 0.5370370370370370, - 0.5370370370370370, - 0.5370370370370370, - 0.5576923076923080, - 0.5576923076923080, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.6170212765957450, - 0.6304347826086960, - 0.6304347826086960, - 0.6666666666666670, - 0.6739130434782610, - 0.6808510638297870, - 0.6458333333333330, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6458333333333330, - 0.6458333333333330, - 0.6530612244897960, - 0.6666666666666670, - 0.6666666666666670, - 0.6875000000000000, - 0.6938775510204080, - 0.7083333333333330, - 0.7234042553191490, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.6938775510204080, - 0.6938775510204080, - 0.7000000000000000, - 0.7000000000000000, - 0.7058823529411760, - 0.7058823529411760, - 0.6923076923076920, - 0.6923076923076920, - 0.6981132075471700, - 0.7169811320754720, - 0.7500000000000000, - 0.7500000000000000, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7358490566037730, - 0.7407407407407410, - 0.7547169811320760, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7272727272727270, - 0.7454545454545450, - 0.7321428571428570, - 0.7321428571428570, - 0.7321428571428570, - 0.7321428571428570, - 0.7368421052631580, - 0.7368421052631580, - 0.7241379310344830, - 0.7241379310344830, - 0.7241379310344830, - 0.7241379310344830, - 0.7288135593220340, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7213114754098360, - 0.7258064516129030, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7419354838709680, - 0.7419354838709680, - 0.7419354838709680, - 0.7666666666666670, - 0.7666666666666670, - 0.7666666666666670, - 0.7666666666666670, - 0.7666666666666670, - 0.7796610169491530, - 0.8214285714285710, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.7758620689655170, - 0.7758620689655170, - 0.7796610169491530, - 0.7833333333333330, - 0.7868852459016390, - 0.8000000000000000, - 0.7868852459016390, - 0.7868852459016390, - 0.7868852459016390, - 0.7903225806451610, - 0.7903225806451610, - 0.7903225806451610, - 0.7903225806451610, - 0.8032786885245900, - 0.8032786885245900, - 0.7903225806451610, - 0.7903225806451610, - 0.7936507936507940, - 0.7846153846153850, - 0.7846153846153850, - 0.7846153846153850, - 0.7846153846153850, - 0.7968750000000000, - 0.7968750000000000, - 0.7968750000000000, - 0.7846153846153850, - 0.7846153846153850, - 0.7846153846153850, - 0.7846153846153850, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8125000000000000, - 0.8225806451612900, - 0.8225806451612900, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8793103448275860, - 0.8793103448275860, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8906250000000000, - 0.8906250000000000, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8730158730158730, - 0.8888888888888890, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9230769230769230, - 0.9230769230769230, - 0.9230769230769230, - 0.9230769230769230, - 0.9230769230769230, - 0.9230769230769230, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9242424242424240, - 0.9253731343283580, - 0.9264705882352940, - 0.9264705882352940, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9285714285714290, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9420289855072460, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9565217391304350, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9705882352941180, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9701492537313430, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9696969696969700, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9692307692307690, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9692307692307690, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9365079365079360, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9193548387096770, - 0.9193548387096770, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9333333333333330, - 0.9322033898305080, - 0.9322033898305080, - 0.9322033898305080, - 0.9322033898305080, - 0.9166666666666670, - 0.9322033898305080, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8852459016393440, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8793103448275860, - 0.8793103448275860, - 0.8793103448275860, - 0.8793103448275860, - 0.8793103448275860, - 0.8644067796610170, - 0.8666666666666670, - 0.8524590163934430, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8474576271186440, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8166666666666670, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8000000000000000, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.7636363636363640, - 0.7592592592592590, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7500000000000000, - 0.7450980392156860, - 0.7346938775510200, - 0.7200000000000000, - 0.7200000000000000, - 0.7058823529411760, - 0.7000000000000000, - 0.6862745098039220, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6538461538461540, - 0.6470588235294120, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6226415094339620, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5818181818181820, - 0.5818181818181820, - 0.5818181818181820, - 0.5714285714285710, - 0.5714285714285710, - 0.5614035087719300, - 0.5517241379310340, - 0.5272727272727270, - 0.5272727272727270, - 0.5272727272727270, - 0.5272727272727270, - 0.5178571428571430, - 0.5178571428571430, - 0.4909090909090910, - 0.4821428571428570, - 0.4821428571428570, - 0.4736842105263160, - 0.4482758620689660, - 0.4482758620689660, - 0.4385964912280700, - 0.4385964912280700, - 0.4385964912280700, - 0.4385964912280700, - 0.4385964912280700, - 0.4385964912280700, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3888888888888890, - 0.3818181818181820, - 0.3818181818181820, - 0.3703703703703700, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3518518518518520, - 0.3137254901960780, - 0.2941176470588230, - 0.2800000000000000, - 0.2653061224489800, - 0.2653061224489800, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2200000000000000, - 0.2156862745098040, - 0.2156862745098040, - 0.2156862745098040, - 0.2115384615384620, - 0.2115384615384620, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.1886792452830190, - 0.1886792452830190, - 0.1886792452830190, - 0.1886792452830190, - 0.1851851851851850, - 0.1851851851851850, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1694915254237290, - 0.1694915254237290, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1612903225806450, - 0.1406250000000000, - 0.1406250000000000, - 0.1384615384615380, - 0.1384615384615380, - 0.1406250000000000, - 0.1406250000000000, - 0.1384615384615380, - 0.1384615384615380, - 0.1363636363636360, - 0.1363636363636360, - 0.1363636363636360, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1323529411764710, - 0.1304347826086960, - 0.1304347826086960, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1285714285714290, - 0.1267605633802820, - 0.1142857142857140, - 0.1142857142857140, - 0.1159420289855070, - 0.1159420289855070, - 0.1159420289855070, - 0.1029411764705880, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0869565217391304, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0857142857142857, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0735294117647059, - 0.0724637681159420, - 0.0735294117647059, - 0.0746268656716418, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0781250000000000, - 0.0769230769230769, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0769230769230769, - 0.0781250000000000, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0625000000000000, - 0.0625000000000000, - 0.0615384615384615, - 0.0615384615384615, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0645161290322581, - 0.0634920634920635, - 0.0634920634920635, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0645161290322581, - 0.0645161290322581, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0645161290322581, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0606060606060606, - 0.0579710144927536, - 0.0579710144927536, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0563380281690141, - 0.0563380281690141, - 0.0571428571428571, - 0.0579710144927536, - 0.0588235294117647, - 0.0588235294117647, - 0.0597014925373134, - 0.0606060606060606, - 0.0597014925373134, - 0.0588235294117647, - 0.0579710144927536, - 0.0571428571428571, - 0.0571428571428571, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0735294117647059, - 0.0735294117647059, - 0.0746268656716418, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0724637681159420, - 0.0724637681159420, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0704225352112676, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0684931506849315, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0694444444444444, - 0.0694444444444444, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0555555555555556, - 0.0555555555555556, - 0.0563380281690141, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0422535211267606, - 0.0428571428571429, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0428571428571429, - 0.0434782608695652, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0735294117647059, - 0.0735294117647059, - 0.0724637681159420, - 0.0735294117647059, - 0.0724637681159420, - 0.0857142857142857, - 0.0857142857142857, - 0.0985915492957746, - 0.0985915492957746, - 0.1000000000000000, - 0.1014492753623190, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1194029850746270, - 0.1194029850746270, - 0.1194029850746270, - 0.1194029850746270, - 0.1194029850746270, - 0.1194029850746270, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1470588235294120, - 0.1449275362318840, - 0.1449275362318840, - 0.1449275362318840, - 0.1470588235294120, - 0.1470588235294120, - 0.1449275362318840, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1323529411764710, - 0.1343283582089550, - 0.1212121212121210, - 0.1194029850746270, - 0.1194029850746270, - 0.1212121212121210, - 0.1194029850746270, - 0.1194029850746270, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1470588235294120, - 0.1492537313432840, - 0.1515151515151520, - 0.1515151515151520, - 0.1515151515151520, - 0.1515151515151520, - 0.1515151515151520, - 0.1538461538461540, - 0.1538461538461540, - 0.1666666666666670, - 0.1666666666666670, - 0.1791044776119400, - 0.1791044776119400, - 0.1818181818181820, - 0.1875000000000000, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1774193548387100, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1666666666666670, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1833333333333330, - 0.1833333333333330, - 0.2131147540983610, - 0.2166666666666670, - 0.2166666666666670, - 0.2131147540983610, - 0.2258064516129030, - 0.2258064516129030, - 0.2258064516129030, - 0.2258064516129030, - 0.2258064516129030, - 0.2295081967213110, - 0.2295081967213110, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2372881355932200, - 0.2456140350877190, - 0.2363636363636360, - 0.2631578947368420, - 0.2631578947368420, - 0.2586206896551720, - 0.2631578947368420, - 0.2631578947368420, - 0.2678571428571430, - 0.2727272727272730, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2909090909090910, - 0.2962962962962960, - 0.2830188679245280, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3750000000000000, - 0.3750000000000000, - 0.3750000000000000, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3877551020408160, - 0.3958333333333330, - 0.3958333333333330, - 0.4081632653061220, - 0.4038461538461540, - 0.4074074074074070, - 0.4035087719298250, - 0.3965517241379310, - 0.3965517241379310, - 0.4067796610169490, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4237288135593220, - 0.4237288135593220, - 0.4237288135593220, - 0.4310344827586210, - 0.4310344827586210, - 0.4237288135593220, - 0.4237288135593220, - 0.4237288135593220, - 0.4333333333333330, - 0.4426229508196720, - 0.4426229508196720, - 0.4516129032258060, - 0.4516129032258060, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4531250000000000, - 0.4461538461538460, - 0.4461538461538460, - 0.4285714285714290, - 0.4354838709677420, - 0.4262295081967210, - 0.4482758620689660, - 0.4482758620689660, - 0.4406779661016950, - 0.4406779661016950, - 0.4406779661016950, - 0.4576271186440680, - 0.4590163934426230, - 0.4677419354838710, - 0.4915254237288140, - 0.4915254237288140, - 0.4915254237288140, - 0.5000000000000000, - 0.5081967213114750, - 0.5081967213114750, - 0.5081967213114750, - 0.5081967213114750, - 0.5166666666666670, - 0.5166666666666670, - 0.5166666666666670, - 0.5166666666666670, - 0.5081967213114750, - 0.5081967213114750, - 0.5081967213114750, - 0.5000000000000000, - 0.5084745762711860, - 0.5084745762711860, - 0.5000000000000000, - 0.5000000000000000, - 0.5081967213114750, - 0.5161290322580650, - 0.5076923076923080, - 0.5156250000000000, - 0.5238095238095240, - 0.5238095238095240, - 0.5238095238095240, - 0.5245901639344260, - 0.5333333333333330, - 0.5245901639344260, - 0.5500000000000000, - 0.5500000000000000, - 0.5573770491803280, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5645161290322580, - 0.5625000000000000, - 0.5538461538461540, - 0.5454545454545450, - 0.5454545454545450, - 0.5454545454545450, - 0.5454545454545450, - 0.5384615384615380, - 0.5384615384615380, - 0.5384615384615380, - 0.5454545454545450, - 0.5588235294117650, - 0.5588235294117650, - 0.5671641791044780, - 0.5588235294117650, - 0.5588235294117650, - 0.5588235294117650, - 0.5757575757575760, - 0.5757575757575760, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6290322580645160, - 0.6290322580645160, - 0.6290322580645160, - 0.6393442622950820, - 0.6393442622950820, - 0.6393442622950820, - 0.6271186440677970, - 0.6271186440677970, - 0.6271186440677970, - 0.6206896551724140, - 0.6206896551724140, - 0.6206896551724140, - 0.6428571428571430, - 0.6428571428571430, - 0.6315789473684210, - 0.6428571428571430, - 0.6428571428571430, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6481481481481480, - 0.6481481481481480, - 0.6296296296296300, - 0.6296296296296300, - 0.6415094339622640, - 0.6296296296296300, - 0.6415094339622640, - 0.6226415094339620, - 0.6181818181818180, - 0.6296296296296300, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6315789473684210, - 0.6428571428571430, - 0.6545454545454550, - 0.6607142857142860, - 0.6607142857142860, - 0.6607142857142860, - 0.6724137931034480, - 0.6724137931034480, - 0.6779661016949150, - 0.6779661016949150, - 0.6833333333333330, - 0.6833333333333330, - 0.7000000000000000, - 0.7000000000000000, - 0.7166666666666670, - 0.7166666666666670, - 0.7118644067796610, - 0.7118644067796610, - 0.7241379310344830, - 0.7241379310344830, - 0.7368421052631580, - 0.7368421052631580, - 0.7368421052631580, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7166666666666670, - 0.7049180327868850, - 0.7049180327868850, - 0.7049180327868850, - 0.7049180327868850, - 0.6935483870967740, - 0.6935483870967740, - 0.6935483870967740, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.6923076923076920, - 0.6923076923076920, - 0.6969696969696970, - 0.6969696969696970, - 0.7076923076923080, - 0.7076923076923080, - 0.6969696969696970, - 0.6969696969696970, - 0.6865671641791040, - 0.6865671641791040, - 0.6865671641791040, - 0.6911764705882350, - 0.6911764705882350, - 0.6911764705882350, - 0.6911764705882350, - 0.7014925373134330, - 0.7058823529411760, - 0.7058823529411760, - 0.7164179104477610, - 0.7164179104477610, - 0.7164179104477610, - 0.7164179104477610, - 0.7164179104477610, - 0.7164179104477610, - 0.7246376811594200, - 0.7246376811594200, - 0.7352941176470590, - 0.7352941176470590, - 0.7352941176470590, - 0.7352941176470590, - 0.7352941176470590, - 0.7352941176470590, - 0.7352941176470590, - 0.7462686567164180, - 0.7462686567164180, - 0.7575757575757580, - 0.7611940298507460, - 0.7611940298507460, - 0.7647058823529410, - 0.7681159420289850, - 0.7681159420289850, - 0.7681159420289850, - 0.7681159420289850, - 0.7681159420289850, - 0.7681159420289850, - 0.7826086956521740, - 0.7941176470588230, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8059701492537310, - 0.8181818181818180, - 0.8307692307692310, - 0.8307692307692310, - 0.8437500000000000, - 0.8437500000000000, - 0.8437500000000000, - 0.8461538461538460, - 0.8461538461538460, - 0.8484848484848480, - 0.8484848484848480, - 0.8484848484848480, - 0.8484848484848480, - 0.8507462686567160, - 0.8571428571428570, - 0.8571428571428570, - 0.8695652173913040, - 0.8695652173913040, - 0.8695652173913040, - 0.8695652173913040, - 0.8695652173913040, - 0.8695652173913040, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8656716417910450, - 0.8636363636363640, - 0.8636363636363640, - 0.8636363636363640, - 0.8636363636363640, - 0.8636363636363640, - 0.8636363636363640, - 0.8656716417910450, - 0.8656716417910450, - 0.8695652173913040, - 0.8695652173913040, - 0.8695652173913040, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8636363636363640, - 0.8636363636363640, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8769230769230770, - 0.8906250000000000, - 0.8906250000000000, - 0.8906250000000000, - 0.8923076923076920, - 0.8923076923076920, - 0.8923076923076920, - 0.8923076923076920, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.9000000000000000, - 0.9000000000000000, - 0.9014084507042250, - 0.9014084507042250, - 0.9014084507042250, - 0.9014084507042250, - 0.9014084507042250, - 0.9014084507042250, - 0.9014084507042250, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9305555555555560, - 0.9305555555555560, - 0.9305555555555560, - 0.9305555555555560, - 0.9305555555555560, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9315068493150680, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9324324324324320, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9459459459459460, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9452054794520550, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9444444444444440, - 0.9577464788732390, - 0.9577464788732390, - 0.9577464788732390, - 0.9577464788732390, - 0.9577464788732390, - 0.9577464788732390, - 0.9577464788732390, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9571428571428570, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9558823529411760, - 0.9545454545454550, - 0.9545454545454550, - 0.9545454545454550, - 0.9545454545454550, - 0.9538461538461540, - 0.9538461538461540, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9672131147540980, - 0.9672131147540980, - 0.9672131147540980, - 0.9672131147540980, - 0.9672131147540980, - 0.9672131147540980, - 0.9666666666666670, - 0.9661016949152540, - 0.9661016949152540, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9491525423728810, - 0.9491525423728810, - 0.9491525423728810, - 0.9333333333333330, - 0.9333333333333330, - 0.9322033898305080, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9137931034482760, - 0.9137931034482760, - 0.9137931034482760, - 0.8983050847457630, - 0.8983050847457630, - 0.8965517241379310, - 0.8813559322033900, - 0.8813559322033900, - 0.8793103448275860, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8474576271186440, - 0.8474576271186440, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.7868852459016390, - 0.7868852459016390, - 0.7868852459016390, - 0.7833333333333330, - 0.7833333333333330, - 0.7833333333333330, - 0.7833333333333330, - 0.7704918032786880, - 0.7704918032786880, - 0.7704918032786880, - 0.7704918032786880, - 0.7704918032786880, - 0.7580645161290320, - 0.7540983606557380, - 0.7419354838709680, - 0.7377049180327870, - 0.7377049180327870, - 0.7288135593220340, - 0.7118644067796610, - 0.7118644067796610, - 0.7068965517241380, - 0.7068965517241380, - 0.7017543859649120, - 0.6964285714285710, - 0.6964285714285710, - 0.6842105263157900, - 0.6842105263157900, - 0.6842105263157900, - 0.6842105263157900, - 0.6785714285714290, - 0.6785714285714290, - 0.6785714285714290, - 0.6785714285714290, - 0.6785714285714290, - 0.6666666666666670, - 0.6551724137931030, - 0.6379310344827590, - 0.6271186440677970, - 0.6206896551724140, - 0.5964912280701750, - 0.5964912280701750, - 0.5789473684210530, - 0.5689655172413790, - 0.5689655172413790, - 0.5689655172413790, - 0.5689655172413790, - 0.5689655172413790, - 0.5593220338983050, - 0.5593220338983050, - 0.5593220338983050, - 0.5593220338983050, - 0.5500000000000000, - 0.5423728813559320, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5333333333333330, - 0.5423728813559320, - 0.5423728813559320, - 0.5333333333333330, - 0.5166666666666670, - 0.5333333333333330, - 0.5254237288135590, - 0.5254237288135590, - 0.5254237288135590, - 0.5333333333333330, - 0.5245901639344260, - 0.5081967213114750, - 0.4736842105263160, - 0.4655172413793100, - 0.4576271186440680, - 0.4482758620689660, - 0.4406779661016950, - 0.4406779661016950, - 0.4310344827586210, - 0.4310344827586210, - 0.4310344827586210, - 0.4310344827586210, - 0.4137931034482760, - 0.4137931034482760, - 0.3818181818181820, - 0.3818181818181820, - 0.3396226415094340, - 0.3333333333333330, - 0.3272727272727270, - 0.3272727272727270, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.2962962962962960, - 0.2962962962962960, - 0.2830188679245280, - 0.2549019607843140, - 0.2600000000000000, - 0.2448979591836730, - 0.2400000000000000, - 0.2400000000000000, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2264150943396230, - 0.2068965517241380, - 0.2068965517241380, - 0.2068965517241380, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1864406779661020, - 0.1864406779661020, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1639344262295080, - 0.1451612903225810, - 0.1451612903225810, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1230769230769230, - 0.1230769230769230, - 0.1230769230769230, - 0.1230769230769230, - 0.1230769230769230, - 0.1212121212121210, - 0.1212121212121210, - 0.1212121212121210, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1044776119402990, - 0.1029411764705880, - 0.1044776119402990, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0597014925373134, - 0.0606060606060606, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0606060606060606, - 0.0606060606060606, - 0.0746268656716418, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0746268656716418, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0869565217391304, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1029411764705880, - 0.0909090909090909, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0937500000000000, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1029411764705880, - 0.1029411764705880, - 0.0895522388059701, - 0.0909090909090909, - 0.0909090909090909, - 0.0923076923076923, - 0.0909090909090909, - 0.0909090909090909, - 0.0923076923076923, - 0.0952380952380952, - 0.0952380952380952, - 0.0967741935483871, - 0.1000000000000000, - 0.1000000000000000, - 0.1016949152542370, - 0.0967741935483871, - 0.0833333333333333, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.1111111111111110, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1076923076923080, - 0.1093750000000000, - 0.1111111111111110, - 0.1093750000000000, - 0.1111111111111110, - 0.1111111111111110, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0983606557377049, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0862068965517241, - 0.0862068965517241, - 0.0833333333333333, - 0.0833333333333333, - 0.0806451612903226, - 0.0819672131147541, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0833333333333333, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0757575757575758, - 0.0757575757575758, - 0.0769230769230769, - 0.0769230769230769, - 0.0781250000000000, - 0.0781250000000000, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0952380952380952, - 0.0967741935483871, - 0.0983606557377049, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1016949152542370, - 0.1016949152542370, - 0.1186440677966100, - 0.1147540983606560, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1269841269841270, - 0.1269841269841270, - 0.1290322580645160, - 0.1290322580645160, - 0.1269841269841270, - 0.1290322580645160, - 0.1290322580645160, - 0.1311475409836070, - 0.1311475409836070, - 0.1290322580645160, - 0.1311475409836070, - 0.1451612903225810, - 0.1333333333333330, - 0.1311475409836070, - 0.1475409836065570, - 0.1475409836065570, - 0.1500000000000000, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1774193548387100, - 0.1904761904761900, - 0.1935483870967740, - 0.1967213114754100, - 0.1967213114754100, - 0.1833333333333330, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1896551724137930, - 0.2033898305084750, - 0.2000000000000000, - 0.1967213114754100, - 0.1833333333333330, - 0.1833333333333330, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1724137931034480, - 0.1864406779661020, - 0.1896551724137930, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1694915254237290, - 0.1833333333333330, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1833333333333330, - 0.1833333333333330, - 0.1864406779661020, - 0.1864406779661020, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.2105263157894740, - 0.2068965517241380, - 0.2068965517241380, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2280701754385960, - 0.2280701754385960, - 0.2321428571428570, - 0.2321428571428570, - 0.2321428571428570, - 0.2280701754385960, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2280701754385960, - 0.2000000000000000, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1964285714285710, - 0.2241379310344830, - 0.2280701754385960, - 0.2280701754385960, - 0.2321428571428570, - 0.2407407407407410, - 0.2407407407407410, - 0.2407407407407410, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2307692307692310, - 0.2307692307692310, - 0.2352941176470590, - 0.2352941176470590, - 0.2400000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2884615384615380, - 0.2884615384615380, - 0.2884615384615380, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2982456140350880, - 0.2982456140350880, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3148148148148150, - 0.3396226415094340, - 0.3396226415094340, - 0.3461538461538460, - 0.3461538461538460, - 0.3461538461538460, - 0.3529411764705880, - 0.3529411764705880, - 0.3584905660377360, - 0.3888888888888890, - 0.3888888888888890, - 0.3962264150943400, - 0.3888888888888890, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.4038461538461540, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4285714285714290, - 0.4285714285714290, - 0.4200000000000000, - 0.4117647058823530, - 0.4230769230769230, - 0.4117647058823530, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4313725490196080, - 0.4230769230769230, - 0.4400000000000000, - 0.4400000000000000, - 0.4400000000000000, - 0.4509803921568630, - 0.4615384615384620, - 0.4615384615384620, - 0.4807692307692310, - 0.4807692307692310, - 0.4901960784313730, - 0.4901960784313730, - 0.5098039215686270, - 0.5098039215686270, - 0.5000000000000000, - 0.5192307692307690, - 0.5294117647058820, - 0.5490196078431370, - 0.5490196078431370, - 0.5600000000000000, - 0.5576923076923080, - 0.5686274509803920, - 0.5800000000000000, - 0.5800000000000000, - 0.5882352941176470, - 0.6000000000000000, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6226415094339620, - 0.6296296296296300, - 0.6296296296296300, - 0.6415094339622640, - 0.6481481481481480, - 0.6415094339622640, - 0.6415094339622640, - 0.6538461538461540, - 0.6538461538461540, - 0.6603773584905660, - 0.6603773584905660, - 0.6666666666666670, - 0.6800000000000000, - 0.6730769230769230, - 0.6666666666666670, - 0.6923076923076920, - 0.6923076923076920, - 0.6792452830188680, - 0.6923076923076920, - 0.6981132075471700, - 0.6981132075471700, - 0.6981132075471700, - 0.6981132075471700, - 0.6981132075471700, - 0.7115384615384620, - 0.7115384615384620, - 0.7254901960784310, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7222222222222220, - 0.7222222222222220, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7090909090909090, - 0.7222222222222220, - 0.7222222222222220, - 0.7017543859649120, - 0.7017543859649120, - 0.6779661016949150, - 0.6885245901639340, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7142857142857140, - 0.7142857142857140, - 0.7096774193548390, - 0.7096774193548390, - 0.6984126984126980, - 0.6885245901639340, - 0.6885245901639340, - 0.6885245901639340, - 0.7000000000000000, - 0.6774193548387100, - 0.6774193548387100, - 0.6774193548387100, - 0.6774193548387100, - 0.6721311475409840, - 0.6557377049180330, - 0.6557377049180330, - 0.6666666666666670, - 0.6779661016949150, - 0.6779661016949150, - 0.6779661016949150, - 0.6779661016949150, - 0.6779661016949150, - 0.7272727272727270, - 0.7017543859649120, - 0.7017543859649120, - 0.7068965517241380, - 0.7068965517241380, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7321428571428570, - 0.7368421052631580, - 0.7368421052631580, - 0.7368421052631580, - 0.7543859649122810, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.7894736842105260, - 0.7931034482758620, - 0.7931034482758620, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.7833333333333330, - 0.7833333333333330, - 0.7833333333333330, - 0.7833333333333330, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7868852459016390, - 0.7868852459016390, - 0.7868852459016390, - 0.7741935483870970, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7903225806451610, - 0.7903225806451610, - 0.7903225806451610, - 0.7903225806451610, - 0.7903225806451610, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8032786885245900, - 0.8032786885245900, - 0.8032786885245900, - 0.8095238095238100, - 0.8095238095238100, - 0.8095238095238100, - 0.8095238095238100, - 0.8095238095238100, - 0.8095238095238100, - 0.8032786885245900, - 0.8064516129032260, - 0.8064516129032260, - 0.8064516129032260, - 0.8064516129032260, - 0.8064516129032260, - 0.8064516129032260, - 0.8064516129032260, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8166666666666670, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8196721311475410, - 0.8166666666666670, - 0.8196721311475410, - 0.8196721311475410, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8666666666666670, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8709677419354840, - 0.8709677419354840, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8833333333333330, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8906250000000000, - 0.8906250000000000, - 0.8923076923076920, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8939393939393940, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.8955223880597010, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.9016393442622950, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.8852459016393440, - 0.8833333333333330, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8596491228070170, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8070175438596490, - 0.8070175438596490, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.8000000000000000, - 0.7962962962962960, - 0.7924528301886790, - 0.7884615384615380, - 0.7843137254901960, - 0.7843137254901960, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7547169811320760, - 0.7547169811320760, - 0.7407407407407410, - 0.7407407407407410, - 0.7272727272727270, - 0.7222222222222220, - 0.6842105263157900, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6724137931034480, - 0.6607142857142860, - 0.6545454545454550, - 0.6481481481481480, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6603773584905660, - 0.6481481481481480, - 0.6481481481481480, - 0.6481481481481480, - 0.6481481481481480, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6181818181818180, - 0.6181818181818180, - 0.6111111111111110, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5925925925925930, - 0.5925925925925930, - 0.5925925925925930, - 0.5849056603773580, - 0.5740740740740740, - 0.5740740740740740, - 0.5660377358490570, - 0.5660377358490570, - 0.5555555555555560, - 0.5471698113207550, - 0.5370370370370370, - 0.5370370370370370, - 0.5370370370370370, - 0.5370370370370370, - 0.5370370370370370, - 0.5272727272727270, - 0.5272727272727270, - 0.5000000000000000, - 0.5000000000000000, - 0.5000000000000000, - 0.5000000000000000, - 0.4905660377358490, - 0.4905660377358490, - 0.4905660377358490, - 0.4905660377358490, - 0.4814814814814810, - 0.4905660377358490, - 0.4807692307692310, - 0.4807692307692310, - 0.4807692307692310, - 0.4807692307692310, - 0.4705882352941180, - 0.4615384615384620, - 0.4509803921568630, - 0.4509803921568630, - 0.4509803921568630, - 0.4509803921568630, - 0.4489795918367350, - 0.4489795918367350, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4255319148936170, - 0.4347826086956520, - 0.4347826086956520, - 0.4222222222222220, - 0.4222222222222220, - 0.4130434782608700, - 0.4130434782608700, - 0.4130434782608700, - 0.4000000000000000, - 0.3720930232558140, - 0.3720930232558140, - 0.3636363636363640, - 0.3555555555555560, - 0.3478260869565220, - 0.3404255319148940, - 0.3111111111111110, - 0.3111111111111110, - 0.2954545454545450, - 0.2888888888888890, - 0.2888888888888890, - 0.2888888888888890, - 0.2708333333333330, - 0.2708333333333330, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2391304347826090, - 0.2391304347826090, - 0.2444444444444440, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2200000000000000, - 0.2040816326530610, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.1923076923076920, - 0.1923076923076920, - 0.1923076923076920, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1818181818181820, - 0.1666666666666670, - 0.1666666666666670, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1578947368421050, - 0.1403508771929820, - 0.1403508771929820, - 0.1379310344827590, - 0.1379310344827590, - 0.1355932203389830, - 0.1355932203389830, - 0.1355932203389830, - 0.1355932203389830, - 0.1355932203389830, - 0.1355932203389830, - 0.1379310344827590, - 0.1379310344827590, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1206896551724140, - 0.1206896551724140, - 0.1206896551724140, - 0.1206896551724140, - 0.1052631578947370, - 0.1071428571428570, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0727272727272727, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0740740740740741, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0784313725490196, - 0.0784313725490196, - 0.0769230769230769, - 0.0769230769230769, - 0.0784313725490196, - 0.0784313725490196, - 0.0754716981132075, - 0.0754716981132075, - 0.0740740740740741, - 0.0740740740740741, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0892857142857143, - 0.0909090909090909, - 0.0909090909090909, - 0.0877192982456140, - 0.0877192982456140, - 0.0892857142857143, - 0.0892857142857143, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0847457627118644, - 0.0847457627118644, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0740740740740741, - 0.0754716981132075, - 0.0754716981132075, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0754716981132075, - 0.0754716981132075, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0754716981132075, - 0.0754716981132075, - 0.0769230769230769, - 0.0769230769230769, - 0.0784313725490196, - 0.0800000000000000, - 0.0800000000000000, - 0.0816326530612245, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1000000000000000, - 0.1020408163265310, - 0.1041666666666670, - 0.1224489795918370, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1538461538461540, - 0.1698113207547170, - 0.1698113207547170, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1346153846153850, - 0.1509433962264150, - 0.1509433962264150, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1481481481481480, - 0.1481481481481480, - 0.1636363636363640, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1896551724137930, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2307692307692310, - 0.2307692307692310, - 0.2352941176470590, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2307692307692310, - 0.2352941176470590, - 0.2352941176470590, - 0.2352941176470590, - 0.2500000000000000, - 0.2549019607843140, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2800000000000000, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2916666666666670, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2916666666666670, - 0.3000000000000000, - 0.3000000000000000, - 0.3137254901960780, - 0.3137254901960780, - 0.3200000000000000, - 0.3200000000000000, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.3061224489795920, - 0.3333333333333330, - 0.3333333333333330, - 0.3269230769230770, - 0.3269230769230770, - 0.3269230769230770, - 0.3269230769230770, - 0.3541666666666670, - 0.3541666666666670, - 0.3617021276595740, - 0.3750000000000000, - 0.3829787234042550, - 0.3913043478260870, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3913043478260870, - 0.3913043478260870, - 0.4042553191489360, - 0.4130434782608700, - 0.4318181818181820, - 0.4444444444444440, - 0.4545454545454550, - 0.4545454545454550, - 0.4761904761904760, - 0.4651162790697670, - 0.4545454545454550, - 0.4545454545454550, - 0.4651162790697670, - 0.4545454545454550, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4545454545454550, - 0.4418604651162790, - 0.4523809523809520, - 0.4523809523809520, - 0.4878048780487810, - 0.4878048780487810, - 0.5000000000000000, - 0.5000000000000000, - 0.5116279069767440, - 0.5116279069767440, - 0.5227272727272730, - 0.5227272727272730, - 0.5348837209302320, - 0.5348837209302320, - 0.5348837209302320, - 0.5348837209302320, - 0.5348837209302320, - 0.5476190476190480, - 0.5348837209302320, - 0.5348837209302320, - 0.5476190476190480, - 0.5476190476190480, - 0.5454545454545450, - 0.5714285714285710, - 0.5909090909090910, - 0.5777777777777780, - 0.6000000000000000, - 0.6000000000000000, - 0.6170212765957450, - 0.6304347826086960, - 0.6250000000000000, - 0.6250000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5882352941176470, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6078431372549020, - 0.5961538461538460, - 0.5961538461538460, - 0.5961538461538460, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.6037735849056600, - 0.6153846153846150, - 0.6274509803921570, - 0.6274509803921570, - 0.6274509803921570, - 0.6274509803921570, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6326530612244900, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6530612244897960, - 0.6530612244897960, - 0.6600000000000000, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6666666666666670, - 0.6666666666666670, - 0.6734693877551020, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.7021276595744680, - 0.7021276595744680, - 0.7021276595744680, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7021276595744680, - 0.7021276595744680, - 0.7021276595744680, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6600000000000000, - 0.6470588235294120, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6603773584905660, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6603773584905660, - 0.6603773584905660, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7058823529411760, - 0.7058823529411760, - 0.7200000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7254901960784310, - 0.7254901960784310, - 0.7254901960784310, - 0.7254901960784310, - 0.7254901960784310, - 0.7307692307692310, - 0.7307692307692310, - 0.7307692307692310, - 0.7307692307692310, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7272727272727270, - 0.7142857142857140, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7090909090909090, - 0.6964285714285710, - 0.6964285714285710, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7222222222222220, - 0.7222222222222220, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7307692307692310, - 0.7450980392156860, - 0.7450980392156860, - 0.7600000000000000, - 0.7600000000000000, - 0.7647058823529410, - 0.7647058823529410, - 0.7358490566037730, - 0.7407407407407410, - 0.7407407407407410, - 0.7407407407407410, - 0.7407407407407410, - 0.7547169811320760, - 0.7647058823529410, - 0.7647058823529410, - 0.7647058823529410, - 0.7647058823529410, - 0.7647058823529410, - 0.7647058823529410, - 0.7547169811320760, - 0.7547169811320760, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7777777777777780, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.8070175438596490, - 0.8070175438596490, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8518518518518520, - 0.8518518518518520, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8867924528301890, - 0.8867924528301890, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8909090909090910, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8867924528301890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8679245283018870, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8653846153846150, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8800000000000000, - 0.8800000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8775510204081630, - 0.8958333333333330, - 0.8958333333333330, - 0.8958333333333330, - 0.8958333333333330, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8800000000000000, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.8800000000000000, - 0.8627450980392160, - 0.8571428571428570, - 0.8541666666666670, - 0.8541666666666670, - 0.8510638297872340, - 0.8478260869565220, - 0.8478260869565220, - 0.8478260869565220, - 0.8297872340425530, - 0.8125000000000000, - 0.7959183673469390, - 0.7916666666666670, - 0.7916666666666670, - 0.7916666666666670, - 0.7916666666666670, - 0.7916666666666670, - 0.7872340425531920, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7659574468085110, - 0.7659574468085110, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7446808510638300, - 0.7446808510638300, - 0.7391304347826090, - 0.7391304347826090, - 0.7555555555555560, - 0.7727272727272730, - 0.7906976744186050, - 0.7954545454545450, - 0.7954545454545450, - 0.7954545454545450, - 0.7954545454545450, - 0.7954545454545450, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7608695652173910, - 0.7608695652173910, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7446808510638300, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7446808510638300, - 0.7446808510638300, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7608695652173910, - 0.7446808510638300, - 0.7446808510638300, - 0.7446808510638300, - 0.7555555555555560, - 0.7608695652173910, - 0.7659574468085110, - 0.7659574468085110, - 0.7500000000000000, - 0.7500000000000000, - 0.7346938775510200, - 0.7291666666666670, - 0.7234042553191490, - 0.7291666666666670, - 0.7142857142857140, - 0.7142857142857140, - 0.7446808510638300, - 0.7446808510638300, - 0.7391304347826090, - 0.7391304347826090, - 0.7391304347826090, - 0.7391304347826090, - 0.6938775510204080, - 0.7021276595744680, - 0.7021276595744680, - 0.7021276595744680, - 0.7021276595744680, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.7111111111111110, - 0.7173913043478260, - 0.7111111111111110, - 0.7272727272727270, - 0.7272727272727270, - 0.7209302325581400, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6808510638297870, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6808510638297870, - 0.6666666666666670, - 0.6666666666666670, - 0.6734693877551020, - 0.6666666666666670, - 0.6530612244897960, - 0.6400000000000000, - 0.6400000000000000, - 0.6530612244897960, - 0.6666666666666670, - 0.6666666666666670, - 0.6734693877551020, - 0.6938775510204080, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.6862745098039220, - 0.6862745098039220, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7083333333333330, - 0.7021276595744680, - 0.7021276595744680, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.7021276595744680, - 0.7083333333333330, - 0.7083333333333330, - 0.6938775510204080, - 0.6938775510204080, - 0.7083333333333330, - 0.6938775510204080, - 0.7000000000000000, - 0.7000000000000000, - 0.6862745098039220, - 0.6730769230769230, - 0.6666666666666670, - 0.6730769230769230, - 0.6730769230769230, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6792452830188680, - 0.6730769230769230, - 0.6730769230769230, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6545454545454550, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6603773584905660, - 0.6603773584905660, - 0.6603773584905660, - 0.6603773584905660, - 0.6603773584905660, - 0.6538461538461540, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6481481481481480, - 0.6481481481481480, - 0.6481481481481480, - 0.6603773584905660, - 0.6730769230769230, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6730769230769230, - 0.6730769230769230, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6800000000000000, - 0.6938775510204080, - 0.6800000000000000, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6730769230769230, - 0.6666666666666670, - 0.6666666666666670, - 0.6600000000000000, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6600000000000000, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6530612244897960, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6326530612244900, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.6041666666666670, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5869565217391300, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5833333333333330, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5531914893617020, - 0.5531914893617020, - 0.5531914893617020, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5434782608695650, - 0.5434782608695650, - 0.5434782608695650, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5744680851063830, - 0.5744680851063830, - 0.5744680851063830, - 0.5744680851063830, - 0.5744680851063830, - 0.5869565217391300, - 0.5869565217391300, - 0.5744680851063830, - 0.5744680851063830, - 0.5744680851063830, - 0.5744680851063830, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5833333333333330, - 0.5833333333333330, - 0.5714285714285710, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5800000000000000, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.5918367346938780, - 0.6000000000000000, - 0.5882352941176470, - 0.5961538461538460, - 0.5849056603773580, - 0.5925925925925930, - 0.5925925925925930, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5961538461538460, - 0.6037735849056600, - 0.5961538461538460, - 0.5961538461538460, - 0.5961538461538460, - 0.5961538461538460, - 0.5961538461538460, - 0.6122448979591840, - 0.6078431372549020, - 0.6078431372549020, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6274509803921570, - 0.6274509803921570, - 0.6274509803921570, - 0.6274509803921570, - 0.6153846153846150, - 0.6037735849056600, - 0.5961538461538460, - 0.5961538461538460, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5818181818181820, - 0.5818181818181820, - 0.5818181818181820, - 0.5818181818181820, - 0.5818181818181820, - 0.5925925925925930, - 0.6037735849056600, - 0.6037735849056600, - 0.6037735849056600, - 0.5925925925925930, - 0.5925925925925930, - 0.5925925925925930, - 0.6000000000000000, - 0.5892857142857140, - 0.5892857142857140, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6071428571428570, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6296296296296300, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6111111111111110, - 0.6037735849056600, - 0.5925925925925930, - 0.5925925925925930, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6037735849056600, - 0.6037735849056600, - 0.6037735849056600, - 0.5925925925925930, - 0.6000000000000000, - 0.6037735849056600, - 0.6153846153846150, - 0.6153846153846150, - 0.6274509803921570, - 0.6274509803921570, - 0.6346153846153850, - 0.6346153846153850, - 0.6226415094339620, - 0.6226415094339620, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6415094339622640, - 0.6226415094339620, - 0.6226415094339620, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6481481481481480, - 0.6481481481481480, - 0.6481481481481480, - 0.6481481481481480, - 0.6415094339622640, - 0.6415094339622640, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6481481481481480, - 0.6545454545454550, - 0.6545454545454550, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6491228070175440, - 0.6491228070175440, - 0.6491228070175440, - 0.6491228070175440, - 0.6607142857142860, - 0.6666666666666670, - 0.6603773584905660, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6470588235294120, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6470588235294120, - 0.6470588235294120, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6666666666666670, - 0.6734693877551020, - 0.6734693877551020, - 0.6734693877551020, - 0.6666666666666670, - 0.6666666666666670, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6458333333333330, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6200000000000000, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6400000000000000, - 0.6400000000000000, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6346153846153850, - 0.6346153846153850, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6200000000000000, - 0.6326530612244900, - 0.6530612244897960, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6530612244897960, - 0.6600000000000000, - 0.6600000000000000, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6470588235294120, - 0.6400000000000000, - 0.6400000000000000, - 0.6530612244897960, - 0.6530612244897960, - 0.6666666666666670, - 0.6666666666666670, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6530612244897960, - 0.6400000000000000, - 0.6274509803921570, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6153846153846150, - 0.6037735849056600, - 0.6037735849056600, - 0.5961538461538460, - 0.6037735849056600, - 0.6037735849056600, - 0.6037735849056600, - 0.6037735849056600, - 0.5961538461538460, - 0.5740740740740740, - 0.5740740740740740, - 0.5740740740740740, - 0.5740740740740740, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.5849056603773580, - 0.6000000000000000, - 0.6181818181818180, - 0.6181818181818180, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6037735849056600, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.6226415094339620, - 0.6226415094339620, - 0.6037735849056600, - 0.6037735849056600, - 0.6111111111111110, - 0.6181818181818180, - 0.6071428571428570, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5862068965517240, - 0.5862068965517240, - 0.6000000000000000, - 0.6000000000000000, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5789473684210530, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5789473684210530, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.5892857142857140, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6181818181818180, - 0.6181818181818180, - 0.6415094339622640, - 0.6415094339622640, - 0.6538461538461540, - 0.6538461538461540, - 0.6862745098039220, - 0.7000000000000000, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.6862745098039220, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7000000000000000, - 0.7200000000000000, - 0.7346938775510200, - 0.6923076923076920, - 0.6923076923076920, - 0.6923076923076920, - 0.6923076923076920, - 0.7058823529411760, - 0.7058823529411760, - 0.7058823529411760, - 0.7058823529411760, - 0.7058823529411760, - 0.7058823529411760, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6909090909090910, - 0.6909090909090910, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7090909090909090, - 0.7222222222222220, - 0.7358490566037730, - 0.7222222222222220, - 0.7222222222222220, - 0.7272727272727270, - 0.7142857142857140, - 0.7192982456140350, - 0.7241379310344830, - 0.7241379310344830, - 0.7241379310344830, - 0.7241379310344830, - 0.7241379310344830, - 0.7368421052631580, - 0.7368421052631580, - 0.7368421052631580, - 0.7413793103448280, - 0.7543859649122810, - 0.7543859649122810, - 0.7543859649122810, - 0.7543859649122810, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7719298245614030, - 0.7719298245614030, - 0.7758620689655170, - 0.7758620689655170, - 0.7758620689655170, - 0.7758620689655170, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7857142857142860, - 0.7857142857142860, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8070175438596490, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8035714285714290, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8103448275862070, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8363636363636360, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8269230769230770, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8400000000000000, - 0.8400000000000000, - 0.8400000000000000, - 0.8400000000000000, - 0.8400000000000000, - 0.8400000000000000, - 0.8431372549019610, - 0.8431372549019610, - 0.8431372549019610, - 0.8431372549019610, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8936170212765960, - 0.8936170212765960, - 0.8936170212765960, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8222222222222220, - 0.8043478260869560, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7755102040816330, - 0.7755102040816330, - 0.7755102040816330, - 0.7755102040816330, - 0.7755102040816330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7551020408163260, - 0.7551020408163260, - 0.7551020408163260, - 0.7551020408163260, - 0.7551020408163260, - 0.7551020408163260, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7346938775510200, - 0.7346938775510200, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7234042553191490, - 0.7083333333333330, - 0.7021276595744680, - 0.6875000000000000, - 0.6734693877551020, - 0.6734693877551020, - 0.6666666666666670, - 0.6808510638297870, - 0.6808510638297870, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6666666666666670, - 0.6818181818181820, - 0.6818181818181820, - 0.6818181818181820, - 0.6818181818181820, - 0.6666666666666670, - 0.6739130434782610, - 0.6956521739130430, - 0.6956521739130430, - 0.7045454545454550, - 0.7045454545454550, - 0.7045454545454550, - 0.7209302325581400, - 0.7333333333333330, - 0.7333333333333330, - 0.7173913043478260, - 0.7173913043478260, - 0.7111111111111110, - 0.7111111111111110, - 0.7272727272727270, - 0.7441860465116280, - 0.7441860465116280, - 0.7441860465116280, - 0.7500000000000000, - 0.7333333333333330, - 0.7391304347826090, - 0.7391304347826090, - 0.7446808510638300, - 0.7446808510638300, - 0.7291666666666670, - 0.7500000000000000, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7551020408163260, - 0.7551020408163260, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7551020408163260, - 0.7551020408163260, - 0.7600000000000000, - 0.7600000000000000, - 0.7450980392156860, - 0.7450980392156860, - 0.7600000000000000, - 0.7600000000000000, - 0.7600000000000000, - 0.7600000000000000, - 0.7551020408163260, - 0.7551020408163260, - 0.7551020408163260, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7200000000000000, - 0.7346938775510200, - 0.7346938775510200, - 0.7200000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7551020408163260, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7446808510638300, - 0.7391304347826090, - 0.7391304347826090, - 0.7391304347826090, - 0.7391304347826090, - 0.7391304347826090, - 0.7446808510638300, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7291666666666670, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7346938775510200, - 0.7200000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7200000000000000, - 0.7142857142857140, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7142857142857140, - 0.7083333333333330, - 0.7083333333333330, - 0.6938775510204080, - 0.6938775510204080, - 0.7021276595744680, - 0.7021276595744680, - 0.7173913043478260, - 0.7173913043478260, - 0.7272727272727270, - 0.7272727272727270, - 0.7111111111111110, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6808510638297870, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6888888888888890, - 0.6818181818181820, - 0.6818181818181820, - 0.6818181818181820, - 0.6818181818181820, - 0.6976744186046510, - 0.6976744186046510, - 0.7209302325581400, - 0.7142857142857140, - 0.6976744186046510, - 0.6976744186046510, - 0.6976744186046510, - 0.6818181818181820, - 0.6666666666666670, - 0.6382978723404260, - 0.6122448979591840, - 0.6122448979591840, - 0.6000000000000000, - 0.6000000000000000, - 0.5882352941176470, - 0.5882352941176470, - 0.5882352941176470, - 0.5882352941176470, - 0.6000000000000000, - 0.6122448979591840, - 0.6250000000000000, - 0.6250000000000000, - 0.6250000000000000, - 0.6250000000000000, - 0.6122448979591840, - 0.6122448979591840, - 0.6200000000000000, - 0.6200000000000000, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6458333333333330, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6521739130434780, - 0.6521739130434780, - 0.6521739130434780, - 0.6595744680851060, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6739130434782610, - 0.6808510638297870, - 0.6808510638297870, - 0.6956521739130430, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7272727272727270, - 0.7111111111111110, - 0.7111111111111110, - 0.7173913043478260, - 0.7111111111111110, - 0.7111111111111110, - 0.6956521739130430, - 0.6808510638297870, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6590909090909090, - 0.6590909090909090, - 0.6590909090909090, - 0.6590909090909090, - 0.6590909090909090, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6521739130434780, - 0.6521739130434780, - 0.6521739130434780, - 0.6444444444444440, - 0.6521739130434780, - 0.6521739130434780, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6521739130434780, - 0.6382978723404260, - 0.6382978723404260, - 0.6521739130434780, - 0.6521739130434780, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6595744680851060, - 0.6458333333333330, - 0.6458333333333330, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6458333333333330, - 0.6400000000000000, - 0.6400000000000000, - 0.6400000000000000, - 0.6274509803921570, - 0.6274509803921570, - 0.6274509803921570, - 0.6200000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6122448979591840, - 0.6122448979591840, - 0.6122448979591840, - 0.6122448979591840, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6122448979591840, - 0.6122448979591840, - 0.6250000000000000, - 0.6250000000000000, - 0.6304347826086960, - 0.6304347826086960, - 0.6304347826086960, - 0.6304347826086960, - 0.6444444444444440, - 0.6444444444444440, - 0.6304347826086960, - 0.6304347826086960, - 0.6304347826086960, - 0.6304347826086960, - 0.6382978723404260, - 0.6304347826086960, - 0.6444444444444440, - 0.6590909090909090, - 0.6444444444444440, - 0.6444444444444440, - 0.6222222222222220, - 0.6136363636363640, - 0.6046511627906980, - 0.6046511627906980, - 0.6046511627906980, - 0.6046511627906980, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6136363636363640, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6363636363636360, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6222222222222220, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6590909090909090, - 0.6590909090909090, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6585365853658540, - 0.6829268292682930, - 0.6904761904761900, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6904761904761900, - 0.6904761904761900, - 0.6744186046511630, - 0.6744186046511630, - 0.6904761904761900, - 0.6904761904761900, - 0.6904761904761900, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6744186046511630, - 0.6904761904761900, - 0.6904761904761900, - 0.6744186046511630, - 0.6744186046511630, - 0.6590909090909090, - 0.6590909090909090, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6444444444444440, - 0.6590909090909090, - 0.6590909090909090, - 0.6511627906976740, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6170212765957450, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.6086956521739130, - 0.6000000000000000, - 0.6000000000000000, - 0.6136363636363640, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6511627906976740, - 0.6511627906976740, - 0.6511627906976740, - 0.6590909090909090, - 0.6744186046511630, - 0.6744186046511630, - 0.6818181818181820, - 0.6818181818181820, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6739130434782610, - 0.6595744680851060, - 0.6595744680851060, - 0.6739130434782610, - 0.6976744186046510, - 0.6818181818181820, - 0.6888888888888890, - 0.6888888888888890, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6956521739130430, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6739130434782610, - 0.6739130434782610, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.6739130434782610, - 0.6888888888888890, - 0.6888888888888890, - 0.7045454545454550, - 0.7045454545454550, - 0.7045454545454550, - 0.7045454545454550, - 0.6739130434782610, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6808510638297870, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.6875000000000000, - 0.7021276595744680, - 0.7173913043478260, - 0.7173913043478260, - 0.7234042553191490, - 0.7021276595744680, - 0.7021276595744680, - 0.7083333333333330, - 0.7234042553191490, - 0.7234042553191490, - 0.7234042553191490, - 0.7234042553191490, - 0.7083333333333330, - 0.7083333333333330, - 0.6938775510204080, - 0.6938775510204080, - 0.6938775510204080, - 0.6938775510204080, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7291666666666670, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7659574468085110, - 0.7659574468085110, - 0.7826086956521740, - 0.7826086956521740, - 0.8043478260869560, - 0.8043478260869560, - 0.8043478260869560, - 0.8043478260869560, - 0.7826086956521740, - 0.7826086956521740, - 0.8000000000000000, - 0.8000000000000000, - 0.7826086956521740, - 0.7826086956521740, - 0.8043478260869560, - 0.8043478260869560, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7708333333333330, - 0.7755102040816330, - 0.7916666666666670, - 0.8085106382978720, - 0.8085106382978720, - 0.8125000000000000, - 0.8085106382978720, - 0.8085106382978720, - 0.8085106382978720, - 0.8085106382978720, - 0.8085106382978720, - 0.8260869565217390, - 0.8297872340425530, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8163265306122450, - 0.8125000000000000, - 0.8085106382978720, - 0.8085106382978720, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8222222222222220, - 0.8297872340425530, - 0.8297872340425530, - 0.8297872340425530, - 0.8297872340425530, - 0.8297872340425530, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8163265306122450, - 0.8163265306122450, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8541666666666670, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8541666666666670, - 0.8541666666666670, - 0.8541666666666670, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8723404255319150, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8775510204081630, - 0.8958333333333330, - 0.8958333333333330, - 0.8958333333333330, - 0.8958333333333330, - 0.8958333333333330, - 0.8979591836734690, - 0.8979591836734690, - 0.8979591836734690, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.8979591836734690, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9019607843137260, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9200000000000000, - 0.9183673469387750, - 0.9000000000000000, - 0.9000000000000000, - 0.9019607843137260, - 0.9019607843137260, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9038461538461540, - 0.9056603773584910, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9074074074074070, - 0.9090909090909090, - 0.9259259259259260, - 0.9272727272727270, - 0.9272727272727270, - 0.9272727272727270, - 0.9285714285714290, - 0.9454545454545450, - 0.9454545454545450, - 0.9464285714285710, - 0.9464285714285710, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9636363636363640, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9642857142857140, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9649122807017540, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9824561403508770, - 0.9824561403508770, - 0.9824561403508770 - } - }, - { PLACE_CATEG_ID_WORK, - { - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0181818181818182, - 0.0181818181818182, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0181818181818182, - 0.0181818181818182, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0350877192982456, - 0.0350877192982456, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0377358490566038, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0588235294117647, - 0.0588235294117647, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1698113207547170, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1886792452830190, - 0.1886792452830190, - 0.1886792452830190, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2115384615384620, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2641509433962260, - 0.2641509433962260, - 0.2641509433962260, - 0.2692307692307690, - 0.2800000000000000, - 0.2800000000000000, - 0.2916666666666670, - 0.2978723404255320, - 0.2978723404255320, - 0.2978723404255320, - 0.2978723404255320, - 0.2916666666666670, - 0.3200000000000000, - 0.3333333333333330, - 0.3461538461538460, - 0.3461538461538460, - 0.3461538461538460, - 0.3461538461538460, - 0.3529411764705880, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3846153846153850, - 0.3846153846153850, - 0.4000000000000000, - 0.4117647058823530, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4489795918367350, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.5111111111111110, - 0.5217391304347830, - 0.5217391304347830, - 0.5217391304347830, - 0.5217391304347830, - 0.5217391304347830, - 0.5217391304347830, - 0.5319148936170210, - 0.5434782608695650, - 0.5434782608695650, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5652173913043480, - 0.5777777777777780, - 0.5777777777777780, - 0.5777777777777780, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6086956521739130, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6444444444444440, - 0.6444444444444440, - 0.6744186046511630, - 0.6818181818181820, - 0.6818181818181820, - 0.6818181818181820, - 0.6888888888888890, - 0.6888888888888890, - 0.6888888888888890, - 0.7045454545454550, - 0.7045454545454550, - 0.7045454545454550, - 0.7346938775510200, - 0.7346938775510200, - 0.7400000000000000, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7547169811320760, - 0.7547169811320760, - 0.7692307692307690, - 0.7692307692307690, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7735849056603770, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.8148148148148150, - 0.8148148148148150, - 0.8214285714285710, - 0.8214285714285710, - 0.8275862068965520, - 0.8275862068965520, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8620689655172410, - 0.8620689655172410, - 0.8666666666666670, - 0.8666666666666670, - 0.8524590163934430, - 0.8524590163934430, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8947368421052630, - 0.8947368421052630, - 0.8947368421052630, - 0.8947368421052630, - 0.8947368421052630, - 0.8947368421052630, - 0.8965517241379310, - 0.8965517241379310, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8852459016393440, - 0.8852459016393440, - 0.8833333333333330, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8852459016393440, - 0.8870967741935480, - 0.8870967741935480, - 0.8870967741935480, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9016393442622950, - 0.9016393442622950, - 0.9016393442622950, - 0.9016393442622950, - 0.9016393442622950, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8983050847457630, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8666666666666670, - 0.8644067796610170, - 0.8666666666666670, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8360655737704920, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8474576271186440, - 0.8474576271186440, - 0.8500000000000000, - 0.8500000000000000, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8644067796610170, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8644067796610170, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8524590163934430, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8620689655172410, - 0.8620689655172410, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8833333333333330, - 0.8833333333333330, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8709677419354840, - 0.8709677419354840, - 0.8709677419354840, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8688524590163930, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8833333333333330, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8793103448275860, - 0.8771929824561400, - 0.8771929824561400, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8596491228070170, - 0.8596491228070170, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8214285714285710, - 0.8214285714285710, - 0.8214285714285710, - 0.8181818181818180, - 0.8181818181818180, - 0.8148148148148150, - 0.8148148148148150, - 0.8000000000000000, - 0.7962962962962960, - 0.7818181818181820, - 0.7777777777777780, - 0.7735849056603770, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7735849056603770, - 0.7735849056603770, - 0.7692307692307690, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7592592592592590, - 0.7454545454545450, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7192982456140350, - 0.7068965517241380, - 0.7068965517241380, - 0.7017543859649120, - 0.7142857142857140, - 0.7142857142857140, - 0.7272727272727270, - 0.7222222222222220, - 0.7222222222222220, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7017543859649120, - 0.7017543859649120, - 0.7017543859649120, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.6964285714285710, - 0.7222222222222220, - 0.7222222222222220, - 0.7090909090909090, - 0.6964285714285710, - 0.7090909090909090, - 0.7090909090909090, - 0.6964285714285710, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7017543859649120, - 0.6785714285714290, - 0.6607142857142860, - 0.6491228070175440, - 0.6491228070175440, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6363636363636360, - 0.6250000000000000, - 0.6250000000000000, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6111111111111110, - 0.6181818181818180, - 0.6181818181818180, - 0.6296296296296300, - 0.6296296296296300, - 0.6296296296296300, - 0.6111111111111110, - 0.6111111111111110, - 0.6226415094339620, - 0.6153846153846150, - 0.6153846153846150, - 0.6274509803921570, - 0.6037735849056600, - 0.5961538461538460, - 0.6078431372549020, - 0.6078431372549020, - 0.6078431372549020, - 0.5961538461538460, - 0.5882352941176470, - 0.5769230769230770, - 0.5769230769230770, - 0.5600000000000000, - 0.5510204081632650, - 0.5510204081632650, - 0.5510204081632650, - 0.5510204081632650, - 0.5400000000000000, - 0.5102040816326530, - 0.5102040816326530, - 0.5102040816326530, - 0.5102040816326530, - 0.5102040816326530, - 0.5000000000000000, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.4680851063829790, - 0.4565217391304350, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.3695652173913040, - 0.3695652173913040, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3469387755102040, - 0.3111111111111110, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3333333333333330, - 0.3333333333333330, - 0.3170731707317070, - 0.3170731707317070, - 0.2790697674418600, - 0.2790697674418600, - 0.2727272727272730, - 0.2558139534883720, - 0.2558139534883720, - 0.2558139534883720, - 0.2500000000000000, - 0.2500000000000000, - 0.2391304347826090, - 0.2391304347826090, - 0.2444444444444440, - 0.2444444444444440, - 0.1818181818181820, - 0.1818181818181820, - 0.1702127659574470, - 0.1666666666666670, - 0.1632653061224490, - 0.1632653061224490, - 0.1600000000000000, - 0.1428571428571430, - 0.1400000000000000, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1538461538461540, - 0.1698113207547170, - 0.1509433962264150, - 0.1509433962264150, - 0.1372549019607840, - 0.1346153846153850, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1272727272727270, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1090909090909090, - 0.1071428571428570, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.1090909090909090, - 0.0925925925925926, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.0869565217391304, - 0.0888888888888889, - 0.0888888888888889, - 0.0888888888888889, - 0.0909090909090909, - 0.0909090909090909, - 0.0888888888888889, - 0.0888888888888889, - 0.0888888888888889, - 0.0888888888888889, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0851063829787234, - 0.0851063829787234, - 0.0851063829787234, - 0.1041666666666670, - 0.1000000000000000, - 0.1000000000000000, - 0.0816326530612245, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0961538461538462, - 0.0961538461538462, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.1000000000000000, - 0.1000000000000000, - 0.0961538461538462, - 0.0980392156862745, - 0.0980392156862745, - 0.1000000000000000, - 0.1041666666666670, - 0.1041666666666670, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0740740740740741, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0666666666666667, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0526315789473684, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0338983050847458, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0545454545454545, - 0.0535714285714286, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.1090909090909090, - 0.1111111111111110, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1509433962264150, - 0.1818181818181820, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.2000000000000000, - 0.2037037037037040, - 0.2363636363636360, - 0.2363636363636360, - 0.2407407407407410, - 0.2407407407407410, - 0.2452830188679250, - 0.2452830188679250, - 0.2452830188679250, - 0.2500000000000000, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2745098039215690, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2941176470588230, - 0.2941176470588230, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3137254901960780, - 0.3269230769230770, - 0.3396226415094340, - 0.3396226415094340, - 0.3461538461538460, - 0.3653846153846150, - 0.3846153846153850, - 0.3846153846153850, - 0.3846153846153850, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4200000000000000, - 0.4313725490196080, - 0.4313725490196080, - 0.4313725490196080, - 0.4313725490196080, - 0.4313725490196080, - 0.4313725490196080, - 0.4313725490196080, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4200000000000000, - 0.4313725490196080, - 0.4313725490196080, - 0.4509803921568630, - 0.4509803921568630, - 0.4509803921568630, - 0.4615384615384620, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.5098039215686270, - 0.5200000000000000, - 0.5306122448979590, - 0.5306122448979590, - 0.5306122448979590, - 0.5306122448979590, - 0.5625000000000000, - 0.5625000000000000, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.5957446808510640, - 0.6041666666666670, - 0.6041666666666670, - 0.6122448979591840, - 0.6122448979591840, - 0.6326530612244900, - 0.6400000000000000, - 0.6470588235294120, - 0.6470588235294120, - 0.6600000000000000, - 0.6600000000000000, - 0.6600000000000000, - 0.7021276595744680, - 0.7021276595744680, - 0.7173913043478260, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7333333333333330, - 0.7727272727272730, - 0.7826086956521740, - 0.7872340425531920, - 0.7916666666666670, - 0.8163265306122450, - 0.8163265306122450, - 0.8200000000000000, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8148148148148150, - 0.8148148148148150, - 0.8148148148148150, - 0.8148148148148150, - 0.8245614035087720, - 0.8245614035087720, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8275862068965520, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8524590163934430, - 0.8524590163934430, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8709677419354840, - 0.8709677419354840, - 0.8593750000000000, - 0.8730158730158730, - 0.8730158730158730, - 0.8730158730158730, - 0.8593750000000000, - 0.8593750000000000, - 0.8593750000000000, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8615384615384620, - 0.8769230769230770, - 0.8769230769230770, - 0.8906250000000000, - 0.8906250000000000, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9166666666666670, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9491525423728810, - 0.9491525423728810, - 0.9491525423728810, - 0.9333333333333330, - 0.9333333333333330, - 0.9322033898305080, - 0.9322033898305080, - 0.9322033898305080, - 0.9322033898305080, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9310344827586210, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9152542372881350, - 0.9180327868852460, - 0.9180327868852460, - 0.9166666666666670, - 0.9016393442622950, - 0.9016393442622950, - 0.9016393442622950, - 0.9032258064516130, - 0.9047619047619050, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9062500000000000, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9076923076923080, - 0.9230769230769230, - 0.9230769230769230, - 0.9230769230769230, - 0.9218750000000000, - 0.9206349206349210, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9218750000000000, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9365079365079360, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9508196721311470, - 0.9508196721311470, - 0.9354838709677420, - 0.9354838709677420, - 0.9354838709677420, - 0.9333333333333330, - 0.9310344827586210, - 0.9298245614035090, - 0.9122807017543860, - 0.9122807017543860, - 0.9122807017543860, - 0.9122807017543860, - 0.9107142857142860, - 0.9090909090909090, - 0.9259259259259260, - 0.9259259259259260, - 0.9259259259259260, - 0.9259259259259260, - 0.9272727272727270, - 0.9259259259259260, - 0.9298245614035090, - 0.9298245614035090, - 0.9298245614035090, - 0.9310344827586210, - 0.9310344827586210, - 0.9333333333333330, - 0.9491525423728810, - 0.9491525423728810, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9344262295081970, - 0.9333333333333330, - 0.9333333333333330, - 0.9333333333333330, - 0.9322033898305080, - 0.9322033898305080, - 0.9322033898305080, - 0.9482758620689660, - 0.9482758620689660, - 0.9473684210526320, - 0.9482758620689660, - 0.9482758620689660, - 0.9473684210526320, - 0.9655172413793100, - 0.9655172413793100, - 0.9491525423728810, - 0.9491525423728810, - 0.9482758620689660, - 0.9491525423728810, - 0.9491525423728810, - 0.9491525423728810, - 0.9491525423728810, - 0.9491525423728810, - 0.9508196721311470, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9491525423728810, - 0.9491525423728810, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9508196721311470, - 0.9500000000000000, - 0.9500000000000000, - 0.9661016949152540, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9655172413793100, - 0.9661016949152540, - 0.9661016949152540, - 0.9661016949152540, - 0.9661016949152540, - 0.9661016949152540, - 0.9661016949152540, - 0.9661016949152540, - 0.9500000000000000, - 0.9500000000000000, - 0.9500000000000000, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9516129032258060, - 0.9531250000000000, - 0.9531250000000000, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9687500000000000, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9677419354838710, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9682539682539680, - 0.9531250000000000, - 0.9531250000000000, - 0.9531250000000000, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9393939393939390, - 0.9393939393939390, - 0.9393939393939390, - 0.9393939393939390, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9538461538461540, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9516129032258060, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9523809523809520, - 0.9516129032258060, - 0.9365079365079360, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9206349206349210, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9193548387096770, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9180327868852460, - 0.9032258064516130, - 0.9032258064516130, - 0.9032258064516130, - 0.8870967741935480, - 0.8593750000000000, - 0.8571428571428570, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8500000000000000, - 0.8360655737704920, - 0.8360655737704920, - 0.8225806451612900, - 0.8225806451612900, - 0.8225806451612900, - 0.8225806451612900, - 0.8360655737704920, - 0.8333333333333330, - 0.8474576271186440, - 0.8474576271186440, - 0.8333333333333330, - 0.8333333333333330, - 0.8064516129032260, - 0.7936507936507940, - 0.7812500000000000, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7656250000000000, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7692307692307690, - 0.7656250000000000, - 0.7656250000000000, - 0.7619047619047620, - 0.7619047619047620, - 0.7619047619047620, - 0.7619047619047620, - 0.7619047619047620, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7343750000000000, - 0.7230769230769230, - 0.7187500000000000, - 0.7187500000000000, - 0.7187500000000000, - 0.7230769230769230, - 0.7230769230769230, - 0.7230769230769230, - 0.7142857142857140, - 0.7258064516129030, - 0.7213114754098360, - 0.7213114754098360, - 0.7213114754098360, - 0.7288135593220340, - 0.7321428571428570, - 0.7321428571428570, - 0.7321428571428570, - 0.7192982456140350, - 0.7272727272727270, - 0.7142857142857140, - 0.7142857142857140, - 0.7090909090909090, - 0.7222222222222220, - 0.7222222222222220, - 0.7222222222222220, - 0.7307692307692310, - 0.7037037037037040, - 0.7037037037037040, - 0.6909090909090910, - 0.6909090909090910, - 0.6785714285714290, - 0.6785714285714290, - 0.6785714285714290, - 0.6551724137931030, - 0.6551724137931030, - 0.6491228070175440, - 0.6428571428571430, - 0.6545454545454550, - 0.6250000000000000, - 0.6250000000000000, - 0.6250000000000000, - 0.6250000000000000, - 0.6481481481481480, - 0.6296296296296300, - 0.6274509803921570, - 0.6274509803921570, - 0.6153846153846150, - 0.6000000000000000, - 0.5918367346938780, - 0.5918367346938780, - 0.5800000000000000, - 0.5800000000000000, - 0.5800000000000000, - 0.5800000000000000, - 0.5686274509803920, - 0.5686274509803920, - 0.5714285714285710, - 0.5714285714285710, - 0.5714285714285710, - 0.5625000000000000, - 0.5625000000000000, - 0.5600000000000000, - 0.5510204081632650, - 0.5510204081632650, - 0.5510204081632650, - 0.5510204081632650, - 0.5192307692307690, - 0.5000000000000000, - 0.4821428571428570, - 0.4821428571428570, - 0.4821428571428570, - 0.4727272727272730, - 0.4727272727272730, - 0.4727272727272730, - 0.4561403508771930, - 0.4642857142857140, - 0.4642857142857140, - 0.4642857142857140, - 0.4642857142857140, - 0.4642857142857140, - 0.4464285714285710, - 0.4545454545454550, - 0.4629629629629630, - 0.4629629629629630, - 0.4629629629629630, - 0.4509803921568630, - 0.4230769230769230, - 0.4117647058823530, - 0.4117647058823530, - 0.4038461538461540, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4038461538461540, - 0.4038461538461540, - 0.3962264150943400, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4038461538461540, - 0.4038461538461540, - 0.4038461538461540, - 0.3962264150943400, - 0.3888888888888890, - 0.3888888888888890, - 0.3636363636363640, - 0.3636363636363640, - 0.3269230769230770, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.2884615384615380, - 0.2884615384615380, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2553191489361700, - 0.2391304347826090, - 0.2391304347826090, - 0.2444444444444440, - 0.2391304347826090, - 0.2340425531914890, - 0.2500000000000000, - 0.2340425531914890, - 0.2340425531914890, - 0.2340425531914890, - 0.2340425531914890, - 0.2291666666666670, - 0.2291666666666670, - 0.2244897959183670, - 0.2291666666666670, - 0.2291666666666670, - 0.2083333333333330, - 0.2040816326530610, - 0.1875000000000000, - 0.1702127659574470, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1875000000000000, - 0.1875000000000000, - 0.2040816326530610, - 0.2040816326530610, - 0.2000000000000000, - 0.2000000000000000, - 0.1960784313725490, - 0.1960784313725490, - 0.1923076923076920, - 0.1923076923076920, - 0.1886792452830190, - 0.1698113207547170, - 0.1346153846153850, - 0.1346153846153850, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.0943396226415094, - 0.0925925925925926, - 0.0943396226415094, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.0909090909090909, - 0.0909090909090909, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0847457627118644, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0819672131147541, - 0.0806451612903226, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0666666666666667, - 0.0677966101694915, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0500000000000000, - 0.0491803278688525, - 0.0500000000000000, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0476190476190476, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0468750000000000, - 0.0483870967741936, - 0.0483870967741936, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0317460317460317, - 0.0317460317460317, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0149253731343284, - 0.0147058823529412, - 0.0147058823529412, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0500000000000000, - 0.0508474576271187, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0983606557377049, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1034482758620690, - 0.1034482758620690, - 0.1034482758620690, - 0.1034482758620690, - 0.1034482758620690, - 0.1186440677966100, - 0.1166666666666670, - 0.1311475409836070, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1355932203389830, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1666666666666670, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1818181818181820, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.2181818181818180, - 0.2222222222222220, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2307692307692310, - 0.2352941176470590, - 0.2448979591836730, - 0.2600000000000000, - 0.2600000000000000, - 0.2549019607843140, - 0.2600000000000000, - 0.2745098039215690, - 0.2884615384615380, - 0.2884615384615380, - 0.2884615384615380, - 0.2884615384615380, - 0.2884615384615380, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.3076923076923080, - 0.3137254901960780, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3207547169811320, - 0.3454545454545450, - 0.3454545454545450, - 0.3454545454545450, - 0.3454545454545450, - 0.3454545454545450, - 0.3454545454545450, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3750000000000000, - 0.3750000000000000, - 0.3859649122807020, - 0.3965517241379310, - 0.4181818181818180, - 0.4181818181818180, - 0.4363636363636360, - 0.4363636363636360, - 0.4464285714285710, - 0.4464285714285710, - 0.4727272727272730, - 0.4821428571428570, - 0.4821428571428570, - 0.4912280701754390, - 0.5172413793103450, - 0.5172413793103450, - 0.5263157894736840, - 0.5263157894736840, - 0.5263157894736840, - 0.5263157894736840, - 0.5263157894736840, - 0.5263157894736840, - 0.5660377358490570, - 0.5660377358490570, - 0.5660377358490570, - 0.5660377358490570, - 0.5660377358490570, - 0.5740740740740740, - 0.5818181818181820, - 0.5818181818181820, - 0.5925925925925930, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6470588235294120, - 0.6666666666666670, - 0.6800000000000000, - 0.6938775510204080, - 0.6938775510204080, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7200000000000000, - 0.7200000000000000, - 0.7400000000000000, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7500000000000000, - 0.7500000000000000, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7358490566037730, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7547169811320760, - 0.7592592592592590, - 0.7592592592592590, - 0.7719298245614030, - 0.7719298245614030, - 0.7719298245614030, - 0.7758620689655170, - 0.7758620689655170, - 0.7758620689655170, - 0.7796610169491530, - 0.7796610169491530, - 0.8032786885245900, - 0.8032786885245900, - 0.8032786885245900, - 0.8064516129032260, - 0.8281250000000000, - 0.8281250000000000, - 0.8307692307692310, - 0.8307692307692310, - 0.8281250000000000, - 0.8281250000000000, - 0.8307692307692310, - 0.8307692307692310, - 0.8333333333333330, - 0.8333333333333330, - 0.8333333333333330, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8382352941176470, - 0.8405797101449270, - 0.8405797101449270, - 0.8382352941176470, - 0.8382352941176470, - 0.8382352941176470, - 0.8382352941176470, - 0.8382352941176470, - 0.8428571428571430, - 0.8450704225352110, - 0.8571428571428570, - 0.8571428571428570, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8676470588235290, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8787878787878790, - 0.8787878787878790, - 0.8787878787878790, - 0.8787878787878790, - 0.8787878787878790, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8840579710144930, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8985507246376810, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9000000000000000, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9130434782608700, - 0.9117647058823530, - 0.9130434782608700, - 0.9117647058823530, - 0.9104477611940300, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9090909090909090, - 0.9062500000000000, - 0.9076923076923080, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.9047619047619050, - 0.8769230769230770, - 0.8750000000000000, - 0.8730158730158730, - 0.8730158730158730, - 0.8730158730158730, - 0.8730158730158730, - 0.8730158730158730, - 0.8730158730158730, - 0.8593750000000000, - 0.8593750000000000, - 0.8615384615384620, - 0.8615384615384620, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8548387096774190, - 0.8571428571428570, - 0.8571428571428570, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8387096774193550, - 0.8387096774193550, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8666666666666670, - 0.8709677419354840, - 0.8593750000000000, - 0.8593750000000000, - 0.8593750000000000, - 0.8593750000000000, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8636363636363640, - 0.8695652173913040, - 0.8695652173913040, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8714285714285710, - 0.8732394366197180, - 0.8732394366197180, - 0.8857142857142860, - 0.8840579710144930, - 0.8970588235294120, - 0.8970588235294120, - 0.8955223880597010, - 0.8939393939393940, - 0.8955223880597010, - 0.8970588235294120, - 0.8985507246376810, - 0.9000000000000000, - 0.9000000000000000, - 0.8985507246376810, - 0.8985507246376810, - 0.8985507246376810, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.8970588235294120, - 0.8970588235294120, - 0.8955223880597010, - 0.8970588235294120, - 0.8970588235294120, - 0.8970588235294120, - 0.8985507246376810, - 0.8985507246376810, - 0.9000000000000000, - 0.9142857142857140, - 0.9142857142857140, - 0.9154929577464790, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9178082191780820, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9166666666666670, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9295774647887320, - 0.9305555555555560, - 0.9305555555555560, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9436619718309860, - 0.9444444444444440, - 0.9444444444444440, - 0.9436619718309860, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9428571428571430, - 0.9295774647887320, - 0.9285714285714290, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9275362318840580, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9142857142857140, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9154929577464790, - 0.9285714285714290, - 0.9275362318840580, - 0.9264705882352940, - 0.9264705882352940, - 0.9264705882352940, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9253731343283580, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9104477611940300, - 0.9117647058823530, - 0.9117647058823530, - 0.9130434782608700, - 0.9117647058823530, - 0.9130434782608700, - 0.9000000000000000, - 0.9000000000000000, - 0.8873239436619720, - 0.8873239436619720, - 0.8857142857142860, - 0.8840579710144930, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8823529411764710, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8656716417910450, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8382352941176470, - 0.8260869565217390, - 0.8260869565217390, - 0.8260869565217390, - 0.8235294117647060, - 0.8235294117647060, - 0.8260869565217390, - 0.8382352941176470, - 0.8382352941176470, - 0.8382352941176470, - 0.8382352941176470, - 0.8358208955223880, - 0.8484848484848480, - 0.8358208955223880, - 0.8358208955223880, - 0.8333333333333330, - 0.8208955223880600, - 0.8208955223880600, - 0.8208955223880600, - 0.8208955223880600, - 0.8208955223880600, - 0.8208955223880600, - 0.8208955223880600, - 0.8088235294117650, - 0.8059701492537310, - 0.8030303030303030, - 0.8030303030303030, - 0.8030303030303030, - 0.8030303030303030, - 0.8030303030303030, - 0.8000000000000000, - 0.8000000000000000, - 0.7878787878787880, - 0.7878787878787880, - 0.7761194029850750, - 0.7761194029850750, - 0.7727272727272730, - 0.7656250000000000, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7777777777777780, - 0.7903225806451610, - 0.8032786885245900, - 0.8032786885245900, - 0.8032786885245900, - 0.8032786885245900, - 0.8000000000000000, - 0.7868852459016390, - 0.7868852459016390, - 0.7868852459016390, - 0.7833333333333330, - 0.7833333333333330, - 0.7540983606557380, - 0.7500000000000000, - 0.7500000000000000, - 0.7377049180327870, - 0.7258064516129030, - 0.7258064516129030, - 0.7258064516129030, - 0.7258064516129030, - 0.7258064516129030, - 0.7213114754098360, - 0.7213114754098360, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7166666666666670, - 0.7118644067796610, - 0.7017543859649120, - 0.7090909090909090, - 0.6842105263157900, - 0.6842105263157900, - 0.6724137931034480, - 0.6666666666666670, - 0.6666666666666670, - 0.6607142857142860, - 0.6545454545454550, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6545454545454550, - 0.6481481481481480, - 0.6603773584905660, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6415094339622640, - 0.6415094339622640, - 0.6415094339622640, - 0.5833333333333330, - 0.5833333333333330, - 0.5833333333333330, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5510204081632650, - 0.5416666666666670, - 0.5416666666666670, - 0.5306122448979590, - 0.5000000000000000, - 0.4814814814814810, - 0.4385964912280700, - 0.4482758620689660, - 0.4310344827586210, - 0.4237288135593220, - 0.4166666666666670, - 0.4166666666666670, - 0.3833333333333330, - 0.3898305084745760, - 0.3898305084745760, - 0.3898305084745760, - 0.3793103448275860, - 0.3793103448275860, - 0.3728813559322030, - 0.3728813559322030, - 0.3728813559322030, - 0.3666666666666670, - 0.3606557377049180, - 0.3606557377049180, - 0.3548387096774190, - 0.3548387096774190, - 0.3437500000000000, - 0.3437500000000000, - 0.3437500000000000, - 0.3437500000000000, - 0.3281250000000000, - 0.3230769230769230, - 0.3230769230769230, - 0.3333333333333330, - 0.3225806451612900, - 0.3278688524590160, - 0.2931034482758620, - 0.2931034482758620, - 0.2881355932203390, - 0.2881355932203390, - 0.2881355932203390, - 0.2711864406779660, - 0.2786885245901640, - 0.2741935483870970, - 0.2542372881355930, - 0.2542372881355930, - 0.2542372881355930, - 0.2500000000000000, - 0.2459016393442620, - 0.2459016393442620, - 0.2459016393442620, - 0.2459016393442620, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2333333333333330, - 0.2295081967213110, - 0.2295081967213110, - 0.2295081967213110, - 0.2333333333333330, - 0.2203389830508470, - 0.2203389830508470, - 0.2166666666666670, - 0.2166666666666670, - 0.2131147540983610, - 0.2096774193548390, - 0.2307692307692310, - 0.2187500000000000, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2131147540983610, - 0.2000000000000000, - 0.2131147540983610, - 0.2000000000000000, - 0.2000000000000000, - 0.1967213114754100, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1875000000000000, - 0.1846153846153850, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1818181818181820, - 0.1764705882352940, - 0.1764705882352940, - 0.1791044776119400, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1818181818181820, - 0.1818181818181820, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.2033898305084750, - 0.2033898305084750, - 0.2033898305084750, - 0.2068965517241380, - 0.2068965517241380, - 0.2068965517241380, - 0.2142857142857140, - 0.2142857142857140, - 0.2105263157894740, - 0.2142857142857140, - 0.2142857142857140, - 0.2181818181818180, - 0.2181818181818180, - 0.2181818181818180, - 0.2181818181818180, - 0.2181818181818180, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2075471698113210, - 0.2037037037037040, - 0.2075471698113210, - 0.1886792452830190, - 0.1818181818181820, - 0.1666666666666670, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1754385964912280, - 0.1785714285714290, - 0.1636363636363640, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1551724137931030, - 0.1551724137931030, - 0.1525423728813560, - 0.1525423728813560, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1333333333333330, - 0.1333333333333330, - 0.1355932203389830, - 0.1355932203389830, - 0.1379310344827590, - 0.1379310344827590, - 0.1403508771929820, - 0.1403508771929820, - 0.1403508771929820, - 0.1355932203389830, - 0.1355932203389830, - 0.1355932203389830, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1166666666666670, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.1076923076923080, - 0.1076923076923080, - 0.1060606060606060, - 0.1060606060606060, - 0.0923076923076923, - 0.0923076923076923, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0895522388059701, - 0.0882352941176471, - 0.0882352941176471, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0869565217391304, - 0.0869565217391304, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0882352941176471, - 0.0895522388059701, - 0.0895522388059701, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0882352941176471, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0869565217391304, - 0.0735294117647059, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0606060606060606, - 0.0461538461538462, - 0.0461538461538462, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0298507462686567, - 0.0285714285714286, - 0.0285714285714286, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0298507462686567, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0298507462686567, - 0.0298507462686567, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0303030303030303, - 0.0303030303030303, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0142857142857143, - 0.0142857142857143, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0140845070422535, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0135135135135135, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0847457627118644, - 0.0847457627118644, - 0.0862068965517241, - 0.1034482758620690, - 0.1034482758620690, - 0.1034482758620690, - 0.1186440677966100, - 0.1186440677966100, - 0.1206896551724140, - 0.1206896551724140, - 0.1206896551724140, - 0.1206896551724140, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1833333333333330, - 0.1833333333333330, - 0.1833333333333330, - 0.1833333333333330, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.2096774193548390, - 0.2131147540983610, - 0.2258064516129030, - 0.2295081967213110, - 0.2295081967213110, - 0.2372881355932200, - 0.2542372881355930, - 0.2542372881355930, - 0.2586206896551720, - 0.2586206896551720, - 0.2631578947368420, - 0.2678571428571430, - 0.2678571428571430, - 0.2807017543859650, - 0.2807017543859650, - 0.2807017543859650, - 0.2807017543859650, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2857142857142860, - 0.2982456140350880, - 0.3103448275862070, - 0.3275862068965520, - 0.3389830508474580, - 0.3448275862068970, - 0.3684210526315790, - 0.3684210526315790, - 0.3859649122807020, - 0.3965517241379310, - 0.3965517241379310, - 0.3965517241379310, - 0.3965517241379310, - 0.3965517241379310, - 0.3898305084745760, - 0.3898305084745760, - 0.3898305084745760, - 0.3898305084745760, - 0.4000000000000000, - 0.4067796610169490, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4067796610169490, - 0.4067796610169490, - 0.4166666666666670, - 0.4333333333333330, - 0.4333333333333330, - 0.4406779661016950, - 0.4406779661016950, - 0.4406779661016950, - 0.4333333333333330, - 0.4262295081967210, - 0.4426229508196720, - 0.4736842105263160, - 0.4827586206896550, - 0.4915254237288140, - 0.5000000000000000, - 0.5084745762711860, - 0.5084745762711860, - 0.5172413793103450, - 0.5172413793103450, - 0.5172413793103450, - 0.5172413793103450, - 0.5344827586206900, - 0.5344827586206900, - 0.5636363636363640, - 0.5636363636363640, - 0.6037735849056600, - 0.6111111111111110, - 0.6000000000000000, - 0.6000000000000000, - 0.6111111111111110, - 0.6111111111111110, - 0.6111111111111110, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6181818181818180, - 0.6296296296296300, - 0.6296296296296300, - 0.6415094339622640, - 0.6666666666666670, - 0.6800000000000000, - 0.6938775510204080, - 0.7000000000000000, - 0.7000000000000000, - 0.7115384615384620, - 0.7115384615384620, - 0.7115384615384620, - 0.7169811320754720, - 0.7413793103448280, - 0.7413793103448280, - 0.7413793103448280, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7627118644067800, - 0.7627118644067800, - 0.7741935483870970, - 0.7741935483870970, - 0.7741935483870970, - 0.7868852459016390, - 0.7903225806451610, - 0.7903225806451610, - 0.7936507936507940, - 0.7936507936507940, - 0.7936507936507940, - 0.7936507936507940, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8125000000000000, - 0.8153846153846150, - 0.8153846153846150, - 0.8153846153846150, - 0.8153846153846150, - 0.8153846153846150, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8358208955223880, - 0.8382352941176470, - 0.8358208955223880, - 0.8507462686567160, - 0.8507462686567160, - 0.8507462686567160, - 0.8507462686567160, - 0.8507462686567160, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8805970149253730, - 0.8805970149253730, - 0.8805970149253730, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8805970149253730, - 0.8939393939393940, - 0.8923076923076920, - 0.8923076923076920, - 0.8923076923076920, - 0.8787878787878790, - 0.8787878787878790, - 0.8656716417910450, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8550724637681160, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8529411764705880, - 0.8656716417910450, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8676470588235290, - 0.8550724637681160, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8428571428571430, - 0.8405797101449270, - 0.8405797101449270, - 0.8405797101449270, - 0.8285714285714290, - 0.8285714285714290, - 0.8285714285714290, - 0.8285714285714290, - 0.8285714285714290, - 0.8285714285714290, - 0.8235294117647060, - 0.8484848484848480, - 0.8461538461538460, - 0.8461538461538460, - 0.8461538461538460, - 0.8437500000000000, - 0.8181818181818180, - 0.8181818181818180, - 0.8181818181818180, - 0.8208955223880600, - 0.8208955223880600, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.8088235294117650, - 0.7971014492753620, - 0.7826086956521740, - 0.7826086956521740, - 0.7794117647058820, - 0.7794117647058820, - 0.7910447761194030, - 0.8030303030303030, - 0.8030303030303030, - 0.8000000000000000, - 0.7878787878787880, - 0.7878787878787880, - 0.8000000000000000, - 0.7936507936507940, - 0.7777777777777780, - 0.7580645161290320, - 0.7500000000000000, - 0.7500000000000000, - 0.7457627118644070, - 0.7096774193548390, - 0.7166666666666670, - 0.7213114754098360, - 0.7213114754098360, - 0.7213114754098360, - 0.7213114754098360, - 0.7213114754098360, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7142857142857140, - 0.7142857142857140, - 0.6984126984126980, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.7076923076923080, - 0.7076923076923080, - 0.7076923076923080, - 0.7076923076923080, - 0.7076923076923080, - 0.7031250000000000, - 0.7031250000000000, - 0.7031250000000000, - 0.6923076923076920, - 0.7031250000000000, - 0.6984126984126980, - 0.7031250000000000, - 0.6984126984126980, - 0.6984126984126980, - 0.7096774193548390, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6984126984126980, - 0.6935483870967740, - 0.6825396825396830, - 0.6825396825396830, - 0.6984126984126980, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7096774193548390, - 0.7213114754098360, - 0.7540983606557380, - 0.7540983606557380, - 0.7500000000000000, - 0.7500000000000000, - 0.7758620689655170, - 0.7931034482758620, - 0.8000000000000000, - 0.8000000000000000, - 0.8064516129032260, - 0.8196721311475410, - 0.8253968253968250, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8412698412698410, - 0.8437500000000000, - 0.8437500000000000, - 0.8437500000000000, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8524590163934430, - 0.8524590163934430, - 0.8500000000000000, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8500000000000000, - 0.8524590163934430, - 0.8524590163934430, - 0.8524590163934430, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8548387096774190, - 0.8412698412698410, - 0.8437500000000000, - 0.8437500000000000, - 0.8437500000000000, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8281250000000000, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8307692307692310, - 0.8181818181818180, - 0.8181818181818180, - 0.8153846153846150, - 0.8153846153846150, - 0.8281250000000000, - 0.8281250000000000, - 0.8225806451612900, - 0.8225806451612900, - 0.8095238095238100, - 0.8095238095238100, - 0.8225806451612900, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8360655737704920, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8500000000000000, - 0.8474576271186440, - 0.8500000000000000, - 0.8500000000000000, - 0.8333333333333330, - 0.8333333333333330, - 0.8500000000000000, - 0.8524590163934430, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8387096774193550, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8412698412698410, - 0.8387096774193550, - 0.8225806451612900, - 0.8225806451612900, - 0.8225806451612900, - 0.8225806451612900, - 0.8225806451612900, - 0.8253968253968250, - 0.8253968253968250, - 0.8253968253968250, - 0.8253968253968250, - 0.8253968253968250, - 0.8253968253968250, - 0.8253968253968250, - 0.8095238095238100, - 0.8225806451612900, - 0.8196721311475410, - 0.8166666666666670, - 0.8166666666666670, - 0.8166666666666670, - 0.8166666666666670, - 0.8166666666666670, - 0.8135593220338980, - 0.8135593220338980, - 0.7966101694915250, - 0.7868852459016390, - 0.7741935483870970, - 0.7741935483870970, - 0.7741935483870970, - 0.7741935483870970, - 0.7777777777777780, - 0.7777777777777780, - 0.7741935483870970, - 0.7741935483870970, - 0.7777777777777780, - 0.7741935483870970, - 0.7741935483870970, - 0.7868852459016390, - 0.7868852459016390, - 0.7741935483870970, - 0.7704918032786880, - 0.7580645161290320, - 0.7666666666666670, - 0.7540983606557380, - 0.7540983606557380, - 0.7540983606557380, - 0.7500000000000000, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7377049180327870, - 0.7258064516129030, - 0.7142857142857140, - 0.7096774193548390, - 0.7049180327868850, - 0.7049180327868850, - 0.7166666666666670, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7118644067796610, - 0.7241379310344830, - 0.7118644067796610, - 0.7000000000000000, - 0.6885245901639340, - 0.7000000000000000, - 0.7000000000000000, - 0.6949152542372880, - 0.6949152542372880, - 0.6949152542372880, - 0.6949152542372880, - 0.7068965517241380, - 0.6949152542372880, - 0.6896551724137930, - 0.7017543859649120, - 0.7017543859649120, - 0.7017543859649120, - 0.6779661016949150, - 0.6666666666666670, - 0.6610169491525420, - 0.6610169491525420, - 0.6610169491525420, - 0.6610169491525420, - 0.6500000000000000, - 0.6500000000000000, - 0.6440677966101690, - 0.6440677966101690, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6428571428571430, - 0.6315789473684210, - 0.6206896551724140, - 0.6206896551724140, - 0.6034482758620690, - 0.6034482758620690, - 0.6034482758620690, - 0.6034482758620690, - 0.6034482758620690, - 0.6140350877192980, - 0.6140350877192980, - 0.6071428571428570, - 0.6071428571428570, - 0.6071428571428570, - 0.5964912280701750, - 0.5862068965517240, - 0.5862068965517240, - 0.5862068965517240, - 0.5862068965517240, - 0.5964912280701750, - 0.6181818181818180, - 0.5964912280701750, - 0.5964912280701750, - 0.5964912280701750, - 0.5892857142857140, - 0.5689655172413790, - 0.5614035087719300, - 0.5614035087719300, - 0.5535714285714290, - 0.5555555555555560, - 0.5555555555555560, - 0.5555555555555560, - 0.5636363636363640, - 0.5636363636363640, - 0.5636363636363640, - 0.5636363636363640, - 0.5636363636363640, - 0.5636363636363640, - 0.5740740740740740, - 0.5740740740740740, - 0.5740740740740740, - 0.5740740740740740, - 0.5740740740740740, - 0.5576923076923080, - 0.5576923076923080, - 0.5490196078431370, - 0.5490196078431370, - 0.5600000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5400000000000000, - 0.5192307692307690, - 0.5192307692307690, - 0.5192307692307690, - 0.4905660377358490, - 0.4905660377358490, - 0.4905660377358490, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4814814814814810, - 0.4561403508771930, - 0.4561403508771930, - 0.4363636363636360, - 0.4363636363636360, - 0.4363636363636360, - 0.4259259259259260, - 0.3962264150943400, - 0.3962264150943400, - 0.3846153846153850, - 0.3846153846153850, - 0.3846153846153850, - 0.3921568627450980, - 0.3921568627450980, - 0.3773584905660380, - 0.3333333333333330, - 0.3148148148148150, - 0.3018867924528300, - 0.2962962962962960, - 0.3018867924528300, - 0.3018867924528300, - 0.3018867924528300, - 0.3018867924528300, - 0.3076923076923080, - 0.3137254901960780, - 0.3137254901960780, - 0.3137254901960780, - 0.2857142857142860, - 0.2857142857142860, - 0.2800000000000000, - 0.2745098039215690, - 0.2692307692307690, - 0.2745098039215690, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2549019607843140, - 0.2500000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1960784313725490, - 0.1923076923076920, - 0.1923076923076920, - 0.1923076923076920, - 0.1923076923076920, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1923076923076920, - 0.1923076923076920, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.2000000000000000, - 0.1923076923076920, - 0.1960784313725490, - 0.1800000000000000, - 0.1800000000000000, - 0.1764705882352940, - 0.1800000000000000, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1698113207547170, - 0.1851851851851850, - 0.1851851851851850, - 0.1886792452830190, - 0.1851851851851850, - 0.1886792452830190, - 0.1886792452830190, - 0.1923076923076920, - 0.1923076923076920, - 0.1886792452830190, - 0.1886792452830190, - 0.1764705882352940, - 0.1600000000000000, - 0.1538461538461540, - 0.1481481481481480, - 0.1538461538461540, - 0.1538461538461540, - 0.1509433962264150, - 0.1346153846153850, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1153846153846150, - 0.1153846153846150, - 0.1176470588235290, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0925925925925926, - 0.0925925925925926, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0877192982456140, - 0.0877192982456140, - 0.0847457627118644, - 0.0819672131147541, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0727272727272727, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0166666666666667, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0166666666666667, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0322580645161290, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0491803278688525, - 0.0500000000000000, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1052631578947370, - 0.1052631578947370, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1111111111111110, - 0.1132075471698110, - 0.1153846153846150, - 0.1176470588235290, - 0.1176470588235290, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1509433962264150, - 0.1509433962264150, - 0.1666666666666670, - 0.1666666666666670, - 0.1818181818181820, - 0.1851851851851850, - 0.2280701754385960, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2413793103448280, - 0.2500000000000000, - 0.2545454545454540, - 0.2592592592592590, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2452830188679250, - 0.2592592592592590, - 0.2592592592592590, - 0.2592592592592590, - 0.2592592592592590, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2909090909090910, - 0.2909090909090910, - 0.2962962962962960, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3090909090909090, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.3207547169811320, - 0.3333333333333330, - 0.3333333333333330, - 0.3396226415094340, - 0.3396226415094340, - 0.3518518518518520, - 0.3584905660377360, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3818181818181820, - 0.3818181818181820, - 0.4074074074074070, - 0.4074074074074070, - 0.4074074074074070, - 0.4074074074074070, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4259259259259260, - 0.4150943396226420, - 0.4230769230769230, - 0.4230769230769230, - 0.4230769230769230, - 0.4230769230769230, - 0.4313725490196080, - 0.4423076923076920, - 0.4509803921568630, - 0.4509803921568630, - 0.4509803921568630, - 0.4509803921568630, - 0.4693877551020410, - 0.4693877551020410, - 0.4791666666666670, - 0.4791666666666670, - 0.4791666666666670, - 0.4893617021276600, - 0.5000000000000000, - 0.5000000000000000, - 0.5111111111111110, - 0.5111111111111110, - 0.5217391304347830, - 0.5217391304347830, - 0.5217391304347830, - 0.5333333333333330, - 0.5581395348837210, - 0.5581395348837210, - 0.5681818181818180, - 0.5777777777777780, - 0.5652173913043480, - 0.5531914893617020, - 0.5777777777777780, - 0.5777777777777780, - 0.5909090909090910, - 0.6000000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.6250000000000000, - 0.6250000000000000, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6382978723404260, - 0.6521739130434780, - 0.6739130434782610, - 0.6888888888888890, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7083333333333330, - 0.7200000000000000, - 0.7346938775510200, - 0.7450980392156860, - 0.7450980392156860, - 0.7450980392156860, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7592592592592590, - 0.7454545454545450, - 0.7592592592592590, - 0.7592592592592590, - 0.7678571428571430, - 0.7678571428571430, - 0.7678571428571430, - 0.7543859649122810, - 0.7719298245614030, - 0.7719298245614030, - 0.7758620689655170, - 0.7758620689655170, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7796610169491530, - 0.7758620689655170, - 0.7758620689655170, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7894736842105260, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.7931034482758620, - 0.8070175438596490, - 0.8214285714285710, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8245614035087720, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8392857142857140, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8518518518518520, - 0.8518518518518520, - 0.8518518518518520, - 0.8363636363636360, - 0.8545454545454550, - 0.8571428571428570, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8571428571428570, - 0.8571428571428570, - 0.8545454545454550, - 0.8545454545454550, - 0.8545454545454550, - 0.8571428571428570, - 0.8596491228070170, - 0.8596491228070170, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8793103448275860, - 0.8771929824561400, - 0.8771929824561400, - 0.8793103448275860, - 0.8793103448275860, - 0.8793103448275860, - 0.8793103448275860, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8813559322033900, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8448275862068960, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8392857142857140, - 0.8333333333333330, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8301886792452830, - 0.8235294117647060, - 0.8235294117647060, - 0.8269230769230770, - 0.8269230769230770, - 0.8431372549019610, - 0.8431372549019610, - 0.8490566037735850, - 0.8490566037735850, - 0.8518518518518520, - 0.8518518518518520, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8571428571428570, - 0.8545454545454550, - 0.8545454545454550, - 0.8596491228070170, - 0.8596491228070170, - 0.8571428571428570, - 0.8571428571428570, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8545454545454550, - 0.8545454545454550, - 0.8518518518518520, - 0.8518518518518520, - 0.8545454545454550, - 0.8596491228070170, - 0.8596491228070170, - 0.8596491228070170, - 0.8620689655172410, - 0.8620689655172410, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8666666666666670, - 0.8813559322033900, - 0.8793103448275860, - 0.8793103448275860, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8793103448275860, - 0.8771929824561400, - 0.8771929824561400, - 0.8620689655172410, - 0.8644067796610170, - 0.8644067796610170, - 0.8644067796610170, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8771929824561400, - 0.8750000000000000, - 0.8771929824561400, - 0.8620689655172410, - 0.8620689655172410, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8474576271186440, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8750000000000000, - 0.8771929824561400, - 0.8771929824561400, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8620689655172410, - 0.8474576271186440, - 0.8474576271186440, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8448275862068960, - 0.8421052631578950, - 0.8421052631578950, - 0.8421052631578950, - 0.8448275862068960, - 0.8448275862068960, - 0.8571428571428570, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8727272727272730, - 0.8703703703703700, - 0.8867924528301890, - 0.8867924528301890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8888888888888890, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8703703703703700, - 0.8679245283018870, - 0.8679245283018870, - 0.8703703703703700, - 0.8518518518518520, - 0.8518518518518520, - 0.8518518518518520, - 0.8679245283018870, - 0.8679245283018870, - 0.8653846153846150, - 0.8653846153846150, - 0.8627450980392160, - 0.8600000000000000, - 0.8600000000000000, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8571428571428570, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8600000000000000, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8627450980392160, - 0.8600000000000000, - 0.8775510204081630, - 0.8750000000000000, - 0.8571428571428570, - 0.8400000000000000, - 0.8400000000000000, - 0.8400000000000000, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8235294117647060, - 0.8076923076923080, - 0.7924528301886790, - 0.7924528301886790, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7818181818181820, - 0.7857142857142860, - 0.7857142857142860, - 0.7857142857142860, - 0.7924528301886790, - 0.7924528301886790, - 0.7924528301886790, - 0.7924528301886790, - 0.7924528301886790, - 0.8076923076923080, - 0.7924528301886790, - 0.7924528301886790, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.7962962962962960, - 0.8113207547169810, - 0.7924528301886790, - 0.7924528301886790, - 0.7777777777777780, - 0.7777777777777780, - 0.7636363636363640, - 0.7500000000000000, - 0.7500000000000000, - 0.7500000000000000, - 0.7368421052631580, - 0.7368421052631580, - 0.7368421052631580, - 0.7368421052631580, - 0.7241379310344830, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7192982456140350, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7142857142857140, - 0.7090909090909090, - 0.7090909090909090, - 0.7090909090909090, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.6851851851851850, - 0.6909090909090910, - 0.6909090909090910, - 0.6909090909090910, - 0.6909090909090910, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.7037037037037040, - 0.6981132075471700, - 0.6981132075471700, - 0.6981132075471700, - 0.6923076923076920, - 0.6923076923076920, - 0.6923076923076920, - 0.6923076923076920, - 0.6923076923076920, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6792452830188680, - 0.6730769230769230, - 0.6730769230769230, - 0.6666666666666670, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6538461538461540, - 0.6666666666666670, - 0.6666666666666670, - 0.6666666666666670, - 0.6538461538461540, - 0.6470588235294120, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6346153846153850, - 0.6400000000000000, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6250000000000000, - 0.6326530612244900, - 0.6326530612244900, - 0.6326530612244900, - 0.6250000000000000, - 0.6000000000000000, - 0.6000000000000000, - 0.5882352941176470, - 0.5882352941176470, - 0.5800000000000000, - 0.5600000000000000, - 0.5714285714285710, - 0.5714285714285710, - 0.5714285714285710, - 0.5625000000000000, - 0.5625000000000000, - 0.5625000000000000, - 0.5510204081632650, - 0.5294117647058820, - 0.5294117647058820, - 0.5384615384615380, - 0.5384615384615380, - 0.5384615384615380, - 0.5384615384615380, - 0.5000000000000000, - 0.5000000000000000, - 0.4893617021276600, - 0.4791666666666670, - 0.4680851063829790, - 0.4782608695652170, - 0.4666666666666670, - 0.4666666666666670, - 0.4666666666666670, - 0.4666666666666670, - 0.4565217391304350, - 0.4565217391304350, - 0.4255319148936170, - 0.4130434782608700, - 0.3863636363636360, - 0.3777777777777780, - 0.3636363636363640, - 0.3636363636363640, - 0.3333333333333330, - 0.3488372093023260, - 0.3636363636363640, - 0.3636363636363640, - 0.3488372093023260, - 0.3409090909090910, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3181818181818180, - 0.3255813953488370, - 0.3095238095238100, - 0.3095238095238100, - 0.2926829268292680, - 0.2926829268292680, - 0.2857142857142860, - 0.2857142857142860, - 0.2790697674418600, - 0.2790697674418600, - 0.2727272727272730, - 0.2727272727272730, - 0.2790697674418600, - 0.2790697674418600, - 0.2790697674418600, - 0.2790697674418600, - 0.2790697674418600, - 0.2619047619047620, - 0.2558139534883720, - 0.2558139534883720, - 0.2380952380952380, - 0.2380952380952380, - 0.2272727272727270, - 0.2142857142857140, - 0.2045454545454550, - 0.2000000000000000, - 0.1777777777777780, - 0.1777777777777780, - 0.1702127659574470, - 0.1521739130434780, - 0.1458333333333330, - 0.1458333333333330, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1568627450980390, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1372549019607840, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1132075471698110, - 0.1153846153846150, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1020408163265310, - 0.1020408163265310, - 0.1000000000000000, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1041666666666670, - 0.1041666666666670, - 0.1020408163265310, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0851063829787234, - 0.0851063829787234, - 0.0851063829787234, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0851063829787234, - 0.0851063829787234, - 0.0851063829787234, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0800000000000000, - 0.0784313725490196, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0754716981132075, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0588235294117647, - 0.0588235294117647, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0545454545454545, - 0.0535714285714286, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0363636363636364, - 0.0357142857142857, - 0.0357142857142857, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0370370370370370, - 0.0370370370370370, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0384615384615385, - 0.0392156862745098, - 0.0392156862745098, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0377358490566038, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0377358490566038, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0377358490566038, - 0.0377358490566038, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0185185185185185, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0175438596491228, - 0.0175438596491228, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000 - } - }, - { PLACE_CATEG_ID_OTHER, - { - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0181818181818182, - 0.0181818181818182, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0363636363636364, - 0.0363636363636364, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0526315789473684, - 0.0526315789473684, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0377358490566038, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0196078431372549, - 0.0196078431372549, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0192307692307692, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0188679245283019, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0192307692307692, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0192307692307692, - 0.0200000000000000, - 0.0200000000000000, - 0.0208333333333333, - 0.0212765957446808, - 0.0212765957446808, - 0.0212765957446808, - 0.0212765957446808, - 0.0416666666666667, - 0.0400000000000000, - 0.0392156862745098, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0392156862745098, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0384615384615385, - 0.0384615384615385, - 0.0400000000000000, - 0.0392156862745098, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0408163265306122, - 0.0425531914893617, - 0.0425531914893617, - 0.0425531914893617, - 0.0425531914893617, - 0.0444444444444444, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0425531914893617, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0444444444444444, - 0.0444444444444444, - 0.0444444444444444, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0444444444444444, - 0.0444444444444444, - 0.0465116279069768, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0444444444444444, - 0.0444444444444444, - 0.0444444444444444, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0408163265306122, - 0.0408163265306122, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0377358490566038, - 0.0377358490566038, - 0.0384615384615385, - 0.0384615384615385, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0370370370370370, - 0.0370370370370370, - 0.0357142857142857, - 0.0357142857142857, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0333333333333333, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0500000000000000, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0677966101694915, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0666666666666667, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0517241379310345, - 0.0517241379310345, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0526315789473684, - 0.0526315789473684, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0740740740740741, - 0.0740740740740741, - 0.0909090909090909, - 0.0925925925925926, - 0.1090909090909090, - 0.1111111111111110, - 0.1132075471698110, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.0943396226415094, - 0.0943396226415094, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0909090909090909, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1228070175438600, - 0.1206896551724140, - 0.1206896551724140, - 0.1228070175438600, - 0.1071428571428570, - 0.1071428571428570, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.1052631578947370, - 0.1052631578947370, - 0.1052631578947370, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1250000000000000, - 0.0925925925925926, - 0.0925925925925926, - 0.1090909090909090, - 0.1071428571428570, - 0.1090909090909090, - 0.1090909090909090, - 0.1071428571428570, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0877192982456140, - 0.1071428571428570, - 0.1071428571428570, - 0.1228070175438600, - 0.1228070175438600, - 0.1250000000000000, - 0.1250000000000000, - 0.1071428571428570, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1250000000000000, - 0.1250000000000000, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1296296296296300, - 0.1272727272727270, - 0.1272727272727270, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1132075471698110, - 0.1153846153846150, - 0.1153846153846150, - 0.0980392156862745, - 0.1132075471698110, - 0.1153846153846150, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1153846153846150, - 0.1176470588235290, - 0.1346153846153850, - 0.1346153846153850, - 0.1400000000000000, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1600000000000000, - 0.1836734693877550, - 0.1836734693877550, - 0.1836734693877550, - 0.1632653061224490, - 0.1632653061224490, - 0.1800000000000000, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1956521739130430, - 0.1956521739130430, - 0.1956521739130430, - 0.1956521739130430, - 0.2173913043478260, - 0.2173913043478260, - 0.2127659574468080, - 0.2127659574468080, - 0.2127659574468080, - 0.2040816326530610, - 0.2000000000000000, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1627906976744190, - 0.1627906976744190, - 0.1627906976744190, - 0.1428571428571430, - 0.1428571428571430, - 0.1463414634146340, - 0.1463414634146340, - 0.1860465116279070, - 0.1860465116279070, - 0.2045454545454550, - 0.2093023255813950, - 0.2093023255813950, - 0.2093023255813950, - 0.2272727272727270, - 0.2272727272727270, - 0.2608695652173910, - 0.2608695652173910, - 0.2444444444444440, - 0.2444444444444440, - 0.2954545454545450, - 0.2954545454545450, - 0.3404255319148940, - 0.3333333333333330, - 0.3265306122448980, - 0.3265306122448980, - 0.3200000000000000, - 0.3265306122448980, - 0.3400000000000000, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3269230769230770, - 0.3207547169811320, - 0.3396226415094340, - 0.3396226415094340, - 0.3333333333333330, - 0.3269230769230770, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.3090909090909090, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3272727272727270, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3214285714285710, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.3148148148148150, - 0.3090909090909090, - 0.3148148148148150, - 0.2127659574468080, - 0.2127659574468080, - 0.2127659574468080, - 0.2127659574468080, - 0.2173913043478260, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1818181818181820, - 0.1818181818181820, - 0.1777777777777780, - 0.1777777777777780, - 0.1777777777777780, - 0.1777777777777780, - 0.1521739130434780, - 0.1521739130434780, - 0.1521739130434780, - 0.1304347826086960, - 0.1304347826086960, - 0.1304347826086960, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1250000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1632653061224490, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1800000000000000, - 0.1800000000000000, - 0.1800000000000000, - 0.1960784313725490, - 0.1960784313725490, - 0.1923076923076920, - 0.1923076923076920, - 0.1923076923076920, - 0.1886792452830190, - 0.1886792452830190, - 0.1730769230769230, - 0.1730769230769230, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1400000000000000, - 0.1400000000000000, - 0.1372549019607840, - 0.1372549019607840, - 0.1538461538461540, - 0.1538461538461540, - 0.1200000000000000, - 0.1200000000000000, - 0.1346153846153850, - 0.1372549019607840, - 0.1372549019607840, - 0.1200000000000000, - 0.0833333333333333, - 0.0833333333333333, - 0.0800000000000000, - 0.0800000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0784313725490196, - 0.0961538461538462, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1153846153846150, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0740740740740741, - 0.0740740740740741, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0862068965517241, - 0.0862068965517241, - 0.0701754385964912, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0625000000000000, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0172413793103448, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228, - 0.0178571428571429, - 0.0181818181818182, - 0.0357142857142857, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0350877192982456, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0181818181818182, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0181818181818182, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0188679245283019, - 0.0188679245283019, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0181818181818182, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0185185185185185, - 0.0181818181818182, - 0.0185185185185185, - 0.0181818181818182, - 0.0181818181818182, - 0.0185185185185185, - 0.0185185185185185, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0192307692307692, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0200000000000000, - 0.0200000000000000, - 0.0200000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0384615384615385, - 0.0566037735849057, - 0.0566037735849057, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0600000000000000, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0588235294117647, - 0.0588235294117647, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0384615384615385, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0392156862745098, - 0.0200000000000000, - 0.0408163265306122, - 0.0408163265306122, - 0.0408163265306122, - 0.0408163265306122, - 0.0416666666666667, - 0.0416666666666667, - 0.0425531914893617, - 0.0425531914893617, - 0.0425531914893617, - 0.0425531914893617, - 0.0425531914893617, - 0.0416666666666667, - 0.0625000000000000, - 0.0612244897959184, - 0.0612244897959184, - 0.0612244897959184, - 0.0600000000000000, - 0.0588235294117647, - 0.0588235294117647, - 0.0600000000000000, - 0.0600000000000000, - 0.0600000000000000, - 0.0638297872340425, - 0.0638297872340425, - 0.0434782608695652, - 0.0444444444444444, - 0.0444444444444444, - 0.0444444444444444, - 0.0444444444444444, - 0.0444444444444444, - 0.0227272727272727, - 0.0217391304347826, - 0.0212765957446808, - 0.0208333333333333, - 0.0204081632653061, - 0.0204081632653061, - 0.0200000000000000, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0196078431372549, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0322580645161290, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0312500000000000, - 0.0312500000000000, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0166666666666667, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0476190476190476, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0307692307692308, - 0.0307692307692308, - 0.0307692307692308, - 0.0312500000000000, - 0.0317460317460317, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0312500000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0158730158730159, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0163934426229508, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0333333333333333, - 0.0344827586206897, - 0.0350877192982456, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0545454545454545, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0363636363636364, - 0.0370370370370370, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0333333333333333, - 0.0169491525423729, - 0.0169491525423729, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0172413793103448, - 0.0172413793103448, - 0.0175438596491228, - 0.0172413793103448, - 0.0172413793103448, - 0.0175438596491228, - 0.0000000000000000, - 0.0000000000000000, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0163934426229508, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0163934426229508, - 0.0166666666666667, - 0.0166666666666667, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0156250000000000, - 0.0156250000000000, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0161290322580645, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0322580645161290, - 0.0322580645161290, - 0.0483870967741936, - 0.0468750000000000, - 0.0476190476190476, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0500000000000000, - 0.0491803278688525, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0327868852459016, - 0.0333333333333333, - 0.0169491525423729, - 0.0169491525423729, - 0.0333333333333333, - 0.0333333333333333, - 0.0645161290322581, - 0.0793650793650794, - 0.0781250000000000, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0781250000000000, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0781250000000000, - 0.0781250000000000, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0952380952380952, - 0.0967741935483871, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0847457627118644, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0877192982456140, - 0.0727272727272727, - 0.0892857142857143, - 0.0892857142857143, - 0.0909090909090909, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0576923076923077, - 0.0740740740740741, - 0.0740740740740741, - 0.0909090909090909, - 0.0909090909090909, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1206896551724140, - 0.1206896551724140, - 0.1228070175438600, - 0.1250000000000000, - 0.1090909090909090, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1111111111111110, - 0.1111111111111110, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.1000000000000000, - 0.0816326530612245, - 0.0816326530612245, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0816326530612245, - 0.0816326530612245, - 0.0816326530612245, - 0.0833333333333333, - 0.0833333333333333, - 0.1000000000000000, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1153846153846150, - 0.1111111111111110, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1052631578947370, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.1071428571428570, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0784313725490196, - 0.0769230769230769, - 0.0784313725490196, - 0.0784313725490196, - 0.0769230769230769, - 0.0784313725490196, - 0.0784313725490196, - 0.0784313725490196, - 0.0961538461538462, - 0.0961538461538462, - 0.1132075471698110, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1132075471698110, - 0.1111111111111110, - 0.1111111111111110, - 0.1454545454545450, - 0.1454545454545450, - 0.1538461538461540, - 0.1481481481481480, - 0.1481481481481480, - 0.1481481481481480, - 0.1538461538461540, - 0.1538461538461540, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1276595744680850, - 0.1304347826086960, - 0.1304347826086960, - 0.0888888888888889, - 0.0869565217391304, - 0.0851063829787234, - 0.1041666666666670, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1250000000000000, - 0.1250000000000000, - 0.1224489795918370, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1020408163265310, - 0.1041666666666670, - 0.1063829787234040, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1041666666666670, - 0.1041666666666670, - 0.1020408163265310, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.1153846153846150, - 0.1153846153846150, - 0.1132075471698110, - 0.1132075471698110, - 0.1153846153846150, - 0.1153846153846150, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1698113207547170, - 0.1666666666666670, - 0.1509433962264150, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1818181818181820, - 0.1636363636363640, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1754385964912280, - 0.1754385964912280, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1864406779661020, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1833333333333330, - 0.1833333333333330, - 0.1833333333333330, - 0.1967213114754100, - 0.1935483870967740, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1666666666666670, - 0.1525423728813560, - 0.1071428571428570, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1403508771929820, - 0.1403508771929820, - 0.1403508771929820, - 0.1403508771929820, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1724137931034480, - 0.1724137931034480, - 0.1694915254237290, - 0.1666666666666670, - 0.1639344262295080, - 0.1500000000000000, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1475409836065570, - 0.1475409836065570, - 0.1612903225806450, - 0.1612903225806450, - 0.1587301587301590, - 0.1692307692307690, - 0.1692307692307690, - 0.1692307692307690, - 0.1692307692307690, - 0.1562500000000000, - 0.1562500000000000, - 0.1562500000000000, - 0.1692307692307690, - 0.1692307692307690, - 0.1692307692307690, - 0.1692307692307690, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1538461538461540, - 0.1406250000000000, - 0.1290322580645160, - 0.1290322580645160, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0862068965517241, - 0.0862068965517241, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0952380952380952, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0597014925373134, - 0.0588235294117647, - 0.0588235294117647, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0285714285714286, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0156250000000000, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0153846153846154, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0491803278688525, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0169491525423729, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0161290322580645, - 0.0163934426229508, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0169491525423729, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0169491525423729, - 0.0166666666666667, - 0.0163934426229508, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0166666666666667, - 0.0169491525423729, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0163934426229508, - 0.0166666666666667, - 0.0172413793103448, - 0.0172413793103448, - 0.0172413793103448, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0181818181818182, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0178571428571429, - 0.0181818181818182, - 0.0185185185185185, - 0.0188679245283019, - 0.0188679245283019, - 0.0188679245283019, - 0.0192307692307692, - 0.0196078431372549, - 0.0204081632653061, - 0.0200000000000000, - 0.0200000000000000, - 0.0392156862745098, - 0.0400000000000000, - 0.0392156862745098, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0384615384615385, - 0.0392156862745098, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0566037735849057, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0535714285714286, - 0.0535714285714286, - 0.0526315789473684, - 0.0517241379310345, - 0.0545454545454545, - 0.0545454545454545, - 0.0363636363636364, - 0.0363636363636364, - 0.0357142857142857, - 0.0357142857142857, - 0.0363636363636364, - 0.0357142857142857, - 0.0357142857142857, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0370370370370370, - 0.0363636363636364, - 0.0363636363636364, - 0.0370370370370370, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0370370370370370, - 0.0392156862745098, - 0.0392156862745098, - 0.0400000000000000, - 0.0408163265306122, - 0.0408163265306122, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0384615384615385, - 0.0384615384615385, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0555555555555556, - 0.0555555555555556, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0312500000000000, - 0.0312500000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0312500000000000, - 0.0312500000000000, - 0.0307692307692308, - 0.0307692307692308, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0294117647058823, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0285714285714286, - 0.0281690140845070, - 0.0285714285714286, - 0.0285714285714286, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0303030303030303, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0144927536231884, - 0.0147058823529412, - 0.0144927536231884, - 0.0147058823529412, - 0.0149253731343284, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0151515151515152, - 0.0156250000000000, - 0.0153846153846154, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0158730158730159, - 0.0461538461538462, - 0.0468750000000000, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0781250000000000, - 0.0781250000000000, - 0.0769230769230769, - 0.0769230769230769, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.1093750000000000, - 0.0967741935483871, - 0.0967741935483871, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0819672131147541, - 0.0666666666666667, - 0.0645161290322581, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0757575757575758, - 0.0724637681159420, - 0.0724637681159420, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0704225352112676, - 0.0704225352112676, - 0.0571428571428571, - 0.0579710144927536, - 0.0441176470588235, - 0.0441176470588235, - 0.0447761194029851, - 0.0454545454545455, - 0.0447761194029851, - 0.0441176470588235, - 0.0434782608695652, - 0.0428571428571429, - 0.0428571428571429, - 0.0434782608695652, - 0.0434782608695652, - 0.0434782608695652, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0294117647058823, - 0.0294117647058823, - 0.0298507462686567, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0289855072463768, - 0.0289855072463768, - 0.0285714285714286, - 0.0142857142857143, - 0.0142857142857143, - 0.0140845070422535, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0136986301369863, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0138888888888889, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0000000000000000, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0142857142857143, - 0.0281690140845070, - 0.0285714285714286, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0285714285714286, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0298507462686567, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0147058823529412, - 0.0147058823529412, - 0.0144927536231884, - 0.0147058823529412, - 0.0144927536231884, - 0.0142857142857143, - 0.0142857142857143, - 0.0140845070422535, - 0.0140845070422535, - 0.0142857142857143, - 0.0144927536231884, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0149253731343284, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0147058823529412, - 0.0289855072463768, - 0.0289855072463768, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0289855072463768, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0294117647058823, - 0.0298507462686567, - 0.0303030303030303, - 0.0447761194029851, - 0.0447761194029851, - 0.0454545454545455, - 0.0597014925373134, - 0.0597014925373134, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0441176470588235, - 0.0447761194029851, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0461538461538462, - 0.0461538461538462, - 0.0454545454545455, - 0.0454545454545455, - 0.0447761194029851, - 0.0447761194029851, - 0.0454545454545455, - 0.0468750000000000, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0476190476190476, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0491803278688525, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0491803278688525, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0526315789473684, - 0.0545454545454545, - 0.0526315789473684, - 0.0526315789473684, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0727272727272727, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0545454545454545, - 0.0555555555555556, - 0.0566037735849057, - 0.0384615384615385, - 0.0384615384615385, - 0.0384615384615385, - 0.0377358490566038, - 0.0377358490566038, - 0.0377358490566038, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0612244897959184, - 0.0625000000000000, - 0.0625000000000000, - 0.0612244897959184, - 0.0961538461538462, - 0.1111111111111110, - 0.1578947368421050, - 0.1551724137931030, - 0.1724137931034480, - 0.1694915254237290, - 0.1666666666666670, - 0.1666666666666670, - 0.2000000000000000, - 0.1864406779661020, - 0.1864406779661020, - 0.1864406779661020, - 0.1896551724137930, - 0.1896551724137930, - 0.2033898305084750, - 0.2033898305084750, - 0.2033898305084750, - 0.2000000000000000, - 0.1967213114754100, - 0.1967213114754100, - 0.1935483870967740, - 0.1935483870967740, - 0.2187500000000000, - 0.2187500000000000, - 0.2187500000000000, - 0.2187500000000000, - 0.2187500000000000, - 0.2307692307692310, - 0.2307692307692310, - 0.2380952380952380, - 0.2419354838709680, - 0.2459016393442620, - 0.2586206896551720, - 0.2586206896551720, - 0.2711864406779660, - 0.2711864406779660, - 0.2711864406779660, - 0.2711864406779660, - 0.2622950819672130, - 0.2580645161290320, - 0.2542372881355930, - 0.2542372881355930, - 0.2542372881355930, - 0.2500000000000000, - 0.2459016393442620, - 0.2459016393442620, - 0.2459016393442620, - 0.2459016393442620, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2622950819672130, - 0.2622950819672130, - 0.2622950819672130, - 0.2666666666666670, - 0.2711864406779660, - 0.2711864406779660, - 0.2833333333333330, - 0.2833333333333330, - 0.2786885245901640, - 0.2741935483870970, - 0.2615384615384620, - 0.2656250000000000, - 0.2539682539682540, - 0.2539682539682540, - 0.2539682539682540, - 0.2622950819672130, - 0.2666666666666670, - 0.2622950819672130, - 0.2500000000000000, - 0.2500000000000000, - 0.2459016393442620, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2500000000000000, - 0.2615384615384620, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2769230769230770, - 0.2769230769230770, - 0.2769230769230770, - 0.2727272727272730, - 0.2647058823529410, - 0.2647058823529410, - 0.2537313432835820, - 0.2647058823529410, - 0.2647058823529410, - 0.2647058823529410, - 0.2424242424242420, - 0.2424242424242420, - 0.2153846153846150, - 0.2153846153846150, - 0.2153846153846150, - 0.2153846153846150, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1428571428571430, - 0.1428571428571430, - 0.1578947368421050, - 0.1428571428571430, - 0.1428571428571430, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1296296296296300, - 0.1296296296296300, - 0.1481481481481480, - 0.1481481481481480, - 0.1509433962264150, - 0.1666666666666670, - 0.1509433962264150, - 0.1886792452830190, - 0.2000000000000000, - 0.2037037037037040, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1929824561403510, - 0.1785714285714290, - 0.1818181818181820, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1724137931034480, - 0.1724137931034480, - 0.1694915254237290, - 0.1694915254237290, - 0.1666666666666670, - 0.1666666666666670, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1500000000000000, - 0.1525423728813560, - 0.1525423728813560, - 0.1379310344827590, - 0.1379310344827590, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1525423728813560, - 0.1525423728813560, - 0.1525423728813560, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1666666666666670, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1803278688524590, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.2000000000000000, - 0.2000000000000000, - 0.1969696969696970, - 0.1969696969696970, - 0.2000000000000000, - 0.2000000000000000, - 0.2121212121212120, - 0.2121212121212120, - 0.2238805970149250, - 0.2238805970149250, - 0.2238805970149250, - 0.2205882352941180, - 0.2205882352941180, - 0.2205882352941180, - 0.2205882352941180, - 0.2089552238805970, - 0.2058823529411760, - 0.2058823529411760, - 0.1940298507462690, - 0.1940298507462690, - 0.1940298507462690, - 0.1940298507462690, - 0.1940298507462690, - 0.1940298507462690, - 0.1884057971014490, - 0.1884057971014490, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1641791044776120, - 0.1641791044776120, - 0.1515151515151520, - 0.1492537313432840, - 0.1492537313432840, - 0.1470588235294120, - 0.1449275362318840, - 0.1449275362318840, - 0.1449275362318840, - 0.1449275362318840, - 0.1449275362318840, - 0.1449275362318840, - 0.1304347826086960, - 0.1323529411764710, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1343283582089550, - 0.1212121212121210, - 0.1230769230769230, - 0.1230769230769230, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1230769230769230, - 0.1230769230769230, - 0.1212121212121210, - 0.1212121212121210, - 0.1212121212121210, - 0.1212121212121210, - 0.1194029850746270, - 0.1142857142857140, - 0.1142857142857140, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1044776119402990, - 0.1060606060606060, - 0.1060606060606060, - 0.1060606060606060, - 0.1060606060606060, - 0.1060606060606060, - 0.1060606060606060, - 0.1044776119402990, - 0.1044776119402990, - 0.1014492753623190, - 0.1014492753623190, - 0.1014492753623190, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1060606060606060, - 0.1060606060606060, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.1076923076923080, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0857142857142857, - 0.0857142857142857, - 0.0845070422535211, - 0.0845070422535211, - 0.0845070422535211, - 0.0845070422535211, - 0.0845070422535211, - 0.0845070422535211, - 0.0845070422535211, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0704225352112676, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0694444444444444, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0563380281690141, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0547945205479452, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0540540540540541, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0405405405405405, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0410958904109589, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0416666666666667, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0422535211267606, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0428571428571429, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0454545454545455, - 0.0461538461538462, - 0.0461538461538462, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0468750000000000, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0317460317460317, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0333333333333333, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0333333333333333, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0327868852459016, - 0.0322580645161290, - 0.0327868852459016, - 0.0322580645161290, - 0.0327868852459016, - 0.0327868852459016, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0344827586206897, - 0.0344827586206897, - 0.0350877192982456, - 0.0357142857142857, - 0.0357142857142857, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0338983050847458, - 0.0344827586206897, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0333333333333333, - 0.0338983050847458, - 0.0338983050847458, - 0.0338983050847458, - 0.0333333333333333, - 0.0491803278688525, - 0.0491803278688525, - 0.0526315789473684, - 0.0517241379310345, - 0.0508474576271187, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0545454545454545, - 0.0545454545454545, - 0.0566037735849057, - 0.0555555555555556, - 0.0727272727272727, - 0.0727272727272727, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0740740740740741, - 0.0740740740740741, - 0.0754716981132075, - 0.0784313725490196, - 0.0600000000000000, - 0.0612244897959184, - 0.0600000000000000, - 0.0600000000000000, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0566037735849057, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0483870967741936, - 0.0483870967741936, - 0.0483870967741936, - 0.0491803278688525, - 0.0645161290322581, - 0.0645161290322581, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0634920634920635, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0606060606060606, - 0.0606060606060606, - 0.0606060606060606, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0588235294117647, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0597014925373134, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0441176470588235, - 0.0447761194029851, - 0.0447761194029851, - 0.0447761194029851, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0597014925373134, - 0.0454545454545455, - 0.0461538461538462, - 0.0461538461538462, - 0.0461538461538462, - 0.0606060606060606, - 0.0606060606060606, - 0.0597014925373134, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0724637681159420, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0735294117647059, - 0.0597014925373134, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0579710144927536, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0571428571428571, - 0.0579710144927536, - 0.0579710144927536, - 0.0579710144927536, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0735294117647059, - 0.0606060606060606, - 0.0615384615384615, - 0.0615384615384615, - 0.0615384615384615, - 0.0625000000000000, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1029411764705880, - 0.1014492753623190, - 0.1159420289855070, - 0.1159420289855070, - 0.1176470588235290, - 0.1176470588235290, - 0.1194029850746270, - 0.1060606060606060, - 0.1060606060606060, - 0.1076923076923080, - 0.1212121212121210, - 0.1212121212121210, - 0.1076923076923080, - 0.1111111111111110, - 0.1269841269841270, - 0.1451612903225810, - 0.1500000000000000, - 0.1500000000000000, - 0.1525423728813560, - 0.1935483870967740, - 0.2000000000000000, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.1967213114754100, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1904761904761900, - 0.1904761904761900, - 0.1904761904761900, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1846153846153850, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.2000000000000000, - 0.1875000000000000, - 0.1904761904761900, - 0.1875000000000000, - 0.1904761904761900, - 0.1904761904761900, - 0.1935483870967740, - 0.2063492063492060, - 0.2063492063492060, - 0.2063492063492060, - 0.2063492063492060, - 0.2096774193548390, - 0.2222222222222220, - 0.2222222222222220, - 0.2063492063492060, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1935483870967740, - 0.1803278688524590, - 0.1639344262295080, - 0.1639344262295080, - 0.1666666666666670, - 0.1666666666666670, - 0.1379310344827590, - 0.1206896551724140, - 0.1166666666666670, - 0.1166666666666670, - 0.1129032258064520, - 0.0983606557377049, - 0.0952380952380952, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0645161290322581, - 0.0793650793650794, - 0.0781250000000000, - 0.0781250000000000, - 0.0781250000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.0923076923076923, - 0.1060606060606060, - 0.1060606060606060, - 0.1076923076923080, - 0.1076923076923080, - 0.0937500000000000, - 0.0937500000000000, - 0.0967741935483871, - 0.0967741935483871, - 0.1111111111111110, - 0.1111111111111110, - 0.0967741935483871, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0833333333333333, - 0.0833333333333333, - 0.1000000000000000, - 0.1000000000000000, - 0.0833333333333333, - 0.0819672131147541, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0806451612903226, - 0.0819672131147541, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0983606557377049, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.0967741935483871, - 0.0967741935483871, - 0.0952380952380952, - 0.0967741935483871, - 0.0967741935483871, - 0.0819672131147541, - 0.0819672131147541, - 0.0967741935483871, - 0.0983606557377049, - 0.0967741935483871, - 0.1000000000000000, - 0.1147540983606560, - 0.0983606557377049, - 0.0983606557377049, - 0.1000000000000000, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0967741935483871, - 0.0952380952380952, - 0.0967741935483871, - 0.0983606557377049, - 0.0983606557377049, - 0.1000000000000000, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.1016949152542370, - 0.0862068965517241, - 0.0847457627118644, - 0.1000000000000000, - 0.1147540983606560, - 0.1166666666666670, - 0.1166666666666670, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1186440677966100, - 0.1206896551724140, - 0.1186440677966100, - 0.1206896551724140, - 0.1228070175438600, - 0.1228070175438600, - 0.1228070175438600, - 0.1525423728813560, - 0.1500000000000000, - 0.1525423728813560, - 0.1525423728813560, - 0.1525423728813560, - 0.1525423728813560, - 0.1666666666666670, - 0.1666666666666670, - 0.1694915254237290, - 0.1694915254237290, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1578947368421050, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1578947368421050, - 0.1578947368421050, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1754385964912280, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1754385964912280, - 0.1818181818181820, - 0.2105263157894740, - 0.2105263157894740, - 0.2105263157894740, - 0.2142857142857140, - 0.2068965517241380, - 0.2105263157894740, - 0.2105263157894740, - 0.2142857142857140, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2115384615384620, - 0.2115384615384620, - 0.2156862745098040, - 0.2156862745098040, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1800000000000000, - 0.1800000000000000, - 0.1923076923076920, - 0.1923076923076920, - 0.1923076923076920, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2456140350877190, - 0.2456140350877190, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2592592592592590, - 0.2641509433962260, - 0.2641509433962260, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2549019607843140, - 0.2549019607843140, - 0.2641509433962260, - 0.2777777777777780, - 0.2962962962962960, - 0.3018867924528300, - 0.3148148148148150, - 0.3018867924528300, - 0.3018867924528300, - 0.3018867924528300, - 0.3018867924528300, - 0.2884615384615380, - 0.2745098039215690, - 0.2745098039215690, - 0.2745098039215690, - 0.2857142857142860, - 0.2857142857142860, - 0.3000000000000000, - 0.3137254901960780, - 0.3076923076923080, - 0.3137254901960780, - 0.3200000000000000, - 0.3200000000000000, - 0.3200000000000000, - 0.3200000000000000, - 0.3137254901960780, - 0.3269230769230770, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3529411764705880, - 0.3461538461538460, - 0.3461538461538460, - 0.3269230769230770, - 0.3269230769230770, - 0.3333333333333330, - 0.3333333333333330, - 0.3137254901960780, - 0.3137254901960780, - 0.3076923076923080, - 0.2884615384615380, - 0.2745098039215690, - 0.2549019607843140, - 0.2549019607843140, - 0.2400000000000000, - 0.2500000000000000, - 0.2352941176470590, - 0.2400000000000000, - 0.2400000000000000, - 0.2352941176470590, - 0.2200000000000000, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2075471698113210, - 0.1851851851851850, - 0.1851851851851850, - 0.1698113207547170, - 0.1666666666666670, - 0.1698113207547170, - 0.1698113207547170, - 0.1538461538461540, - 0.1538461538461540, - 0.1509433962264150, - 0.1509433962264150, - 0.1568627450980390, - 0.1600000000000000, - 0.1730769230769230, - 0.1851851851851850, - 0.1538461538461540, - 0.1538461538461540, - 0.1698113207547170, - 0.1730769230769230, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1730769230769230, - 0.1730769230769230, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1851851851851850, - 0.1851851851851850, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.1851851851851850, - 0.2000000000000000, - 0.1851851851851850, - 0.1851851851851850, - 0.2105263157894740, - 0.2105263157894740, - 0.2372881355932200, - 0.2295081967213110, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2096774193548390, - 0.2096774193548390, - 0.2096774193548390, - 0.2063492063492060, - 0.2063492063492060, - 0.2096774193548390, - 0.2096774193548390, - 0.2222222222222220, - 0.2295081967213110, - 0.2295081967213110, - 0.2295081967213110, - 0.2166666666666670, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2419354838709680, - 0.2459016393442620, - 0.2622950819672130, - 0.2622950819672130, - 0.2500000000000000, - 0.2372881355932200, - 0.2372881355932200, - 0.2372881355932200, - 0.2372881355932200, - 0.2372881355932200, - 0.2000000000000000, - 0.2280701754385960, - 0.2280701754385960, - 0.2241379310344830, - 0.2241379310344830, - 0.2105263157894740, - 0.2105263157894740, - 0.2105263157894740, - 0.2105263157894740, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1964285714285710, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1754385964912280, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1403508771929820, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1379310344827590, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1694915254237290, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1774193548387100, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1746031746031750, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1774193548387100, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1639344262295080, - 0.1639344262295080, - 0.1639344262295080, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1587301587301590, - 0.1639344262295080, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1612903225806450, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1500000000000000, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1475409836065570, - 0.1500000000000000, - 0.1475409836065570, - 0.1475409836065570, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1311475409836070, - 0.1311475409836070, - 0.1311475409836070, - 0.1311475409836070, - 0.1311475409836070, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1129032258064520, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1166666666666670, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1129032258064520, - 0.1129032258064520, - 0.1269841269841270, - 0.1269841269841270, - 0.1269841269841270, - 0.1269841269841270, - 0.1290322580645160, - 0.1290322580645160, - 0.1290322580645160, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1147540983606560, - 0.1000000000000000, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0983606557377049, - 0.0967741935483871, - 0.0967741935483871, - 0.0967741935483871, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0952380952380952, - 0.0937500000000000, - 0.0937500000000000, - 0.0923076923076923, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0895522388059701, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0746268656716418, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0757575757575758, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0769230769230769, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0793650793650794, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0806451612903226, - 0.0645161290322581, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0655737704918033, - 0.0666666666666667, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0655737704918033, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0877192982456140, - 0.0877192982456140, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0943396226415094, - 0.0961538461538462, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0925925925925926, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0892857142857143, - 0.0909090909090909, - 0.0925925925925926, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0925925925925926, - 0.0943396226415094, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0980392156862745, - 0.0961538461538462, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0816326530612245, - 0.0816326530612245, - 0.0833333333333333, - 0.0833333333333333, - 0.0833333333333333, - 0.0851063829787234, - 0.0652173913043478, - 0.0652173913043478, - 0.0666666666666667, - 0.0666666666666667, - 0.0652173913043478, - 0.0652173913043478, - 0.0652173913043478, - 0.0666666666666667, - 0.0697674418604651, - 0.0697674418604651, - 0.0681818181818182, - 0.0666666666666667, - 0.0869565217391304, - 0.1063829787234040, - 0.1111111111111110, - 0.1111111111111110, - 0.1136363636363640, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1041666666666670, - 0.1041666666666670, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1086956521739130, - 0.0869565217391304, - 0.0666666666666667, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0625000000000000, - 0.0600000000000000, - 0.0612244897959184, - 0.0588235294117647, - 0.0588235294117647, - 0.0588235294117647, - 0.0576923076923077, - 0.0576923076923077, - 0.0576923076923077, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0727272727272727, - 0.0740740740740741, - 0.0740740740740741, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0862068965517241, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0862068965517241, - 0.0877192982456140, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0714285714285714, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0666666666666667, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0892857142857143, - 0.0925925925925926, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.0784313725490196, - 0.0784313725490196, - 0.0754716981132075, - 0.0754716981132075, - 0.0740740740740741, - 0.0740740740740741, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0535714285714286, - 0.0545454545454545, - 0.0545454545454545, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0535714285714286, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0545454545454545, - 0.0545454545454545, - 0.0555555555555556, - 0.0555555555555556, - 0.0545454545454545, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0508474576271187, - 0.0508474576271187, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0500000000000000, - 0.0508474576271187, - 0.0517241379310345, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0526315789473684, - 0.0526315789473684, - 0.0689655172413793, - 0.0677966101694915, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0714285714285714, - 0.0701754385964912, - 0.0862068965517241, - 0.0862068965517241, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0847457627118644, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0526315789473684, - 0.0526315789473684, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0517241379310345, - 0.0677966101694915, - 0.0677966101694915, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0689655172413793, - 0.0701754385964912, - 0.0701754385964912, - 0.0701754385964912, - 0.0689655172413793, - 0.0689655172413793, - 0.0714285714285714, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0555555555555556, - 0.0377358490566038, - 0.0377358490566038, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0370370370370370, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0566037735849057, - 0.0566037735849057, - 0.0555555555555556, - 0.0740740740740741, - 0.0740740740740741, - 0.0740740740740741, - 0.0566037735849057, - 0.0566037735849057, - 0.0576923076923077, - 0.0576923076923077, - 0.0588235294117647, - 0.0600000000000000, - 0.0600000000000000, - 0.0612244897959184, - 0.0408163265306122, - 0.0408163265306122, - 0.0408163265306122, - 0.0408163265306122, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0400000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0400000000000000, - 0.0204081632653061, - 0.0208333333333333, - 0.0204081632653061, - 0.0200000000000000, - 0.0200000000000000, - 0.0200000000000000, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0392156862745098, - 0.0384615384615385, - 0.0377358490566038, - 0.0377358490566038, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0545454545454545, - 0.0535714285714286, - 0.0535714285714286, - 0.0535714285714286, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0566037735849057, - 0.0576923076923077, - 0.0566037735849057, - 0.0566037735849057, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0555555555555556, - 0.0566037735849057, - 0.0754716981132075, - 0.0754716981132075, - 0.0740740740740741, - 0.0740740740740741, - 0.0727272727272727, - 0.0714285714285714, - 0.0714285714285714, - 0.0714285714285714, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0862068965517241, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0877192982456140, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0892857142857143, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.1111111111111110, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0943396226415094, - 0.0961538461538462, - 0.0961538461538462, - 0.0980392156862745, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.1153846153846150, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0800000000000000, - 0.0816326530612245, - 0.0816326530612245, - 0.0816326530612245, - 0.0816326530612245, - 0.0816326530612245, - 0.0833333333333333, - 0.0816326530612245, - 0.0816326530612245, - 0.0816326530612245, - 0.0833333333333333, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.1000000000000000, - 0.1200000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1428571428571430, - 0.1372549019607840, - 0.1372549019607840, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1458333333333330, - 0.1458333333333330, - 0.1489361702127660, - 0.1458333333333330, - 0.1489361702127660, - 0.1304347826086960, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1521739130434780, - 0.1521739130434780, - 0.1702127659574470, - 0.1739130434782610, - 0.1818181818181820, - 0.1777777777777780, - 0.1818181818181820, - 0.1818181818181820, - 0.1904761904761900, - 0.1860465116279070, - 0.1818181818181820, - 0.1818181818181820, - 0.1860465116279070, - 0.2045454545454550, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2272727272727270, - 0.2325581395348840, - 0.2380952380952380, - 0.2380952380952380, - 0.2195121951219510, - 0.2195121951219510, - 0.2142857142857140, - 0.2142857142857140, - 0.2093023255813950, - 0.2093023255813950, - 0.2045454545454550, - 0.2045454545454550, - 0.1860465116279070, - 0.1860465116279070, - 0.1860465116279070, - 0.1860465116279070, - 0.1860465116279070, - 0.1904761904761900, - 0.2093023255813950, - 0.2093023255813950, - 0.2142857142857140, - 0.2142857142857140, - 0.2272727272727270, - 0.2142857142857140, - 0.2045454545454550, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2127659574468080, - 0.2173913043478260, - 0.2291666666666670, - 0.2291666666666670, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2549019607843140, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2549019607843140, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2692307692307690, - 0.2745098039215690, - 0.2745098039215690, - 0.2745098039215690, - 0.2745098039215690, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2653061224489800, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2600000000000000, - 0.2448979591836730, - 0.2448979591836730, - 0.2400000000000000, - 0.2244897959183670, - 0.2244897959183670, - 0.2244897959183670, - 0.2244897959183670, - 0.2291666666666670, - 0.2291666666666670, - 0.2244897959183670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2127659574468080, - 0.2127659574468080, - 0.2127659574468080, - 0.2083333333333330, - 0.2083333333333330, - 0.2083333333333330, - 0.2127659574468080, - 0.2127659574468080, - 0.2127659574468080, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2600000000000000, - 0.2745098039215690, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2641509433962260, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2830188679245280, - 0.2641509433962260, - 0.2641509433962260, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2692307692307690, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2549019607843140, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2352941176470590, - 0.2352941176470590, - 0.2200000000000000, - 0.2200000000000000, - 0.2200000000000000, - 0.2156862745098040, - 0.2156862745098040, - 0.2156862745098040, - 0.2156862745098040, - 0.2156862745098040, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2115384615384620, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2181818181818180, - 0.2321428571428570, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2363636363636360, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2545454545454540, - 0.2678571428571430, - 0.2678571428571430, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2545454545454540, - 0.2407407407407410, - 0.2407407407407410, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2264150943396230, - 0.2307692307692310, - 0.2156862745098040, - 0.2156862745098040, - 0.2000000000000000, - 0.2000000000000000, - 0.1960784313725490, - 0.1960784313725490, - 0.2264150943396230, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2075471698113210, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.1960784313725490, - 0.2075471698113210, - 0.2075471698113210, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2037037037037040, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2075471698113210, - 0.2037037037037040, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.2000000000000000, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1754385964912280, - 0.1754385964912280, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1481481481481480, - 0.1481481481481480, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1132075471698110, - 0.1132075471698110, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1454545454545450, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1090909090909090, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1132075471698110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1111111111111110, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1272727272727270, - 0.1296296296296300, - 0.1296296296296300, - 0.1296296296296300, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1320754716981130, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1176470588235290, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1346153846153850, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1372549019607840, - 0.1200000000000000, - 0.1200000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1224489795918370, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1200000000000000, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1200000000000000, - 0.1372549019607840, - 0.1428571428571430, - 0.1458333333333330, - 0.1458333333333330, - 0.1489361702127660, - 0.1521739130434780, - 0.1521739130434780, - 0.1521739130434780, - 0.1702127659574470, - 0.1875000000000000, - 0.2040816326530610, - 0.2083333333333330, - 0.2083333333333330, - 0.2083333333333330, - 0.2083333333333330, - 0.2083333333333330, - 0.2127659574468080, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2340425531914890, - 0.2340425531914890, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2553191489361700, - 0.2553191489361700, - 0.2608695652173910, - 0.2608695652173910, - 0.2444444444444440, - 0.2272727272727270, - 0.2093023255813950, - 0.2045454545454550, - 0.2045454545454550, - 0.2045454545454550, - 0.2045454545454550, - 0.2045454545454550, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2391304347826090, - 0.2391304347826090, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2222222222222220, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2553191489361700, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2553191489361700, - 0.2553191489361700, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2391304347826090, - 0.2553191489361700, - 0.2553191489361700, - 0.2553191489361700, - 0.2444444444444440, - 0.2391304347826090, - 0.2340425531914890, - 0.2340425531914890, - 0.2500000000000000, - 0.2500000000000000, - 0.2653061224489800, - 0.2708333333333330, - 0.2765957446808510, - 0.2708333333333330, - 0.2857142857142860, - 0.2857142857142860, - 0.2553191489361700, - 0.2553191489361700, - 0.2608695652173910, - 0.2608695652173910, - 0.2608695652173910, - 0.2608695652173910, - 0.3061224489795920, - 0.2978723404255320, - 0.2978723404255320, - 0.2978723404255320, - 0.2978723404255320, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.3191489361702130, - 0.3191489361702130, - 0.3191489361702130, - 0.3191489361702130, - 0.2888888888888890, - 0.2826086956521740, - 0.2888888888888890, - 0.2727272727272730, - 0.2727272727272730, - 0.2790697674418600, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3191489361702130, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3191489361702130, - 0.3333333333333330, - 0.3333333333333330, - 0.3265306122448980, - 0.3333333333333330, - 0.3469387755102040, - 0.3600000000000000, - 0.3600000000000000, - 0.3469387755102040, - 0.3333333333333330, - 0.3333333333333330, - 0.3265306122448980, - 0.3061224489795920, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3137254901960780, - 0.3137254901960780, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.2916666666666670, - 0.2978723404255320, - 0.2978723404255320, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.2978723404255320, - 0.2916666666666670, - 0.2916666666666670, - 0.3061224489795920, - 0.3061224489795920, - 0.2916666666666670, - 0.3061224489795920, - 0.3000000000000000, - 0.3000000000000000, - 0.3137254901960780, - 0.3269230769230770, - 0.3333333333333330, - 0.3269230769230770, - 0.3269230769230770, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3207547169811320, - 0.3269230769230770, - 0.3269230769230770, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3454545454545450, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3396226415094340, - 0.3396226415094340, - 0.3396226415094340, - 0.3396226415094340, - 0.3396226415094340, - 0.3461538461538460, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3518518518518520, - 0.3518518518518520, - 0.3518518518518520, - 0.3396226415094340, - 0.3269230769230770, - 0.3137254901960780, - 0.3137254901960780, - 0.3137254901960780, - 0.3269230769230770, - 0.3269230769230770, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3200000000000000, - 0.3061224489795920, - 0.3200000000000000, - 0.3137254901960780, - 0.3137254901960780, - 0.3137254901960780, - 0.3269230769230770, - 0.3269230769230770, - 0.3269230769230770, - 0.3269230769230770, - 0.3333333333333330, - 0.3333333333333330, - 0.3400000000000000, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3400000000000000, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3469387755102040, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3673469387755100, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.3958333333333330, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4130434782608700, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4166666666666670, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4375000000000000, - 0.4468085106382980, - 0.4468085106382980, - 0.4468085106382980, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4565217391304350, - 0.4565217391304350, - 0.4565217391304350, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4444444444444440, - 0.4347826086956520, - 0.4347826086956520, - 0.4347826086956520, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4130434782608700, - 0.4130434782608700, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4255319148936170, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.4166666666666670, - 0.4166666666666670, - 0.4285714285714290, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4166666666666670, - 0.4200000000000000, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4081632653061220, - 0.4000000000000000, - 0.4117647058823530, - 0.4038461538461540, - 0.4150943396226420, - 0.4074074074074070, - 0.4074074074074070, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4038461538461540, - 0.3962264150943400, - 0.4038461538461540, - 0.4038461538461540, - 0.4038461538461540, - 0.4038461538461540, - 0.4038461538461540, - 0.3877551020408160, - 0.3921568627450980, - 0.3921568627450980, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3846153846153850, - 0.3962264150943400, - 0.4038461538461540, - 0.4038461538461540, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4181818181818180, - 0.4181818181818180, - 0.4181818181818180, - 0.4181818181818180, - 0.4181818181818180, - 0.4074074074074070, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.4074074074074070, - 0.4074074074074070, - 0.4074074074074070, - 0.4000000000000000, - 0.4107142857142860, - 0.4107142857142860, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3928571428571430, - 0.3818181818181820, - 0.3818181818181820, - 0.3818181818181820, - 0.3818181818181820, - 0.3818181818181820, - 0.3703703703703700, - 0.3818181818181820, - 0.3818181818181820, - 0.3818181818181820, - 0.3888888888888890, - 0.3962264150943400, - 0.4074074074074070, - 0.4074074074074070, - 0.4000000000000000, - 0.4000000000000000, - 0.3888888888888890, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.4074074074074070, - 0.4000000000000000, - 0.3962264150943400, - 0.3846153846153850, - 0.3846153846153850, - 0.3725490196078430, - 0.3725490196078430, - 0.3653846153846150, - 0.3653846153846150, - 0.3773584905660380, - 0.3773584905660380, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3584905660377360, - 0.3773584905660380, - 0.3773584905660380, - 0.3653846153846150, - 0.3653846153846150, - 0.3653846153846150, - 0.3653846153846150, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3518518518518520, - 0.3518518518518520, - 0.3518518518518520, - 0.3518518518518520, - 0.3584905660377360, - 0.3584905660377360, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3518518518518520, - 0.3454545454545450, - 0.3454545454545450, - 0.3571428571428570, - 0.3571428571428570, - 0.3571428571428570, - 0.3571428571428570, - 0.3508771929824560, - 0.3508771929824560, - 0.3508771929824560, - 0.3508771929824560, - 0.3392857142857140, - 0.3333333333333330, - 0.3396226415094340, - 0.3461538461538460, - 0.3461538461538460, - 0.3461538461538460, - 0.3529411764705880, - 0.3653846153846150, - 0.3653846153846150, - 0.3653846153846150, - 0.3653846153846150, - 0.3653846153846150, - 0.3529411764705880, - 0.3529411764705880, - 0.3265306122448980, - 0.3265306122448980, - 0.3265306122448980, - 0.3265306122448980, - 0.3265306122448980, - 0.3333333333333330, - 0.3265306122448980, - 0.3265306122448980, - 0.3265306122448980, - 0.3333333333333330, - 0.3333333333333330, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3541666666666670, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3800000000000000, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3600000000000000, - 0.3600000000000000, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3653846153846150, - 0.3653846153846150, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.3800000000000000, - 0.3673469387755100, - 0.3469387755102040, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3469387755102040, - 0.3400000000000000, - 0.3400000000000000, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3529411764705880, - 0.3600000000000000, - 0.3600000000000000, - 0.3469387755102040, - 0.3469387755102040, - 0.3333333333333330, - 0.3333333333333330, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3469387755102040, - 0.3600000000000000, - 0.3725490196078430, - 0.3846153846153850, - 0.3846153846153850, - 0.3846153846153850, - 0.3846153846153850, - 0.3962264150943400, - 0.3962264150943400, - 0.4038461538461540, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.3962264150943400, - 0.4038461538461540, - 0.4259259259259260, - 0.4259259259259260, - 0.4259259259259260, - 0.4259259259259260, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4150943396226420, - 0.4000000000000000, - 0.3818181818181820, - 0.3818181818181820, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3962264150943400, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.3888888888888890, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3888888888888890, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3703703703703700, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3584905660377360, - 0.3773584905660380, - 0.3773584905660380, - 0.3962264150943400, - 0.3962264150943400, - 0.3888888888888890, - 0.3818181818181820, - 0.3928571428571430, - 0.4035087719298250, - 0.4035087719298250, - 0.4035087719298250, - 0.4137931034482760, - 0.4137931034482760, - 0.4000000000000000, - 0.4000000000000000, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4210526315789470, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4210526315789470, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4107142857142860, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3888888888888890, - 0.3818181818181820, - 0.3818181818181820, - 0.3584905660377360, - 0.3584905660377360, - 0.3461538461538460, - 0.3461538461538460, - 0.3137254901960780, - 0.3000000000000000, - 0.3137254901960780, - 0.3137254901960780, - 0.3137254901960780, - 0.3137254901960780, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.3000000000000000, - 0.2800000000000000, - 0.2653061224489800, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.3076923076923080, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.2941176470588230, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3207547169811320, - 0.3090909090909090, - 0.3090909090909090, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2962962962962960, - 0.2909090909090910, - 0.2777777777777780, - 0.2641509433962260, - 0.2777777777777780, - 0.2777777777777780, - 0.2727272727272730, - 0.2857142857142860, - 0.2807017543859650, - 0.2758620689655170, - 0.2758620689655170, - 0.2758620689655170, - 0.2758620689655170, - 0.2758620689655170, - 0.2631578947368420, - 0.2631578947368420, - 0.2631578947368420, - 0.2586206896551720, - 0.2456140350877190, - 0.2456140350877190, - 0.2456140350877190, - 0.2456140350877190, - 0.2321428571428570, - 0.2321428571428570, - 0.2321428571428570, - 0.2321428571428570, - 0.2280701754385960, - 0.2280701754385960, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2241379310344830, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2280701754385960, - 0.2142857142857140, - 0.2142857142857140, - 0.2068965517241380, - 0.2068965517241380, - 0.2068965517241380, - 0.2068965517241380, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1929824561403510, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1964285714285710, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1818181818181820, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1785714285714290, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1896551724137930, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1754385964912280, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1724137931034480, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1578947368421050, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1607142857142860, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1636363636363640, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1698113207547170, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1730769230769230, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1764705882352940, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1600000000000000, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1568627450980390, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1063829787234040, - 0.1063829787234040, - 0.1063829787234040, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1400000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1333333333333330, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1777777777777780, - 0.1956521739130430, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2244897959183670, - 0.2244897959183670, - 0.2244897959183670, - 0.2244897959183670, - 0.2244897959183670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2653061224489800, - 0.2653061224489800, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2765957446808510, - 0.2916666666666670, - 0.2978723404255320, - 0.3125000000000000, - 0.3265306122448980, - 0.3265306122448980, - 0.3333333333333330, - 0.3191489361702130, - 0.3191489361702130, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3333333333333330, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3333333333333330, - 0.3260869565217390, - 0.3043478260869570, - 0.3043478260869570, - 0.2954545454545450, - 0.2954545454545450, - 0.2954545454545450, - 0.2790697674418600, - 0.2666666666666670, - 0.2666666666666670, - 0.2826086956521740, - 0.2826086956521740, - 0.2888888888888890, - 0.2888888888888890, - 0.2727272727272730, - 0.2558139534883720, - 0.2558139534883720, - 0.2558139534883720, - 0.2500000000000000, - 0.2666666666666670, - 0.2608695652173910, - 0.2608695652173910, - 0.2553191489361700, - 0.2553191489361700, - 0.2708333333333330, - 0.2500000000000000, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2448979591836730, - 0.2448979591836730, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2448979591836730, - 0.2448979591836730, - 0.2400000000000000, - 0.2400000000000000, - 0.2549019607843140, - 0.2549019607843140, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2400000000000000, - 0.2448979591836730, - 0.2448979591836730, - 0.2448979591836730, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2800000000000000, - 0.2653061224489800, - 0.2653061224489800, - 0.2800000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2448979591836730, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2553191489361700, - 0.2608695652173910, - 0.2608695652173910, - 0.2608695652173910, - 0.2608695652173910, - 0.2608695652173910, - 0.2553191489361700, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2708333333333330, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2653061224489800, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2800000000000000, - 0.2857142857142860, - 0.2916666666666670, - 0.2916666666666670, - 0.2916666666666670, - 0.2916666666666670, - 0.2916666666666670, - 0.2857142857142860, - 0.2916666666666670, - 0.2916666666666670, - 0.3061224489795920, - 0.3061224489795920, - 0.2978723404255320, - 0.2978723404255320, - 0.2826086956521740, - 0.2826086956521740, - 0.2727272727272730, - 0.2727272727272730, - 0.2888888888888890, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3191489361702130, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3111111111111110, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3181818181818180, - 0.3023255813953490, - 0.3023255813953490, - 0.2790697674418600, - 0.2857142857142860, - 0.3023255813953490, - 0.3023255813953490, - 0.3023255813953490, - 0.3181818181818180, - 0.3333333333333330, - 0.3617021276595740, - 0.3877551020408160, - 0.3877551020408160, - 0.4000000000000000, - 0.4000000000000000, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4117647058823530, - 0.4000000000000000, - 0.3877551020408160, - 0.3750000000000000, - 0.3750000000000000, - 0.3750000000000000, - 0.3750000000000000, - 0.3877551020408160, - 0.3877551020408160, - 0.3800000000000000, - 0.3800000000000000, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3673469387755100, - 0.3541666666666670, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3478260869565220, - 0.3478260869565220, - 0.3478260869565220, - 0.3404255319148940, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3260869565217390, - 0.3191489361702130, - 0.3191489361702130, - 0.3043478260869570, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2727272727272730, - 0.2888888888888890, - 0.2888888888888890, - 0.2826086956521740, - 0.2888888888888890, - 0.2888888888888890, - 0.3043478260869570, - 0.3191489361702130, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3409090909090910, - 0.3409090909090910, - 0.3409090909090910, - 0.3409090909090910, - 0.3409090909090910, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3333333333333330, - 0.3333333333333330, - 0.3333333333333330, - 0.3478260869565220, - 0.3478260869565220, - 0.3478260869565220, - 0.3555555555555560, - 0.3478260869565220, - 0.3478260869565220, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3478260869565220, - 0.3617021276595740, - 0.3617021276595740, - 0.3478260869565220, - 0.3478260869565220, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3404255319148940, - 0.3541666666666670, - 0.3541666666666670, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3617021276595740, - 0.3541666666666670, - 0.3600000000000000, - 0.3600000000000000, - 0.3600000000000000, - 0.3725490196078430, - 0.3725490196078430, - 0.3725490196078430, - 0.3800000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3877551020408160, - 0.3877551020408160, - 0.3877551020408160, - 0.3877551020408160, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.4000000000000000, - 0.3877551020408160, - 0.3877551020408160, - 0.3750000000000000, - 0.3750000000000000, - 0.3695652173913040, - 0.3695652173913040, - 0.3695652173913040, - 0.3695652173913040, - 0.3555555555555560, - 0.3555555555555560, - 0.3695652173913040, - 0.3695652173913040, - 0.3695652173913040, - 0.3695652173913040, - 0.3617021276595740, - 0.3695652173913040, - 0.3555555555555560, - 0.3409090909090910, - 0.3555555555555560, - 0.3555555555555560, - 0.3777777777777780, - 0.3863636363636360, - 0.3953488372093020, - 0.3953488372093020, - 0.3953488372093020, - 0.3953488372093020, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3863636363636360, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3636363636363640, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3777777777777780, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3409090909090910, - 0.3409090909090910, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3414634146341460, - 0.3170731707317070, - 0.3095238095238100, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3095238095238100, - 0.3095238095238100, - 0.3255813953488370, - 0.3255813953488370, - 0.3095238095238100, - 0.3095238095238100, - 0.3095238095238100, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3255813953488370, - 0.3095238095238100, - 0.3095238095238100, - 0.3255813953488370, - 0.3255813953488370, - 0.3409090909090910, - 0.3409090909090910, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3555555555555560, - 0.3409090909090910, - 0.3409090909090910, - 0.3488372093023260, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3829787234042550, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.3913043478260870, - 0.4042553191489360, - 0.4042553191489360, - 0.4042553191489360, - 0.3913043478260870, - 0.4000000000000000, - 0.4000000000000000, - 0.3863636363636360, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3636363636363640, - 0.3488372093023260, - 0.3488372093023260, - 0.3488372093023260, - 0.3409090909090910, - 0.3255813953488370, - 0.3255813953488370, - 0.3181818181818180, - 0.3181818181818180, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3260869565217390, - 0.3404255319148940, - 0.3404255319148940, - 0.3260869565217390, - 0.3023255813953490, - 0.3181818181818180, - 0.3111111111111110, - 0.3111111111111110, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3043478260869570, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3260869565217390, - 0.3260869565217390, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3111111111111110, - 0.3260869565217390, - 0.3111111111111110, - 0.3111111111111110, - 0.2954545454545450, - 0.2954545454545450, - 0.2954545454545450, - 0.2954545454545450, - 0.3260869565217390, - 0.3191489361702130, - 0.3191489361702130, - 0.3191489361702130, - 0.3191489361702130, - 0.3191489361702130, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.3125000000000000, - 0.2978723404255320, - 0.2826086956521740, - 0.2826086956521740, - 0.2765957446808510, - 0.2978723404255320, - 0.2978723404255320, - 0.2916666666666670, - 0.2765957446808510, - 0.2765957446808510, - 0.2765957446808510, - 0.2765957446808510, - 0.2916666666666670, - 0.2916666666666670, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.3061224489795920, - 0.2916666666666670, - 0.2916666666666670, - 0.2916666666666670, - 0.2916666666666670, - 0.2708333333333330, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2500000000000000, - 0.2340425531914890, - 0.2340425531914890, - 0.2173913043478260, - 0.2173913043478260, - 0.1956521739130430, - 0.1956521739130430, - 0.1956521739130430, - 0.1956521739130430, - 0.2173913043478260, - 0.2173913043478260, - 0.2000000000000000, - 0.2000000000000000, - 0.2173913043478260, - 0.2173913043478260, - 0.1956521739130430, - 0.1956521739130430, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2291666666666670, - 0.2244897959183670, - 0.2083333333333330, - 0.1914893617021280, - 0.1914893617021280, - 0.1875000000000000, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1914893617021280, - 0.1739130434782610, - 0.1702127659574470, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1836734693877550, - 0.1875000000000000, - 0.1914893617021280, - 0.1914893617021280, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1739130434782610, - 0.1777777777777780, - 0.1702127659574470, - 0.1702127659574470, - 0.1702127659574470, - 0.1702127659574470, - 0.1702127659574470, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1875000000000000, - 0.1836734693877550, - 0.1836734693877550, - 0.1666666666666670, - 0.1666666666666670, - 0.1666666666666670, - 0.1458333333333330, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1428571428571430, - 0.1458333333333330, - 0.1458333333333330, - 0.1458333333333330, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1276595744680850, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1250000000000000, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1224489795918370, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1041666666666670, - 0.1020408163265310, - 0.1020408163265310, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1020408163265310, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0980392156862745, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0800000000000000, - 0.0816326530612245, - 0.1000000000000000, - 0.1000000000000000, - 0.0980392156862745, - 0.0980392156862745, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0961538461538462, - 0.0943396226415094, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0909090909090909, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0925925925925926, - 0.0909090909090909, - 0.0740740740740741, - 0.0727272727272727, - 0.0727272727272727, - 0.0727272727272727, - 0.0714285714285714, - 0.0545454545454545, - 0.0545454545454545, - 0.0535714285714286, - 0.0535714285714286, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0363636363636364, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0357142857142857, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0350877192982456, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0344827586206897, - 0.0175438596491228, - 0.0175438596491228, - 0.0175438596491228 - } - } - }; - -} /* namespace prob_features */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_FEATURES_MODEL_H_ */ diff --git a/src/my-place/visit-categer/VisitCateger.cpp b/src/my-place/visit-categer/VisitCateger.cpp deleted file mode 100644 index c122fd9..0000000 --- a/src/my-place/visit-categer/VisitCateger.cpp +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "VisitCateger.h" -#include "Mahal.h" -#include -#include "ProbFeaturesModel.h" -#include - -// categorizer model parameters trained offline (implemented in python): -const std::map ctx::VisitCateger::__models({ -{ - PLACE_CATEG_ID_HOME, - ctx::MahalModel( - { - 0.588408417316, 0.475154840361, -0.564085141865, 0.077711893790, 0.782630398597, -0.650926403250, -0.101943950378 - }, - { - 0.797977863370, -0.133179879257, 0.242803062646, -0.059448581046, -0.117039646748, 0.097645535057, 0.014250290052, - -0.133179879257, 1.028900241400, -0.252245407243, 0.058455883835, -0.283950879851, 0.172204076583, 0.247906065767, - 0.242803062646, -0.252245407243, 1.832134785177, 0.327188225606, 0.874905851092, -0.371088938012, -1.289816938938, - -0.059448581046, 0.058455883835, 0.327188225606, 1.455090164348, 0.138363721074, 0.216985279422, -1.113021128017, - -0.117039646748, -0.283950879851, 0.874905851092, 0.138363721074, 1.379674755873, -0.977922749615, -0.738895486376, - 0.097645535057, 0.172204076583, -0.371088938012, 0.216985279422, -0.977922749615, 0.899928922718, -0.158101631251, - 0.014250290052, 0.247906065767, -1.289816938938, -1.113021128017, -0.738895486376, -0.158101631251, 2.644105309746 - }) -}, -{ - PLACE_CATEG_ID_WORK, - ctx::MahalModel( - { - -0.128092670982, -0.762177819157, 0.262924477521, -0.412038966097, -1.049141893517, 1.104760800499, -0.628939955525 - }, - { - 15.751249839350, 11.389025401325, -9.885346240379, -0.010809392387, -1.308837060762, 0.970778241189, 0.558946631235, - 11.389025401325, 12.830223040140, -8.517695939156, 0.293693134532, -0.845784968295, 1.418175236596, -2.246658259974, - -9.885346240379, -8.517695939156, 10.222750966685, 0.390448668966, 1.095218945062, -0.403733435617, -1.815103304859, - -0.010809392387, 0.293693134532, 0.390448668966, 2.256864603458, 0.632080300647, -0.019551779384, -1.751417951792, - -1.308837060762, -0.845784968295, 1.095218945062, 0.632080300647, 3.132753467561, -1.427748733399, -4.291958669471, - 0.970778241189, 1.418175236596, -0.403733435617, -0.019551779384, -1.427748733399, 1.183055586213, 0.200571452172, - 0.558946631235, -2.246658259974, -1.815103304859, -1.751417951792, -4.291958669471, 0.200571452172, 11.668888615934 - }) -}, -{ - PLACE_CATEG_ID_OTHER, - ctx::MahalModel( - { - -0.542340098504, 0.184789511765, 0.387451546413, 0.301902661472, 0.109392397093, -0.310468874039, 0.709513920221 - }, - { - 2.153884992301, -0.129488409324, 0.136236052776, -0.138043678532, -0.227492557156, 0.117810812390, 0.265072329266, - -0.129488409324, 3.165213522741, -1.751520714507, 0.467831090302, -0.483916138161, 0.376293684450, 0.149387541935, - 0.136236052776, -1.751520714507, 2.483475248800, 0.384085303028, 0.338642175318, -0.052000492068, -0.801404345627, - -0.138043678532, 0.467831090302, 0.384085303028, 1.972390458477, -0.025332052563, 0.393845805027, -1.225948397955, - -0.227492557156, -0.483916138161, 0.338642175318, -0.025332052563, 0.890301343360, -0.549163112351, -0.746838701215, - 0.117810812390, 0.376293684450, -0.052000492068, 0.393845805027, -0.549163112351, 0.474674836872, 0.012417969474, - 0.265072329266, 0.149387541935, -0.801404345627, -1.225948397955, -0.746838701215, 0.012417969474, 2.104629121515 - }) -}}); - -ctx::PiecewiseLin ctx::VisitCateger::__chiApprox( -{ - 0. , 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, - 0.09, 0.1 , 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, - 0.18, 0.19, 0.2 , 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, - 0.27, 0.28, 0.29, 0.3 , 0.31, 0.32, 0.33, 0.34, 0.35, - 0.36, 0.37, 0.38, 0.39, 0.4 , 0.41, 0.42, 0.43, 0.44, - 0.45, 0.46, 0.47, 0.48, 0.49, 0.5 , 0.51, 0.52, 0.53, - 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6 , 0.61, 0.62, - 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7 , 0.71, - 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8 , - 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, - 0.9 , 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, - 0.99, 1. , 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, - 1.08, 1.09, 1.1 , 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, - 1.17, 1.18, 1.19, 1.2 , 1.21, 1.22, 1.23, 1.24, 1.25, - 1.26, 1.27, 1.28, 1.29, 1.3 , 1.31, 1.32, 1.33, 1.34, - 1.35, 1.36, 1.37, 1.38, 1.39, 1.4 , 1.41, 1.42, 1.43, - 1.44, 1.45, 1.46, 1.47, 1.48, 1.49, 1.5 , 1.51, 1.52, - 1.53, 1.54, 1.55, 1.56, 1.57, 1.58, 1.59, 1.6 , 1.61, - 1.62, 1.63, 1.64, 1.65, 1.66, 1.67, 1.68, 1.69, 1.7 , - 1.71, 1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.78, 1.79, - 1.8 , 1.81, 1.82, 1.83, 1.84, 1.85, 1.86, 1.87, 1.88, - 1.89, 1.9 , 1.91, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, - 1.98, 1.99, 2. , 2.01, 2.02, 2.03, 2.04, 2.05, 2.06, - 2.07, 2.08, 2.09, 2.1 , 2.11, 2.12, 2.13, 2.14, 2.15, - 2.16, 2.17, 2.18, 2.19, 2.2 , 2.21, 2.22, 2.23, 2.24, - 2.25, 2.26, 2.27, 2.28, 2.29, 2.3 , 2.31, 2.32, 2.33, - 2.34, 2.35, 2.36, 2.37, 2.38, 2.39, 2.4 , 2.41, 2.42, - 2.43, 2.44, 2.45, 2.46, 2.47, 2.48, 2.49, 2.5 , 2.51, - 2.52, 2.53, 2.54, 2.55, 2.56, 2.57, 2.58, 2.59, 2.6 , - 2.61, 2.62, 2.63, 2.64, 2.65, 2.66, 2.67, 2.68, 2.69, - 2.7 , 2.71, 2.72, 2.73, 2.74, 2.75, 2.76, 2.77, 2.78, - 2.79, 2.8 , 2.81, 2.82, 2.83, 2.84, 2.85, 2.86, 2.87, - 2.88, 2.89, 2.9 , 2.91, 2.92, 2.93, 2.94, 2.95, 2.96, - 2.97, 2.98, 2.99, 3. , 3.01, 3.02, 3.03, 3.04, 3.05, - 3.06, 3.07, 3.08, 3.09, 3.1 , 3.11, 3.12, 3.13, 3.14, - 3.15, 3.16, 3.17, 3.18, 3.19, 3.2 , 3.21, 3.22, 3.23, - 3.24, 3.25, 3.26, 3.27, 3.28, 3.29, 3.3 , 3.31, 3.32, - 3.33, 3.34, 3.35, 3.36, 3.37, 3.38, 3.39, 3.4 , 3.41, - 3.42, 3.43, 3.44, 3.45, 3.46, 3.47, 3.48, 3.49, 3.5 , - 3.51, 3.52, 3.53, 3.54, 3.55, 3.56, 3.57, 3.58, 3.59, - 3.6 , 3.61, 3.62, 3.63, 3.64, 3.65, 3.66, 3.67, 3.68, - 3.69, 3.7 , 3.71, 3.72, 3.73, 3.74, 3.75, 3.76, 3.77, - 3.78, 3.79, 3.8 , 3.81, 3.82, 3.83, 3.84, 3.85, 3.86, - 3.87, 3.88, 3.89, 3.9 , 3.91, 3.92, 3.93, 3.94, 3.95, - 3.96, 3.97, 3.98, 3.99, 4. , 4.01, 4.02, 4.03, 4.04, - 4.05, 4.06, 4.07, 4.08, 4.09, 4.1 , 4.11, 4.12, 4.13, - 4.14, 4.15, 4.16, 4.17, 4.18, 4.19, 4.2 , 4.21, 4.22, - 4.23, 4.24, 4.25, 4.26, 4.27, 4.28, 4.29, 4.3 , 4.31, - 4.32, 4.33, 4.34, 4.35, 4.36, 4.37, 4.38, 4.39, 4.4 , - 4.41, 4.42, 4.43, 4.44, 4.45, 4.46, 4.47, 4.48, 4.49, - 4.5 , 4.51, 4.52, 4.53, 4.54, 4.55, 4.56, 4.57, 4.58, - 4.59, 4.6 , 4.61, 4.62, 4.63, 4.64, 4.65, 4.66, 4.67, - 4.68, 4.69, 4.7 , 4.71, 4.72, 4.73, 4.74, 4.75, 4.76, - 4.77, 4.78, 4.79, 4.8 , 4.81, 4.82, 4.83, 4.84, 4.85, - 4.86, 4.87, 4.88, 4.89, 4.9 , 4.91, 4.92, 4.93, 4.94, - 4.95, 4.96, 4.97, 4.98, 4.99, 5. , 5.01, 5.02, 5.03, - 5.04, 5.05, 5.06, 5.07, 5.08, 5.09, 5.1 , 5.11, 5.12, - 5.13, 5.14, 5.15, 5.16, 5.17, 5.18, 5.19, 5.2 , 5.21, - 5.22, 5.23, 5.24, 5.25, 5.26, 5.27, 5.28, 5.29, 5.3 , - 5.31, 5.32, 5.33, 5.34, 5.35, 5.36, 5.37, 5.38, 5.39, - 5.4 , 5.41, 5.42, 5.43, 5.44, 5.45, 5.46, 5.47, 5.48, - 5.49, 5.5 , 5.51, 5.52, 5.53, 5.54, 5.55, 5.56, 5.57, - 5.58, 5.59, 5.6 , 5.61, 5.62, 5.63, 5.64, 5.65, 5.66, - 5.67, 5.68, 5.69, 5.7 , 5.71, 5.72, 5.73, 5.74, 5.75, - 5.76, 5.77, 5.78, 5.79, 5.8 , 5.81, 5.82, 5.83, 5.84, - 5.85, 5.86, 5.87, 5.88, 5.89, 5.9 , 5.91, 5.92, 5.93, - 5.94, 5.95, 5.96, 5.97, 5.98, 5.99, 6. , 6.01, 6.02, - 6.03, 6.04, 6.05, 6.06, 6.07, 6.08, 6.09, 6.1 , 6.11, - 6.12, 6.13, 6.14, 6.15, 6.16, 6.17, 6.18, 6.19, 6.2 , - 6.21, 6.22, 6.23, 6.24, 6.25, 6.26, 6.27, 6.28, 6.29, - 6.3 , 6.31, 6.32, 6.33, 6.34, 6.35, 6.36, 6.37, 6.38, - 6.39, 6.4 , 6.41, 6.42, 6.43, 6.44, 6.45, 6.46, 6.47, - 6.48, 6.49, 6.5 , 6.51, 6.52, 6.53, 6.54, 6.55, 6.56, - 6.57, 6.58, 6.59, 6.6 , 6.61, 6.62, 6.63, 6.64, 6.65, - 6.66, 6.67, 6.68, 6.69, 6.7 , 6.71, 6.72, 6.73, 6.74, - 6.75, 6.76, 6.77, 6.78, 6.79, 6.8 , 6.81, 6.82, 6.83, - 6.84, 6.85, 6.86, 6.87, 6.88, 6.89, 6.9 , 6.91, 6.92, - 6.93, 6.94, 6.95, 6.96, 6.97, 6.98, 6.99, 7. -}, -{ - 0. , 0. , 0. , 0. , 0. , 0. , - 0. , 0. , 0. , 0. , 0. , 0. , - 0. , 0. , 0. , 0. , 0. , 0. , - 0. , 0. , 0. , 0. , 0. , 0. , - 0. , 0. , 0.000001, 0.000001, 0.000001, 0.000001, - 0.000002, 0.000002, 0.000003, 0.000003, 0.000004, 0.000005, - 0.000006, 0.000007, 0.000008, 0.00001 , 0.000012, 0.000014, - 0.000016, 0.000019, 0.000023, 0.000026, 0.000031, 0.000035, - 0.000041, 0.000047, 0.000054, 0.000062, 0.00007 , 0.00008 , - 0.000091, 0.000103, 0.000116, 0.000131, 0.000147, 0.000165, - 0.000185, 0.000207, 0.000231, 0.000257, 0.000285, 0.000316, - 0.00035 , 0.000387, 0.000427, 0.000471, 0.000518, 0.000569, - 0.000624, 0.000683, 0.000747, 0.000816, 0.00089 , 0.00097 , - 0.001055, 0.001147, 0.001245, 0.001349, 0.001461, 0.00158 , - 0.001708, 0.001843, 0.001987, 0.002141, 0.002303, 0.002476, - 0.002659, 0.002854, 0.003059, 0.003276, 0.003506, 0.003748, - 0.004004, 0.004274, 0.004558, 0.004857, 0.005171, 0.005502, - 0.00585 , 0.006215, 0.006597, 0.006999, 0.007419, 0.007859, - 0.00832 , 0.008802, 0.009305, 0.009831, 0.01038 , 0.010953, - 0.01155 , 0.012172, 0.01282 , 0.013495, 0.014197, 0.014927, - 0.015686, 0.016473, 0.017291, 0.01814 , 0.019021, 0.019933, - 0.020879, 0.021858, 0.022872, 0.023921, 0.025006, 0.026127, - 0.027285, 0.028482, 0.029717, 0.030992, 0.032306, 0.033662, - 0.035059, 0.036497, 0.037979, 0.039504, 0.041073, 0.042687, - 0.044345, 0.04605 , 0.047801, 0.049599, 0.051445, 0.053339, - 0.055282, 0.057273, 0.059315, 0.061406, 0.063548, 0.065742, - 0.067986, 0.070283, 0.072632, 0.075034, 0.077488, 0.079996, - 0.082558, 0.085174, 0.087843, 0.090568, 0.093346, 0.09618 , - 0.099069, 0.102013, 0.105012, 0.108066, 0.111176, 0.114342, - 0.117563, 0.120839, 0.124171, 0.127558, 0.131001, 0.134499, - 0.138052, 0.141659, 0.145322, 0.149039, 0.15281 , 0.156635, - 0.160514, 0.164446, 0.168431, 0.172469, 0.176559, 0.180701, - 0.184894, 0.189138, 0.193432, 0.197776, 0.202169, 0.206611, - 0.211101, 0.215639, 0.220223, 0.224853, 0.229528, 0.234248, - 0.239012, 0.24382 , 0.248669, 0.25356 , 0.258492, 0.263464, - 0.268474, 0.273523, 0.278608, 0.283731, 0.288888, 0.29408 , - 0.299305, 0.304562, 0.309851, 0.31517 , 0.320519, 0.325895, - 0.331299, 0.336729, 0.342185, 0.347664, 0.353166, 0.35869 , - 0.364234, 0.369798, 0.375381, 0.38098 , 0.386596, 0.392227, - 0.397871, 0.403529, 0.409197, 0.414876, 0.420565, 0.426261, - 0.431964, 0.437673, 0.443387, 0.449103, 0.454822, 0.460543, - 0.466263, 0.471981, 0.477698, 0.483411, 0.48912 , 0.494822, - 0.500518, 0.506206, 0.511886, 0.517554, 0.523212, 0.528858, - 0.53449 , 0.540108, 0.545711, 0.551297, 0.556866, 0.562417, - 0.567948, 0.573459, 0.578949, 0.584417, 0.589861, 0.595282, - 0.600677, 0.606048, 0.611391, 0.616707, 0.621995, 0.627254, - 0.632483, 0.637681, 0.642848, 0.647984, 0.653086, 0.658155, - 0.66319 , 0.66819 , 0.673155, 0.678084, 0.682976, 0.687831, - 0.692649, 0.697428, 0.702168, 0.70687 , 0.711531, 0.716153, - 0.720733, 0.725273, 0.729772, 0.734228, 0.738643, 0.743015, - 0.747344, 0.75163 , 0.755873, 0.760072, 0.764227, 0.768339, - 0.772406, 0.776428, 0.780406, 0.784339, 0.788228, 0.792071, - 0.795869, 0.799622, 0.80333 , 0.806992, 0.810609, 0.814181, - 0.817707, 0.821188, 0.824624, 0.828015, 0.83136 , 0.83466 , - 0.837916, 0.841126, 0.844292, 0.847413, 0.85049 , 0.853522, - 0.85651 , 0.859455, 0.862355, 0.865212, 0.868026, 0.870796, - 0.873524, 0.876209, 0.878852, 0.881452, 0.884011, 0.886528, - 0.889005, 0.89144 , 0.893834, 0.896189, 0.898503, 0.900778, - 0.903014, 0.90521 , 0.907369, 0.909488, 0.911571, 0.913615, - 0.915623, 0.917594, 0.919528, 0.921427, 0.92329 , 0.925118, - 0.926911, 0.92867 , 0.930395, 0.932086, 0.933745, 0.93537 , - 0.936963, 0.938525, 0.940055, 0.941554, 0.943022, 0.94446 , - 0.945869, 0.947248, 0.948598, 0.949919, 0.951213, 0.952478, - 0.953717, 0.954928, 0.956113, 0.957273, 0.958406, 0.959514, - 0.960598, 0.961657, 0.962692, 0.963703, 0.964692, 0.965657, - 0.9666 , 0.967521, 0.968421, 0.969299, 0.970156, 0.970993, - 0.97181 , 0.972607, 0.973385, 0.974144, 0.974884, 0.975605, - 0.976309, 0.976996, 0.977665, 0.978317, 0.978953, 0.979572, - 0.980176, 0.980764, 0.981337, 0.981895, 0.982438, 0.982967, - 0.983482, 0.983984, 0.984472, 0.984947, 0.985409, 0.985858, - 0.986296, 0.986721, 0.987135, 0.987537, 0.987929, 0.988309, - 0.988678, 0.989038, 0.989387, 0.989726, 0.990056, 0.990376, - 0.990687, 0.990989, 0.991282, 0.991566, 0.991843, 0.992111, - 0.992371, 0.992624, 0.992869, 0.993106, 0.993337, 0.99356 , - 0.993777, 0.993988, 0.994191, 0.994389, 0.99458 , 0.994766, - 0.994946, 0.99512 , 0.995289, 0.995452, 0.99561 , 0.995764, - 0.995912, 0.996056, 0.996195, 0.996329, 0.99646 , 0.996586, - 0.996708, 0.996825, 0.996939, 0.99705 , 0.997156, 0.99726 , - 0.997359, 0.997456, 0.997549, 0.997639, 0.997726, 0.99781 , - 0.997891, 0.997969, 0.998045, 0.998118, 0.998189, 0.998257, - 0.998323, 0.998386, 0.998447, 0.998506, 0.998563, 0.998618, - 0.998671, 0.998723, 0.998772, 0.998819, 0.998865, 0.998909, - 0.998952, 0.998993, 0.999033, 0.999071, 0.999107, 0.999143, - 0.999177, 0.99921 , 0.999241, 0.999272, 0.999301, 0.999329, - 0.999356, 0.999382, 0.999407, 0.999431, 0.999455, 0.999477, - 0.999498, 0.999519, 0.999539, 0.999558, 0.999576, 0.999594, - 0.999611, 0.999627, 0.999643, 0.999658, 0.999672, 0.999686, - 0.999699, 0.999712, 0.999724, 0.999736, 0.999747, 0.999758, - 0.999769, 0.999779, 0.999788, 0.999797, 0.999806, 0.999815, - 0.999823, 0.99983 , 0.999838, 0.999845, 0.999852, 0.999858, - 0.999865, 0.999871, 0.999876, 0.999882, 0.999887, 0.999892, - 0.999897, 0.999902, 0.999906, 0.99991 , 0.999915, 0.999918, - 0.999922, 0.999926, 0.999929, 0.999932, 0.999936, 0.999938, - 0.999941, 0.999944, 0.999947, 0.999949, 0.999952, 0.999954, - 0.999956, 0.999958, 0.99996 , 0.999962, 0.999964, 0.999965, - 0.999967, 0.999969, 0.99997 , 0.999972, 0.999973, 0.999974, - 0.999975, 0.999977, 0.999978, 0.999979, 0.99998 , 0.999981, - 0.999982, 0.999983, 0.999984, 0.999984, 0.999985, 0.999986, - 0.999987, 0.999987, 0.999988, 0.999988, 0.999989, 0.99999 , - 0.99999 , 0.999991, 0.999991, 0.999992, 0.999992, 0.999992, - 0.999993, 0.999993, 0.999993, 0.999994, 0.999994, 0.999994, - 0.999995, 0.999995, 0.999995, 0.999995, 0.999996, 0.999996, - 0.999996, 0.999996, 0.999997, 0.999997, 0.999997, 0.999997, - 0.999997, 0.999997, 0.999998, 0.999998, 0.999998, 0.999998, - 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, - 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, - 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, - 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, - 0.999999, 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. , 1. , - 1. , 1. , 1. , 1. , 1. -} // this is chi cdf for 7 degrees of freedom (because we have 7 features) -); - -const std::vector ctx::VisitCateger::__featuresMean( -{ - 344.542975696503, - 894.178423236515, - 868.300533491405, - 2.820391227030, - 0.511747454052, - 0.348669092762, - 0.139583453187 -}); - -const std::vector ctx::VisitCateger::__featuresStd( -{ - 416.061437196941, - 301.401812101781, - 300.774466281622, - 1.916233112930, - 0.314254748759, - 0.360707461975, - 0.109386661911 -}); - -ctx::TimeFeatures ctx::VisitCateger::__timeFeatures(const time_t &time) -{ - struct tm timeinfo; - struct tm *result; - tzset(); - result = localtime_r(&time, &timeinfo); - if (result == NULL) - return {0, 0, 0, false}; - int minutesSinceMidnight = 60 * timeinfo.tm_hour + timeinfo.tm_min; - int weekday = (timeinfo.tm_wday + 6) % 7; // Monday is 0, Sunday is 6 - bool weekend = weekday > 4; - int minutesSinceBeginingOfTheWeek = 24 * 60 * weekday + minutesSinceMidnight; - return { - minutesSinceMidnight, - minutesSinceBeginingOfTheWeek, - weekday, - weekend - }; -} - -int ctx::VisitCateger::__weeksScope(const TimeFeatures &startF, const Interval &interval) -{ - int durationMinutes = (interval.end - interval.start) / 60; - int scopeMinutes = startF.minutesSinceBeginingOfTheWeek + durationMinutes; - int weeksScope = scopeMinutes / __MINUTES_IN_WEEK; - if (scopeMinutes % __MINUTES_IN_WEEK > 0) - weeksScope++; - return weeksScope; -} - -ctx::num_t ctx::VisitCateger::__sum(const std::vector model, const size_t &from, const size_t &to) -{ - size_t toSecure = to; - if (to >= model.size()) { - _E("'to' exceeds model size"); - toSecure = model.size() - 1; - } - if (from > to) - _E("'from' greater than 'to'"); - num_t result = 0.0; - for (size_t i = from; i <= toSecure; i++) { - result += model[i]; - } - return result; -} - -ctx::num_t ctx::VisitCateger::__weekModelMeanValue(PlaceCategId categ, const Interval &interval, - const TimeFeatures &startF, const TimeFeatures &endF) -{ - num_t ret = 0.0; - int minutes = 0; - int ws = __weeksScope(startF, interval); - for (int week = 1; week <= ws; week++) { - size_t startIndex = (week == 1) - ? static_cast(startF.minutesSinceBeginingOfTheWeek) - : 0; - size_t endIndex = (week == ws) - ? static_cast(endF.minutesSinceBeginingOfTheWeek) - : static_cast(__MINUTES_IN_WEEK - 1); - ret += __sum(prob_features::weekModel[categ], startIndex, endIndex); - minutes += endIndex - startIndex + 1; - } - if (minutes > 0) - return ret / minutes; - return ret; -} - -ctx::Categs ctx::VisitCateger::__weekModelFeatures(const Interval &interval, const TimeFeatures &startF, const TimeFeatures &endF) -{ - ctx::Categs categs; - for (const auto &item : prob_features::weekModel) { - categs[item.first] = __weekModelMeanValue(item.first, interval, startF, endF); - } - _D("categs: H=%.12f, W=%.12f, O=%.12f", - categs[PLACE_CATEG_ID_HOME], - categs[PLACE_CATEG_ID_WORK], - categs[PLACE_CATEG_ID_OTHER]); - return categs; -} - -ctx::IntervalFeatures ctx::VisitCateger::__intervalFeatures(const Interval &interval) -{ - num_t durationMinutes = 1.0 * (interval.end - interval.start) / 60; - TimeFeatures startFeatures = __timeFeatures(interval.start); - TimeFeatures endFeatures = __timeFeatures(interval.end); - Categs weekFeatures = __weekModelFeatures(interval, startFeatures, endFeatures); - return { - durationMinutes, - (num_t) startFeatures.minutesSinceMidnight, - (num_t) endFeatures.minutesSinceMidnight, - (num_t) startFeatures.weekday, - weekFeatures[PLACE_CATEG_ID_HOME], - weekFeatures[PLACE_CATEG_ID_WORK], - weekFeatures[PLACE_CATEG_ID_OTHER] - }; -} - -void ctx::VisitCateger::__normalize(std::vector &features) -{ - size_t n = features.size(); - for (size_t i = 0; i < n; i++) { - features[i] -= __featuresMean[i]; - features[i] /= __featuresStd[i]; - } -} - -void ctx::VisitCateger::categorize(ctx::Visit &visit) -{ - _D(""); - IntervalFeatures features = __intervalFeatures(visit.interval); - __normalize(features); - - for (auto &modelPair : __models) { - int categId = modelPair.first; - MahalModel model = modelPair.second; - - num_t distance = model.distance(features); - num_t probability = 1 - __chiApprox.value(distance); // sth like probability but not exactly - visit.categs[categId] = probability; - } -} - -extern "C" SO_EXPORT void categorize(ctx::Visit &visit) -{ - _D(""); - ctx::VisitCateger::categorize(visit); -} diff --git a/src/my-place/visit-categer/VisitCateger.h b/src/my-place/visit-categer/VisitCateger.h deleted file mode 100644 index 3edfb93..0000000 --- a/src/my-place/visit-categer/VisitCateger.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_VISIT_CATEGER_H_ -#define _CONTEXT_PLACE_RECOGNITION_VISIT_CATEGER_H_ - -#include -#include "Mahal.h" -#include "PiecewiseLin.h" -#include -#include - -namespace ctx { - - struct TimeFeatures { - int minutesSinceMidnight; - int minutesSinceBeginingOfTheWeek; - int weekday; - bool weekend; - }; - - typedef std::vector IntervalFeatures; - - /* - * visit categorizer class - */ - class VisitCateger { - - private: - static const int __MINUTES_IN_WEEK = 60 * 24 * 7; - static const std::map __models; - static const std::vector __featuresMean; - static const std::vector __featuresStd; - static num_t __sum(const std::vector model, const size_t &from, const size_t &to); - static num_t __weekModelMeanValue(PlaceCategId categ, const Interval &interval, - const TimeFeatures &startF, const TimeFeatures &endF); - static void __normalize(std::vector &features); - static PiecewiseLin __chiApprox; // tabled chi function approximator - - /** - * Function interpret time in timestamp input argument, - * - * @param time timestamp - * @return TimeFeatures structure with interpretations of timestamp - */ - static TimeFeatures __timeFeatures(const time_t &time); - - static int __weeksScope(const TimeFeatures &startF, const Interval &interval); - - /** - * Function interpret time interval input argument and calculates scores - * that argument interval is home, work or other based on whole week model. - * - * @param interval time interval - * @param startF start time features - * @param endF end time features - * @return Categs score that argument interval is home, work or other - */ - static Categs __weekModelFeatures(const Interval &interval, const TimeFeatures &startF, - const TimeFeatures &endF); - - /** - * Function interpret time interval input argument, - * - * @param interval time interval - * @return IntervalFeatures vector with interpretations of input time interval - */ - static IntervalFeatures __intervalFeatures(const Interval &interval); - - public: - - /** - * Function categorize visit based on visits time interval and fill its categories values. - */ - static void categorize(ctx::Visit &visit); - - }; /* class VisitCateger */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_VISIT_CATEGER_H_ */ diff --git a/src/my-place/visit-detector/LocationListenerIface.h b/src/my-place/visit-detector/LocationListenerIface.h deleted file mode 100644 index 7d2aef2..0000000 --- a/src/my-place/visit-detector/LocationListenerIface.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_LOCATION_LISTENER_IFACE_H_ -#define _CONTEXT_PLACE_RECOGNITION_LOCATION_LISTENER_IFACE_H_ - -#include - -namespace ctx { - - class ILocationListener { - - public: - virtual ~ILocationListener() {}; - virtual void onNewLocation(LocationEvent location) = 0; - - }; /* class ILocationListener */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_LOCATION_LISTENER_IFACE_H_ */ diff --git a/src/my-place/visit-detector/LocationLogger.cpp b/src/my-place/visit-detector/LocationLogger.cpp deleted file mode 100644 index cf4ce95..0000000 --- a/src/my-place/visit-detector/LocationLogger.cpp +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include "LocationLogger.h" - -#define __LOCATION_CREATE_TABLE_COLUMNS \ - LOCATION_COLUMN_LATITUDE " REAL NOT NULL, "\ - LOCATION_COLUMN_LONGITUDE " REAL NOT NULL, "\ - LOCATION_COLUMN_ACCURACY " REAL, "\ - LOCATION_COLUMN_TIMESTAMP " timestamp NOT NULL " - -#define __LOCATION_ERROR_LOG(error) { \ - if (error != LOCATIONS_ERROR_NONE) { \ - _E("ERROR == %s", __locationError2Str(error)); \ - } else { \ - _D("SUCCESS"); \ - } \ -} - -void ctx::LocationLogger::__locationServiceStateChangedCb(location_service_state_e state, void *userData) -{ - ctx::LocationLogger* locationLogger = (ctx::LocationLogger *)userData; - locationLogger->__locationServiceState = state; - if (state == LOCATIONS_SERVICE_ENABLED) { - _D("LOCATIONS_SERVICE_ENABLED"); - switch (locationLogger->__timerPurpose) { - case LOCATION_LOGGER_WAITING_FOR_SERVICE_START: - _D("Waiting for location service start FINISHED"); - locationLogger->__timerStop(); - locationLogger->__locationRequest(); - break; - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST: - case LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON: - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL: - case LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL: - default: - // Do nothing - break; - } - } else { - _D("LOCATIONS_SERVICE_DISABLED"); -// locationLogger->__timerStop(); - } -} - -void ctx::LocationLogger::__locationSettingChangedCb(location_method_e method, bool enable, void *userData) -{ - ctx::LocationLogger* locationLogger = (ctx::LocationLogger *)userData; - locationLogger->__locationMethodState = enable; - if (method == locationLogger->__locationMethod) { - if (enable) { - _D("Location method settings ON"); - switch (locationLogger->__timerPurpose) { - case LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON: - _D("Waiting for location method settings on FINISHED"); - if (locationLogger->__locationServiceState == LOCATIONS_SERVICE_ENABLED) { - locationLogger->__timerStop(); - locationLogger->__locationRequest(); - } else { - locationLogger->__locationManagerStart(); - } - break; - case LOCATION_LOGGER_WAITING_FOR_SERVICE_START: - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST: - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL: - case LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL: - default: - // Do nothing - break; - } - } else { - _D("Location method settings OFF"); -// locationLogger->__timerStop(); - } - } -} - -void ctx::LocationLogger::__positionUpdatedCb(double latitude, double longitude, - double altitude, time_t timestamp, void *userData) -{ - _D(""); - ctx::LocationLogger* locationLogger = (ctx::LocationLogger *)userData; - double horizontal = locationLogger->__locationManagerGetHorizontalAccuracy(); - ctx::LocationEvent location(latitude, longitude, horizontal, timestamp); - locationLogger->__broadcast(location); - locationLogger->__onActiveRequestSucceeded(); -} - -void ctx::LocationLogger::__locationUpdatedCb(location_error_e error, double latitude, double longitude, - double altitude, time_t timestamp, double speed, double direction, double climb, void *userData) -{ - _D(""); - __positionUpdatedCb(latitude, longitude, altitude, timestamp, userData); -} - -const char* ctx::LocationLogger::__locationError2Str(int error) -{ - switch (error) { - case LOCATIONS_ERROR_NONE: - return "LOCATIONS_ERROR_NONE"; - case LOCATIONS_ERROR_OUT_OF_MEMORY: - return "LOCATIONS_ERROR_OUT_OF_MEMORY"; - case LOCATIONS_ERROR_INVALID_PARAMETER: - return "LOCATIONS_ERROR_INVALID_PARAMETER"; - case LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED: - return "LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED"; - case LOCATIONS_ERROR_NOT_SUPPORTED: - return "LOCATIONS_ERROR_NOT_SUPPORTED"; - case LOCATIONS_ERROR_INCORRECT_METHOD: - return "LOCATIONS_ERROR_INCORRECT_METHOD"; - case LOCATIONS_ERROR_NETWORK_FAILED: - return "LOCATIONS_ERROR_NETWORK_FAILED"; - case LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE: - return "LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE"; - case LOCATIONS_ERROR_GPS_SETTING_OFF: - return "LOCATIONS_ERROR_GPS_SETTING_OFF"; - case LOCATIONS_ERROR_SECURITY_RESTRICTED: - return "LOCATIONS_ERROR_SECURITY_RESTRICTED"; - default: - return "unknown location error code"; - } -} - - -void ctx::LocationLogger::__log(location_accessibility_state_e state) -{ - switch (state) { - case LOCATIONS_ACCESS_STATE_NONE : // Access state is not determined - _D("LOCATIONS_ACCESS_STATE_NONE "); - break; - case LOCATIONS_ACCESS_STATE_DENIED: // Access denied - _D("LOCATIONS_ACCESS_STATE_DENIED"); - break; - case LOCATIONS_ACCESS_STATE_ALLOWED: // Access authorized - _D("LOCATIONS_ACCESS_STATE_ALLOWED"); - break; - default: - break; - } -} - -int ctx::LocationLogger::__dbCreateTable() -{ - DatabaseManager dbManager; - bool ret = dbManager.createTableSync(LOCATION_TABLE, __LOCATION_CREATE_TABLE_COLUMNS); - _D("%s -> Table Creation Request", ret ? "SUCCESS" : "FAIL"); - return 0; -} - -int ctx::LocationLogger::__dbInsertLog(LocationEvent locationEvent) -{ - Json data; - data.set(NULL, LOCATION_COLUMN_LATITUDE, locationEvent.coordinates.latitude); - data.set(NULL, LOCATION_COLUMN_LONGITUDE, locationEvent.coordinates.longitude); - data.set(NULL, LOCATION_COLUMN_ACCURACY, locationEvent.coordinates.accuracy); - data.set(NULL, LOCATION_COLUMN_TIMESTAMP, static_cast(locationEvent.timestamp)); - - DatabaseManager dbManager; - int64_t rowId; - bool ret = dbManager.insertSync(LOCATION_TABLE, data, &rowId); - _D("%s -> DB: location table insert result", ret ? "SUCCESS" : "FAIL"); - return ret; -} - -ctx::LocationLogger::LocationLogger(ILocationListener *listener) : - __listener(listener), - __activeRequestAttempts(0), - __activeAttempts(0), - __allAttempts(0), - __locationCount(0), - __activeRequestSucceeded(false), - __activeLocationSucceeded(false), - __timerId(-1), - __timerTimestamp(0), - __timerPurpose(LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL), - __locationServiceState(LOCATIONS_SERVICE_DISABLED), - __locationMethod(LOCATION_LOGGER_METHOD), - __locationMethodState(false) -{ - _D("CONSTRUCTOR"); - - __locationManagerCreate(); - - if (LOCATION_LOGGER_DATABASE) - __dbCreateTable(); - - __locationManagerSetServiceStateChangedCb(); - __locationManagerSetSettingChangedCb(); - __locationMethodState = __locationManagerIsEnabledMethod(__locationMethod); -} - -ctx::LocationLogger::~LocationLogger() -{ - _D("DESTRUCTOR"); - __stopLogging(); - __locationManagerUnsetServiceStateChangedCb(); - __locationManagerUnsetSettingChangedCb(); - __locationManagerDestroy(); -} - -void ctx::LocationLogger::__locationManagerCreate() -{ - int ret = location_manager_create(__locationMethod, &__locationManager); - __LOCATION_ERROR_LOG(ret); -} - -void ctx::LocationLogger::__locationManagerDestroy() -{ - int ret = location_manager_destroy(__locationManager); - __LOCATION_ERROR_LOG(ret); -} - -void ctx::LocationLogger::__locationManagerSetServiceStateChangedCb() -{ - int ret = location_manager_set_service_state_changed_cb(__locationManager, __locationServiceStateChangedCb, this); - __LOCATION_ERROR_LOG(ret); -} - -void ctx::LocationLogger::__locationManagerUnsetServiceStateChangedCb() -{ - int ret = location_manager_unset_service_state_changed_cb(__locationManager); - __LOCATION_ERROR_LOG(ret); -} - -void ctx::LocationLogger::__locationManagerStart() -{ - int ret = location_manager_start(__locationManager); - __LOCATION_ERROR_LOG(ret); - __startServiceTimerStart(); -} - -void ctx::LocationLogger::__locationManagerStop() -{ - int ret = location_manager_stop(__locationManager); - __LOCATION_ERROR_LOG(ret); -} - -double ctx::LocationLogger::__locationManagerGetHorizontalAccuracy() -{ - location_accuracy_level_e accuracyLevel; - double horizontal, vertical; - int ret = location_manager_get_accuracy(__locationManager, &accuracyLevel, &horizontal, &vertical); - __LOCATION_ERROR_LOG(ret); - return horizontal; -} - -location_accessibility_state_e ctx::LocationLogger::__locationManagerGetAccessibilityState() -{ - location_accessibility_state_e state; - int ret = location_manager_get_accessibility_state(&state); - __LOCATION_ERROR_LOG(ret); - return state; -} - -void ctx::LocationLogger::__locationManagerSetSettingChangedCb() -{ - int ret = location_manager_set_setting_changed_cb(__locationMethod, __locationSettingChangedCb, this); - __LOCATION_ERROR_LOG(ret); -} - -void ctx::LocationLogger::__locationManagerUnsetSettingChangedCb() -{ - int ret = location_manager_unset_setting_changed_cb(__locationMethod); - __LOCATION_ERROR_LOG(ret); -} - -bool ctx::LocationLogger::__locationManagerRequestSingleLocation() -{ - int ret = location_manager_request_single_location(__locationManager, - LOCATION_LOGGER_ACTIVE_REQUEST_TIMEOUT_SECONDS, __locationUpdatedCb, this); - _D("%s (seconds=%d) ----- ATTEMPTS: REQ[%d/%d], ACT[%d/%d], ALL[%d/%d]; ----- LOCATIONS:[%d/%d]", - ret == LOCATIONS_ERROR_NONE ? "SUCCESS" : "ERROR", - LOCATION_LOGGER_ACTIVE_REQUEST_TIMEOUT_SECONDS, - __activeRequestAttempts, - LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS, - __activeAttempts, - LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS, - __allAttempts, - LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS, - __locationCount, - LOCATION_LOGGER_MAX_LOCATION_COUNT); - __LOCATION_ERROR_LOG(ret); - __activeRequestAttempts++; - __activeAttempts++; - __allAttempts++; - if (ret == LOCATIONS_ERROR_NONE) { - __activeRequestTimerStart(); - return true; - } else { - return false; - } -} - -bool ctx::LocationLogger::__locationManagerGetLocation() -{ - double altitude, latitude, longitude, climb, direction, speed, horizontal, vertical; - location_accuracy_level_e level; - time_t timestamp; - int ret = location_manager_get_location(__locationManager, &altitude, &latitude, &longitude, - &climb, &direction, &speed, &level, &horizontal, &vertical, ×tamp); - _D("%s ----- ATTEMPTS: REQ[%d/%d], ACT[%d/%d], ALL[%d/%d]; ----- LOCATIONS:[%d/%d]", - ret == LOCATIONS_ERROR_NONE ? "SUCCESS" : "ERROR", - __activeRequestAttempts, - LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS, - __activeAttempts, - LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS, - __allAttempts, - LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS, - __locationCount, - LOCATION_LOGGER_MAX_LOCATION_COUNT); - __LOCATION_ERROR_LOG(ret); - __activeAttempts++; - __allAttempts++; - if (ret == LOCATIONS_ERROR_NONE) { - ctx::LocationEvent location(latitude, longitude, horizontal, timestamp); - __broadcast(location); - __onActiveLocationSucceeded(); - return true; - } else { - return false; - } -} - -void ctx::LocationLogger::__locationManagerGetLastLocation() -{ - double altitude, latitude, longitude, climb, direction, speed, horizontal, vertical; - location_accuracy_level_e level; - time_t timestamp; - int ret = location_manager_get_last_location(__locationManager, &altitude, &latitude, &longitude, - &climb, &direction, &speed, &level, &horizontal, &vertical, ×tamp); - _D("%s ----- ATTEMPTS: REQ[%d/%d], ACT[%d/%d], ALL[%d/%d]; ----- LOCATIONS:[%d/%d]", - ret == LOCATIONS_ERROR_NONE ? "SUCCESS" : "ERROR", - __activeRequestAttempts, - LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS, - __activeAttempts, - LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS, - __allAttempts, - LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS, - __locationCount, - LOCATION_LOGGER_MAX_LOCATION_COUNT); - __LOCATION_ERROR_LOG(ret); - __allAttempts++; - if (ret == LOCATIONS_ERROR_NONE) { - ctx::LocationEvent location(latitude, longitude, horizontal, timestamp); - __broadcast(location); - } -} - -bool ctx::LocationLogger::__locationManagerIsEnabledMethod(location_method_e method) -{ - bool enable; - int ret = location_manager_is_enabled_method(method, &enable); - __LOCATION_ERROR_LOG(ret); - return enable; -} - -bool ctx::LocationLogger::__checkGeneralLimits() -{ - return (__locationCount < LOCATION_LOGGER_MAX_LOCATION_COUNT - && __allAttempts < LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS); -} - -bool ctx::LocationLogger::__checkActiveLimits() -{ - return (!__activeLocationSucceeded - && __activeAttempts < LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS); -} - -bool ctx::LocationLogger::__checkActiveRequestLimits() -{ - return (!__activeRequestSucceeded - && __activeRequestAttempts < LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS); -} - -void ctx::LocationLogger::__locationRequest() -{ - _D(""); - bool requestSingleLocationRet = false; - bool getLocationRet = false; - if (__checkGeneralLimits() && __checkActiveLimits() && __checkActiveRequestLimits()) { - requestSingleLocationRet = __locationManagerRequestSingleLocation(); - } - if (__checkGeneralLimits() && __checkActiveLimits() && !requestSingleLocationRet) { - getLocationRet = __locationManagerGetLocation(); - } - if (__checkGeneralLimits() && !requestSingleLocationRet && !getLocationRet - && __activeAttempts >= LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS) { - __locationManagerGetLastLocation(); - } - if (!requestSingleLocationRet) { - __locationManagerStop(); - __setNextTimer(); - } -} - -void ctx::LocationLogger::__setNextTimer() -{ - _D("ATTEMPTS: REQ[%d/%d], ACT[%d/%d], ALL[%d/%d]; ----- LOCATIONS:[%d/%d])", - __activeRequestAttempts, - LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS, - __activeAttempts, - LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS, - __allAttempts, - LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS, - __locationCount, - LOCATION_LOGGER_MAX_LOCATION_COUNT); - if (__checkGeneralLimits()) { - if (__checkActiveLimits()) { - __activeIntervalTimerStart(); - } else { - __passiveIntervalTimerStart(); - } - } -} - -void ctx::LocationLogger::__onActiveRequestSucceeded() -{ - _D(""); - __locationManagerStop(); - __activeRequestSucceeded = true; - __onActiveLocationSucceeded(); -} - -void ctx::LocationLogger::__onActiveLocationSucceeded() -{ - _D(""); - __activeLocationSucceeded = true; -} - -void ctx::LocationLogger::__broadcast(ctx::LocationEvent locationEvent) -{ - _D(""); - __locationCount++; - if (__listener) - __listener->onNewLocation(locationEvent); - if (LOCATION_LOGGER_DATABASE) - __dbInsertLog(locationEvent); -} - -bool ctx::LocationLogger::onTimerExpired(int id) -{ - time_t now = time(nullptr); - double seconds = difftime(now, __timerTimestamp); - - switch (__timerPurpose) { - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST: - _D("Active request FAILED, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - __locationManagerStop(); - __setNextTimer(); - return false; - case LOCATION_LOGGER_WAITING_FOR_SERVICE_START: - _D("Service start in timeout time FAILED, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - // Waiting for service start FAILURE is also some kind of active request attempt - __activeRequestAttempts++; - __activeAttempts++; - __allAttempts++; - __locationManagerStop(); - __setNextTimer(); - return false; - case LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON: - _D("Still waiting for Location method settings on, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - // Do nothing - return false; - case LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL: - _D("Active interval time expired, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - break; - case LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL: - _D("Passive interval time expired, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - break; - default: - _D("Do nothing, timerId = %d[%d], from start = %.1fs", id, __timerId, seconds); - return false; - } - if (__locationMethodState) { - __locationManagerStart(); - } else { - __timerPurpose = LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON; - _D("LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON"); - } - return false; -} - -void ctx::LocationLogger::__activeRequestTimerStart() -{ - int minutes = LOCATION_LOGGER_ACTIVE_REQUEST_TIMEOUT_SECONDS / 60; - if (LOCATION_LOGGER_ACTIVE_REQUEST_TIMEOUT_SECONDS % 60) - minutes++; - __timerPurpose = LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST; - _D("LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST (minutes=%d)", minutes); - __timerStart(minutes); -} - -void ctx::LocationLogger::__startServiceTimerStart() -{ - __timerPurpose = LOCATION_LOGGER_WAITING_FOR_SERVICE_START; - _D("LOCATION_LOGGER_WAITING_FOR_SERVICE_START"); - __timerStart(LOCATION_LOGGER_SERVICE_START_TIMEOUT_MINUTES); -} - -void ctx::LocationLogger::__activeIntervalTimerStart() -{ - __timerPurpose = LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL; - _D("LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL"); - __timerStart(LOCATION_LOGGER_ACTIVE_INTERVAL_MINUTES); -} - -void ctx::LocationLogger::__passiveIntervalTimerStart() -{ - __timerPurpose = LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL; - _D("LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL"); - __timerStart(LOCATION_LOGGER_PASSIVE_INTERVAL_MINUTES); -} - -void ctx::LocationLogger::__timerStart(time_t minutes) -{ - __timerTimestamp = time(nullptr); - __timerId = __timerManager.setFor(minutes, this); - _D("%s (minutes=%d) timerId = %d", __timerId >= 0 ? "SUCCESS" : "ERROR", minutes, __timerId); -} - -void ctx::LocationLogger::__timerStop() -{ - _D(""); - __timerManager.remove(__timerId); -} - -void ctx::LocationLogger::__startLogging() -{ - _D(""); - __activeRequestAttempts = 0; - __activeAttempts = 0; - __allAttempts = 0; - __locationCount = 0; - __activeRequestSucceeded = false;; - __activeLocationSucceeded = false; - __locationManagerStart(); -} - -void ctx::LocationLogger::__stopLogging() -{ - _D(""); - __timerStop(); - __locationManagerStop(); -} - -void ctx::LocationLogger::onVisitStart() -{ - _D(""); - __startLogging(); -} - -void ctx::LocationLogger::onVisitEnd() -{ - _D(""); - __stopLogging(); -} - -#undef __LOCATION_ERROR_LOG diff --git a/src/my-place/visit-detector/LocationLogger.h b/src/my-place/visit-detector/LocationLogger.h deleted file mode 100644 index c0c3dc8..0000000 --- a/src/my-place/visit-detector/LocationLogger.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_LOCATION_LOGGER_H_ -#define _CONTEXT_PLACE_RECOGNITION_LOCATION_LOGGER_H_ - -#include -#include -#include "VisitListenerIface.h" -#include "LocationListenerIface.h" - -/* Database usage flag */ -#define LOCATION_LOGGER_DATABASE false - -/* Locations measure method */ -#define LOCATION_LOGGER_METHOD LOCATIONS_METHOD_HYBRID - -/* TIMEOUTS: Location active measure request timeout (in seconds). */ -#define LOCATION_LOGGER_ACTIVE_REQUEST_TIMEOUT_SECONDS 100 - -/* TIMEOUTS: Location service start timeout (in minutes). */ -#define LOCATION_LOGGER_SERVICE_START_TIMEOUT_MINUTES 2 - -/* FREQUENCIES/INTERVALS: "Active" measure attempts frequency (in minutes) */ -#define LOCATION_LOGGER_ACTIVE_INTERVAL_MINUTES 5 - -/* FREQUENCIES/INTERVALS: "Passive" measure attempts frequency (in minutes) */ -#define LOCATION_LOGGER_PASSIVE_INTERVAL_MINUTES 30 - -/* ATTEMTS LIMITS: "Active" request attempts limit (must be <= than active location attempts) */ -#define LOCATION_LOGGER_MAX_ACTIVE_REQUEST_ATTEMPTS 0 - -/* ATTEMTS LIMITS: "Active" measures attempts limit (must be <= than all attempts limit) */ -#define LOCATION_LOGGER_MAX_ACTIVE_LOCATION_ATTEMPTS 2 - -/* ATTEMTS LIMITS: All attempts ("active" + "passive") limit */ -#define LOCATION_LOGGER_MAX_LOCATION_ATTEMPTS 3 - -/* LOCATION LIMIT: Location count limit per visit */ -#define LOCATION_LOGGER_MAX_LOCATION_COUNT 3 - -namespace ctx { - - enum TimerPurpose { - LOCATION_LOGGER_WAITING_FOR_ACTIVE_REQUEST = 0, - LOCATION_LOGGER_WAITING_FOR_SERVICE_START = 1, - LOCATION_LOGGER_WAITING_FOR_LOCATION_METHOD_SETTING_ON = 2, - LOCATION_LOGGER_WAITING_FOR_ACTIVE_INTERVAL = 3, - LOCATION_LOGGER_WAITING_FOR_PASSIVE_INTERVAL = 4 - }; - - class LocationLogger : public ITimerListener, public IVisitListener { - - private: - /* INPUT */ - void onVisitStart(); - void onVisitEnd(); - - /* OUTPUT */ - ILocationListener * const __listener; - void __broadcast(LocationEvent locationEvent); - - /* INTERNAL */ - void __startLogging(); - void __stopLogging(); - void __locationRequest(); - void __onActiveRequestSucceeded(); - void __onActiveLocationSucceeded(); - - /* INTERNAL : COUNTERS (LIMITS) */ - int __activeRequestAttempts; - int __activeAttempts; - int __allAttempts; - int __locationCount; - bool __checkGeneralLimits(); - bool __checkActiveLimits(); - bool __checkActiveRequestLimits(); - - /* INTERNAL : FLAGS */ - bool __activeRequestSucceeded; - bool __activeLocationSucceeded; - - /* TIMER */ - int __timerId; - time_t __timerTimestamp; - TimerManager __timerManager; - TimerPurpose __timerPurpose; - void __setNextTimer(); - void __activeRequestTimerStart(); - void __startServiceTimerStart(); - void __activeIntervalTimerStart(); - void __passiveIntervalTimerStart(); - void __timerStart(time_t minutes); - void __timerStop(); - bool onTimerExpired(int timerId); - - /* DATABASE */ - static int __dbCreateTable(); - int __dbInsertLog(LocationEvent locationEvent); - - /* DEBUG */ - static const char* __locationError2Str(int error); - static void __log(location_accessibility_state_e state); - - /* LOCATION MANAGER */ - location_manager_h __locationManager; - void __locationManagerCreate(); - void __locationManagerDestroy(); - void __locationManagerStart(); - void __locationManagerStop(); - location_accessibility_state_e __locationManagerGetAccessibilityState(); - - /* LOCATION MANAGER : LOCATION SERVICE STATE */ - location_service_state_e __locationServiceState; - static void __locationServiceStateChangedCb(location_service_state_e state, void *userData); - void __locationManagerSetServiceStateChangedCb(); - void __locationManagerUnsetServiceStateChangedCb(); - - /* LOCATION MANAGER : LOCATION METHOD SETTINGS */ - location_method_e __locationMethod; - bool __locationMethodState; - bool __locationManagerIsEnabledMethod(location_method_e method); - static void __locationSettingChangedCb(location_method_e method, bool enable, void *userData); - void __locationManagerSetSettingChangedCb(); - void __locationManagerUnsetSettingChangedCb(); - - /* LOCATION MANAGER : LOCATION */ - double __locationManagerGetHorizontalAccuracy(); - - /* LOCATION MANAGER : LOCATION : SYNCHRONOUS */ - bool __locationManagerGetLocation(); - void __locationManagerGetLastLocation(); - - /* LOCATION MANAGER : LOCATION : ASYNCHRONOUS */ - static void __positionUpdatedCb(double latitude, double longitude, - double altitude, time_t timestamp, void *userData); - static void __locationUpdatedCb(location_error_e error, double latitude, - double longitude, double altitude, time_t timestamp, double speed, - double direction, double climb, void *userData); - bool __locationManagerRequestSingleLocation(); - - LocationLogger(const LocationLogger&) = delete; - LocationLogger& operator=(const LocationLogger&) = delete; - - public: - LocationLogger(ILocationListener *listener = nullptr); - ~LocationLogger(); - - }; /* class LocationLogger */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_LOCATION_LOGGER_H_ */ diff --git a/src/my-place/visit-detector/VisitDetector.cpp b/src/my-place/visit-detector/VisitDetector.cpp deleted file mode 100644 index 5fbc5cb..0000000 --- a/src/my-place/visit-detector/VisitDetector.cpp +++ /dev/null @@ -1,502 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include "VisitDetector.h" -#include -#include -#include -#include -#include -#include - -#define SO_PATH _LIBDIR_ "/context-service/libctx-prvd-my-place-visit-categer.so" - -typedef void (*visit_categer_t)(ctx::Visit &visit); - -#define __VISIT_TABLE_COLUMNS \ - VISIT_COLUMN_WIFI_APS " TEXT, "\ - VISIT_COLUMN_START_TIME " timestamp, "\ - VISIT_COLUMN_END_TIME " timestamp, "\ - VISIT_COLUMN_LOCATION_VALID " INTEGER, "\ - VISIT_COLUMN_LOCATION_LATITUDE " REAL, "\ - VISIT_COLUMN_LOCATION_LONGITUDE " REAL, "\ - VISIT_COLUMN_LOCATION_ACCURACY " REAL, "\ - VISIT_COLUMN_CATEG_HOME " REAL, "\ - VISIT_COLUMN_CATEG_WORK " REAL, "\ - VISIT_COLUMN_CATEG_OTHER " REAL" - -#define __WIFI_APS_MAP_TABLE_COLUMNS \ - WIFI_APS_MAP_COLUMN_MAC " TEXT NOT NULL UNIQUE, "\ - WIFI_APS_MAP_COLUMN_NETWORK_NAME " TEXT NOT NULL, "\ - WIFI_APS_MAP_COLUMN_INSERT_TIME " timestamp" - -ctx::VisitDetector::VisitDetector(time_t startScan, PlaceRecogMode energyMode, bool testMode) : - __testMode(testMode), - __locationLogger(testMode ? nullptr : new(std::nothrow) LocationLogger(this)), - __wifiLogger(testMode ? nullptr : new(std::nothrow) WifiLogger(this, energyMode)), - __currentInterval(startScan, startScan + VISIT_DETECTOR_PERIOD_SECONDS_HIGH_ACCURACY), - __stableCounter(0), - __tolerance(VISIT_DETECTOR_TOLERANCE_DEPTH), - __entranceToPlace(false), - __periodSeconds(VISIT_DETECTOR_PERIOD_SECONDS_HIGH_ACCURACY), - __entranceTime(0), - __departureTime(0) -{ - _D("CONSTRUCTOR"); - __setPeriod(energyMode); - __currentInterval = Interval(startScan, startScan + __periodSeconds); - __currentMacEvents = std::make_shared(); - __stayMacs = std::make_shared(); - - if (__testMode) { - __detectedVisits = std::make_shared(); - return; - } - - __listeners.push_back(__locationLogger); - __listeners.push_back(__wifiLogger); - - __dbCreateTables(); - __wifiLogger->startLogging(); -} - -ctx::VisitDetector::~VisitDetector() -{ - _D("DESTRUCTOR"); - if (__locationLogger) - delete __locationLogger; - if (__wifiLogger) - delete __wifiLogger; -} - -bool ctx::VisitDetector::__isValid(const ctx::Mac &mac) -{ - return mac != "00:00:00:00:00:00"; -} - -void ctx::VisitDetector::onWifiScan(ctx::MacEvent e) -{ - _D("timestamp=%d, current_interval.end=%d, mac=%s, network=%s", - e.timestamp, - __currentInterval.end, - std::string(e.mac).c_str(), - e.networkName.c_str()); - if (__isValid(e.mac)) { - while (e.timestamp > __currentInterval.end) { - __processCurrentLogger(); - __shiftCurrentInterval(); - } - __currentMacEvents->push_back(e); - } -} - -void ctx::VisitDetector::__processCurrentLogger() -{ - _D(""); - std::shared_ptr frame = __makeFrame(__currentMacEvents, __currentInterval); - __detectEntranceOrDeparture(frame); - __currentMacEvents->clear(); -} - -std::shared_ptr ctx::VisitDetector::__makeFrame(std::shared_ptr logger, ctx::Interval interval) -{ - std::set timestamps; - std::shared_ptr frame = std::make_shared(interval); - for (auto log : *logger) { - timestamps.insert(log.timestamp); - if (frame->macs2Counts.find(log.mac) == frame->macs2Counts.end()) { - frame->macs2Counts[log.mac] = 1; - } else { - frame->macs2Counts[log.mac] += 1; - } - } - frame->numberOfTimestamps = timestamps.size(); - return frame; -} - -void ctx::VisitDetector::__shiftCurrentInterval() -{ - __currentInterval.end += __periodSeconds; - __currentInterval.start += __periodSeconds; -} - -void ctx::VisitDetector::__detectEntranceOrDeparture(std::shared_ptr frame) -{ - __entranceToPlace ? __detectDeparture(frame) : __detectEntrance(frame); - if (__entranceToPlace) { - for (MacEvent e : *__currentMacEvents) { - __wifiAPsMap.insert(std::pair(e.mac, e.networkName)); - } - } -} - -bool ctx::VisitDetector::__isDisjoint(const ctx::Macs2Counts &macs2Counts, const ctx::MacSet &macSet) -{ - for (auto &mac : macSet) { - if (macs2Counts.find(mac) != macs2Counts.end()) - return false; - } - return true; -} - -bool ctx::VisitDetector::__protrudesFrom(const ctx::Macs2Counts &macs2Counts, const ctx::MacSet &macSet) -{ - for (auto &macCount : macs2Counts) { - if (macSet.find(macCount.first) == macSet.end()) - return true; - } - return false; -} - -void ctx::VisitDetector::__detectDeparture(std::shared_ptr frame) -{ - if (__tolerance == VISIT_DETECTOR_TOLERANCE_DEPTH) { - __departureTime = frame->interval.start; - __bufferedFrames.clear(); - } else { // __tolerance < VISIT_DETECTOR_TOLERANCE_DEPTH - __bufferedFrames.push_back(frame); - } - if (__isDisjoint(frame->macs2Counts, *__representativesMacs)) { - if (frame->macs2Counts.empty() || __protrudesFrom(frame->macs2Counts, *__stayMacs)) { - __tolerance--; - } else { // no new macs - __bufferedFrames.clear(); - } - if (__tolerance == 0) { // departure detected - __visitEndDetected(); - __processBuffer(frame); - } - } else if (__tolerance < VISIT_DETECTOR_TOLERANCE_DEPTH) { - __tolerance++; - } -} - -void ctx::VisitDetector::__visitStartDetected() -{ - __entranceToPlace = true; - - __locationEvents.clear(); - if (!__testMode) { - for (IVisitListener* listener : __listeners) { - listener->onVisitStart(); - } - } - __representativesMacs = __selectRepresentatives(__historyFrames); - __entranceTime = __historyFrames[0]->interval.start; - _D("Entrance detected, timestamp: %d", __entranceTime); - __resetHistory(); -} - -void ctx::VisitDetector::__visitEndDetected() -{ - if (!__testMode) { - for (IVisitListener* listener : __listeners) { - listener->onVisitEnd(); - } - } - _D("Departure detected, timestamp: %d", __departureTime); - - Interval interval(__entranceTime, __departureTime); - Visit visit(interval, __representativesMacs); - __categorize(visit); - - __putLocationToVisit(visit); - - if (__testMode) { - __detectedVisits->push_back(visit); - } else { - __dbInsertVisit(visit); - __dbInsertWifiAPsMap(visit); - } - - // cleaning - __entranceToPlace = false; - __representativesMacs.reset(); - __tolerance = VISIT_DETECTOR_TOLERANCE_DEPTH; -} - -void ctx::VisitDetector::__putLocationToVisit(ctx::Visit &visit) -{ - // TODO: filter out small accuracy locations? - std::vector latitudes; - std::vector longitudes; - std::vector accuracy; - visit.locationValid = false; - for (LocationEvent &location : __locationEvents) { - if (location.timestamp >= __entranceTime && location.timestamp <= __departureTime) { - latitudes.push_back(location.coordinates.latitude); - longitudes.push_back(location.coordinates.longitude); - accuracy.push_back(location.coordinates.accuracy); - visit.locationValid = true; - } - } - if (visit.locationValid) { - visit.location = medianLocation(latitudes, longitudes, accuracy); - _D("visit location set: lat=%.8f, lon=%.8f, acc=%.8f", - visit.location.latitude, - visit.location.longitude, - visit.location.accuracy); - } else { - _D("visit location not set"); - } -} - -void ctx::VisitDetector::__processBuffer(std::shared_ptr frame) -{ - if (__bufferedFrames.empty()) { - __historyFrames.push_back(frame); - } else { - __historyFrames.push_back(__bufferedFrames[0]); - for (size_t i = 1; i < __bufferedFrames.size(); i++) { - __detectEntrance(__bufferedFrames[i]); - if (__entranceToPlace) - break; - } - } -} - -void ctx::VisitDetector::__detectEntrance(std::shared_ptr currentFrame) -{ - if (currentFrame->macs2Counts.empty() || __historyFrames.empty()) { - __resetHistory(currentFrame); - return; - } - - if (__stableCounter == 0) { - std::shared_ptr oldestHistoryFrame = __historyFrames[0]; - __stayMacs = macSetFromMacs2Counts(oldestHistoryFrame->macs2Counts); - } - - std::shared_ptr currentBeacons = macSetFromMacs2Counts(currentFrame->macs2Counts); - - if (similarity::overlapBiggerOverSmaller(*currentBeacons, *__stayMacs) > VISIT_DETECTOR_OVERLAP) { - __stableCounter++; - __historyFrames.push_back(currentFrame); - if (__stableCounter == VISIT_DETECTOR_STABLE_DEPTH) // entrance detected - __visitStartDetected(); - } else { - __resetHistory(currentFrame); - } - return; -} - -void ctx::VisitDetector::__resetHistory() -{ - __stableCounter = 0; - __historyFrames.clear(); -} - -void ctx::VisitDetector::__resetHistory(std::shared_ptr frame) -{ - __resetHistory(); - __historyFrames.push_back(frame); -} - -std::shared_ptr ctx::VisitDetector::__selectRepresentatives(const std::vector> &frames) -{ - Macs2Counts reprs2Counts; - count_t allCount = 0; - - for (auto frame : frames) { - allCount += frame->numberOfTimestamps; - for (auto &c : frame->macs2Counts) { - reprs2Counts[c.first] += c.second; - } - } - - std::shared_ptr reprs2Shares = __macSharesFromCounts(reprs2Counts, allCount); - - share_t maxShare = __calcMaxShare(*reprs2Shares); - share_t threshold = maxShare < VISIT_DETECTOR_REP_THRESHOLD ? maxShare : VISIT_DETECTOR_REP_THRESHOLD; - - std::shared_ptr reprsMacSet = __macSetOfGreaterOrEqualShare(*reprs2Shares, threshold); - - return reprsMacSet; -} - -ctx::share_t ctx::VisitDetector::__calcMaxShare(const ctx::Macs2Shares &macs2Shares) -{ - ctx::share_t maxShare = 0.0; - for (auto &macShare : macs2Shares) { - if (macShare.second > maxShare) - maxShare = macShare.second; - } - return maxShare; -} - -std::shared_ptr ctx::VisitDetector::__macSetOfGreaterOrEqualShare(const ctx::Macs2Shares &macs2Shares, ctx::share_t threshold) -{ - std::shared_ptr macSet = std::make_shared(); - for (auto &macShare : macs2Shares) { - if (macShare.second >= threshold) - macSet->insert(macShare.first); - } - return macSet; -} - -std::shared_ptr ctx::VisitDetector::__macSharesFromCounts(ctx::Macs2Counts const &macs2Counts, ctx::count_t denominator) -{ - std::shared_ptr macs2Shares(std::make_shared()); - for (auto macCount : macs2Counts) { - (*macs2Shares)[macCount.first] = (share_t) macCount.second / denominator; - } - return macs2Shares; -} - -std::shared_ptr ctx::VisitDetector::__getVisits() -{ - return __detectedVisits; -} - -void ctx::VisitDetector::__dbCreateTables() -{ - DatabaseManager dbManager; - bool ret = dbManager.createTableSync(VISIT_TABLE, __VISIT_TABLE_COLUMNS); - _D("db: Visit Table Creation Result: %s", ret ? "SUCCESS" : "FAIL"); - - ret = dbManager.createTableSync(WIFI_APS_MAP_TABLE, __WIFI_APS_MAP_TABLE_COLUMNS); - _D("db: Wifi AP Map Table Creation Result: %s", ret ? "SUCCESS" : "FAIL"); -} - -void ctx::VisitDetector::__putVisitCategToJson(const char* key, const Categs &categs, int categType, Json &data) -{ - auto categ = categs.find(categType); - if (categ == categs.end()) { - _E("json_put_visit no type %d in categs", categType); - } else { - data.set(NULL, key, categ->second); - } -} - -void ctx::VisitDetector::__putVisitCategsToJson(const Categs &categs, Json &data) -{ - __putVisitCategToJson(VISIT_COLUMN_CATEG_HOME, categs, PLACE_CATEG_ID_HOME, data); - __putVisitCategToJson(VISIT_COLUMN_CATEG_WORK, categs, PLACE_CATEG_ID_WORK, data); - __putVisitCategToJson(VISIT_COLUMN_CATEG_OTHER, categs, PLACE_CATEG_ID_OTHER, data); -} - -int ctx::VisitDetector::__dbInsertVisit(Visit visit) -{ - std::stringstream ss; - ss << *visit.macSet; - - Json data; - data.set(NULL, VISIT_COLUMN_WIFI_APS, ss.str().c_str()); - - data.set(NULL, VISIT_COLUMN_LOCATION_VALID, visit.locationValid); - data.set(NULL, VISIT_COLUMN_LOCATION_LATITUDE, visit.location.latitude); - data.set(NULL, VISIT_COLUMN_LOCATION_LONGITUDE, visit.location.longitude); - data.set(NULL, VISIT_COLUMN_LOCATION_ACCURACY, visit.location.accuracy); - - data.set(NULL, VISIT_COLUMN_START_TIME, static_cast(visit.interval.start)); - data.set(NULL, VISIT_COLUMN_END_TIME, static_cast(visit.interval.end)); - -#ifdef DEBUG_MODE - std::string startTimeHuman = DebugUtils::humanReadableDateTime(visit.interval.start, "%F %T", 80); - std::string endTimeHuman = DebugUtils::humanReadableDateTime(visit.interval.end, "%F %T", 80); - _D("db: visit table insert interval: (%d, %d): (%s, %s)", - visit.interval.start, visit.interval.end, startTimeHuman.c_str(), endTimeHuman.c_str()); -#else - _D("db: visit table insert interval: (%d, %d)", visit.interval.start, visit.interval.end); -#endif /* DEBUG_MODE */ - - __putVisitCategsToJson(visit.categs, data); - - int64_t rowId; - DatabaseManager dbManager; - bool ret = dbManager.insertSync(VISIT_TABLE, data, &rowId); - _D("db: visit table insert result: %s", ret ? "SUCCESS" : "FAIL"); - return ret; -} - -int ctx::VisitDetector::__dbInsertWifiAPsMap(Visit visit) -{ - std::stringstream query; - time_t now = time(nullptr); - const char* separator = " "; - query << "BEGIN TRANSACTION; \ - REPLACE INTO " WIFI_APS_MAP_TABLE " \ - ( " WIFI_APS_MAP_COLUMN_MAC ", " WIFI_APS_MAP_COLUMN_NETWORK_NAME ", " WIFI_APS_MAP_COLUMN_INSERT_TIME " ) \ - VALUES"; - for (Mac mac : *visit.macSet) { - // TODO: Add protection from SQL injection in network name!! - query << separator << "( '" << mac << "', '" << __wifiAPsMap.find(mac)->second << "', '" << now << "' )"; - separator = ", "; - } - __wifiAPsMap.clear(); - query << "; \ - END TRANSACTION;"; - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(query.str().c_str(), &records); - _D("DB Wifi APs map insert request: %s", ret ? "SUCCESS" : "FAIL"); - return ret; -} - -void ctx::VisitDetector::onNewLocation(LocationEvent locationEvent) -{ - _D(""); - locationEvent.log(); - __locationEvents.push_back(locationEvent); -}; - -void ctx::VisitDetector::__setPeriod(PlaceRecogMode energyMode) -{ - switch (energyMode) { - case PLACE_RECOG_LOW_POWER_MODE: - __periodSeconds = VISIT_DETECTOR_PERIOD_SECONDS_LOW_POWER; - break; - case PLACE_RECOG_HIGH_ACCURACY_MODE: - __periodSeconds = VISIT_DETECTOR_PERIOD_SECONDS_HIGH_ACCURACY; - break; - default: - _E("Incorrect energy mode"); - } -} - -void ctx::VisitDetector::setMode(PlaceRecogMode energyMode) -{ - _D(""); - __setPeriod(energyMode); - if (__wifiLogger) - __wifiLogger->setMode(energyMode); -} - -void ctx::VisitDetector::__categorize(ctx::Visit &visit) -{ - _D(""); - GModule *soHandle = g_module_open(SO_PATH, G_MODULE_BIND_LAZY); - IF_FAIL_VOID_TAG(soHandle, _E, "%s", g_module_error()); - - gpointer symbol; - if (!g_module_symbol(soHandle, "categorize", &symbol) || symbol == NULL) { - _E("%s", g_module_error()); - g_module_close(soHandle); - return; - } - - visit_categer_t categorize = reinterpret_cast(symbol); - - categorize(visit); - g_module_close(soHandle); -} diff --git a/src/my-place/visit-detector/VisitDetector.h b/src/my-place/visit-detector/VisitDetector.h deleted file mode 100644 index b476942..0000000 --- a/src/my-place/visit-detector/VisitDetector.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_VISIT_DETECTOR_H_ -#define _CONTEXT_PLACE_RECOGNITION_VISIT_DETECTOR_H_ - -#include -#include -#include -#include -#include -#include -#include -#include "VisitListenerIface.h" -#include "LocationLogger.h" -#include "LocationListenerIface.h" -#include "WifiListenerIface.h" -#include "WifiLogger.h" - -namespace ctx { - - class VisitDetector : public IWifiListener, ILocationListener { - - private: - bool __testMode; - std::map __wifiAPsMap; - std::shared_ptr __detectedVisits; // only used in test mode - LocationLogger *__locationLogger; - WifiLogger *__wifiLogger; - std::vector __listeners; - std::shared_ptr __currentMacEvents; - Interval __currentInterval; - std::vector __locationEvents; - std::vector> __historyFrames; // python: history_scans + history_times - std::vector> __bufferedFrames; // python: buffered_scans + buffered_times - int __stableCounter; - int __tolerance; - bool __entranceToPlace; - int __periodSeconds; - - // fields that are used only in case of entrance detection - std::shared_ptr __representativesMacs; // macs that represent the current place - std::shared_ptr __stayMacs; // macs that can appear in the current place - time_t __entranceTime; - time_t __departureTime; - - bool __isValid(const Mac &mac); - void __shiftCurrentInterval(); - void __detectEntranceOrDeparture(std::shared_ptr frame); - void __detectEntrance(std::shared_ptr frame); - void __detectDeparture(std::shared_ptr frame); - void __processBuffer(std::shared_ptr frame); // python: buffer_analysing - std::shared_ptr __makeFrame(std::shared_ptr macEvents, Interval interval); // python: scans2fingerprint - void __resetHistory(); - void __resetHistory(std::shared_ptr frame); - void __visitStartDetected(); - void __visitEndDetected(); - void __putLocationToVisit(Visit &visit); - std::shared_ptr __selectRepresentatives(const std::vector> &frames); - std::shared_ptr __macSetOfGreaterOrEqualShare(const Macs2Shares &macs2Shares, share_t threshold); - std::shared_ptr __macSharesFromCounts(Macs2Counts const &macs2Counts, count_t denominator); // python: response_rate - share_t __calcMaxShare(const Macs2Shares &macs2Shares); - bool __isDisjoint(const Macs2Counts &macs2Counts, const MacSet &macSet); - bool __protrudesFrom(const Macs2Counts &macs2Counts, const MacSet &macSet); - void __setPeriod(PlaceRecogMode mode); - void __processCurrentLogger(); - std::shared_ptr __getVisits(); - - /* DATABASE */ - void __dbCreateTables(); - int __dbInsertVisit(Visit visit); - int __dbInsertWifiAPsMap(Visit visit); - void __putVisitCategToJson(const char* key, const Categs &categs, int categType, Json &data); - void __putVisitCategsToJson(const Categs &categs, Json &data); - - /* INPUT */ - void onWifiScan(MacEvent event); - void onNewLocation(LocationEvent location); - - void __categorize(Visit &visit); - - VisitDetector(const VisitDetector&) = delete; - VisitDetector& operator=(const VisitDetector&) = delete; - - public: - VisitDetector(time_t startScan, PlaceRecogMode energyMode = PLACE_RECOG_HIGH_ACCURACY_MODE, bool testMode = false); - ~VisitDetector(); - - void setMode(PlaceRecogMode energyMode); - - }; /* class VisitDetector */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_VISIT_DETECTOR_H_ */ diff --git a/src/my-place/visit-detector/VisitListenerIface.h b/src/my-place/visit-detector/VisitListenerIface.h deleted file mode 100644 index 03f5f20..0000000 --- a/src/my-place/visit-detector/VisitListenerIface.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_VISIT_LISTENER_IFACE_H_ -#define _CONTEXT_PLACE_RECOGNITION_VISIT_LISTENER_IFACE_H_ - -namespace ctx { - - class IVisitListener { - - public: - virtual ~IVisitListener() {}; - virtual void onVisitStart() = 0; - virtual void onVisitEnd() = 0; - - }; /* class IVisitListener */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_VISIT_LISTENER_IFACE_H_ */ diff --git a/src/my-place/visit-detector/WifiListenerIface.h b/src/my-place/visit-detector/WifiListenerIface.h deleted file mode 100644 index 84ef489..0000000 --- a/src/my-place/visit-detector/WifiListenerIface.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_WIFI_LISTENER_IFACE_H_ -#define _CONTEXT_PLACE_RECOGNITION_WIFI_LISTENER_IFACE_H_ - -#include - -namespace ctx { - - class IWifiListener { - - public: - virtual ~IWifiListener() {}; - virtual void onWifiScan(ctx::MacEvent macEvent) = 0; - - }; /* IWifiListener */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_WIFI_LISTENER_IFACE_H_ */ diff --git a/src/my-place/visit-detector/WifiLogger.cpp b/src/my-place/visit-detector/WifiLogger.cpp deleted file mode 100644 index 785aecc..0000000 --- a/src/my-place/visit-detector/WifiLogger.cpp +++ /dev/null @@ -1,470 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include "WifiLogger.h" - -#define __WIFI_CREATE_TABLE_COLUMNS \ - WIFI_COLUMN_TIMESTAMP " timestamp NOT NULL, "\ - WIFI_COLUMN_BSSID " TEXT NOT NULL, "\ - WIFI_COLUMN_ESSID " TEXT NOT NULL" - -#define __WIFI_ERROR_LOG(error) { \ - if (error != WIFI_ERROR_NONE) { \ - _E("ERROR == %s", __wifiError2Str(error)); \ - } else { \ - _D("SUCCESS"); \ - } \ -} - -int ctx::WifiLogger::__dbCreateTable() -{ - DatabaseManager dbManager; - bool ret = dbManager.createTableSync(WIFI_TABLE, __WIFI_CREATE_TABLE_COLUMNS); - _D("Table Creation Request: %s", ret ? "SUCCESS" : "FAIL"); - return ret; -} - -int ctx::WifiLogger::__dbInsertLogs() -{ - if (__logs.size() > 0) { - std::stringstream query; - const char* separator = " "; - query << "BEGIN TRANSACTION; \ - INSERT INTO " WIFI_TABLE " \ - ( " WIFI_COLUMN_BSSID ", " WIFI_COLUMN_ESSID ", " WIFI_COLUMN_TIMESTAMP " ) \ - VALUES"; - for (MacEvent mac_event : __logs) { - query << separator << "( '" << mac_event.mac << "', '" << mac_event.networkName << "', '" << mac_event.timestamp << "' )"; - separator = ", "; - } - __logs.clear(); - query << "; \ - END TRANSACTION;"; - std::vector records; - DatabaseManager dbManager; - bool ret = dbManager.executeSync(query.str().c_str(), &records); - _D("DB insert request: %s", ret ? "SUCCESS" : "FAIL"); - return ret; - } - _D("__logs vector empty -> nothing to insert"); - return 0; -} - -ctx::WifiLogger::WifiLogger(IWifiListener *listener, PlaceRecogMode energyMode) : - __timerOn(false), - __timerId(-1), - __intervalMinutes(WIFI_LOGGER_INTERVAL_MINUTES_HIGH_ACCURACY), - __listener(listener), - __lastScanTime(time_t(0)), - __lasTimerCallbackTime(time_t(0)), - __duringVisit(false), - __connectedToWifiAp(false), - __started(false), - __running(false) -{ - _D("CONSTRUCTOR"); - - __setInterval(energyMode); - - if (WIFI_LOGGER_DATABASE) - __dbCreateTable(); - - __logs = std::vector(); - - __wifiSetDeviceStateChangedCbRequest(); - - if (WIFI_LOGGER_LOW_POWER_MODE) - __wifiSetConnectionStateChangedCbRequest(); - - wifi_connection_state_e state = __wifiGetConnectionStateRequest(); - __connectedToWifiAp = (state == WIFI_CONNECTION_STATE_CONNECTED); - _D("__connectedToWifiAp = %d, __duringVisit = %d IN CONSTRUCTOR", - static_cast(__connectedToWifiAp), - static_cast(__duringVisit)); -} - -ctx::WifiLogger::~WifiLogger() -{ - _D("DESTRUCTOR"); - stopLogging(); -} - -void ctx::WifiLogger::__wifiDeviceStateChangedCb(wifi_device_state_e state, void *userData) -{ - ctx::WifiLogger* wifiLogger = (ctx::WifiLogger *)userData; - switch (state) { - case WIFI_DEVICE_STATE_DEACTIVATED: - _D("WIFI setting OFF"); - if (wifiLogger->__started) - wifiLogger->__stopLogging(); - break; - case WIFI_DEVICE_STATE_ACTIVATED: - _D("WIFI setting ON"); - if (wifiLogger->__started) - wifiLogger->__startLogging(); - break; - default: - break; - } -} - -void ctx::WifiLogger::__wifiConnectionStateChangedCb(wifi_connection_state_e state, wifi_ap_h ap, void *userData) -{ - ctx::WifiLogger* wifiLogger = (ctx::WifiLogger *)userData; - switch (state) { - case WIFI_CONNECTION_STATE_CONNECTED: - _D("connected to AP"); - wifiLogger->__connectedToWifiAp = true; - break; - default: - _D("disconnected from AP -> __lastScansPool.clear()"); - wifiLogger->__connectedToWifiAp = false; - wifiLogger->__lastScansPool.clear(); - break; - } - // TODO: Check if AP bssid (MAC Address) will be helpful somehow in LOW_POWER mode -} - -bool ctx::WifiLogger::__wifiFoundApCb(wifi_ap_h ap, void *userData) -{ - ctx::WifiLogger* wifiLogger = (ctx::WifiLogger *)userData; - - std::string bssid; - int ret = wifiLogger->__wifiApGetBssidRequest(ap, bssid); - if (ret != WIFI_ERROR_NONE) - return false; - - std::string essid; - ret = wifiLogger->__wifiApGetEssidRequest(ap, essid); - if (ret != WIFI_ERROR_NONE) - return false; - - Mac mac; - try { - mac = Mac(bssid); - } catch (std::runtime_error &e) { - _E("Cannot create mac_event. Exception: %s", e.what()); - return false; - } - - MacEvent log(wifiLogger->__lastScanTime, mac, essid); - if (wifiLogger->__listener) { - wifiLogger->__listener->onWifiScan(log); - if (WIFI_LOGGER_LOW_POWER_MODE - && (wifiLogger->__connectedToWifiAp || wifiLogger->__duringVisit) ) { - // Add to last scans AP's set - wifiLogger->__lastScansPool.insert(std::pair(bssid, essid)); - } - } - if (WIFI_LOGGER_DATABASE) - wifiLogger->__logs.push_back(log); - - return true; -} - -const char* ctx::WifiLogger::__wifiError2Str(int error) -{ - switch (error) { - case WIFI_ERROR_INVALID_PARAMETER: - return "WIFI_ERROR_INVALID_PARAMETER"; - case WIFI_ERROR_OUT_OF_MEMORY: - return "WIFI_ERROR_OUT_OF_MEMORY"; - case WIFI_ERROR_INVALID_OPERATION: - return "WIFI_ERROR_INVALID_OPERATION"; - case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: - return "WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED"; - case WIFI_ERROR_OPERATION_FAILED: - return "WIFI_ERROR_OPERATION_FAILED"; - case WIFI_ERROR_NO_CONNECTION: - return "WIFI_ERROR_NO_CONNECTION"; - case WIFI_ERROR_NOW_IN_PROGRESS: - return "WIFI_ERROR_NOW_IN_PROGRESS"; - case WIFI_ERROR_ALREADY_EXISTS: - return "WIFI_ERROR_ALREADY_EXISTS"; - case WIFI_ERROR_OPERATION_ABORTED: - return "WIFI_ERROR_OPERATION_ABORTED"; - case WIFI_ERROR_DHCP_FAILED: - return "WIFI_ERROR_DHCP_FAILED"; - case WIFI_ERROR_INVALID_KEY: - return "WIFI_ERROR_INVALID_KEY"; - case WIFI_ERROR_NO_REPLY: - return "WIFI_ERROR_NO_REPLY"; - case WIFI_ERROR_SECURITY_RESTRICTED: - return "WIFI_ERROR_SECURITY_RESTRICTED"; - case WIFI_ERROR_PERMISSION_DENIED: - return "WIFI_ERROR_PERMISSION_DENIED"; - default: - return "unknown wifi error code"; - } -} - -void ctx::WifiLogger::__wifiScanFinishedCb(wifi_error_e errorCode, void *userData) -{ - ctx::WifiLogger* wifiLogger = (ctx::WifiLogger *)userData; - - time_t now = time(nullptr); -#ifdef DEBUG_MODE - double seconds = 0; - if (wifiLogger->__lastScanTime > 0) { - seconds = difftime(now, wifiLogger->__lastScanTime); - } - std::string timeStr = DebugUtils::humanReadableDateTime(now, "%T", 9); - _D("__connectedToWifiAp = %d, __duringVisit = %d, __lastScansPool.size() = %d -> scan %s (from last : %.1fs)", - static_cast(wifiLogger->__connectedToWifiAp), - static_cast(wifiLogger->__duringVisit), - wifiLogger->__lastScansPool.size(), - timeStr.c_str(), - seconds); -#endif /* DEBUG_MODE */ - wifiLogger->__lastScanTime = now; - - int ret = wifiLogger->__wifiForeachFoundApsRequest(userData); - if (ret != WIFI_ERROR_NONE) - return; - if (WIFI_LOGGER_DATABASE) - wifiLogger->__dbInsertLogs(); -} - -bool ctx::WifiLogger::__checkWifiIsActivated() -{ - bool wifiActivated = true; - int ret = __wifiWrapper.isActivated(&wifiActivated); - __WIFI_ERROR_LOG(ret); - _D("Wi-Fi is %s", wifiActivated ? "ON" : "OFF"); - return wifiActivated; -} - -void ctx::WifiLogger::__wifiScanRequest() -{ - int ret = __wifiWrapper.scan(__wifiScanFinishedCb, this); - __WIFI_ERROR_LOG(ret); -} - -int ctx::WifiLogger::__wifiForeachFoundApsRequest(void *userData) -{ - int ret = __wifiWrapper.foreachFoundAP(__wifiFoundApCb, userData); - __WIFI_ERROR_LOG(ret); - return ret; -} - -wifi_connection_state_e ctx::WifiLogger::__wifiGetConnectionStateRequest() -{ - wifi_connection_state_e connectionState; - int ret = __wifiWrapper.getConnectionState(&connectionState); - __WIFI_ERROR_LOG(ret); - return connectionState; -} - -void ctx::WifiLogger::__wifiSetBackgroundScanCbRequest() -{ - int ret = __wifiWrapper.setBackgroundScanCb(__wifiScanFinishedCb, this); - __WIFI_ERROR_LOG(ret); -} - -void ctx::WifiLogger::__wifiSetDeviceStateChangedCbRequest() -{ - int ret = __wifiWrapper.setDeviceStateChangedCb(__wifiDeviceStateChangedCb, this); - __WIFI_ERROR_LOG(ret); -} - -void ctx::WifiLogger::__wifiSetConnectionStateChangedCbRequest() -{ - int ret = __wifiWrapper.setConnectionStateChangedCb(__wifiConnectionStateChangedCb, this); - __WIFI_ERROR_LOG(ret); -} - -int ctx::WifiLogger::__wifiApGetEssidRequest(wifi_ap_h ap, std::string &essid) -{ - char *_essid = NULL; - int ret = __wifiWrapper.getEssidFromAP(ap, &_essid); - __WIFI_ERROR_LOG(ret); - - if (ret == WIFI_ERROR_NONE && _essid) - essid = _essid; - - free(_essid); - return ret; -} - -int ctx::WifiLogger::__wifiApGetBssidRequest(wifi_ap_h ap, std::string &bssid) -{ - char *_bssid = NULL; - int ret = __wifiWrapper.getBssidFromAP(ap, &_bssid); - __WIFI_ERROR_LOG(ret); - - if (ret == WIFI_ERROR_NONE && _bssid) - bssid = _bssid; - - free(_bssid); - return ret; -} - -bool ctx::WifiLogger::__checkTimerId(int id) -{ - _D("id == %d, __timerId == %d", id, __timerId); - return id == __timerId; -} - -/* - * Accepted time from last callback is >= than minimum interval - */ -bool ctx::WifiLogger::__checkTimerTime(time_t now) -{ - double seconds = 0; - if (__lasTimerCallbackTime > 0) { - seconds = difftime(now, __lasTimerCallbackTime); - if (seconds < WIFI_LOGGER_ACTIVE_SCANNING_MIN_INTERVAL) { - _D("last == %d, now == %d, diff = %.1fs -> Incorrect timer callback", __lasTimerCallbackTime, now, seconds); - return false; - } else { - _D("last == %d, now == %d, diff = %.1fs -> Correct timer callback", __lasTimerCallbackTime, now, seconds); - } - } else { - _D("last == %d, now == %d -> First callback", __lasTimerCallbackTime, now); - } - __lasTimerCallbackTime = now; - return true; -} - -bool ctx::WifiLogger::onTimerExpired(int id) -{ - time_t now = time(nullptr); - _D(""); - if (__checkTimerId(id) == false) // Incorrect callback call - return false; - if (__checkTimerTime(now) == false) // Prevention from double callback call bug - return __timerOn; - _D("__connectedToWifiAp = %d, __duringVisit = %d, __lastScansPool.size() = %d", - static_cast(__connectedToWifiAp), - static_cast(__duringVisit), - __lastScansPool.size()); - if (WIFI_LOGGER_LOW_POWER_MODE - && __duringVisit - && __connectedToWifiAp - && __lastScansPool.size() > 0) { - _D("trying to send fake scan"); - if (__listener) { - _D("__listener != false -> CORRECT"); - for (std::pair ap : __lastScansPool) { - Mac mac(ap.first); - MacEvent scan(now, mac, ap.second); - _D("send fake scan (%s, %s)", ap.first.c_str(), ap.second.c_str()); - __listener->onWifiScan(scan); - } - } - } else { - __wifiScanRequest(); - } - return __timerOn; -} - -void ctx::WifiLogger::startLogging() -{ - _D(""); - __started = true; - __startLogging(); -} - -void ctx::WifiLogger::__startLogging() -{ - _D(""); - if (!__checkWifiIsActivated() || __running) - return; - __running = true; - - if (WIFI_LOGGER_ACTIVE_SCANNING) { - __timerStart(__intervalMinutes); - __wifiScanRequest(); - } - if (WIFI_LOGGER_PASSIVE_SCANNING) - __wifiSetBackgroundScanCbRequest(); -} - -void ctx::WifiLogger::stopLogging() -{ - _D(""); - __started = false; - __stopLogging(); -} - -void ctx::WifiLogger::__stopLogging() -{ - _D(""); - if (!__running) - return; - if (WIFI_LOGGER_ACTIVE_SCANNING) { - // Unset timer - __timerOn = false; - // Remove timer - __timerManager.remove(__timerId); - } - if (WIFI_LOGGER_PASSIVE_SCANNING) - __wifiWrapper.unsetBackgroundScanCb(); - __running = false; -} - -void ctx::WifiLogger::__timerStart(time_t minutes) -{ - __timerOn = true; - __timerId = __timerManager.setFor(minutes, this); - _D("%s (minutes=%d)", __timerId >= 0 ? "SUCCESS" : "ERROR", minutes); -} - -void ctx::WifiLogger::onVisitStart() -{ - _D(""); - __duringVisit = true; -} - -void ctx::WifiLogger::onVisitEnd() -{ - _D("__lastScansPool.clear()"); - __duringVisit = false; - __lastScansPool.clear(); -} - -void ctx::WifiLogger::__setInterval(PlaceRecogMode energyMode) -{ - switch (energyMode) { - case PLACE_RECOG_LOW_POWER_MODE: - __intervalMinutes = WIFI_LOGGER_INTERVAL_MINUTES_LOW_POWER; - break; - case PLACE_RECOG_HIGH_ACCURACY_MODE: - __intervalMinutes = WIFI_LOGGER_INTERVAL_MINUTES_HIGH_ACCURACY; - break; - default: - _E("Incorrect energy mode"); - } -} - -void ctx::WifiLogger::__timerRestart() -{ - __timerManager.remove(__timerId); - __timerStart(__intervalMinutes); -} - -void ctx::WifiLogger::setMode(PlaceRecogMode energyMode) -{ - _D(""); - __setInterval(energyMode); - if (WIFI_LOGGER_ACTIVE_SCANNING && __timerOn) - __timerRestart(); -} diff --git a/src/my-place/visit-detector/WifiLogger.h b/src/my-place/visit-detector/WifiLogger.h deleted file mode 100644 index cc052fc..0000000 --- a/src/my-place/visit-detector/WifiLogger.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _CONTEXT_PLACE_RECOGNITION_WIFI_LOGGER_H_ -#define _CONTEXT_PLACE_RECOGNITION_WIFI_LOGGER_H_ - -#include -#include -#include -#include -#include -#include "WifiListenerIface.h" -#include "VisitListenerIface.h" -#include - -/* Database usage flag */ -#define WIFI_LOGGER_DATABASE false - -/* Active scanning usage flag */ -#define WIFI_LOGGER_ACTIVE_SCANNING true - -/* Passive scanning usage flag */ -#define WIFI_LOGGER_PASSIVE_SCANNING true - -/* Active scanning minimum interval in seconds */ -#define WIFI_LOGGER_ACTIVE_SCANNING_MIN_INTERVAL 10 - -/* - * Low power scanning usage flag - * (When phone is connected to some WiFi Access Point - * last scan data is returned instead of new scan triggering) - */ -#define WIFI_LOGGER_LOW_POWER_MODE false - -namespace ctx { - - class WifiLogger : public ITimerListener, public IVisitListener { - - public: - WifiLogger(IWifiListener * listener = nullptr, - PlaceRecogMode energyMode = PLACE_RECOG_HIGH_ACCURACY_MODE); - ~WifiLogger(); - - void startLogging(); - void stopLogging(); - void setMode(PlaceRecogMode energyMode); - - private: - /* INPUT */ - void onVisitStart(); - void onVisitEnd(); - - bool onTimerExpired(int timerId); - - /* TIMER */ - bool __timerOn; - int __timerId; - int __intervalMinutes; - TimerManager __timerManager; - void __setInterval(PlaceRecogMode energyMode); - bool __checkTimerId(int id); - bool __checkTimerTime(time_t now); - void __timerStart(time_t minutes); - void __timerRestart(); - - /* DATABASE */ - static int __dbCreateTable(); - int __dbInsertLogs(); - - /* SYSTEM CAPI WRAPPERS */ - WifiWrapper __wifiWrapper; - void __wifiSetBackgroundScanCbRequest(); - void __wifiSetDeviceStateChangedCbRequest(); - void __wifiSetConnectionStateChangedCbRequest(); - bool __checkWifiIsActivated(); - void __wifiScanRequest(); - int __wifiForeachFoundApsRequest(void *userData); - wifi_connection_state_e __wifiGetConnectionStateRequest(); - int __wifiApGetEssidRequest(wifi_ap_h ap, std::string &essid); - int __wifiApGetBssidRequest(wifi_ap_h ap, std::string &bssid); - - /* SYSTEM CAPI CALLBACKS */ - static void __wifiDeviceStateChangedCb(wifi_device_state_e state, void *userData); - static void __wifiConnectionStateChangedCb(wifi_connection_state_e state, wifi_ap_h ap, void *userData); - static bool __wifiFoundApCb(wifi_ap_h ap, void *userData); - static void __wifiScanFinishedCb(wifi_error_e errorCode, void *userData); - - IWifiListener * const __listener; - std::vector __logs; - std::map __lastScansPool; // Mac address to network name map - time_t __lastScanTime; - time_t __lasTimerCallbackTime; - bool __duringVisit; - bool __connectedToWifiAp; - bool __started; - bool __running; - - void __startLogging(); - void __stopLogging(); - static const char* __wifiError2Str(int error); - - }; /* class WifiLogger */ - -} /* namespace ctx */ - -#endif /* End of _CONTEXT_PLACE_RECOGNITION_WIFI_LOGGER_H_ */ diff --git a/src/sensor/ClientInfo.cpp b/src/sensor/ClientInfo.cpp index 6c5955d..8988a9d 100644 --- a/src/sensor/ClientInfo.cpp +++ b/src/sensor/ClientInfo.cpp @@ -62,13 +62,13 @@ ClientInfo::~ClientInfo() __uninstallMonitor = NULL; } -int ClientInfo::get(std::string subject, std::string pkgId, Json& option) +int ClientInfo::get(std::string subject, std::string pkgId, CtxJson1& option) { IF_FAIL_RETURN_TAG(__dbMgr, ERR_OPERATION_FAILED, _W, "DB not initialized"); bool ret; std::string optStr; - std::vector records; + std::vector records; char *query = sqlite3_mprintf( "SELECT " KEY_OPTION " FROM " CLIENT_INFO " WHERE " \ KEY_SUBJECT "='%q' AND " KEY_PKG_ID "='%q'", @@ -86,13 +86,13 @@ int ClientInfo::get(std::string subject, std::string pkgId, Json& option) return ERR_NONE; } -int ClientInfo::get(std::string subject, std::vector& options) +int ClientInfo::get(std::string subject, std::vector& options) { IF_FAIL_RETURN_TAG(__dbMgr, ERR_OPERATION_FAILED, _W, "DB not initialized"); bool ret; std::string optStr; - std::vector records; + std::vector records; char *query = sqlite3_mprintf( "SELECT " KEY_OPTION " FROM " CLIENT_INFO " WHERE " \ KEY_SUBJECT "='%q'", @@ -104,10 +104,10 @@ int ClientInfo::get(std::string subject, std::vector& options) IF_FAIL_RETURN(ret, ERR_OPERATION_FAILED); IF_FAIL_RETURN(!records.empty(), ERR_NO_DATA); - for (Json& jObj : records) { + for (CtxJson1& jObj : records) { if (!jObj.get(NULL, KEY_OPTION, &optStr)) continue; - options.push_back(Json(optStr)); + options.push_back(CtxJson1(optStr)); } return ERR_NONE; @@ -118,7 +118,7 @@ bool ClientInfo::exist(std::string subject) IF_FAIL_RETURN_TAG(__dbMgr, ERR_OPERATION_FAILED, _W, "DB not initialized"); bool ret; - std::vector records; + std::vector records; char *query = sqlite3_mprintf( "SELECT " KEY_PKG_ID " FROM " CLIENT_INFO " WHERE " \ KEY_SUBJECT "='%q' LIMIT 1", @@ -133,7 +133,7 @@ bool ClientInfo::exist(std::string subject) return true; } -bool ClientInfo::set(std::string subject, std::string pkgId, Json option, int retentionPeriod) +bool ClientInfo::set(std::string subject, std::string pkgId, CtxJson1 option, int retentionPeriod) { IF_FAIL_RETURN_TAG(__dbMgr, false, _W, "DB not initialized"); @@ -164,11 +164,11 @@ bool ClientInfo::remove(std::string subject, std::string pkgId) return ret; } -void ClientInfo::getParam(std::vector &options, const char *key, float *min, float *max) +void ClientInfo::getParam(std::vector &options, const char *key, float *min, float *max) { double val; - for (Json& opt : options) { + for (CtxJson1& opt : options) { if (!opt.get(NULL, key, &val)) continue; if (min) @@ -184,7 +184,7 @@ void ClientInfo::purgeClient(std::string pkgId) bool ret; std::string subject; - std::vector records; + std::vector records; char *query = sqlite3_mprintf( "SELECT " KEY_SUBJECT " FROM " CLIENT_INFO " WHERE " KEY_PKG_ID "='%q'", @@ -194,7 +194,7 @@ void ClientInfo::purgeClient(std::string pkgId) sqlite3_free(query); IF_FAIL_VOID(ret); - for (Json& jObj : records) { + for (CtxJson1& jObj : records) { if (!jObj.get(NULL, KEY_SUBJECT, &subject)) continue; _I("Stop recording '%s' for '%s'", subject.c_str(), pkgId.c_str()); diff --git a/src/sensor/ClientInfo.h b/src/sensor/ClientInfo.h index e3ee643..0ea724a 100644 --- a/src/sensor/ClientInfo.h +++ b/src/sensor/ClientInfo.h @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include "UninstallMonitor.h" @@ -30,14 +30,14 @@ namespace ctx { ClientInfo(); ~ClientInfo(); - int get(std::string subject, std::string pkgId, Json& option); - int get(std::string subject, std::vector& options); + int get(std::string subject, std::string pkgId, CtxJson1& option); + int get(std::string subject, std::vector& options); bool exist(std::string subject); - bool set(std::string subject, std::string pkgId, Json option, int retentionPeriod); + bool set(std::string subject, std::string pkgId, CtxJson1 option, int retentionPeriod); bool remove(std::string subject, std::string pkgId); - void getParam(std::vector& options, const char *key, float *min, float *max); + void getParam(std::vector& options, const char *key, float *min, float *max); static void purgeClient(std::string pkgId); diff --git a/src/sensor/Querier.cpp b/src/sensor/Querier.cpp index feec0b3..a053255 100644 --- a/src/sensor/Querier.cpp +++ b/src/sensor/Querier.cpp @@ -20,7 +20,7 @@ using namespace ctx; -Querier::Querier(ContextProvider *provider, Json option) : +Querier::Querier(ContextProvider *provider, CtxJson1 option) : __provider(provider), __option(option) { @@ -59,22 +59,22 @@ void Querier::onInserted(unsigned int queryId, int error, int64_t rowId) { } -void Querier::onExecuted(unsigned int queryId, int error, std::vector& records) +void Querier::onExecuted(unsigned int queryId, int error, std::vector& records) { - Json response; + CtxJson1 response; __convertToResponse(records, response); __provider->replyToRead(__option, error, response); delete this; } -void Querier::__convertToResponse(std::vector &sqlResult, Json &response) +void Querier::__convertToResponse(std::vector &sqlResult, CtxJson1 &response) { std::list keys; std::string val; response.set(NULL, KEY_RESULT_SIZE, static_cast(sqlResult.size())); - for (Json &tuple : sqlResult) { + for (CtxJson1 &tuple : sqlResult) { tuple.getKeys(&keys); for (std::string &key : keys) { tuple.get(NULL, key.c_str(), &val); diff --git a/src/sensor/Querier.h b/src/sensor/Querier.h index 0eed203..44dc376 100644 --- a/src/sensor/Querier.h +++ b/src/sensor/Querier.h @@ -24,7 +24,7 @@ namespace ctx { class Querier : public IDatabaseListener { public: - Querier(ContextProvider *provider, Json option); + Querier(ContextProvider *provider, CtxJson1 option); virtual ~Querier(); virtual int queryRaw(int startTime, int endTime); @@ -35,14 +35,14 @@ namespace ctx { int query(const char *sql); void onTableCreated(unsigned int queryId, int error); void onInserted(unsigned int queryId, int error, int64_t rowId); - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); private: - void __convertToResponse(std::vector &sqlResult, Json &response); + void __convertToResponse(std::vector &sqlResult, CtxJson1 &response); DatabaseManager __dbMgr; ContextProvider *__provider; - Json __option; + CtxJson1 __option; }; } diff --git a/src/sensor/SensorProvider.cpp b/src/sensor/SensorProvider.cpp index 47d5269..6bf6ee5 100644 --- a/src/sensor/SensorProvider.cpp +++ b/src/sensor/SensorProvider.cpp @@ -37,17 +37,17 @@ SensorProvider::~SensorProvider() delete sensorLogger; } -int SensorProvider::subscribe(Json option, Json *requestResult) +int SensorProvider::subscribe(CtxJson1 option, CtxJson1 *requestResult) { return ERR_NONE; } -int SensorProvider::unsubscribe(Json option) +int SensorProvider::unsubscribe(CtxJson1 option) { return ERR_NONE; } -int SensorProvider::read(Json option, Json *requestResult) +int SensorProvider::read(CtxJson1 option, CtxJson1 *requestResult) { int endTime = static_cast(time(NULL)) + 1; int startTime = endTime - DEFAULT_QUERY_PERIOD - 1; @@ -94,13 +94,13 @@ int SensorProvider::read(Json option, Json *requestResult) return ret; } -int SensorProvider::write(Json data, Json *requestResult) +int SensorProvider::write(CtxJson1 data, CtxJson1 *requestResult) { IF_FAIL_RETURN(sensorLogger, ERR_OPERATION_FAILED); std::string operation; std::string pkgId; - Json option; + CtxJson1 option; int retentionPeriod = DEFAULT_RETENTION; _J("Data", data); @@ -125,16 +125,16 @@ int SensorProvider::write(Json data, Json *requestResult) return ERR_NOT_SUPPORTED; } -bool SensorProvider::verifyOption(Json option) +bool SensorProvider::verifyOption(CtxJson1 option) { std::list keys; option.getKeys(&keys); return keys.size() == 0; } -int SensorProvider::__addClient(std::string pkgId, int retentionPeriod, Json option) +int SensorProvider::__addClient(std::string pkgId, int retentionPeriod, CtxJson1 option) { - Json tmp; + CtxJson1 tmp; int ret; /* Validate the retention period */ @@ -157,7 +157,7 @@ int SensorProvider::__addClient(std::string pkgId, int retentionPeriod, Json opt int SensorProvider::__removeClient(std::string pkgId) { - std::vector options; + std::vector options; int ret; /* Remove the app's request first */ diff --git a/src/sensor/SensorProvider.h b/src/sensor/SensorProvider.h index 5b806a0..1fc7933 100644 --- a/src/sensor/SensorProvider.h +++ b/src/sensor/SensorProvider.h @@ -30,21 +30,21 @@ namespace ctx { SensorProvider(const char *subject); virtual ~SensorProvider(); - virtual int subscribe(Json option, Json *requestResult); - virtual int unsubscribe(Json option); - virtual int read(Json option, Json *requestResult); - virtual int write(Json data, Json *requestResult); + virtual int subscribe(CtxJson1 option, CtxJson1 *requestResult); + virtual int unsubscribe(CtxJson1 option); + virtual int read(CtxJson1 option, CtxJson1 *requestResult); + virtual int write(CtxJson1 data, CtxJson1 *requestResult); static void removeClient(std::string subject, std::string pkgId); protected: - virtual Querier* getQuerier(Json option) = 0; - virtual bool verifyOption(Json option); + virtual Querier* getQuerier(CtxJson1 option) = 0; + virtual bool verifyOption(CtxJson1 option); SensorLogger *sensorLogger; private: - int __addClient(std::string pkgId, int retentionPeriod, Json option); + int __addClient(std::string pkgId, int retentionPeriod, CtxJson1 option); int __removeClient(std::string pkgId); ClientInfo __clientInfo; diff --git a/src/sensor/heartrate/HeartRate.cpp b/src/sensor/heartrate/HeartRate.cpp index 3afa98e..64709a0 100644 --- a/src/sensor/heartrate/HeartRate.cpp +++ b/src/sensor/heartrate/HeartRate.cpp @@ -46,14 +46,14 @@ bool HeartRateProvider::isSupported() return util::getSystemInfoBool("tizen.org/feature/sensor.heart_rate_monitor"); } -Querier* HeartRateProvider::getQuerier(Json option) +Querier* HeartRateProvider::getQuerier(CtxJson1 option) { HeartRateQuerier *querier = new(std::nothrow) HeartRateQuerier(this, option); IF_FAIL_RETURN_TAG(querier, NULL, _E, "Memory allocation failed"); return querier; } -bool HeartRateProvider::verifyOption(Json option) +bool HeartRateProvider::verifyOption(CtxJson1 option) { std::list keys; option.getKeys(&keys); diff --git a/src/sensor/heartrate/HeartRate.h b/src/sensor/heartrate/HeartRate.h index 71f0812..63a0b62 100644 --- a/src/sensor/heartrate/HeartRate.h +++ b/src/sensor/heartrate/HeartRate.h @@ -30,8 +30,8 @@ namespace ctx { void getPrivilege(std::vector &privilege); protected: - Querier* getQuerier(Json option); - bool verifyOption(Json option); + Querier* getQuerier(CtxJson1 option); + bool verifyOption(CtxJson1 option); }; } diff --git a/src/sensor/heartrate/HeartRateLogger.cpp b/src/sensor/heartrate/HeartRateLogger.cpp index 8ef6895..9e9dcb1 100644 --- a/src/sensor/heartrate/HeartRateLogger.cpp +++ b/src/sensor/heartrate/HeartRateLogger.cpp @@ -58,7 +58,7 @@ HeartRateLogger::~HeartRateLogger() bool HeartRateLogger::start() { - std::vector options; + std::vector options; ClientInfo clientInfo; float interval = MAX_MEASURING_INTERVAL; diff --git a/src/sensor/heartrate/HeartRateQuerier.cpp b/src/sensor/heartrate/HeartRateQuerier.cpp index 1bae5a6..425b0b3 100644 --- a/src/sensor/heartrate/HeartRateQuerier.cpp +++ b/src/sensor/heartrate/HeartRateQuerier.cpp @@ -26,7 +26,7 @@ using namespace ctx; -HeartRateQuerier::HeartRateQuerier(ContextProvider *provider, Json option) : +HeartRateQuerier::HeartRateQuerier(ContextProvider *provider, CtxJson1 option) : Querier(provider, option) { } diff --git a/src/sensor/heartrate/HeartRateQuerier.h b/src/sensor/heartrate/HeartRateQuerier.h index 335d902..113c792 100644 --- a/src/sensor/heartrate/HeartRateQuerier.h +++ b/src/sensor/heartrate/HeartRateQuerier.h @@ -23,7 +23,7 @@ namespace ctx { class HeartRateQuerier : public Querier { public: - HeartRateQuerier(ContextProvider *provider, Json option); + HeartRateQuerier(ContextProvider *provider, CtxJson1 option); ~HeartRateQuerier(); int queryRaw(int startTime, int endTime); diff --git a/src/sensor/pedometer/Pedometer.cpp b/src/sensor/pedometer/Pedometer.cpp index 8752754..e0f6db2 100644 --- a/src/sensor/pedometer/Pedometer.cpp +++ b/src/sensor/pedometer/Pedometer.cpp @@ -46,7 +46,7 @@ bool PedometerProvider::isSupported() return util::getSystemInfoBool("tizen.org/feature/sensor.pedometer"); } -Querier* PedometerProvider::getQuerier(Json option) +Querier* PedometerProvider::getQuerier(CtxJson1 option) { PedometerQuerier *querier = new(std::nothrow) PedometerQuerier(this, option); IF_FAIL_RETURN_TAG(querier, NULL, _E, "Memory allocation failed"); diff --git a/src/sensor/pedometer/Pedometer.h b/src/sensor/pedometer/Pedometer.h index 7fee01f..8f43711 100644 --- a/src/sensor/pedometer/Pedometer.h +++ b/src/sensor/pedometer/Pedometer.h @@ -30,7 +30,7 @@ namespace ctx { void getPrivilege(std::vector &privilege); protected: - Querier* getQuerier(Json option); + Querier* getQuerier(CtxJson1 option); }; } diff --git a/src/sensor/pedometer/PedometerQuerier.cpp b/src/sensor/pedometer/PedometerQuerier.cpp index 3abf121..092d47e 100644 --- a/src/sensor/pedometer/PedometerQuerier.cpp +++ b/src/sensor/pedometer/PedometerQuerier.cpp @@ -39,7 +39,7 @@ using namespace ctx; -PedometerQuerier::PedometerQuerier(ContextProvider *provider, Json option) : +PedometerQuerier::PedometerQuerier(ContextProvider *provider, CtxJson1 option) : Querier(provider, option) { } diff --git a/src/sensor/pedometer/PedometerQuerier.h b/src/sensor/pedometer/PedometerQuerier.h index 21af1e1..f77de6c 100644 --- a/src/sensor/pedometer/PedometerQuerier.h +++ b/src/sensor/pedometer/PedometerQuerier.h @@ -23,7 +23,7 @@ namespace ctx { class PedometerQuerier : public Querier { public: - PedometerQuerier(ContextProvider *provider, Json option); + PedometerQuerier(ContextProvider *provider, CtxJson1 option); ~PedometerQuerier(); int queryRaw(int startTime, int endTime); diff --git a/src/sensor/pressure/Pressure.cpp b/src/sensor/pressure/Pressure.cpp index 76b60f4..c21cdd2 100644 --- a/src/sensor/pressure/Pressure.cpp +++ b/src/sensor/pressure/Pressure.cpp @@ -41,7 +41,7 @@ bool PressureProvider::isSupported() return util::getSystemInfoBool("tizen.org/feature/sensor.barometer"); } -Querier* PressureProvider::getQuerier(Json option) +Querier* PressureProvider::getQuerier(CtxJson1 option) { PressureQuerier *querier = new(std::nothrow) PressureQuerier(this, option); IF_FAIL_RETURN_TAG(querier, NULL, _E, "Memory allocation failed"); diff --git a/src/sensor/pressure/Pressure.h b/src/sensor/pressure/Pressure.h index 419cfba..4be6f6f 100644 --- a/src/sensor/pressure/Pressure.h +++ b/src/sensor/pressure/Pressure.h @@ -29,7 +29,7 @@ namespace ctx { bool isSupported(); protected: - Querier* getQuerier(Json option); + Querier* getQuerier(CtxJson1 option); }; } diff --git a/src/sensor/pressure/PressureQuerier.cpp b/src/sensor/pressure/PressureQuerier.cpp index 8d19638..1e7dd9f 100644 --- a/src/sensor/pressure/PressureQuerier.cpp +++ b/src/sensor/pressure/PressureQuerier.cpp @@ -37,7 +37,7 @@ using namespace ctx; -PressureQuerier::PressureQuerier(ContextProvider *provider, Json option) : +PressureQuerier::PressureQuerier(ContextProvider *provider, CtxJson1 option) : Querier(provider, option) { } diff --git a/src/sensor/pressure/PressureQuerier.h b/src/sensor/pressure/PressureQuerier.h index 1bd9aa6..2114de4 100644 --- a/src/sensor/pressure/PressureQuerier.h +++ b/src/sensor/pressure/PressureQuerier.h @@ -23,7 +23,7 @@ namespace ctx { class PressureQuerier : public Querier { public: - PressureQuerier(ContextProvider *provider, Json option); + PressureQuerier(ContextProvider *provider, CtxJson1 option); ~PressureQuerier(); int queryRaw(int startTime, int endTime); diff --git a/src/sensor/sleep/Sleep.cpp b/src/sensor/sleep/Sleep.cpp index 3ae40c9..688d587 100644 --- a/src/sensor/sleep/Sleep.cpp +++ b/src/sensor/sleep/Sleep.cpp @@ -46,7 +46,7 @@ bool SleepProvider::isSupported() return util::getSystemInfoBool("tizen.org/feature/sensor.sleep_monitor"); } -Querier* SleepProvider::getQuerier(Json option) +Querier* SleepProvider::getQuerier(CtxJson1 option) { SleepQuerier *querier = new(std::nothrow) SleepQuerier(this, option); IF_FAIL_RETURN_TAG(querier, NULL, _E, "Memory allocation failed"); diff --git a/src/sensor/sleep/Sleep.h b/src/sensor/sleep/Sleep.h index c93310e..7d69758 100644 --- a/src/sensor/sleep/Sleep.h +++ b/src/sensor/sleep/Sleep.h @@ -30,7 +30,7 @@ namespace ctx { bool isSupported(); protected: - Querier* getQuerier(Json option); + Querier* getQuerier(CtxJson1 option); }; } diff --git a/src/sensor/sleep/SleepQuerier.cpp b/src/sensor/sleep/SleepQuerier.cpp index 1a8f8dc..e841c53 100644 --- a/src/sensor/sleep/SleepQuerier.cpp +++ b/src/sensor/sleep/SleepQuerier.cpp @@ -26,7 +26,7 @@ using namespace ctx; -SleepQuerier::SleepQuerier(ContextProvider *provider, Json option) : +SleepQuerier::SleepQuerier(ContextProvider *provider, CtxJson1 option) : Querier(provider, option) { } diff --git a/src/sensor/sleep/SleepQuerier.h b/src/sensor/sleep/SleepQuerier.h index 7ba674f..aad94b7 100644 --- a/src/sensor/sleep/SleepQuerier.h +++ b/src/sensor/sleep/SleepQuerier.h @@ -23,7 +23,7 @@ namespace ctx { class SleepQuerier : public Querier { public: - SleepQuerier(ContextProvider *provider, Json option); + SleepQuerier(ContextProvider *provider, CtxJson1 option); ~SleepQuerier(); int queryRaw(int startTime, int endTime); diff --git a/src/shared/BasicProvider.cpp b/src/shared/BasicProvider.cpp index cae85ab..f736cd7 100644 --- a/src/shared/BasicProvider.cpp +++ b/src/shared/BasicProvider.cpp @@ -34,7 +34,7 @@ bool BasicProvider::isSupported() return true; } -int BasicProvider::subscribe(Json option, Json *requestResult) +int BasicProvider::subscribe(CtxJson1 option, CtxJson1 *requestResult) { IF_FAIL_RETURN(!__beingSubscribed, ERR_NONE); @@ -46,7 +46,7 @@ int BasicProvider::subscribe(Json option, Json *requestResult) return ret; } -int BasicProvider::unsubscribe(Json option) +int BasicProvider::unsubscribe(CtxJson1 option) { int ret = ERR_NONE; @@ -56,12 +56,12 @@ int BasicProvider::unsubscribe(Json option) return ret; } -int BasicProvider::read(Json option, Json *requestResult) +int BasicProvider::read(CtxJson1 option, CtxJson1 *requestResult) { return read(); } -int BasicProvider::write(Json data, Json *requestResult) +int BasicProvider::write(CtxJson1 data, CtxJson1 *requestResult) { return write(data); } @@ -81,7 +81,7 @@ int BasicProvider::read() return ERR_NOT_SUPPORTED; } -int BasicProvider::write(Json &data) +int BasicProvider::write(CtxJson1 &data) { return ERR_NOT_SUPPORTED; } diff --git a/src/shared/BasicProvider.h b/src/shared/BasicProvider.h index 7ce9f02..5cb5930 100644 --- a/src/shared/BasicProvider.h +++ b/src/shared/BasicProvider.h @@ -26,10 +26,10 @@ namespace ctx { parameter to reply to clients' requests immediately. */ class SO_EXPORT BasicProvider : public ContextProvider { public: - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); - int read(Json option, Json *requestResult); - int write(Json data, Json *requestResult); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); + int read(CtxJson1 option, CtxJson1 *requestResult); + int write(CtxJson1 data, CtxJson1 *requestResult); virtual bool isSupported(); @@ -42,7 +42,7 @@ namespace ctx { virtual int subscribe(); virtual int unsubscribe(); virtual int read(); - virtual int write(Json &data); + virtual int write(CtxJson1 &data); }; } diff --git a/src/shared/DbHandleBase.cpp b/src/shared/DbHandleBase.cpp index 0bf238c..c55a3c1 100644 --- a/src/shared/DbHandleBase.cpp +++ b/src/shared/DbHandleBase.cpp @@ -67,7 +67,7 @@ int StatsDbHandleBase::generateQid() return qid; } -bool StatsDbHandleBase::executeQuery(Json filter, const char* query) +bool StatsDbHandleBase::executeQuery(CtxJson1 filter, const char* query) { bool ret = __dbManager.execute(generateQid(), query, this); IF_FAIL_RETURN(ret, false); @@ -77,7 +77,7 @@ bool StatsDbHandleBase::executeQuery(Json filter, const char* query) return true; } -std::string StatsDbHandleBase::createWhereClause(Json filter) +std::string StatsDbHandleBase::createWhereClause(CtxJson1 filter) { std::stringstream whereClause; int week = 0; @@ -167,7 +167,7 @@ std::string StatsDbHandleBase::createWhereClause(Json filter) return whereClause.str(); } -std::string StatsDbHandleBase::createSqlPeakTime(Json filter, const char* tableName, std::string whereClause) +std::string StatsDbHandleBase::createSqlPeakTime(CtxJson1 filter, const char* tableName, std::string whereClause) { std::stringstream query; int limit = DEFAULT_LIMIT; @@ -186,7 +186,7 @@ std::string StatsDbHandleBase::createSqlPeakTime(Json filter, const char* tableN return query.str(); } -std::string StatsDbHandleBase::createSqlCommonSetting(Json filter, const char* tableName, std::string whereClause) +std::string StatsDbHandleBase::createSqlCommonSetting(CtxJson1 filter, const char* tableName, std::string whereClause) { std::stringstream query; @@ -222,28 +222,28 @@ void StatsDbHandleBase::onInserted(unsigned int queryId, int error, int64_t rowI delete this; } -void StatsDbHandleBase::__jsonVectorToArray(std::vector &vecJson, Json &jsonResult) +void StatsDbHandleBase::__jsonVectorToArray(std::vector &vecJson, CtxJson1 &jsonResult) { - std::vector::iterator vecJsonEnd = vecJson.end(); + std::vector::iterator vecJsonEnd = vecJson.end(); for(auto vecJsonPos = vecJson.begin(); vecJsonPos != vecJsonEnd; ++vecJsonPos) { - Json originJson = *vecJsonPos; + CtxJson1 originJson = *vecJsonPos; jsonResult.append(NULL, KEY_QUERY_RESULT, originJson); } } -void StatsDbHandleBase::onExecuted(unsigned int queryId, int error, std::vector& records) +void StatsDbHandleBase::onExecuted(unsigned int queryId, int error, std::vector& records) { if (isTriggerItem) { if (records.size() == 1) { replyTriggerItem(error, records[0]); } else { _E("Invalid query result"); - Json dummy; + CtxJson1 dummy; reqProvider->replyToRead(reqFilter, ERR_OPERATION_FAILED, dummy); } } else { - Json results = "{\"" KEY_QUERY_RESULT "\":[]}"; + CtxJson1 results = "{\"" KEY_QUERY_RESULT "\":[]}"; __jsonVectorToArray(records, results); reqProvider->replyToRead(reqFilter, error, results); } diff --git a/src/shared/DbHandleBase.h b/src/shared/DbHandleBase.h index 3404821..579e1eb 100644 --- a/src/shared/DbHandleBase.h +++ b/src/shared/DbHandleBase.h @@ -26,25 +26,25 @@ namespace ctx { protected: bool isTriggerItem; ContextProvider *reqProvider; - Json reqFilter; + CtxJson1 reqFilter; StatsDbHandleBase(ContextProvider *provider); ~StatsDbHandleBase(); - std::string createWhereClause(Json filter); - std::string createSqlPeakTime(Json filter, const char* tableName, std::string whereClause); - std::string createSqlCommonSetting(Json filter, const char* tableName, std::string whereClause); + std::string createWhereClause(CtxJson1 filter); + std::string createSqlPeakTime(CtxJson1 filter, const char* tableName, std::string whereClause); + std::string createSqlCommonSetting(CtxJson1 filter, const char* tableName, std::string whereClause); - bool executeQuery(Json filter, const char* query); - virtual void replyTriggerItem(int error, Json &jsonResult) = 0; + bool executeQuery(CtxJson1 filter, const char* query); + virtual void replyTriggerItem(int error, CtxJson1 &jsonResult) = 0; static int generateQid(); private: - void __jsonVectorToArray(std::vector &vecJson, Json &jsonResult); + void __jsonVectorToArray(std::vector &vecJson, CtxJson1 &jsonResult); void onTableCreated(unsigned int queryId, int error); void onInserted(unsigned int queryId, int error, int64_t rowId); - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); DatabaseManager __dbManager; }; diff --git a/src/social-stats/DbHandle.cpp b/src/social-stats/DbHandle.cpp index 7e1b6cc..e9e498d 100644 --- a/src/social-stats/DbHandle.cpp +++ b/src/social-stats/DbHandle.cpp @@ -31,7 +31,7 @@ SocialDbHandle::~SocialDbHandle() { } -int SocialDbHandle::read(Json filter) +int SocialDbHandle::read(CtxJson1 filter) { std::string query; const char *subject = reqProvider->getSubject(); @@ -52,7 +52,7 @@ int SocialDbHandle::read(Json filter) return ERR_NONE; } -std::string SocialDbHandle::createWhereClause(Json filter) +std::string SocialDbHandle::createWhereClause(CtxJson1 filter) { std::stringstream whereClause; int commType = -1; @@ -79,7 +79,7 @@ std::string SocialDbHandle::createWhereClause(Json filter) return whereClause.str(); } -std::string SocialDbHandle::createSqlFreqAddress(Json filter) +std::string SocialDbHandle::createSqlFreqAddress(CtxJson1 filter) { std::stringstream query; int limit = DEFAULT_LIMIT; @@ -100,9 +100,9 @@ std::string SocialDbHandle::createSqlFreqAddress(Json filter) return query.str(); } -std::string SocialDbHandle::createSqlFrequency(Json filter) +std::string SocialDbHandle::createSqlFrequency(CtxJson1 filter) { - Json filterCleaned; + CtxJson1 filterCleaned; std::string weekStr; std::string timeOfDay; std::string address; @@ -145,11 +145,11 @@ std::string SocialDbHandle::createSqlFrequency(Json filter) return query.str(); } -void SocialDbHandle::replyTriggerItem(int error, Json &jsonResult) +void SocialDbHandle::replyTriggerItem(int error, CtxJson1 &jsonResult) { IF_FAIL_VOID_TAG(STR_EQ(reqProvider->getSubject(), SOCIAL_SUBJ_FREQUENCY), _E, "Invalid subject"); - Json results; + CtxJson1 results; std::string valStr; int val; diff --git a/src/social-stats/DbHandle.h b/src/social-stats/DbHandle.h index 576c6a1..15629bb 100644 --- a/src/social-stats/DbHandle.h +++ b/src/social-stats/DbHandle.h @@ -18,7 +18,7 @@ #define _CONTEXT_STATS_SOCIAL_DB_HANDLE_H_ #include -#include +#include #include "../shared/DbHandleBase.h" namespace ctx { @@ -27,13 +27,13 @@ namespace ctx { SocialDbHandle(ContextProvider *provider); ~SocialDbHandle(); - int read(Json filter); + int read(CtxJson1 filter); protected: - std::string createWhereClause(Json filter); - std::string createSqlFreqAddress(Json filter); - std::string createSqlFrequency(Json filter); - void replyTriggerItem(int error, Json &jsonResult); + std::string createWhereClause(CtxJson1 filter); + std::string createSqlFreqAddress(CtxJson1 filter); + std::string createSqlFrequency(CtxJson1 filter); + void replyTriggerItem(int error, CtxJson1 &jsonResult); }; } diff --git a/src/social-stats/LogAggregator.cpp b/src/social-stats/LogAggregator.cpp index fc7576f..dffc67f 100644 --- a/src/social-stats/LogAggregator.cpp +++ b/src/social-stats/LogAggregator.cpp @@ -15,7 +15,7 @@ */ #include -#include +#include #include #include "SocialStatisticsTypes.h" #include "LogAggregator.h" @@ -46,7 +46,7 @@ void ctx::ContactLogAggregator::__aggregateContactLog() " FROM " SOCIAL_TABLE_CONTACT_LOG, this); } -void ctx::ContactLogAggregator::onExecuted(unsigned int queryId, int error, std::vector& records) +void ctx::ContactLogAggregator::onExecuted(unsigned int queryId, int error, std::vector& records) { IF_FAIL_VOID_TAG(!records.empty(), _E, "Invalid query result"); @@ -128,7 +128,7 @@ void ctx::ContactLogAggregator::__insertContactLogList(contacts_list_h list) contacts_list_get_current_record_p(list, &record); if (record == NULL) break; - ctx::Json data; + ctx::CtxJson1 data; char* address = NULL; int logType; diff --git a/src/social-stats/LogAggregator.h b/src/social-stats/LogAggregator.h index bd226f3..b9bc48e 100644 --- a/src/social-stats/LogAggregator.h +++ b/src/social-stats/LogAggregator.h @@ -40,7 +40,7 @@ namespace ctx { void onTableCreated(unsigned int queryId, int error) {} void onInserted(unsigned int queryId, int error, int64_t rowId) {} - void onExecuted(unsigned int queryId, int error, std::vector& records); + void onExecuted(unsigned int queryId, int error, std::vector& records); }; /* class ContactLogAggregator */ diff --git a/src/social-stats/SocialStatsProvider.cpp b/src/social-stats/SocialStatsProvider.cpp index 552473c..566a718 100644 --- a/src/social-stats/SocialStatsProvider.cpp +++ b/src/social-stats/SocialStatsProvider.cpp @@ -48,7 +48,7 @@ bool SocialStatsProvider::isSupported() return true; } -int SocialStatsProvider::read(Json option, Json* requestResult) +int SocialStatsProvider::read(CtxJson1 option, CtxJson1* requestResult) { SocialDbHandle *handle = new(std::nothrow) SocialDbHandle(this); IF_FAIL_RETURN_TAG(handle, ERR_OPERATION_FAILED, _E, "Memory allocation failed"); diff --git a/src/social-stats/SocialStatsProvider.h b/src/social-stats/SocialStatsProvider.h index 79893f2..1ce6345 100644 --- a/src/social-stats/SocialStatsProvider.h +++ b/src/social-stats/SocialStatsProvider.h @@ -24,7 +24,7 @@ namespace ctx { class SocialStatsProvider : public ContextProvider { public: - int read(Json option, Json* requestResult); + int read(CtxJson1 option, CtxJson1* requestResult); bool isSupported(); void getPrivilege(std::vector &privilege); diff --git a/src/system/Battery.cpp b/src/system/Battery.cpp index 9ffbf9b..e82ff3d 100644 --- a/src/system/Battery.cpp +++ b/src/system/Battery.cpp @@ -47,7 +47,7 @@ void BatteryStateProvider::__handleUpdate(device_callback_e deviceType, void* va const char* levelString = __transToString(level); IF_FAIL_VOID(levelString); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_LEVEL, levelString); bool chargingState = false; @@ -109,7 +109,7 @@ int BatteryStateProvider::unsubscribe() int BatteryStateProvider::read() { device_battery_level_e level; - Json dataRead; + CtxJson1 dataRead; int ret = device_battery_get_level_status(&level); IF_FAIL_RETURN(ret == DEVICE_ERROR_NONE, ERR_OPERATION_FAILED); diff --git a/src/system/Charger.cpp b/src/system/Charger.cpp index 1d65275..12b578a 100644 --- a/src/system/Charger.cpp +++ b/src/system/Charger.cpp @@ -39,7 +39,7 @@ void ChargerStateProvider::handleUpdate() int ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_CHARGER_CONNECTED, &chargerStatus); IF_FAIL_VOID_TAG(ret == RUNTIME_INFO_ERROR_NONE, _E, "Getting runtime info failed"); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_IS_CONNECTED, chargerStatus ? VAL_TRUE : VAL_FALSE); publish(NULL, ERR_NONE, dataRead); @@ -48,7 +48,7 @@ void ChargerStateProvider::handleUpdate() int ChargerStateProvider::read() { bool chargerStatus = false; - Json dataRead; + CtxJson1 dataRead; int ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_CHARGER_CONNECTED, &chargerStatus); IF_FAIL_RETURN_TAG(ret == RUNTIME_INFO_ERROR_NONE, ERR_OPERATION_FAILED, _E, "Getting runtime info failed"); diff --git a/src/system/Gps.cpp b/src/system/Gps.cpp index 284600e..9526cfd 100644 --- a/src/system/Gps.cpp +++ b/src/system/Gps.cpp @@ -57,7 +57,7 @@ void GpsStateProvider::handleUpdate() int ret = runtime_info_get_value_int(RUNTIME_INFO_KEY_GPS_STATUS, &gpsStatus); IF_FAIL_VOID_TAG(ret == RUNTIME_INFO_ERROR_NONE, _E, "Getting runtime info failed"); - Json dataRead; + CtxJson1 dataRead; const char* stateStr = __getStatusString(gpsStatus); IF_FAIL_VOID(stateStr); @@ -70,7 +70,7 @@ void GpsStateProvider::handleUpdate() int GpsStateProvider::read() { int gpsStatus; - Json dataRead; + CtxJson1 dataRead; int ret = runtime_info_get_value_int(RUNTIME_INFO_KEY_GPS_STATUS, &gpsStatus); IF_FAIL_RETURN_TAG(ret == RUNTIME_INFO_ERROR_NONE, ERR_OPERATION_FAILED, _E, "Getting runtime info failed"); diff --git a/src/system/Psmode.cpp b/src/system/Psmode.cpp index 2c74948..d7de699 100644 --- a/src/system/Psmode.cpp +++ b/src/system/Psmode.cpp @@ -41,7 +41,7 @@ void PowerSaveModeProvider::__updateCb(keynode_t *node, void* userData) void PowerSaveModeProvider::__handleUpdate(keynode_t *node) { int status; - Json dataRead; + CtxJson1 dataRead; status = vconf_keynode_get_int(node); IF_FAIL_VOID_TAG(status >= 0, _E, "Getting state failed"); @@ -71,7 +71,7 @@ int PowerSaveModeProvider::read() int ret = vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &mode); IF_FAIL_RETURN(ret == VCONF_OK, ERR_OPERATION_FAILED); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_IS_ENABLED, mode == 0 ? VAL_FALSE : VAL_TRUE); replyToRead(NULL, ERR_NONE, dataRead); diff --git a/src/system/Usb.cpp b/src/system/Usb.cpp index c017036..485b592 100644 --- a/src/system/Usb.cpp +++ b/src/system/Usb.cpp @@ -40,7 +40,7 @@ void UsbStateProvider::handleUpdate() int ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_USB_CONNECTED, &status); IF_FAIL_VOID_TAG(ret == RUNTIME_INFO_ERROR_NONE, _E, "Getting runtime info failed"); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_IS_CONNECTED, status ? VAL_TRUE : VAL_FALSE); publish(NULL, ERR_NONE, dataRead); @@ -49,7 +49,7 @@ void UsbStateProvider::handleUpdate() int UsbStateProvider::read() { bool status = false; - Json dataRead; + CtxJson1 dataRead; int ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_USB_CONNECTED, &status); IF_FAIL_RETURN_TAG(ret == RUNTIME_INFO_ERROR_NONE, ERR_OPERATION_FAILED, _E, "Getting runtime info failed"); diff --git a/src/time/Alarm.cpp b/src/time/Alarm.cpp index 0d25628..0f71b85 100644 --- a/src/time/Alarm.cpp +++ b/src/time/Alarm.cpp @@ -43,7 +43,7 @@ bool AlarmProvider::isSupported() return true; } -int AlarmProvider::subscribe(Json option, Json *requestResult) +int AlarmProvider::subscribe(CtxJson1 option, CtxJson1 *requestResult) { int dow = __getArrangedDayOfWeek(option); @@ -52,7 +52,7 @@ int AlarmProvider::subscribe(Json option, Json *requestResult) __add(time, dow); } - Json* elem = new(std::nothrow) Json(option); + CtxJson1* elem = new(std::nothrow) CtxJson1(option); if (elem) { __optionSet.insert(elem); } else { @@ -64,7 +64,7 @@ int AlarmProvider::subscribe(Json option, Json *requestResult) return ERR_NONE; } -int AlarmProvider::unsubscribe(Json option) +int AlarmProvider::unsubscribe(CtxJson1 option) { int dow = __getArrangedDayOfWeek(option); @@ -82,7 +82,7 @@ int AlarmProvider::unsubscribe(Json option) return ERR_NONE; } -int AlarmProvider::__getArrangedDayOfWeek(Json& option) +int AlarmProvider::__getArrangedDayOfWeek(CtxJson1& option) { int dow = 0; @@ -218,21 +218,21 @@ void AlarmProvider::__handleUpdate(int hour, int min, int dayOfWeek) { _I("Time: %02d:%02d, Day of Week: %#x", hour, min, dayOfWeek); - Json dataRead; + CtxJson1 dataRead; int resultTime = hour * 60 + min; std::string resultDay = TimerManager::dowToStr(dayOfWeek); dataRead.set(NULL, KEY_TIME_OF_DAY, resultTime); dataRead.set(NULL, KEY_DAY_OF_WEEK, resultDay); for (auto it = __optionSet.begin(); it != __optionSet.end(); ++it) { - Json option = (**it); + CtxJson1 option = (**it); if (__isMatched(option, resultTime, resultDay)) { publish(option, ERR_NONE, dataRead); } } } -bool AlarmProvider::__isMatched(Json& option, int time, std::string day) +bool AlarmProvider::__isMatched(CtxJson1& option, int time, std::string day) { bool ret = false; int optionTime; @@ -254,7 +254,7 @@ bool AlarmProvider::__isMatched(Json& option, int time, std::string day) return false; } -AlarmProvider::OptionSet::iterator AlarmProvider::__findOption(Json& option) +AlarmProvider::OptionSet::iterator AlarmProvider::__findOption(CtxJson1& option) { for (auto it = __optionSet.begin(); it != __optionSet.end(); ++it) { if (option == (**it)) diff --git a/src/time/Alarm.h b/src/time/Alarm.h index c0eb946..96a0400 100644 --- a/src/time/Alarm.h +++ b/src/time/Alarm.h @@ -30,8 +30,8 @@ namespace ctx { AlarmProvider(); ~AlarmProvider(); - int subscribe(Json option, Json *requestResult); - int unsubscribe(Json option); + int subscribe(CtxJson1 option, CtxJson1 *requestResult); + int unsubscribe(CtxJson1 option); bool isSupported(); void getPrivilege(std::vector &privilege); @@ -53,7 +53,7 @@ namespace ctx { typedef std::map RefCountMap; typedef std::map TimerStateMap; - typedef std::set OptionSet; + typedef std::set OptionSet; RefCountMap __refCountMap; TimerStateMap __timerStateMap; @@ -66,11 +66,11 @@ namespace ctx { void __clear(); void __handleUpdate(int hour, int min, int dayOfWeek); - int __getArrangedDayOfWeek(Json& option); + int __getArrangedDayOfWeek(CtxJson1& option); int __mergeDayOfWeek(int *refCnt); - bool __isMatched(Json& option, int time, std::string day); - OptionSet::iterator __findOption(Json& option); + bool __isMatched(CtxJson1& option, int time, std::string day); + OptionSet::iterator __findOption(CtxJson1& option); }; } diff --git a/src/time/Time.cpp b/src/time/Time.cpp index 3490be5..e5a50db 100644 --- a/src/time/Time.cpp +++ b/src/time/Time.cpp @@ -56,7 +56,7 @@ int TimeProvider::read() int minuteOfDay = timeInfo.tm_hour * 60 + timeInfo.tm_min; std::string dayOfWeek = TimerManager::dowToStr(0x01 << timeInfo.tm_wday); - Json dataRead; + CtxJson1 dataRead; dataRead.set(NULL, KEY_DAY_OF_MONTH, dayOfMonth); dataRead.set(NULL, KEY_DAY_OF_WEEK, dayOfWeek); dataRead.set(NULL, KEY_TIME_OF_DAY, minuteOfDay); diff --git a/src/wifi/Wifi.cpp b/src/wifi/Wifi.cpp index ad5cc87..d1b048b 100644 --- a/src/wifi/Wifi.cpp +++ b/src/wifi/Wifi.cpp @@ -99,7 +99,7 @@ void WifiStateProvider::__clearBssid() _D("No WiFi connection"); } -bool WifiStateProvider::__getResponsePacket(Json* data) +bool WifiStateProvider::__getResponsePacket(CtxJson1* data) { switch (__lastState) { case DISABLED: @@ -126,7 +126,7 @@ int WifiStateProvider::read() { IF_FAIL_RETURN(__getCurrentState(), ERR_OPERATION_FAILED); - Json dataRead; + CtxJson1 dataRead; if (__getResponsePacket(&dataRead)) { replyToRead(NULL, ERR_NONE, dataRead); return ERR_NONE; @@ -193,7 +193,7 @@ void WifiStateProvider::__handleUpdate() __clearBssid(); } - Json data; + CtxJson1 data; if (__beingSubscribed && __getResponsePacket(&data)) publish(NULL, ERR_NONE, data); } diff --git a/src/wifi/Wifi.h b/src/wifi/Wifi.h index 360facb..b2c7fdf 100644 --- a/src/wifi/Wifi.h +++ b/src/wifi/Wifi.h @@ -53,7 +53,7 @@ namespace ctx { bool __getCurrentState(); bool __getBssid(); void __clearBssid(); - bool __getResponsePacket(Json* data); + bool __getResponsePacket(CtxJson1* data); void __handleUpdate(); bool __startMonitor(); void __stopMonitor();