You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/11/28 06:24:48 UTC
[1/9] kylin git commit: KYLIN-1793 Fix exit code issue in beeline
mode [Forced Update!]
Repository: kylin
Updated Branches:
refs/heads/KYLIN-1875 7fd1fd924 -> 07322fafd (forced update)
KYLIN-1793 Fix exit code issue in beeline mode
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/99f1dd9d
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/99f1dd9d
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/99f1dd9d
Branch: refs/heads/KYLIN-1875
Commit: 99f1dd9d2460566748db2167e69a6a8a7689271d
Parents: 5edffa5
Author: lidongsjtu <li...@apache.org>
Authored: Mon Nov 28 08:35:05 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Mon Nov 28 08:46:35 2016 +0800
----------------------------------------------------------------------
.../java/org/apache/kylin/job/DeployUtil.java | 2 +-
.../kylin/common/util/HiveCmdBuilder.java | 114 +++++++++++++++++++
.../kylin/common/util/HiveCmdBuilderTest.java | 80 +++++++++++++
.../source/hive/CreateFlatHiveTableStep.java | 1 +
.../kylin/source/hive/HiveCmdBuilder.java | 113 ------------------
.../apache/kylin/source/hive/HiveMRInput.java | 1 +
.../kylin/source/hive/HiveCmdBuilderTest.java | 83 --------------
.../storage/hbase/steps/DeprecatedGCStep.java | 2 +-
.../storage/hbase/util/HiveCmdBuilder.java | 110 ------------------
.../storage/hbase/util/StorageCleanupJob.java | 3 +-
.../apache/kylin/tool/StorageCleanupJob.java | 2 +-
11 files changed, 201 insertions(+), 310 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
index 79a3b3b..23b3670 100644
--- a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -46,7 +46,7 @@ import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TableRef;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.source.hive.HiveClientFactory;
-import org.apache.kylin.source.hive.HiveCmdBuilder;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.source.hive.IHiveClient;
import org.apache.kylin.source.kafka.TimedJsonStreamParser;
import org.apache.maven.model.Model;
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java b/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java
new file mode 100644
index 0000000..5942ba9
--- /dev/null
+++ b/core-common/src/main/java/org/apache/kylin/common/util/HiveCmdBuilder.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.kylin.common.util;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+
+public class HiveCmdBuilder {
+ private static final Logger logger = LoggerFactory.getLogger(HiveCmdBuilder.class);
+
+ public enum HiveClientMode {
+ CLI, BEELINE
+ }
+
+ private HiveClientMode clientMode;
+ private KylinConfig kylinConfig;
+ final private ArrayList<String> statements = Lists.newArrayList();
+
+ public HiveCmdBuilder() {
+ kylinConfig = KylinConfig.getInstanceFromEnv();
+ clientMode = HiveClientMode.valueOf(kylinConfig.getHiveClientMode().toUpperCase());
+ }
+
+ public String build() {
+ StringBuffer buf = new StringBuffer();
+
+ switch (clientMode) {
+ case CLI:
+ buf.append("hive -e \"");
+ for (String statement : statements) {
+ buf.append(statement).append("\n");
+ }
+ buf.append("\"");
+ break;
+ case BEELINE:
+ BufferedWriter bw = null;
+ try {
+ File tmpHql = File.createTempFile("beeline_", ".hql");
+ bw = new BufferedWriter(new FileWriter(tmpHql));
+ for (String statement : statements) {
+ bw.write(statement);
+ bw.newLine();
+ }
+ buf.append("beeline ");
+ buf.append(kylinConfig.getHiveBeelineParams());
+ buf.append(" -f ");
+ buf.append(tmpHql.getAbsolutePath());
+ buf.append(";ret_code=$?;rm -f ");
+ buf.append(tmpHql.getAbsolutePath());
+ buf.append(";exit $ret_code");
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("The SQL to execute in beeline: \n" + FileUtils.readFileToString(tmpHql, Charset.defaultCharset()));
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ IOUtils.closeQuietly(bw);
+ }
+ break;
+ default:
+ throw new RuntimeException("Hive client cannot be recognized: " + clientMode);
+ }
+
+ return buf.toString();
+ }
+
+ public void reset() {
+ statements.clear();
+ }
+
+ public void addStatement(String statement) {
+ statements.add(statement);
+ }
+
+ public void addStatements(String[] stats) {
+ for (String s : stats) {
+ statements.add(s);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return build();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/core-common/src/test/java/org/apache/kylin/common/util/HiveCmdBuilderTest.java
----------------------------------------------------------------------
diff --git a/core-common/src/test/java/org/apache/kylin/common/util/HiveCmdBuilderTest.java b/core-common/src/test/java/org/apache/kylin/common/util/HiveCmdBuilderTest.java
new file mode 100644
index 0000000..56a64c8
--- /dev/null
+++ b/core-common/src/test/java/org/apache/kylin/common/util/HiveCmdBuilderTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.kylin.common.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class HiveCmdBuilderTest {
+
+ @Before
+ public void setup() {
+ System.setProperty("KYLIN_CONF", LocalFileMetadataTestCase.LOCALMETA_TEST_DATA);
+ }
+
+ @After
+ public void after() throws Exception {
+ System.clearProperty("kylin.source.hive.client");
+ System.clearProperty("kylin.source.hive.beeline-params");
+ }
+
+ @Test
+ public void testHiveCLI() {
+ System.setProperty("kylin.source.hive.client", "cli");
+
+ HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
+ hiveCmdBuilder.addStatement("USE default;");
+ hiveCmdBuilder.addStatement("DROP TABLE test;");
+ hiveCmdBuilder.addStatement("SHOW\n TABLES;");
+
+ assertEquals("hive -e \"USE default;\nDROP TABLE test;\nSHOW\n TABLES;\n\"", hiveCmdBuilder.build());
+ }
+
+ @Test
+ public void testBeeline() throws IOException {
+ String lineSeparator = java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
+ System.setProperty("kylin.source.hive.client", "beeline");
+ System.setProperty("kylin.source.hive.beeline-params", "-u jdbc_url");
+
+ HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
+ hiveCmdBuilder.addStatement("USE default;");
+ hiveCmdBuilder.addStatement("DROP TABLE test;");
+ hiveCmdBuilder.addStatement("SHOW\n TABLES;");
+
+ String cmd = hiveCmdBuilder.build();
+ assertTrue(cmd.startsWith("beeline -u jdbc_url -f"));
+
+ String hqlFile = cmd.substring(cmd.lastIndexOf("-f ") + 3).trim();
+ hqlFile = hqlFile.substring(0, hqlFile.length() - ";exit $ret_code".length());
+
+ String hqlStatement = FileUtils.readFileToString(new File(hqlFile), Charset.defaultCharset());
+ assertEquals("USE default;" + lineSeparator + "DROP TABLE test;" + lineSeparator + "SHOW\n TABLES;" + lineSeparator, hqlStatement);
+
+ FileUtils.forceDelete(new File(hqlFile));
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/source-hive/src/main/java/org/apache/kylin/source/hive/CreateFlatHiveTableStep.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/CreateFlatHiveTableStep.java b/source-hive/src/main/java/org/apache/kylin/source/hive/CreateFlatHiveTableStep.java
index 025fd94..f0e5703 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/CreateFlatHiveTableStep.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/CreateFlatHiveTableStep.java
@@ -21,6 +21,7 @@ import java.io.IOException;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.BufferedLogger;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/source-hive/src/main/java/org/apache/kylin/source/hive/HiveCmdBuilder.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveCmdBuilder.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveCmdBuilder.java
deleted file mode 100644
index 4c8aeea..0000000
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveCmdBuilder.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.kylin.source.hive;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.kylin.common.KylinConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-public class HiveCmdBuilder {
- private static final Logger logger = LoggerFactory.getLogger(HiveCmdBuilder.class);
-
- public enum HiveClientMode {
- CLI, BEELINE
- }
-
- private HiveClientMode clientMode;
- private KylinConfig kylinConfig;
- final private ArrayList<String> statements = Lists.newArrayList();
-
- public HiveCmdBuilder() {
- kylinConfig = KylinConfig.getInstanceFromEnv();
- clientMode = HiveClientMode.valueOf(kylinConfig.getHiveClientMode().toUpperCase());
- }
-
- public String build() {
- StringBuffer buf = new StringBuffer();
-
- switch (clientMode) {
- case CLI:
- buf.append("hive -e \"");
- for (String statement : statements) {
- buf.append(statement).append("\n");
- }
- buf.append("\"");
- break;
- case BEELINE:
- BufferedWriter bw = null;
- try {
- File tmpHql = File.createTempFile("beeline_", ".hql");
- bw = new BufferedWriter(new FileWriter(tmpHql));
- for (String statement : statements) {
- bw.write(statement);
- bw.newLine();
- }
- buf.append("beeline ");
- buf.append(kylinConfig.getHiveBeelineParams());
- buf.append(" -f ");
- buf.append(tmpHql.getAbsolutePath());
- buf.append(";rm -f ");
- buf.append(tmpHql.getAbsolutePath());
-
- if (logger.isDebugEnabled()) {
- logger.debug("The SQL to execute in beeline: \n" + FileUtils.readFileToString(tmpHql, Charset.defaultCharset()));
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- IOUtils.closeQuietly(bw);
- }
- break;
- default:
- throw new RuntimeException("Hive client cannot be recognized: " + clientMode);
- }
-
- return buf.toString();
- }
-
- public void reset() {
- statements.clear();
- }
-
- public void addStatement(String statement) {
- statements.add(statement);
- }
-
- public void addStatements(String[] stats) {
- for (String s : stats) {
- statements.add(s);
- }
- }
-
- @Override
- public String toString() {
- return build();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
index 6eb1a28..aa603d7 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java
@@ -30,6 +30,7 @@ import org.apache.hive.hcatalog.data.HCatRecord;
import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.BufferedLogger;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
----------------------------------------------------------------------
diff --git a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java b/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
deleted file mode 100644
index 0eb02b4..0000000
--- a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveCmdBuilderTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.kylin.source.hive;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class HiveCmdBuilderTest {
-
- @Before
- public void setup() {
- System.setProperty("KYLIN_CONF", LocalFileMetadataTestCase.LOCALMETA_TEST_DATA);
- }
-
- @After
- public void after() throws Exception {
- System.clearProperty("kylin.source.hive.client");
- System.clearProperty("kylin.source.hive.beeline-params");
- }
-
- @Test
- public void testHiveCLI() {
- System.setProperty("kylin.source.hive.client", "cli");
-
- HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
- hiveCmdBuilder.addStatement("USE default;");
- hiveCmdBuilder.addStatement("DROP TABLE test;");
- hiveCmdBuilder.addStatement("SHOW\n TABLES;");
-
- assertEquals("hive -e \"USE default;\nDROP TABLE test;\nSHOW\n TABLES;\n\"", hiveCmdBuilder.build());
- }
-
- @Test
- public void testBeeline() throws IOException {
- String lineSeparator = java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
- System.setProperty("kylin.source.hive.client", "beeline");
- System.setProperty("kylin.source.hive.beeline-params", "-u jdbc_url");
-
- HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder();
- hiveCmdBuilder.addStatement("USE default;");
- hiveCmdBuilder.addStatement("DROP TABLE test;");
- hiveCmdBuilder.addStatement("SHOW\n TABLES;");
-
- String cmd = hiveCmdBuilder.build();
- assertTrue(cmd.startsWith("beeline -u jdbc_url -f"));
-
- String hqlFile = cmd.substring(cmd.lastIndexOf("-f ") + 3).trim();
- if (hqlFile.endsWith(";")) {
- hqlFile = hqlFile.substring(0, hqlFile.length() - 1);
- }
-
- String hqlStatement = FileUtils.readFileToString(new File(hqlFile), Charset.defaultCharset());
- assertEquals("USE default;" + lineSeparator + "DROP TABLE test;" + lineSeparator + "SHOW\n TABLES;" + lineSeparator, hqlStatement);
-
- FileUtils.forceDelete(new File(hqlFile));
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
index 21f1c00..46a828e 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.engine.mr.HadoopUtil;
import org.apache.kylin.job.exception.ExecuteException;
import org.apache.kylin.job.execution.AbstractExecutable;
@@ -39,7 +40,6 @@ import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecuteResult;
import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.apache.kylin.storage.hbase.HBaseConnection;
-import org.apache.kylin.storage.hbase.util.HiveCmdBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HiveCmdBuilder.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HiveCmdBuilder.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HiveCmdBuilder.java
deleted file mode 100644
index 9252254..0000000
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HiveCmdBuilder.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.kylin.storage.hbase.util;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.kylin.common.KylinConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-/**
- * Created by dongli on 2/29/16.
- */
-@Deprecated
-public class HiveCmdBuilder {
- private static final Logger logger = LoggerFactory.getLogger(HiveCmdBuilder.class);
-
- public enum HiveClientMode {
- CLI, BEELINE
- }
-
- private HiveClientMode clientMode;
- private KylinConfig kylinConfig;
- final private ArrayList<String> statements = Lists.newArrayList();
-
- public HiveCmdBuilder() {
- kylinConfig = KylinConfig.getInstanceFromEnv();
- clientMode = HiveClientMode.valueOf(kylinConfig.getHiveClientMode().toUpperCase());
- }
-
- public String build() {
- StringBuffer buf = new StringBuffer();
-
- switch (clientMode) {
- case CLI:
- buf.append("hive -e \"");
- for (String statement : statements) {
- buf.append(statement).append("\n");
- }
- buf.append("\"");
- break;
- case BEELINE:
- BufferedWriter bw = null;
- try {
- File tmpHql = File.createTempFile("beeline_", ".hql");
- StringBuffer hqlBuf = new StringBuffer();
- bw = new BufferedWriter(new FileWriter(tmpHql));
- for (String statement : statements) {
- bw.write(statement);
- bw.newLine();
-
- hqlBuf.append(statement).append("\n");
- }
- buf.append("beeline ");
- buf.append(kylinConfig.getHiveBeelineParams());
- buf.append(" -f ");
- buf.append(tmpHql.getAbsolutePath());
- buf.append(";rm -f ");
- buf.append(tmpHql.getAbsolutePath());
-
- logger.info("The statements to execute in beeline: \n" + hqlBuf);
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- IOUtils.closeQuietly(bw);
- }
- break;
- default:
- throw new RuntimeException("Hive client cannot be recognized: " + clientMode);
- }
-
- return buf.toString();
- }
-
- public void reset() {
- statements.clear();
- }
-
- public void addStatement(String statement) {
- statements.add(statement);
- }
-
- @Override
- public String toString() {
- return build();
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
index 08471a3..90080b6 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
@@ -44,6 +44,7 @@ import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.AbstractApplication;
import org.apache.kylin.common.util.CliCommandExecutor;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.common.util.OptionsHelper;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.cube.CubeInstance;
@@ -83,7 +84,7 @@ public class StorageCleanupJob extends AbstractApplication {
String host = desc.getValue(IRealizationConstants.HTableTag);
if (KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix().equalsIgnoreCase(host)) {
//only take care htables that belongs to self, and created more than 2 days
- allTablesNeedToBeDropped.add(desc.getTableName().getNameAsString());
+ allTablesNeedToBeDropped.add(desc.getTableName().getNameAsString());
}
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/99f1dd9d/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
index b51a850..b4accac 100644
--- a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
+++ b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
@@ -57,7 +57,7 @@ import org.apache.kylin.job.execution.ExecutableManager;
import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.apache.kylin.source.hive.HiveClientFactory;
-import org.apache.kylin.source.hive.HiveCmdBuilder;
+import org.apache.kylin.common.util.HiveCmdBuilder;
import org.apache.kylin.source.hive.IHiveClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
[7/9] kylin git commit: KYLIN-1875 A good snowflake sample data,
and rename 'kylin_metadata' to 'kylin_default_instance'
Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
----------------------------------------------------------------------
diff --git a/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv b/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
index d8158ec..7349b37 100644
--- a/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
+++ b/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
@@ -1,10000 +1,10000 @@
-0,2012-12-14,Others,88750,0,11,36.2828,0,10000349,US,JP,ANALYST,Beijing
-1,2012-08-28,Others,175750,0,13,23.8563,0,10000927,JP,JP,ANALYST,Beijing
-2,2012-02-16,ABIN,148324,15,13,88.3418,0,10000005,DE,FR,ADMIN,Shanghai
-3,2013-10-19,FP-non GTC,37831,0,13,47.3015,0,10000209,UK,UK,ANALYST,Beijing
-4,2012-10-22,Others,140746,100,11,83.454,0,10000154,JP,CN,ADMIN,Shanghai
-5,2013-01-25,FP-GTC,16509,0,-99,22.9896,0,10000372,DE,UK,ADMIN,Shanghai
-6,2013-04-04,Others,963,0,13,88.5907,0,10000648,US,JP,MODELER,Hongkong
-7,2012-04-11,Others,15687,0,15,88.194,0,10000866,US,UK,ADMIN,Shanghai
-8,2013-01-19,ABIN,60606,3,13,77.9727,0,10000936,FR,CN,MODELER,Hongkong
-9,2012-04-30,FP-non GTC,106246,0,14,52.295,0,10000047,CN,FR,MODELER,Hongkong
-10,2013-02-03,Auction,45333,0,16,56.3584,0,10000470,UK,JP,MODELER,Hongkong
-11,2012-09-02,FP-GTC,25147,0,-99,15.3553,0,10000203,US,UK,ANALYST,Beijing
-12,2013-07-30,Others,24760,0,16,25.077,0,10000382,CN,JP,ADMIN,Shanghai
-13,2012-04-17,Auction,31519,0,16,72.7384,0,10000069,CN,JP,ADMIN,Shanghai
-14,2013-04-30,FP-GTC,51582,0,15,75.82,0,10000085,CN,DE,ANALYST,Beijing
-15,2013-03-23,FP-GTC,16509,0,15,8.6653,0,10000559,US,FR,MODELER,Hongkong
-16,2013-04-01,ABIN,175750,3,16,64.2802,0,10000507,JP,CN,MODELER,Hongkong
-17,2013-07-12,ABIN,50677,0,-99,24.5987,0,10000938,UK,FR,ADMIN,Shanghai
-18,2012-04-23,FP-GTC,45333,0,5,72.6553,0,10000863,CN,CN,MODELER,Hongkong
-19,2012-12-19,ABIN,3838,0,12,87.4142,0,10000612,DE,JP,ADMIN,Shanghai
-20,2012-08-15,FP-GTC,62179,0,16,67.4238,0,10000839,JP,US,MODELER,Hongkong
-21,2013-08-22,Auction,1357,0,5,18.36,0,10000303,CN,JP,ANALYST,Beijing
-22,2013-08-23,ABIN,31519,0,5,67.6344,0,10000877,FR,JP,ANALYST,Beijing
-23,2013-09-12,FP-GTC,223,0,14,71.7898,0,10000848,US,CN,MODELER,Hongkong
-24,2012-03-14,FP-GTC,132939,0,15,26.1496,0,10000815,JP,DE,MODELER,Hongkong
-25,2013-07-13,Others,67703,3,16,83.9661,0,10000858,CN,CN,MODELER,Hongkong
-26,2013-12-15,FP-non GTC,100847,0,5,34.3451,0,10000387,CN,CN,ADMIN,Shanghai
-27,2012-08-30,Auction,62179,0,11,21.0496,0,10000393,JP,FR,ANALYST,Beijing
-28,2013-01-10,FP-GTC,48027,0,13,23.4142,0,10000757,FR,FR,MODELER,Hongkong
-29,2013-01-25,ABIN,145970,0,5,26.7842,0,10000402,DE,CN,ANALYST,Beijing
-30,2012-07-05,Auction,48027,0,-99,46.732,0,10000972,DE,UK,MODELER,Hongkong
-31,2012-11-07,FP-GTC,20213,0,-99,19.727,0,10000873,UK,CN,ANALYST,Beijing
-32,2013-06-20,ABIN,100847,0,5,76.2783,0,10000409,CN,DE,ADMIN,Shanghai
-33,2012-10-08,ABIN,26262,0,5,48.7447,0,10000029,CN,FR,ADMIN,Shanghai
-34,2013-04-30,ABIN,87118,0,15,63.2187,0,10000529,FR,DE,ANALYST,Beijing
-35,2013-04-24,FP-non GTC,20213,0,16,39.5057,0,10000329,JP,FR,ANALYST,Beijing
-36,2012-05-13,Others,164261,0,13,84.1246,0,10000688,CN,GB,ADMIN,Shanghai
-37,2013-08-02,ABIN,31519,0,5,37.1504,0,10000905,FR,DE,MODELER,Hongkong
-38,2012-04-03,Auction,164261,0,11,92.0974,0,10000341,CN,UK,ADMIN,Shanghai
-39,2012-09-02,FP-GTC,31519,0,14,87.7829,0,10000460,DE,UK,ANALYST,Beijing
-40,2013-10-05,ABIN,13987,0,16,74.0719,0,10000381,CN,UK,MODELER,Hongkong
-41,2012-01-13,FP-GTC,48027,0,15,71.2637,0,10000915,UK,CN,ADMIN,Shanghai
-42,2013-03-01,Others,13836,0,14,16.7288,0,10000953,CN,UK,ADMIN,Shanghai
-43,2012-09-12,FP-non GTC,16509,0,5,12.2933,0,10000277,FR,CN,MODELER,Hongkong
-44,2012-02-07,Auction,45333,0,5,64.977,0,10000040,FR,JP,MODELER,Hongkong
-45,2013-12-14,FP-non GTC,158798,0,16,72.4413,0,10000500,DE,CN,MODELER,Hongkong
-46,2013-10-13,Auction,31519,0,5,79.3053,0,10000816,CN,JP,MODELER,Hongkong
-47,2012-06-11,ABIN,4943,0,5,11.6942,0,10000696,US,UK,ANALYST,Beijing
-48,2012-10-18,ABIN,80053,0,-99,54.0933,0,10000604,FR,JP,MODELER,Hongkong
-49,2012-11-03,Auction,20886,0,5,9.8258,0,10000764,US,CN,MODELER,Hongkong
-50,2012-01-15,Auction,44079,0,14,13.0371,0,10000343,CN,US,MODELER,Hongkong
-51,2012-07-03,FP-GTC,159184,0,-99,92.5314,0,10000724,CN,GB,ADMIN,Shanghai
-52,2012-02-16,FP-GTC,314,0,13,49.1825,0,10000334,JP,CN,ADMIN,Shanghai
-53,2012-06-17,FP-non GTC,31387,3,12,0.6677,0,10000603,JP,JP,ANALYST,Beijing
-54,2012-07-15,FP-non GTC,32876,0,-99,50.9634,0,10000248,CN,UK,ANALYST,Beijing
-55,2012-07-24,FP-GTC,150265,15,16,57.5645,0,10000653,CN,CN,ADMIN,Shanghai
-56,2012-10-06,Auction,145970,0,5,44.3091,0,10000082,JP,DE,ADMIN,Shanghai
-57,2013-06-14,ABIN,80053,0,5,20.2388,0,10000632,JP,UK,MODELER,Hongkong
-58,2013-10-10,FP-non GTC,15868,0,11,28.629,0,10000523,US,FR,MODELER,Hongkong
-59,2012-09-30,ABIN,31673,0,12,75.8658,0,10000719,CN,FR,ADMIN,Shanghai
-60,2012-04-02,FP-GTC,63861,0,5,25.8748,0,10000311,JP,FR,ANALYST,Beijing
-61,2012-03-16,Others,314,0,-99,9.2733,0,10000409,US,FR,MODELER,Hongkong
-62,2012-09-30,FP-non GTC,60340,0,14,74.661,0,10000790,FR,DE,MODELER,Hongkong
-63,2012-03-20,Others,87118,0,5,79.3781,0,10000384,CN,GB,MODELER,Hongkong
-64,2012-09-12,FP-GTC,1120,3,5,61.4408,0,10000645,US,JP,ANALYST,Beijing
-65,2013-12-10,FP-non GTC,20886,0,11,14.814,0,10000943,DE,CN,ANALYST,Beijing
-66,2012-12-05,FP-GTC,106246,0,12,24.938,0,10000858,FR,JP,ANALYST,Beijing
-67,2012-08-21,Auction,43479,0,12,22.2008,0,10000310,DE,DE,MODELER,Hongkong
-68,2012-11-30,FP-GTC,175750,0,15,35.1161,0,10000440,CN,DE,ADMIN,Shanghai
-69,2013-10-10,Others,95672,0,11,82.3718,0,10000128,JP,CN,ADMIN,Shanghai
-70,2012-10-17,Auction,80053,0,15,9.8166,0,10000105,FR,DE,ADMIN,Shanghai
-71,2012-03-16,FP-non GTC,57784,0,5,66.2369,0,10000439,UK,FR,MODELER,Hongkong
-72,2012-11-14,ABIN,65,0,11,17.5513,0,10000855,CN,CN,MODELER,Hongkong
-73,2013-06-24,FP-GTC,16509,0,15,53.9195,0,10000130,UK,CN,MODELER,Hongkong
-74,2012-08-13,FP-non GTC,65,0,5,69.8447,0,10000548,CN,UK,MODELER,Hongkong
-75,2012-01-03,Others,38238,0,11,90.3722,0,10000739,UK,US,ADMIN,Shanghai
-76,2013-11-24,FP-non GTC,175750,3,13,47.3441,0,10000291,CN,DE,ANALYST,Beijing
-77,2013-11-08,Auction,106246,0,5,38.6729,0,10000310,CN,DE,ADMIN,Shanghai
-78,2013-04-07,Others,73506,0,-99,69.8999,0,10000235,US,DE,ADMIN,Shanghai
-79,2012-10-15,FP-GTC,314,0,13,44.1598,0,10000265,FR,US,ADMIN,Shanghai
-80,2012-01-20,FP-GTC,80287,0,-99,85.7263,0,10000704,FR,US,ANALYST,Beijing
-81,2012-08-17,ABIN,32876,0,16,21.2934,0,10000163,UK,CN,ANALYST,Beijing
-82,2013-07-09,Auction,37831,0,15,38.2213,0,10000557,JP,UK,ADMIN,Shanghai
-83,2013-09-21,Others,45333,0,13,25.5384,0,10000184,JP,UK,MODELER,Hongkong
-84,2013-10-28,FP-non GTC,11554,0,16,89.9654,0,10000940,CN,UK,MODELER,Hongkong
-85,2013-04-05,Auction,11554,0,14,41.8676,0,10000384,CN,DE,ANALYST,Beijing
-86,2013-03-25,FP-GTC,43398,0,14,75.011,0,10000697,JP,UK,ANALYST,Beijing
-87,2012-05-03,ABIN,33038,15,12,64.6735,0,10000147,US,CN,ADMIN,Shanghai
-88,2012-10-13,ABIN,95672,3,14,3.2128,0,10000547,JP,CN,MODELER,Hongkong
-89,2012-09-11,FP-GTC,37831,0,16,60.3228,0,10000899,DE,UK,MODELER,Hongkong
-90,2012-08-31,Auction,314,0,5,13.248,0,10000350,CN,US,ANALYST,Beijing
-91,2012-12-25,Others,165888,0,16,60.3492,0,10000367,CN,CN,ANALYST,Beijing
-92,2012-12-26,FP-non GTC,50677,0,5,58.6078,0,10000523,JP,CN,ADMIN,Shanghai
-93,2012-05-24,FP-GTC,145970,0,5,33.1342,0,10000926,JP,US,MODELER,Hongkong
-94,2012-06-27,Auction,174106,3,13,55.3039,0,10000430,DE,JP,ANALYST,Beijing
-95,2012-01-02,ABIN,87118,0,14,48.2433,0,10000731,US,CN,ADMIN,Shanghai
-96,2013-12-14,FP-GTC,50508,0,5,51.5822,0,10000977,DE,US,ANALYST,Beijing
-97,2012-12-30,Auction,63889,0,12,3.8393,0,10000957,UK,DE,MODELER,Hongkong
-98,2013-10-26,FP-non GTC,24541,0,5,23.6812,0,10000350,DE,CN,ANALYST,Beijing
-99,2013-12-29,ABIN,38238,0,15,99.4389,0,10000605,US,UK,ANALYST,Beijing
-100,2012-05-26,FP-GTC,100847,0,15,11.0672,0,10000291,UK,DE,ADMIN,Shanghai
-101,2012-12-18,FP-non GTC,164261,0,11,54.9352,0,10000509,CN,US,ANALYST,Beijing
-102,2013-03-12,ABIN,95672,0,15,85.7152,0,10000742,FR,CN,ADMIN,Shanghai
-103,2013-02-22,ABIN,43398,0,11,65.197,0,10000294,CN,UK,ADMIN,Shanghai
-104,2012-02-20,Others,175750,0,14,63.2187,0,10000364,DE,UK,MODELER,Hongkong
-105,2013-08-06,Others,32876,0,13,50.8111,0,10000542,US,UK,MODELER,Hongkong
-106,2013-06-27,Others,13987,0,13,2.3165,0,10000979,CN,JP,ADMIN,Shanghai
-107,2012-07-17,Others,13987,0,16,25.2136,0,10000744,JP,FR,ADMIN,Shanghai
-108,2013-10-12,FP-non GTC,16509,0,5,15.3986,0,10000652,US,JP,MODELER,Hongkong
-109,2012-12-07,Others,158798,0,5,1.6111,0,10000149,FR,JP,ANALYST,Beijing
-110,2013-02-09,Auction,32876,0,5,37.3237,0,10000467,DE,US,ADMIN,Shanghai
-111,2012-10-26,Others,44079,0,12,18.187,0,10000420,UK,CN,ADMIN,Shanghai
-112,2012-04-10,ABIN,132939,0,13,88.595,0,10000103,JP,CN,MODELER,Hongkong
-113,2013-04-08,FP-non GTC,159184,0,5,92.4421,0,10000933,UK,CN,ADMIN,Shanghai
-114,2012-05-30,Others,80287,0,14,68.1663,0,10000195,FR,DE,ADMIN,Shanghai
-115,2012-02-23,FP-GTC,88750,0,11,19.4075,0,10000038,JP,JP,ADMIN,Shanghai
-116,2013-10-25,ABIN,11554,0,11,27.2512,0,10000228,CN,FR,ANALYST,Beijing
-117,2012-12-02,FP-GTC,41940,0,14,49.5504,0,10000927,DE,FR,ANALYST,Beijing
-118,2013-09-16,FP-GTC,314,0,-99,3.4785,0,10000304,US,JP,MODELER,Hongkong
-119,2013-11-01,Others,31519,3,15,46.1783,0,10000771,CN,US,MODELER,Hongkong
-120,2012-10-21,FP-non GTC,31519,0,15,1.7696,0,10000507,CN,FR,MODELER,Hongkong
-121,2013-08-25,Auction,95173,0,13,89.2083,0,10000868,US,FR,MODELER,Hongkong
-122,2013-11-09,FP-non GTC,150047,3,12,58.2634,0,10000497,FR,CN,ANALYST,Beijing
-123,2012-02-04,FP-GTC,175750,0,11,41.385,0,10000947,CN,FR,ANALYST,Beijing
-124,2012-10-17,ABIN,26249,0,14,10.5789,0,10000965,UK,FR,ADMIN,Shanghai
-125,2012-03-16,FP-non GTC,963,0,5,17.8949,0,10000908,UK,CN,ANALYST,Beijing
-126,2012-08-06,Others,94847,0,13,96.0332,0,10000595,UK,JP,ANALYST,Beijing
-127,2013-12-23,FP-non GTC,24760,0,16,90.7096,0,10000700,US,FR,ADMIN,Shanghai
-128,2013-03-29,FP-GTC,9426,3,13,50.9023,0,10000090,FR,JP,ADMIN,Shanghai
-129,2013-03-25,Others,20886,0,-99,35.0414,0,10000171,CN,GB,ANALYST,Beijing
-130,2013-12-10,Auction,95672,0,15,29.8872,0,10000216,DE,JP,MODELER,Hongkong
-131,2012-03-14,Others,12688,0,14,10.4067,0,10000626,DE,UK,MODELER,Hongkong
-132,2013-11-29,FP-non GTC,31519,0,13,89.2334,0,10000199,CN,FR,ANALYST,Beijing
-133,2013-04-29,ABIN,31519,0,-99,99.246,0,10000565,CN,FR,ADMIN,Shanghai
-134,2012-02-01,FP-GTC,161567,15,11,56.3989,0,10000651,JP,US,ANALYST,Beijing
-135,2012-03-17,FP-GTC,4943,0,16,0.4422,0,10000829,US,FR,MODELER,Hongkong
-136,2012-11-06,FP-GTC,156614,0,12,2.3454,0,10000370,DE,UK,ANALYST,Beijing
-137,2012-12-03,Auction,155226,0,13,51.1354,0,10000867,FR,CN,MODELER,Hongkong
-138,2012-09-09,FP-GTC,99985,0,12,9.1236,0,10000281,UK,JP,ANALYST,Beijing
-139,2012-06-16,ABIN,99985,0,16,16.407,0,10000143,CN,CN,MODELER,Hongkong
-140,2012-05-06,FP-GTC,99985,0,14,6.4304,0,10000514,JP,US,MODELER,Hongkong
-141,2013-10-20,FP-GTC,36250,0,13,55.6895,0,10000390,JP,UK,ADMIN,Shanghai
-142,2012-10-11,ABIN,106246,0,15,30.6373,0,10000980,CN,CN,ADMIN,Shanghai
-143,2013-08-08,Others,103178,15,12,41.4904,0,10000751,CN,UK,ADMIN,Shanghai
-144,2012-09-05,Auction,314,0,16,3.2615,0,10000280,CN,DE,MODELER,Hongkong
-145,2012-08-07,ABIN,48904,0,13,57.7688,0,10000245,US,DE,ANALYST,Beijing
-146,2013-07-05,ABIN,314,0,14,28.9444,0,10000888,US,CN,MODELER,Hongkong
-147,2012-09-10,FP-non GTC,95672,0,-99,54.0914,0,10000601,JP,FR,ANALYST,Beijing
-148,2012-09-18,Auction,25147,0,12,74.4422,0,10000679,JP,CN,ANALYST,Beijing
-149,2012-08-24,FP-non GTC,175750,3,16,45.8282,0,10000397,US,UK,ANALYST,Beijing
-150,2013-05-29,Others,26249,0,14,12.7681,0,10000967,UK,JP,ANALYST,Beijing
-151,2012-11-17,FP-GTC,94847,0,14,74.4181,0,10000175,JP,CN,ANALYST,Beijing
-152,2012-09-22,ABIN,175750,0,15,85.6879,0,10000453,DE,CN,ADMIN,Shanghai
-153,2013-09-17,ABIN,533,0,11,85.5838,0,10000642,FR,JP,ADMIN,Shanghai
-154,2013-03-28,Others,60340,0,12,72.6495,0,10000397,CN,DE,ADMIN,Shanghai
-155,2013-08-09,Others,216,0,15,88.6918,0,10000867,DE,CN,ADMIN,Shanghai
-156,2013-12-19,Others,43398,0,-99,88.0444,0,10000482,CN,JP,MODELER,Hongkong
-157,2013-12-02,FP-non GTC,15115,0,-99,29.6027,0,10000538,CN,JP,MODELER,Hongkong
-158,2012-11-23,Others,46575,0,5,49.3124,0,10000678,FR,CN,ANALYST,Beijing
-159,2013-06-25,FP-non GTC,16145,0,15,7.4413,0,10000897,DE,CN,MODELER,Hongkong
-160,2012-01-22,FP-GTC,164,0,14,71.8071,0,10000510,CN,JP,ANALYST,Beijing
-161,2013-04-24,FP-GTC,1504,0,12,95.5706,0,10000554,CN,UK,MODELER,Hongkong
-162,2012-03-05,FP-non GTC,12688,0,5,47.7646,0,10000175,CN,UK,ADMIN,Shanghai
-163,2013-02-15,FP-non GTC,16145,0,13,40.9511,0,10000647,CN,UK,MODELER,Hongkong
-164,2013-01-18,Others,36250,0,13,77.3572,0,10000687,JP,JP,ADMIN,Shanghai
-165,2012-06-04,Others,15115,0,15,25.34,0,10000493,UK,US,MODELER,Hongkong
-166,2013-10-13,FP-GTC,165888,0,-99,58.1861,0,10000753,US,DE,ANALYST,Beijing
-167,2012-05-21,Auction,145970,0,5,37.2504,0,10000292,CN,US,ADMIN,Shanghai
-168,2012-04-26,Auction,11848,0,13,29.2954,0,10000804,FR,US,MODELER,Hongkong
-169,2013-09-26,FP-GTC,61323,0,13,84.7095,0,10000761,US,UK,ANALYST,Beijing
-170,2013-03-06,Auction,100847,0,-99,81.798,0,10000593,JP,US,ANALYST,Beijing
-171,2012-08-08,ABIN,51582,0,15,15.979,0,10000138,CN,DE,ADMIN,Shanghai
-172,2012-01-09,Others,1504,0,14,34.0508,0,10000954,CN,DE,ANALYST,Beijing
-173,2013-10-20,ABIN,20886,0,12,36.9353,0,10000408,FR,JP,ADMIN,Shanghai
-174,2013-06-25,Auction,53064,0,11,99.7714,0,10000409,CN,DE,MODELER,Hongkong
-175,2013-05-03,FP-GTC,63861,0,5,39.2974,0,10000668,JP,CN,MODELER,Hongkong
-176,2013-01-26,FP-GTC,100847,0,13,59.5009,0,10000536,CN,UK,ADMIN,Shanghai
-177,2012-09-19,FP-GTC,164261,0,13,15.7583,0,10000231,CN,US,ANALYST,Beijing
-178,2013-11-16,FP-GTC,164261,0,16,83.6234,0,10000927,FR,DE,ADMIN,Shanghai
-179,2013-05-07,FP-non GTC,20485,0,5,52.91,0,10000491,FR,DE,MODELER,Hongkong
-180,2013-08-15,Others,32996,15,12,54.7122,0,10000411,CN,JP,MODELER,Hongkong
-181,2013-10-31,FP-GTC,63861,0,14,0.3599,0,10000903,CN,JP,MODELER,Hongkong
-182,2012-06-13,FP-non GTC,159184,0,11,49.955,0,10000849,US,US,ANALYST,Beijing
-183,2012-12-25,Auction,20213,0,-99,11.4752,0,10000583,FR,US,ANALYST,Beijing
-184,2013-12-15,Auction,759,0,13,33.6991,0,10000390,FR,US,ADMIN,Shanghai
-185,2012-04-30,Others,87118,0,16,51.463,0,10000572,CN,DE,MODELER,Hongkong
-186,2012-07-14,Others,10866,0,11,36.9614,0,10000467,DE,DE,ANALYST,Beijing
-187,2013-06-25,FP-non GTC,1357,0,12,17.5618,0,10000426,JP,CN,ANALYST,Beijing
-188,2013-02-06,Auction,13836,0,12,74.3179,0,10000346,CN,DE,ANALYST,Beijing
-189,2012-06-03,ABIN,60340,0,12,82.3722,0,10000531,DE,CN,ANALYST,Beijing
-190,2013-07-23,FP-GTC,139973,0,-99,75.2548,0,10000385,UK,FR,ADMIN,Shanghai
-191,2013-07-06,Others,11554,0,14,40.1129,0,10000724,DE,DE,ADMIN,Shanghai
-192,2013-08-10,FP-non GTC,31519,0,-99,5.2432,0,10000356,CN,US,ADMIN,Shanghai
-193,2013-07-31,Auction,31673,0,14,51.1089,0,10000598,CN,UK,ADMIN,Shanghai
-194,2013-12-05,Auction,314,0,13,19.9031,0,10000068,CN,US,ADMIN,Shanghai
-195,2012-12-30,ABIN,50508,0,5,73.8659,0,10000482,CN,US,MODELER,Hongkong
-196,2012-09-22,Auction,165888,0,12,81.9826,0,10000832,CN,CN,MODELER,Hongkong
-197,2012-07-16,Auction,223,0,5,76.0284,0,10000354,DE,CN,MODELER,Hongkong
-198,2013-01-26,Others,20485,0,12,71.6623,0,10000552,UK,CN,ANALYST,Beijing
-199,2012-11-07,FP-non GTC,57013,0,16,73.2931,0,10000801,CN,UK,ANALYST,Beijing
-200,2012-01-26,FP-non GTC,175750,0,13,18.897,0,10000649,CN,UK,ADMIN,Shanghai
-201,2012-06-09,FP-non GTC,60340,0,12,11.1614,0,10000830,DE,UK,ADMIN,Shanghai
-202,2012-06-20,Auction,57990,3,5,69.1183,0,10000557,US,US,MODELER,Hongkong
-203,2013-01-01,FP-non GTC,45333,0,13,94.0586,0,10000253,JP,JP,ANALYST,Beijing
-204,2013-07-26,FP-non GTC,139973,0,11,39.7239,0,10000441,DE,JP,ADMIN,Shanghai
-205,2012-09-15,FP-GTC,24541,0,15,0.3239,0,10000379,UK,JP,ANALYST,Beijing
-206,2013-09-22,Auction,31519,3,12,80.0315,0,10000436,US,FR,ANALYST,Beijing
-207,2012-10-27,FP-GTC,223,0,15,39.379,0,10000420,CN,DE,ANALYST,Beijing
-208,2012-11-20,FP-non GTC,533,0,5,49.4951,0,10000390,UK,CN,ADMIN,Shanghai
-209,2013-12-07,FP-GTC,1349,0,15,93.3008,0,10000398,US,US,MODELER,Hongkong
-210,2012-05-30,FP-non GTC,46575,0,12,66.7652,0,10000915,JP,FR,ADMIN,Shanghai
-211,2012-09-07,FP-non GTC,95672,0,14,29.597,0,10000231,CN,FR,MODELER,Hongkong
-212,2013-04-26,Auction,31673,0,-99,15.8347,0,10000260,DE,JP,ANALYST,Beijing
-213,2012-09-11,FP-non GTC,50508,0,14,80.5444,0,10000263,JP,DE,ADMIN,Shanghai
-214,2013-09-03,FP-non GTC,95173,0,16,33.1487,0,10000493,DE,US,ADMIN,Shanghai
-215,2012-10-03,FP-non GTC,44079,0,15,99.7408,0,10000828,FR,US,ADMIN,Shanghai
-216,2012-12-26,ABIN,16145,0,14,40.7826,0,10000062,CN,CN,ANALYST,Beijing
-217,2012-07-17,Auction,26249,0,15,28.6663,0,10000534,US,DE,ADMIN,Shanghai
-218,2013-06-30,ABIN,63861,0,14,75.6832,0,10000944,DE,JP,ADMIN,Shanghai
-219,2012-01-09,ABIN,156614,0,11,98.4996,0,10000353,DE,JP,ADMIN,Shanghai
-220,2013-09-08,FP-GTC,156614,0,13,12.7473,0,10000063,JP,UK,ADMIN,Shanghai
-221,2013-09-23,Auction,41940,0,5,37.5254,0,10000383,CN,CN,ADMIN,Shanghai
-222,2012-11-11,Auction,145970,0,5,77.1361,0,10000420,CN,DE,MODELER,Hongkong
-223,2013-08-26,Others,11848,0,16,28.2799,0,10000323,DE,UK,MODELER,Hongkong
-224,2012-09-15,Others,11554,0,13,63.7232,0,10000729,FR,UK,ADMIN,Shanghai
-225,2012-01-09,FP-non GTC,25147,0,11,7.3009,0,10000745,FR,US,ADMIN,Shanghai
-226,2012-08-16,Others,87118,0,15,47.8997,0,10000240,CN,UK,MODELER,Hongkong
-227,2013-12-26,FP-non GTC,16145,0,12,51.0442,0,10000050,US,US,MODELER,Hongkong
-228,2012-03-24,ABIN,48027,0,5,26.2083,0,10000600,DE,CN,ANALYST,Beijing
-229,2012-08-22,ABIN,216,0,5,79.9268,0,10000706,UK,DE,ANALYST,Beijing
-230,2013-11-03,FP-GTC,24541,0,12,83.0235,0,10000293,UK,CN,ADMIN,Shanghai
-231,2013-05-18,FP-non GTC,88750,0,-99,84.8856,0,10000147,FR,CN,ADMIN,Shanghai
-232,2013-01-15,ABIN,95672,0,15,86.0386,0,10000590,DE,UK,MODELER,Hongkong
-233,2012-12-03,ABIN,50508,0,11,67.9981,0,10000582,JP,CN,MODELER,Hongkong
-234,2012-06-19,FP-GTC,148324,15,15,53.4811,0,10000793,JP,JP,ANALYST,Beijing
-235,2013-10-06,Auction,6762,0,14,73.5338,0,10000544,CN,GB,MODELER,Hongkong
-236,2013-12-18,ABIN,63861,0,5,50.2892,0,10000769,FR,JP,ADMIN,Shanghai
-237,2013-12-04,Auction,25147,0,5,48.3303,0,10000590,FR,JP,MODELER,Hongkong
-238,2012-04-25,FP-non GTC,62179,0,14,72.3156,0,10000102,DE,JP,ADMIN,Shanghai
-239,2013-11-20,Auction,24760,0,14,91.4883,0,10000370,CN,JP,ADMIN,Shanghai
-240,2013-02-08,Others,20485,0,11,29.1083,0,10000261,DE,UK,MODELER,Hongkong
-241,2013-04-18,Others,2023,0,5,48.4321,0,10000355,UK,CN,ANALYST,Beijing
-242,2012-11-21,Others,32876,0,12,16.7365,0,10000352,FR,JP,ANALYST,Beijing
-243,2012-03-07,FP-GTC,61323,0,-99,32.5836,0,10000494,US,DE,ADMIN,Shanghai
-244,2012-01-20,FP-non GTC,175750,0,16,52.8153,0,10000025,UK,DE,ADMIN,Shanghai
-245,2013-10-06,FP-GTC,26249,0,-99,1.9539,0,10000660,JP,US,MODELER,Hongkong
-246,2012-01-10,Auction,57990,0,14,57.58,0,10000830,FR,JP,ANALYST,Beijing
-247,2013-09-13,Others,46575,0,15,60.3315,0,10000528,JP,FR,MODELER,Hongkong
-248,2012-11-19,FP-non GTC,44079,0,11,73.0457,0,10000482,US,UK,ANALYST,Beijing
-249,2012-09-23,Auction,95672,0,13,84.6345,0,10000586,US,JP,MODELER,Hongkong
-250,2013-08-31,Others,216,0,12,34.7429,0,10000676,FR,FR,ANALYST,Beijing
-251,2013-04-11,FP-GTC,963,0,-99,77.7226,0,10000367,FR,FR,ADMIN,Shanghai
-252,2013-03-28,ABIN,15687,0,-99,8.2384,0,10000542,UK,JP,ANALYST,Beijing
-253,2012-05-24,ABIN,152801,0,15,39.0204,0,10000277,CN,CN,ANALYST,Beijing
-254,2013-03-05,ABIN,67698,0,16,40.6091,0,10000886,CN,DE,ADMIN,Shanghai
-255,2013-08-06,Auction,13987,0,13,36.5088,0,10000628,JP,DE,MODELER,Hongkong
-256,2013-02-04,ABIN,20213,0,11,73.5301,0,10000134,FR,CN,MODELER,Hongkong
-257,2012-05-19,FP-non GTC,38238,0,12,59.3237,0,10000500,CN,GB,ADMIN,Shanghai
-258,2013-08-19,ABIN,57990,0,12,10.1688,0,10000715,CN,CN,ANALYST,Beijing
-259,2012-03-28,FP-non GTC,46575,0,16,77.7396,0,10000756,US,FR,ADMIN,Shanghai
-260,2012-02-19,Auction,43479,0,-99,45.245,0,10000049,DE,CN,ANALYST,Beijing
-261,2012-04-02,FP-GTC,41940,0,15,58.8415,0,10000195,US,CN,ADMIN,Shanghai
-262,2013-08-24,Others,16145,0,11,5.4971,0,10000119,DE,UK,MODELER,Hongkong
-263,2013-01-10,Auction,106340,15,12,24.1336,0,10000603,FR,CN,MODELER,Hongkong
-264,2012-09-23,Auction,152801,0,5,70.4024,0,10000384,JP,CN,ANALYST,Beijing
-265,2013-07-29,FP-GTC,73506,0,16,14.5932,0,10000580,UK,UK,ADMIN,Shanghai
-266,2012-02-16,FP-non GTC,67698,0,5,4.4981,0,10000524,FR,DE,MODELER,Hongkong
-267,2013-01-06,Others,65,0,13,64.8343,0,10000731,US,FR,MODELER,Hongkong
-268,2013-03-02,Auction,43398,0,16,22.6621,0,10000734,US,UK,ADMIN,Shanghai
-269,2013-10-25,Auction,57990,0,13,64.3384,0,10000961,JP,US,ADMIN,Shanghai
-270,2012-07-07,FP-GTC,156356,0,16,47.3744,0,10000795,FR,UK,ADMIN,Shanghai
-271,2013-12-19,FP-GTC,67698,0,16,96.9535,0,10000207,UK,JP,MODELER,Hongkong
-272,2013-11-04,Auction,63861,0,5,34.8173,0,10000964,JP,CN,MODELER,Hongkong
-273,2013-01-18,FP-non GTC,174053,3,5,94.6036,0,10000393,JP,CN,ANALYST,Beijing
-274,2013-01-30,Auction,43479,0,16,28.9982,0,10000854,CN,UK,ANALYST,Beijing
-275,2012-05-16,ABIN,24541,0,15,91.6347,0,10000536,CN,JP,MODELER,Hongkong
-276,2013-06-03,FP-non GTC,159184,0,15,27.9722,0,10000644,DE,CN,ADMIN,Shanghai
-277,2013-08-24,FP-GTC,2635,0,14,95.7894,0,10000503,US,UK,ADMIN,Shanghai
-278,2012-07-02,FP-non GTC,16509,0,5,76.9646,0,10000320,FR,CN,ADMIN,Shanghai
-279,2013-09-09,ABIN,80287,0,16,68.962,0,10000934,UK,FR,MODELER,Hongkong
-280,2012-04-15,FP-GTC,156356,0,12,95.364,0,10000269,UK,DE,ANALYST,Beijing
-281,2013-07-10,FP-GTC,1349,0,13,82.7969,0,10000033,US,US,MODELER,Hongkong
-282,2012-12-02,FP-GTC,963,0,13,31.4196,0,10000717,FR,JP,ADMIN,Shanghai
-283,2013-02-17,Auction,26249,0,14,9.5202,0,10000543,US,UK,ANALYST,Beijing
-284,2013-02-17,Others,87118,0,16,77.3899,0,10000647,CN,CN,ADMIN,Shanghai
-285,2012-12-12,Others,6762,0,15,76.3422,0,10000076,FR,UK,ADMIN,Shanghai
-286,2013-07-08,Others,80053,0,5,95.2412,0,10000723,US,CN,MODELER,Hongkong
-287,2012-08-19,ABIN,32876,0,12,40.9587,0,10000352,FR,CN,ANALYST,Beijing
-288,2013-07-24,Auction,314,0,11,78.8147,0,10000996,UK,UK,ANALYST,Beijing
-289,2013-10-10,Others,57990,0,12,89.8124,0,10000549,UK,US,ANALYST,Beijing
-290,2013-11-13,Others,139973,0,16,85.5451,0,10000089,CN,CN,ADMIN,Shanghai
-291,2013-03-29,FP-non GTC,25147,0,16,16.229,0,10000017,JP,DE,MODELER,Hongkong
-292,2012-06-04,FP-non GTC,44079,0,-99,0.1588,0,10000758,JP,CN,MODELER,Hongkong
-293,2012-07-19,FP-non GTC,57784,0,12,84.9441,0,10000553,CN,DE,ANALYST,Beijing
-294,2012-01-08,FP-GTC,155226,0,15,31.9705,0,10000778,US,FR,ADMIN,Shanghai
-295,2012-09-13,FP-non GTC,963,0,16,39.6392,0,10000799,DE,FR,ADMIN,Shanghai
-296,2012-12-24,Others,175750,0,15,77.3617,0,10000164,CN,DE,MODELER,Hongkong
-297,2013-08-31,Auction,57990,0,12,76.7885,0,10000580,UK,CN,ANALYST,Beijing
-298,2013-08-06,FP-non GTC,156356,0,13,86.0218,0,10000445,JP,CN,ANALYST,Beijing
-299,2013-05-29,FP-non GTC,11848,0,11,23.0269,0,10000372,CN,GB,MODELER,Hongkong
-300,2013-05-19,Others,53064,0,13,66.399,0,10000390,FR,US,MODELER,Hongkong
-301,2012-11-01,FP-non GTC,51582,0,14,57.6157,0,10000061,US,JP,ADMIN,Shanghai
-302,2013-01-01,Auction,1357,0,-99,18.2117,0,10000860,UK,JP,ANALYST,Beijing
-303,2013-05-17,Others,121153,0,14,79.4534,0,10000155,CN,FR,MODELER,Hongkong
-304,2013-07-04,FP-GTC,80053,0,5,43.3271,0,10000456,FR,UK,ANALYST,Beijing
-305,2013-12-17,Others,165888,0,-99,9.8402,0,10000357,CN,JP,MODELER,Hongkong
-306,2013-11-28,FP-GTC,26262,0,-99,1.4013,0,10000731,UK,CN,ADMIN,Shanghai
-307,2013-02-08,FP-GTC,65,0,11,61.9604,0,10000176,JP,CN,ADMIN,Shanghai
-308,2012-05-17,ABIN,9426,3,12,68.017,0,10000895,DE,UK,ANALYST,Beijing
-309,2012-08-29,Auction,159184,0,13,43.7406,0,10000723,JP,CN,MODELER,Hongkong
-310,2013-10-06,FP-GTC,61323,0,14,85.9325,0,10000692,JP,FR,ANALYST,Beijing
-311,2013-08-08,FP-GTC,20886,0,14,88.0137,0,10000063,FR,UK,ADMIN,Shanghai
-312,2013-04-06,FP-non GTC,156356,0,16,67.1201,0,10000441,DE,JP,ADMIN,Shanghai
-313,2012-03-09,Auction,1504,0,13,45.8878,0,10000862,DE,CN,ANALYST,Beijing
-314,2013-12-13,FP-GTC,139973,3,16,58.7879,0,10000947,FR,US,ADMIN,Shanghai
-315,2013-02-03,ABIN,95173,0,-99,33.2714,0,10000634,US,US,ANALYST,Beijing
-316,2013-02-19,Others,41940,0,5,32.2179,0,10000257,JP,DE,ANALYST,Beijing
-317,2012-05-09,ABIN,65,0,11,96.0579,0,10000675,CN,DE,ANALYST,Beijing
-318,2012-10-30,Auction,80135,0,11,55.5335,0,10000288,FR,DE,ANALYST,Beijing
-319,2013-07-14,ABIN,11554,0,16,9.7012,0,10000210,CN,CN,MODELER,Hongkong
-320,2012-07-29,Others,11554,0,5,91.5938,0,10000736,UK,UK,ANALYST,Beijing
-321,2012-06-03,ABIN,80287,0,13,99.7431,0,10000403,US,US,ADMIN,Shanghai
-322,2012-10-10,Auction,36250,0,13,14.7056,0,10000561,UK,US,ANALYST,Beijing
-323,2013-06-20,ABIN,20485,0,5,23.912,0,10000798,DE,FR,ANALYST,Beijing
-324,2013-12-26,Others,11554,0,15,27.2028,0,10000154,DE,JP,MODELER,Hongkong
-325,2013-05-07,Auction,11848,0,-99,73.7354,0,10000448,CN,FR,MODELER,Hongkong
-326,2013-12-14,ABIN,61323,0,16,44.6086,0,10000555,CN,UK,ADMIN,Shanghai
-327,2012-08-29,FP-GTC,139973,0,14,34.7404,0,10000686,CN,JP,ANALYST,Beijing
-328,2013-12-31,FP-GTC,100847,0,15,70.6027,0,10000534,CN,FR,MODELER,Hongkong
-329,2013-12-13,FP-non GTC,16145,3,12,76.5802,0,10000864,US,FR,ADMIN,Shanghai
-330,2012-01-24,FP-non GTC,57990,0,-99,54.7904,0,10000325,US,CN,ADMIN,Shanghai
-331,2013-07-26,Others,20485,0,11,9.313,0,10000991,US,JP,MODELER,Hongkong
-332,2013-09-30,ABIN,31519,0,15,95.7797,0,10000701,JP,JP,ADMIN,Shanghai
-333,2012-03-30,FP-non GTC,88750,0,16,34.6777,0,10000494,US,CN,ANALYST,Beijing
-334,2012-05-11,Others,20485,0,16,2.2782,0,10000436,CN,CN,MODELER,Hongkong
-335,2012-11-21,FP-non GTC,156356,0,13,3.4276,0,10000574,CN,UK,MODELER,Hongkong
-336,2012-11-19,FP-non GTC,36250,0,16,42.1665,0,10000885,FR,DE,ADMIN,Shanghai
-337,2013-01-07,Others,20485,0,13,29.1424,0,10000931,FR,CN,ANALYST,Beijing
-338,2013-01-16,ABIN,88750,0,13,87.3858,0,10000276,US,FR,ADMIN,Shanghai
-339,2012-07-20,ABIN,25147,0,-99,41.9809,0,10000928,CN,DE,ADMIN,Shanghai
-340,2013-06-27,FP-non GTC,75665,0,11,65.3889,0,10000587,DE,FR,ADMIN,Shanghai
-341,2013-12-04,FP-non GTC,45333,0,15,41.7577,0,10000979,JP,CN,ADMIN,Shanghai
-342,2012-05-01,Auction,4943,0,11,76.3978,0,10000385,FR,CN,ANALYST,Beijing
-343,2013-05-03,Others,66767,15,-99,69.062,0,10000186,JP,DE,ANALYST,Beijing
-344,2013-02-14,FP-non GTC,95672,0,14,15.6152,0,10000356,UK,UK,ANALYST,Beijing
-345,2012-01-01,Others,1357,0,13,16.7271,0,10000263,CN,JP,ANALYST,Beijing
-346,2012-01-05,FP-non GTC,67703,3,5,32.2005,0,10000141,FR,US,ADMIN,Shanghai
-347,2013-12-15,Others,2023,0,-99,55.3349,0,10000920,UK,CN,ADMIN,Shanghai
-348,2012-10-02,FP-GTC,314,0,14,95.9217,0,10000647,DE,CN,ANALYST,Beijing
-349,2012-10-27,Others,64076,0,5,3.4266,0,10000486,JP,DE,ADMIN,Shanghai
-350,2013-10-17,Others,41940,0,15,3.0363,0,10000299,UK,CN,ADMIN,Shanghai
-351,2013-02-09,Others,13836,0,15,37.1746,0,10000799,CN,FR,MODELER,Hongkong
-352,2013-04-03,FP-GTC,31519,0,15,83.3031,0,10000656,CN,FR,ADMIN,Shanghai
-353,2013-08-30,Others,63861,0,13,37.862,0,10000958,CN,DE,ADMIN,Shanghai
-354,2012-01-01,Others,1349,0,13,0.7227,0,10000774,UK,UK,ADMIN,Shanghai
-355,2013-03-24,FP-non GTC,87118,0,13,32.5615,0,10000661,FR,DE,ADMIN,Shanghai
-356,2012-12-03,FP-non GTC,216,0,5,40.1447,0,10000923,US,JP,ANALYST,Beijing
-357,2012-07-12,FP-GTC,94847,0,5,74.4586,0,10000161,DE,CN,MODELER,Hongkong
-358,2013-03-18,Others,1161,3,-99,70.1521,0,10000123,CN,DE,ANALYST,Beijing
-359,2013-11-17,Auction,165888,0,5,16.1344,0,10000029,UK,UK,ANALYST,Beijing
-360,2013-11-25,FP-non GTC,44079,0,5,18.0996,0,10000461,CN,FR,MODELER,Hongkong
-361,2012-12-06,FP-GTC,159184,0,15,63.6868,0,10000399,US,CN,ANALYST,Beijing
-362,2013-09-27,FP-non GTC,161567,15,15,35.8966,0,10000283,JP,CN,MODELER,Hongkong
-363,2013-11-02,ABIN,20865,0,5,70.2863,0,10000724,CN,FR,ADMIN,Shanghai
-364,2013-04-29,Auction,314,0,13,53.6862,0,10000676,JP,CN,MODELER,Hongkong
-365,2013-01-21,Auction,20886,0,-99,32.5548,0,10000052,US,CN,MODELER,Hongkong
-366,2012-04-18,FP-GTC,67698,0,14,90.8206,0,10000221,CN,FR,ANALYST,Beijing
-367,2013-10-14,Others,46575,0,13,92.8392,0,10000187,FR,CN,ANALYST,Beijing
-368,2013-07-06,FP-GTC,26249,0,-99,54.6729,0,10000651,UK,JP,MODELER,Hongkong
-369,2012-09-15,Others,16145,0,15,70.0461,0,10000279,FR,CN,ADMIN,Shanghai
-370,2013-11-02,Others,38238,0,11,22.9595,0,10000451,US,UK,MODELER,Hongkong
-371,2012-06-03,ABIN,57013,0,11,28.9005,0,10000028,CN,CN,ADMIN,Shanghai
-372,2013-10-08,FP-GTC,20886,0,14,24.6958,0,10000676,CN,DE,ANALYST,Beijing
-373,2013-04-11,Auction,100847,0,14,42.1878,0,10000645,FR,UK,MODELER,Hongkong
-374,2013-11-07,Auction,45333,0,13,58.1089,0,10000182,US,CN,ANALYST,Beijing
-375,2012-10-18,FP-non GTC,57990,0,15,37.9049,0,10000696,UK,FR,ADMIN,Shanghai
-376,2012-11-28,FP-non GTC,63889,0,5,59.1268,0,10000116,FR,CN,ADMIN,Shanghai
-377,2012-03-02,Auction,45333,0,13,37.4799,0,10000298,CN,JP,ANALYST,Beijing
-378,2013-07-27,FP-non GTC,75665,0,12,19.423,0,10000333,UK,FR,ADMIN,Shanghai
-379,2012-12-01,Auction,44079,0,11,95.4596,0,10000163,FR,CN,ANALYST,Beijing
-380,2012-04-11,FP-non GTC,161567,15,13,47.4582,0,10000082,FR,CN,ADMIN,Shanghai
-381,2013-06-23,ABIN,175750,3,13,23.9511,0,10000560,CN,US,ANALYST,Beijing
-382,2012-02-17,Others,46575,0,15,25.7613,0,10000308,DE,FR,ADMIN,Shanghai
-383,2013-05-19,ABIN,223,0,15,64.7127,0,10000850,CN,CN,ANALYST,Beijing
-384,2012-10-29,FP-non GTC,159184,0,5,15.4188,0,10000995,US,DE,ADMIN,Shanghai
-385,2012-07-17,Auction,4943,0,11,32.1734,0,10000820,US,JP,ANALYST,Beijing
-386,2013-01-03,ABIN,57784,0,5,47.7542,0,10000563,FR,DE,MODELER,Hongkong
-387,2013-07-17,FP-GTC,150047,3,16,35.0905,0,10000545,DE,CN,ADMIN,Shanghai
-388,2013-07-20,Others,87118,0,14,24.6574,0,10000985,JP,JP,MODELER,Hongkong
-389,2013-12-14,Others,11848,0,14,80.9504,0,10000318,US,UK,MODELER,Hongkong
-390,2013-01-16,Auction,106246,0,12,94.2201,0,10000113,JP,FR,ADMIN,Shanghai
-391,2012-11-04,Others,63861,0,12,71.8354,0,10000985,DE,CN,MODELER,Hongkong
-392,2012-08-25,FP-non GTC,100847,0,5,68.7418,0,10000581,DE,CN,ADMIN,Shanghai
-393,2013-07-22,Auction,156356,0,15,63.6314,0,10000140,CN,FR,ANALYST,Beijing
-394,2013-11-04,Auction,67698,0,16,15.6061,0,10000128,CN,UK,MODELER,Hongkong
-395,2013-03-01,FP-GTC,20485,0,-99,49.2253,0,10000722,CN,US,MODELER,Hongkong
-396,2013-12-03,FP-GTC,46575,0,-99,71.5261,0,10000796,CN,DE,ADMIN,Shanghai
-397,2013-03-25,FP-non GTC,60340,0,11,23.0796,0,10000605,JP,JP,ADMIN,Shanghai
-398,2012-11-16,FP-non GTC,99985,0,11,91.6223,0,10000619,UK,DE,ANALYST,Beijing
-399,2012-05-24,Auction,16509,0,16,97.7044,0,10000002,US,CN,ADMIN,Shanghai
-400,2012-04-04,ABIN,139973,3,13,16.7393,0,10000923,UK,CN,MODELER,Hongkong
-401,2012-07-20,FP-GTC,174106,3,13,8.8874,0,10000134,CN,DE,MODELER,Hongkong
-402,2013-09-12,Auction,33038,15,13,46.7475,0,10000154,US,FR,MODELER,Hongkong
-403,2012-06-12,ABIN,57990,0,11,33.1479,0,10000036,CN,DE,ADMIN,Shanghai
-404,2013-08-31,ABIN,46575,0,12,41.0635,0,10000310,DE,UK,ADMIN,Shanghai
-405,2012-12-18,Auction,1349,0,5,14.6328,0,10000296,FR,JP,MODELER,Hongkong
-406,2012-02-18,ABIN,16509,0,-99,76.3163,0,10000486,DE,CN,MODELER,Hongkong
-407,2013-07-02,Auction,3838,0,11,95.7402,0,10000963,JP,FR,ANALYST,Beijing
-408,2012-06-28,Auction,145970,0,16,41.1425,0,10000646,JP,JP,ADMIN,Shanghai
-409,2013-11-03,FP-GTC,12688,0,5,73.9106,0,10000357,JP,CN,MODELER,Hongkong
-410,2012-03-30,FP-non GTC,16509,0,5,39.5703,0,10000495,CN,DE,MODELER,Hongkong
-411,2012-08-18,FP-non GTC,75665,0,11,61.4928,0,10000522,JP,JP,MODELER,Hongkong
-412,2013-07-29,Others,156356,0,16,98.2405,0,10000417,JP,FR,ANALYST,Beijing
-413,2013-07-19,Others,32876,0,12,68.5148,0,10000306,CN,FR,ANALYST,Beijing
-414,2012-02-13,ABIN,175750,0,16,64.5444,0,10000274,UK,CN,ANALYST,Beijing
-415,2013-02-04,FP-non GTC,13836,0,-99,65.7663,0,10000511,DE,CN,ADMIN,Shanghai
-416,2013-07-24,FP-GTC,165888,0,16,91.7808,0,10000330,UK,JP,ADMIN,Shanghai
-417,2012-04-25,Others,41940,0,-99,6.5053,0,10000357,US,CN,MODELER,Hongkong
-418,2013-11-28,ABIN,106340,15,12,71.4264,0,10000155,FR,DE,ANALYST,Beijing
-419,2012-09-16,FP-non GTC,170083,3,-99,80.2442,0,10000690,US,JP,ANALYST,Beijing
-420,2012-05-10,FP-GTC,16145,0,14,11.0775,0,10000372,CN,US,ANALYST,Beijing
-421,2013-10-28,FP-non GTC,15687,0,16,65.9436,0,10000032,US,CN,ANALYST,Beijing
-422,2013-05-17,FP-non GTC,94847,0,13,37.352,0,10000044,FR,JP,ADMIN,Shanghai
-423,2013-05-31,FP-GTC,223,0,5,93.3181,0,10000365,CN,US,MODELER,Hongkong
-424,2012-01-07,FP-non GTC,73506,0,13,13.1225,0,10000218,JP,CN,ANALYST,Beijing
-425,2013-07-01,FP-GTC,64076,0,15,78.1094,0,10000081,FR,DE,ADMIN,Shanghai
-426,2013-07-26,Others,67698,0,11,14.9245,0,10000775,CN,FR,ANALYST,Beijing
-427,2013-03-02,Auction,75665,0,5,84.2445,0,10000162,UK,US,ANALYST,Beijing
-428,2012-01-13,FP-GTC,1120,3,16,43.8855,0,10000157,JP,CN,MODELER,Hongkong
-429,2012-06-02,ABIN,53064,0,12,17.36,0,10000091,CN,JP,ADMIN,Shanghai
-430,2012-02-23,ABIN,31387,3,14,43.1757,0,10000071,US,US,ADMIN,Shanghai
-431,2013-10-22,FP-non GTC,158798,0,15,10.9759,0,10000341,CN,UK,MODELER,Hongkong
-432,2013-05-23,FP-GTC,11848,0,-99,7.523,0,10000277,DE,DE,MODELER,Hongkong
-433,2013-07-25,FP-GTC,43479,0,14,13.262,0,10000500,CN,UK,MODELER,Hongkong
-434,2012-03-03,FP-non GTC,11848,0,14,95.0683,0,10000164,CN,JP,ADMIN,Shanghai
-435,2012-01-09,ABIN,11554,0,15,6.8777,0,10000785,JP,FR,ANALYST,Beijing
-436,2013-05-08,ABIN,80287,0,14,95.532,0,10000595,CN,JP,ANALYST,Beijing
-437,2013-07-26,FP-GTC,121153,0,12,28.7213,0,10000829,JP,CN,MODELER,Hongkong
-438,2012-11-27,FP-GTC,31673,0,14,7.8033,0,10000498,FR,JP,ANALYST,Beijing
-439,2013-06-04,ABIN,43398,0,15,76.0187,0,10000061,CN,FR,ANALYST,Beijing
-440,2012-10-05,ABIN,15687,0,13,87.1235,0,10000649,US,CN,MODELER,Hongkong
-441,2013-06-29,Auction,61323,0,14,78.4,0,10000765,JP,DE,ANALYST,Beijing
-442,2012-07-25,ABIN,216,0,12,43.1556,0,10000597,FR,UK,ANALYST,Beijing
-443,2013-01-03,FP-non GTC,121153,0,12,70.1009,0,10000201,CN,FR,MODELER,Hongkong
-444,2013-10-22,FP-non GTC,170302,15,12,92.5959,0,10000151,UK,DE,MODELER,Hongkong
-445,2012-02-03,FP-non GTC,155226,0,12,68.6486,0,10000870,DE,CN,MODELER,Hongkong
-446,2013-03-30,FP-GTC,139973,0,11,93.3324,0,10000585,JP,US,ANALYST,Beijing
-447,2012-11-21,Others,20865,0,11,68.0525,0,10000115,DE,US,ADMIN,Shanghai
-448,2012-11-09,ABIN,11848,0,13,66.3745,0,10000652,UK,US,ADMIN,Shanghai
-449,2012-10-22,Auction,2023,0,13,52.4918,0,10000836,CN,FR,ANALYST,Beijing
-450,2013-01-07,Auction,164261,0,-99,56.468,0,10000560,FR,FR,ANALYST,Beijing
-451,2012-01-05,Others,80053,0,-99,34.1305,0,10000905,CN,DE,ADMIN,Shanghai
-452,2012-08-27,FP-GTC,64076,0,14,3.0691,0,10000389,CN,DE,ADMIN,Shanghai
-453,2013-06-23,Others,139973,0,16,89.7673,0,10000636,US,JP,ANALYST,Beijing
-454,2013-09-13,Auction,67698,0,15,62.9192,0,10000596,CN,US,MODELER,Hongkong
-455,2012-08-18,FP-GTC,43398,0,12,45.3384,0,10000382,US,FR,ADMIN,Shanghai
-456,2012-10-27,FP-non GTC,1120,3,5,84.6466,0,10000487,FR,CN,ANALYST,Beijing
-457,2012-05-24,Auction,24541,0,14,56.7041,0,10000366,US,UK,ADMIN,Shanghai
-458,2013-02-12,Auction,64076,0,13,1.136,0,10000089,CN,GB,ADMIN,Shanghai
-459,2012-02-19,FP-non GTC,43398,0,14,7.2416,0,10000129,UK,CN,ANALYST,Beijing
-460,2012-07-30,ABIN,48027,0,11,41.6704,0,10000761,UK,UK,MODELER,Hongkong
-461,2013-10-04,FP-non GTC,37831,0,16,31.9567,0,10000610,UK,CN,MODELER,Hongkong
-462,2013-11-18,Auction,223,0,16,21.8155,0,10000079,UK,UK,ANALYST,Beijing
-463,2012-06-08,Others,80135,0,16,90.0166,0,10000478,FR,UK,MODELER,Hongkong
-464,2012-10-25,Others,159184,0,16,92.0436,0,10000166,FR,JP,ANALYST,Beijing
-465,2013-10-22,ABIN,13987,0,15,62.5546,0,10000592,CN,DE,ADMIN,Shanghai
-466,2013-11-01,ABIN,103324,15,16,14.9475,0,10000924,CN,US,ADMIN,Shanghai
-467,2013-03-21,FP-GTC,1120,3,-99,29.5252,0,10000758,CN,CN,ADMIN,Shanghai
-468,2012-03-13,Others,759,0,16,62.4158,0,10000810,CN,DE,MODELER,Hongkong
-469,2012-05-14,Auction,95672,0,16,92.0781,0,10000609,JP,JP,ANALYST,Beijing
-470,2013-09-28,FP-GTC,64076,0,12,37.3599,0,10000487,US,JP,ADMIN,Shanghai
-471,2013-10-09,ABIN,60606,3,13,48.9467,0,10000007,CN,US,ANALYST,Beijing
-472,2013-04-21,ABIN,26249,0,14,67.152,0,10000257,JP,UK,MODELER,Hongkong
-473,2013-05-08,FP-GTC,20886,0,13,19.5685,0,10000122,CN,CN,ANALYST,Beijing
-474,2013-12-29,ABIN,1357,0,12,89.9069,0,10000900,FR,CN,MODELER,Hongkong
-475,2013-02-14,FP-GTC,63889,0,16,74.5657,0,10000676,CN,GB,ANALYST,Beijing
-476,2012-02-25,Auction,88750,0,-99,92.3939,0,10000769,FR,CN,MODELER,Hongkong
-477,2012-06-22,Others,13836,0,14,77.1277,0,10000795,DE,JP,MODELER,Hongkong
-478,2012-01-30,FP-GTC,43479,0,15,48.2346,0,10000013,US,UK,ANALYST,Beijing
-479,2013-08-17,ABIN,57990,3,-99,87.0638,0,10000277,FR,DE,ADMIN,Shanghai
-480,2013-06-24,FP-GTC,1357,0,15,75.0985,0,10000056,CN,CN,ANALYST,Beijing
-481,2013-04-08,ABIN,57013,0,11,21.4485,0,10000195,JP,JP,ANALYST,Beijing
-482,2012-04-07,FP-non GTC,24541,0,-99,40.6197,0,10000313,CN,GB,ANALYST,Beijing
-483,2012-07-26,Others,963,0,16,99.8137,0,10000257,DE,US,ANALYST,Beijing
-484,2012-07-18,Others,15115,0,-99,9.9153,0,10000937,CN,JP,MODELER,Hongkong
-485,2012-01-04,Auction,63889,0,13,84.5004,0,10000467,UK,FR,MODELER,Hongkong
-486,2013-05-25,Auction,1120,3,14,40.3618,0,10000076,JP,CN,MODELER,Hongkong
-487,2013-03-30,FP-GTC,38238,0,12,94.987,0,10000997,UK,FR,ANALYST,Beijing
-488,2012-05-12,Auction,32876,0,-99,38.58,0,10000943,DE,CN,ANALYST,Beijing
-489,2012-11-21,FP-GTC,100847,0,14,7.7495,0,10000588,US,FR,MODELER,Hongkong
-490,2013-10-02,Auction,15868,0,5,92.2309,0,10000520,FR,UK,ADMIN,Shanghai
-491,2013-11-05,ABIN,31673,0,-99,75.9838,0,10000344,CN,US,ANALYST,Beijing
-492,2013-03-23,FP-non GTC,48904,0,-99,15.426,0,10000090,DE,FR,MODELER,Hongkong
-493,2012-12-27,FP-non GTC,43479,0,5,35.7689,0,10000066,US,CN,ANALYST,Beijing
-494,2013-01-11,FP-non GTC,223,0,12,5.9423,0,10000174,UK,DE,ANALYST,Beijing
-495,2012-05-25,Auction,50508,0,16,81.5853,0,10000337,US,CN,MODELER,Hongkong
-496,2012-09-08,Others,6762,0,15,11.8473,0,10000718,CN,GB,ANALYST,Beijing
-497,2013-07-08,Auction,139973,0,5,11.7025,0,10000537,FR,FR,ANALYST,Beijing
-498,2013-04-23,ABIN,32876,0,12,40.4116,0,10000798,CN,FR,ADMIN,Shanghai
-499,2013-03-22,Auction,2023,0,15,89.8093,0,10000662,UK,US,ANALYST,Beijing
-500,2012-11-01,Others,75708,3,11,95.9527,0,10000776,FR,JP,MODELER,Hongkong
-501,2012-01-29,ABIN,156356,0,16,64.6181,0,10000910,FR,JP,ADMIN,Shanghai
-502,2012-01-20,Others,2635,0,11,81.6196,0,10000893,US,CN,ANALYST,Beijing
-503,2012-05-27,FP-non GTC,94847,0,15,87.1713,0,10000121,JP,UK,ANALYST,Beijing
-504,2013-12-17,Others,156614,0,14,87.7791,0,10000531,US,FR,MODELER,Hongkong
-505,2013-03-05,ABIN,80135,0,16,64.8966,0,10000452,US,FR,MODELER,Hongkong
-506,2013-01-26,ABIN,156356,0,16,59.0108,0,10000671,CN,JP,ADMIN,Shanghai
-507,2012-01-08,FP-non GTC,57990,0,15,56.347,0,10000028,DE,JP,ADMIN,Shanghai
-508,2013-08-04,ABIN,13836,0,11,98.5679,0,10000481,JP,US,ADMIN,Shanghai
-509,2013-04-04,Others,63861,0,13,14.3911,0,10000944,CN,JP,ANALYST,Beijing
-510,2013-02-15,FP-GTC,2023,0,5,5.5878,0,10000816,CN,GB,MODELER,Hongkong
-511,2013-05-05,FP-non GTC,175750,0,-99,80.9471,0,10000727,FR,JP,MODELER,Hongkong
-512,2013-06-24,FP-GTC,38238,0,12,96.7825,0,10000202,CN,US,ANALYST,Beijing
-513,2013-11-04,ABIN,45333,0,14,57.954,0,10000767,DE,FR,ANALYST,Beijing
-514,2012-02-23,FP-non GTC,57990,0,5,16.479,0,10000146,FR,UK,ADMIN,Shanghai
-515,2013-01-13,ABIN,158798,0,11,45.5371,0,10000133,JP,US,ANALYST,Beijing
-516,2013-11-16,ABIN,73506,0,16,35.7207,0,10000304,CN,FR,ANALYST,Beijing
-517,2012-11-15,Auction,64076,0,15,66.0059,0,10000375,CN,DE,ANALYST,Beijing
-518,2012-01-03,ABIN,156614,0,15,84.8759,0,10000095,JP,UK,ADMIN,Shanghai
-519,2012-09-22,Auction,57990,0,14,42.7313,0,10000953,CN,CN,MODELER,Hongkong
-520,2013-11-03,FP-non GTC,67698,0,11,8.9322,0,10000913,JP,DE,MODELER,Hongkong
-521,2012-08-31,ABIN,1504,0,5,34.3706,0,10000748,FR,UK,ANALYST,Beijing
-522,2013-12-13,FP-GTC,15868,0,-99,18.3204,0,10000495,DE,FR,MODELER,Hongkong
-523,2012-07-20,ABIN,533,0,11,24.9451,0,10000237,CN,CN,MODELER,Hongkong
-524,2012-07-14,ABIN,41940,0,11,42.9796,0,10000328,UK,DE,ANALYST,Beijing
-525,2013-11-06,Others,32876,0,15,4.2693,0,10000383,US,FR,ADMIN,Shanghai
-526,2012-07-02,Auction,41940,0,12,19.2987,0,10000196,JP,CN,ADMIN,Shanghai
-527,2012-06-21,FP-GTC,20865,0,-99,36.5029,0,10000098,JP,FR,ANALYST,Beijing
-528,2012-09-19,ABIN,159184,0,15,65.9768,0,10000517,JP,DE,ANALYST,Beijing
-529,2012-02-11,Others,16145,0,14,41.4762,0,10000733,FR,CN,ANALYST,Beijing
-530,2012-07-19,Auction,63861,0,11,30.7294,0,10000351,UK,JP,ANALYST,Beijing
-531,2013-05-24,ABIN,1349,0,12,61.0346,0,10000078,JP,JP,MODELER,Hongkong
-532,2013-06-26,Auction,139973,3,11,49.3849,0,10000537,UK,DE,ADMIN,Shanghai
-533,2013-11-30,Others,1357,0,16,62.0388,0,10000532,CN,US,MODELER,Hongkong
-534,2012-11-01,Others,121153,0,5,64.8814,0,10000820,FR,US,ANALYST,Beijing
-535,2013-10-20,Auction,20485,0,5,88.9093,0,10000467,DE,US,MODELER,Hongkong
-536,2013-04-15,FP-GTC,43479,0,13,72.5969,0,10000352,UK,UK,MODELER,Hongkong
-537,2012-04-02,FP-GTC,33977,15,16,42.1845,0,10000614,UK,FR,ANALYST,Beijing
-538,2012-03-20,ABIN,2023,0,16,95.0254,0,10000014,US,CN,ADMIN,Shanghai
-539,2013-02-21,FP-non GTC,57990,0,5,25.0404,0,10000386,US,JP,ANALYST,Beijing
-540,2013-06-02,FP-non GTC,6762,0,12,60.3684,0,10000783,US,US,ADMIN,Shanghai
-541,2012-01-07,FP-GTC,759,0,11,80.172,0,10000952,JP,CN,MODELER,Hongkong
-542,2012-12-01,FP-non GTC,533,0,12,47.1653,0,10000550,DE,CN,ADMIN,Shanghai
-543,2012-11-03,ABIN,99985,0,16,40.828,0,10000629,US,UK,MODELER,Hongkong
-544,2013-10-15,FP-GTC,64076,0,15,55.9541,0,10000531,UK,CN,ANALYST,Beijing
-545,2013-12-30,Auction,80135,0,13,13.2503,0,10000425,CN,US,ADMIN,Shanghai
-546,2012-06-28,FP-GTC,15868,0,12,76.836,0,10000557,JP,CN,MODELER,Hongkong
-547,2013-04-07,FP-GTC,10866,0,16,37.754,0,10000810,CN,GB,ADMIN,Shanghai
-548,2013-08-03,FP-GTC,139255,15,13,70.8704,0,10000514,CN,GB,MODELER,Hongkong
-549,2012-07-23,ABIN,121153,0,5,65.6362,0,10000166,FR,DE,MODELER,Hongkong
-550,2013-05-04,FP-GTC,31519,0,5,38.9751,0,10000932,CN,FR,ANALYST,Beijing
-551,2013-01-27,ABIN,175750,3,-99,81.7736,0,10000529,UK,FR,ADMIN,Shanghai
-552,2013-03-30,ABIN,11554,0,15,37.8703,0,10000509,DE,CN,MODELER,Hongkong
-553,2012-06-03,FP-GTC,20485,0,-99,62.4729,0,10000404,FR,DE,MODELER,Hongkong
-554,2012-05-09,FP-non GTC,63861,0,11,35.1334,0,10000175,CN,JP,ADMIN,Shanghai
-555,2013-12-25,FP-non GTC,6762,0,12,95.0363,0,10000101,DE,US,ANALYST,Beijing
-556,2012-11-18,FP-GTC,175750,0,5,95.8938,0,10000537,UK,UK,ADMIN,Shanghai
-557,2013-01-07,FP-non GTC,57784,0,14,0.2995,0,10000847,JP,CN,ADMIN,Shanghai
-558,2012-03-11,Auction,63861,0,12,58.1028,0,10000912,US,UK,ANALYST,Beijing
-559,2012-03-23,Others,80287,0,14,24.79,0,10000967,CN,US,ADMIN,Shanghai
-560,2012-03-19,ABIN,99985,0,16,5.9564,0,10000684,UK,FR,ADMIN,Shanghai
-561,2013-11-24,Auction,20886,0,15,28.1384,0,10000239,FR,CN,ADMIN,Shanghai
-562,2012-04-04,FP-GTC,100847,0,11,91.4446,0,10000743,CN,CN,ADMIN,Shanghai
-563,2013-12-15,ABIN,44079,0,16,39.686,0,10000476,DE,FR,MODELER,Hongkong
-564,2013-10-06,FP-GTC,132939,0,12,20.8855,0,10000854,JP,DE,ADMIN,Shanghai
-565,2013-12-07,Others,25147,0,14,16.4357,0,10000198,UK,CN,ADMIN,Shanghai
-566,2012-02-04,Others,158798,0,13,44.5451,0,10000543,FR,CN,MODELER,Hongkong
-567,2013-11-07,FP-GTC,10866,0,16,8.5249,0,10000105,DE,UK,ADMIN,Shanghai
-568,2012-08-04,FP-GTC,2635,0,12,11.7572,0,10000382,UK,JP,ADMIN,Shanghai
-569,2012-08-14,Auction,152801,0,15,46.6818,0,10000205,CN,US,ADMIN,Shanghai
-570,2013-02-25,Auction,50508,0,15,37.8443,0,10000644,DE,FR,MODELER,Hongkong
-571,2013-10-09,ABIN,223,0,13,58.8049,0,10000768,US,JP,ANALYST,Beijing
-572,2012-01-10,Auction,20485,0,11,92.2997,0,10000975,DE,US,ADMIN,Shanghai
-573,2013-05-03,FP-non GTC,37831,0,12,15.9399,0,10000280,CN,CN,MODELER,Hongkong
-574,2013-11-12,ABIN,73506,0,12,13.9272,0,10000332,UK,FR,ANALYST,Beijing
-575,2013-08-16,Others,164,0,12,39.2371,0,10000887,DE,FR,MODELER,Hongkong
-576,2013-10-27,FP-non GTC,15868,0,16,51.4769,0,10000303,UK,US,MODELER,Hongkong
-577,2013-04-27,FP-non GTC,80287,0,15,90.8971,0,10000207,DE,CN,MODELER,Hongkong
-578,2013-11-06,FP-non GTC,11554,0,12,26.0123,0,10000855,FR,CN,ADMIN,Shanghai
-579,2013-11-25,Others,6762,0,14,96.0198,0,10000418,JP,CN,ANALYST,Beijing
-580,2012-08-09,ABIN,80135,0,15,89.0544,0,10000861,JP,DE,MODELER,Hongkong
-581,2013-09-28,ABIN,16509,0,12,90.2997,0,10000520,US,US,MODELER,Hongkong
-582,2012-03-19,FP-GTC,43479,0,-99,93.8319,0,10000045,US,US,MODELER,Hongkong
-583,2012-05-25,FP-GTC,139973,0,16,8.9816,0,10000684,JP,US,ADMIN,Shanghai
-584,2013-04-04,Auction,25147,0,11,43.4557,0,10000801,UK,CN,MODELER,Hongkong
-585,2013-07-07,Auction,67698,0,14,59.3634,0,10000305,UK,DE,ADMIN,Shanghai
-586,2013-10-27,ABIN,63861,0,14,48.1526,0,10000963,UK,CN,MODELER,Hongkong
-587,2012-05-31,Auction,130,0,5,1.056,0,10000357,CN,CN,MODELER,Hongkong
-588,2012-08-21,Auction,13836,0,16,14.4247,0,10000278,JP,US,ADMIN,Shanghai
-589,2013-07-24,Auction,15568,15,14,14.5748,0,10000590,CN,CN,ADMIN,Shanghai
-590,2013-04-05,ABIN,12688,0,12,2.0636,0,10000951,CN,CN,ADMIN,Shanghai
-591,2013-02-27,FP-non GTC,73506,0,14,2.7139,0,10000134,JP,JP,ADMIN,Shanghai
-592,2013-06-16,FP-non GTC,164,0,5,59.4198,0,10000745,DE,US,ANALYST,Beijing
-593,2012-04-01,Others,20213,0,11,77.849,0,10000929,FR,UK,ANALYST,Beijing
-594,2013-12-02,FP-non GTC,155226,0,16,71.11,0,10000433,CN,CN,ADMIN,Shanghai
-595,2013-06-07,Auction,158798,0,15,98.6517,0,10000320,US,DE,ADMIN,Shanghai
-596,2012-11-25,ABIN,31519,0,12,68.8974,0,10000726,CN,DE,ADMIN,Shanghai
-597,2013-04-17,FP-GTC,57013,0,14,49.4405,0,10000050,CN,CN,ADMIN,Shanghai
-598,2013-03-18,FP-non GTC,175750,0,13,2.3784,0,10000559,US,FR,ANALYST,Beijing
-599,2013-08-13,Others,62179,0,11,36.494,0,10000652,CN,JP,MODELER,Hongkong
-600,2012-10-15,ABIN,175750,0,14,42.7269,0,10000560,CN,DE,MODELER,Hongkong
-601,2012-01-08,Others,6762,0,5,58.5212,0,10000829,FR,CN,ADMIN,Shanghai
-602,2013-05-20,FP-non GTC,216,0,14,16.9644,0,10000104,CN,DE,ADMIN,Shanghai
-603,2012-12-07,Others,51582,0,5,6.0617,0,10000228,DE,CN,ANALYST,Beijing
-604,2013-12-04,ABIN,57013,0,16,48.2921,0,10000347,UK,UK,MODELER,Hongkong
-605,2013-12-17,ABIN,759,0,14,12.8117,0,10000161,CN,DE,ANALYST,Beijing
-606,2012-02-08,FP-non GTC,24760,0,13,11.319,0,10000938,CN,US,MODELER,Hongkong
-607,2013-01-03,FP-non GTC,15568,15,14,0.3508,0,10000964,UK,CN,ADMIN,Shanghai
-608,2013-04-21,Others,87118,0,12,9.5385,0,10000949,UK,JP,ADMIN,Shanghai
-609,2013-11-13,Others,36250,0,12,0.9029,0,10000532,UK,JP,ANALYST,Beijing
-610,2013-03-18,FP-GTC,164,0,12,3.7727,0,10000237,FR,FR,ADMIN,Shanghai
-611,2013-06-29,Others,15868,0,11,23.3421,0,10000671,FR,FR,MODELER,Hongkong
-612,2013-12-25,Others,25147,0,5,99.4168,0,10000708,JP,JP,ANALYST,Beijing
-613,2012-10-06,FP-GTC,533,0,12,40.5069,0,10000295,JP,US,MODELER,Hongkong
-614,2013-02-21,ABIN,216,0,14,84.3818,0,10000637,UK,DE,ADMIN,Shanghai
-615,2012-08-27,FP-non GTC,67698,0,16,7.0299,0,10000671,DE,CN,MODELER,Hongkong
-616,2013-04-13,Others,51582,0,13,67.973,0,10000778,CN,FR,ANALYST,Beijing
-617,2013-07-10,FP-GTC,139973,0,13,24.8423,0,10000253,UK,US,ADMIN,Shanghai
-618,2013-11-02,ABIN,1349,0,14,56.631,0,10000922,DE,DE,ANALYST,Beijing
-619,2013-05-11,Others,26249,0,16,49.7279,0,10000610,CN,FR,ANALYST,Beijing
-620,2013-01-17,FP-non GTC,118687,3,11,34.6913,0,10000002,JP,UK,MODELER,Hongkong
-621,2012-07-02,Others,148324,15,-99,90.6687,0,10000613,US,UK,ANALYST,Beijing
-622,2013-07-14,ABIN,41940,0,-99,60.2733,0,10000145,FR,FR,MODELER,Hongkong
-623,2013-06-13,Auction,63889,0,11,87.9644,0,10000920,CN,JP,MODELER,Hongkong
-624,2013-05-05,FP-non GTC,1120,3,16,99.4791,0,10000720,CN,FR,ADMIN,Shanghai
-625,2012-03-30,Others,4943,0,14,56.9643,0,10000105,US,CN,ANALYST,Beijing
-626,2012-01-13,FP-non GTC,139973,3,-99,15.838,0,10000587,CN,GB,ANALYST,Beijing
-627,2012-09-02,ABIN,12688,0,13,69.4513,0,10000756,CN,CN,ANALYST,Beijing
-628,2013-08-08,Others,121153,0,11,29.2318,0,10000289,JP,CN,ADMIN,Shanghai
-629,2013-03-09,Others,99985,0,15,14.7661,0,10000453,US,FR,MODELER,Hongkong
-630,2012-10-17,FP-non GTC,25147,0,11,96.1909,0,10000054,UK,US,ADMIN,Shanghai
-631,2012-01-20,Others,73506,0,14,56.0157,0,10000909,US,CN,ADMIN,Shanghai
-632,2012-04-15,FP-GTC,16145,0,12,94.6354,0,10000551,UK,US,ANALYST,Beijing
-633,2013-08-08,Others,3838,0,13,85.7695,0,10000464,CN,US,ANALYST,Beijing
-634,2013-01-21,Others,139973,0,13,64.5021,0,10000107,US,FR,MODELER,Hongkong
-635,2012-06-17,Others,139973,0,-99,72.8065,0,10000495,CN,FR,MODELER,Hongkong
-636,2013-12-31,Others,20886,0,15,91.2326,0,10000746,DE,US,MODELER,Hongkong
-637,2012-02-11,FP-non GTC,4943,0,14,28.3146,0,10000649,CN,JP,ANALYST,Beijing
-638,2013-10-01,Auction,155226,0,15,72.2196,0,10000576,DE,DE,MODELER,Hongkong
-639,2012-08-25,ABIN,223,0,15,17.6408,0,10000661,CN,US,ANALYST,Beijing
-640,2012-07-10,Others,67698,0,15,70.9451,0,10000115,CN,DE,ANALYST,Beijing
-641,2013-12-27,FP-non GTC,26262,0,13,64.5694,0,10000740,FR,DE,MODELER,Hongkong
-642,2012-02-05,Auction,32996,15,12,9.9521,0,10000833,UK,US,ANALYST,Beijing
-643,2012-11-07,FP-non GTC,25147,0,16,83.3886,0,10000494,FR,DE,MODELER,Hongkong
-644,2014-01-01,Others,45333,0,16,19.2606,0,10000869,US,JP,ADMIN,Shanghai
-645,2013-10-05,Auction,50508,0,14,39.1465,0,10000904,UK,UK,ADMIN,Shanghai
-646,2012-02-25,FP-GTC,37831,0,11,12.4616,0,10000680,US,FR,ANALYST,Beijing
-647,2012-05-16,Others,31519,0,12,66.9268,0,10000548,US,DE,ADMIN,Shanghai
-648,2013-11-08,FP-GTC,100847,0,11,47.751,0,10000699,JP,JP,ADMIN,Shanghai
-649,2012-03-15,ABIN,106246,0,16,96.1592,0,10000922,DE,DE,ADMIN,Shanghai
-650,2013-05-15,Auction,64076,0,15,37.743,0,10000148,CN,UK,ADMIN,Shanghai
-651,2012-11-03,Auction,61323,0,15,14.3851,0,10000353,CN,US,ADMIN,Shanghai
-652,2012-07-28,ABIN,175750,0,-99,45.5415,0,10000869,CN,CN,ANALYST,Beijing
-653,2013-06-26,FP-non GTC,95672,0,14,90.732,0,10000507,JP,FR,ANALYST,Beijing
-654,2012-09-11,Others,223,0,15,10.5185,0,10000705,UK,US,ANALYST,Beijing
-655,2012-09-24,FP-GTC,43479,0,16,3.4611,0,10000991,CN,CN,ANALYST,Beijing
-656,2013-09-13,FP-GTC,100847,0,-99,51.0213,0,10000871,JP,FR,ANALYST,Beijing
-657,2013-07-01,Others,132939,0,16,14.6584,0,10000859,DE,FR,ADMIN,Shanghai
-658,2012-06-13,Others,26262,0,-99,46.0446,0,10000041,CN,US,ANALYST,Beijing
-659,2013-10-26,Auction,3838,0,12,24.8196,0,10000561,CN,GB,ADMIN,Shanghai
-660,2012-03-05,Others,26262,0,13,66.7748,0,10000859,DE,FR,ANALYST,Beijing
-661,2012-12-10,FP-GTC,20485,0,12,52.3473,0,10000171,DE,JP,ANALYST,Beijing
-662,2013-11-15,Others,2023,0,5,84.6955,0,10000451,UK,CN,ADMIN,Shanghai
-663,2013-12-12,ABIN,80135,0,11,95.0112,0,10000718,FR,FR,ANALYST,Beijing
-664,2013-04-16,ABIN,106340,15,16,14.6367,0,10000822,US,UK,ANALYST,Beijing
-665,2012-03-10,Auction,161567,15,16,5.28,0,10000081,JP,JP,ANALYST,Beijing
-666,2013-09-19,Auction,11848,0,11,27.6166,0,10000388,FR,JP,ADMIN,Shanghai
-667,2013-12-28,FP-GTC,216,0,15,90.1257,0,10000122,CN,US,MODELER,Hongkong
-668,2012-01-26,ABIN,314,0,12,3.5634,0,10000912,CN,CN,ANALYST,Beijing
-669,2013-12-13,FP-GTC,158798,0,5,41.6652,0,10000485,CN,DE,MODELER,Hongkong
-670,2013-09-26,FP-non GTC,80135,0,11,20.5746,0,10000138,US,FR,ANALYST,Beijing
-671,2012-01-20,Auction,62179,0,14,94.2904,0,10000310,US,CN,ANALYST,Beijing
-672,2013-04-20,ABIN,963,0,5,68.3604,0,10000571,US,US,ADMIN,Shanghai
-673,2012-02-03,FP-GTC,164,0,11,94.0501,0,10000120,CN,CN,MODELER,Hongkong
-674,2013-10-14,Others,2023,0,12,84.9792,0,10000371,US,UK,MODELER,Hongkong
-675,2013-08-19,FP-GTC,57990,3,14,57.0343,0,10000171,JP,JP,MODELER,Hongkong
-676,2012-06-18,Others,963,0,12,44.4186,0,10000343,JP,DE,MODELER,Hongkong
-677,2012-10-18,Others,31519,0,12,50.6753,0,10000875,FR,DE,MODELER,Hongkong
-678,2013-07-09,Others,36250,0,16,99.5251,0,10000446,FR,UK,MODELER,Hongkong
-679,2012-01-19,ABIN,38238,0,14,0.1259,0,10000242,CN,JP,ADMIN,Shanghai
-680,2013-05-19,FP-non GTC,13836,0,16,92.7668,0,10000895,CN,JP,MODELER,Hongkong
-681,2013-01-29,Others,95672,0,5,13.6012,0,10000843,FR,DE,ADMIN,Shanghai
-682,2013-01-30,ABIN,67698,0,5,13.9968,0,10000424,CN,FR,MODELER,Hongkong
-683,2012-09-02,FP-GTC,223,0,-99,38.0021,0,10000803,UK,UK,ADMIN,Shanghai
-684,2012-05-11,Auction,11848,0,13,7.191,0,10000964,US,CN,ADMIN,Shanghai
-685,2013-05-14,FP-non GTC,759,0,16,43.172,0,10000123,JP,JP,ANALYST,Beijing
-686,2013-03-06,ABIN,3838,0,16,59.8866,0,10000653,DE,UK,ADMIN,Shanghai
-687,2012-08-23,FP-GTC,20213,0,16,91.3442,0,10000615,JP,JP,ANALYST,Beijing
-688,2013-03-24,FP-GTC,4943,0,-99,18.4365,0,10000718,DE,UK,MODELER,Hongkong
-689,2012-01-26,FP-non GTC,11554,0,14,41.6729,0,10000174,JP,FR,ADMIN,Shanghai
-690,2013-10-07,Others,108782,15,14,14.913,0,10000643,CN,GB,ADMIN,Shanghai
-691,2013-07-25,Others,13987,0,-99,28.7021,0,10000154,UK,US,MODELER,Hongkong
-692,2013-11-08,FP-non GTC,31673,0,13,83.8884,0,10000059,JP,FR,MODELER,Hongkong
-693,2013-01-06,ABIN,82494,15,12,74.4582,0,10000023,FR,FR,MODELER,Hongkong
-694,2013-01-21,FP-non GTC,13987,0,11,72.4276,0,10000541,FR,US,ANALYST,Beijing
-695,2013-11-22,Auction,67698,0,11,53.1908,0,10000553,FR,JP,ANALYST,Beijing
-696,2012-02-02,FP-non GTC,175750,0,12,79.116,0,10000121,JP,CN,ANALYST,Beijing
-697,2012-10-14,FP-GTC,24760,0,11,70.5894,0,10000677,DE,CN,ADMIN,Shanghai
-698,2012-10-20,ABIN,73506,0,11,3.7214,0,10000076,CN,JP,ANALYST,Beijing
-699,2013-12-01,Others,16145,0,15,54.8674,0,10000092,DE,CN,MODELER,Hongkong
-700,2012-11-07,FP-non GTC,53064,0,14,53.4385,0,10000267,CN,JP,MODELER,Hongkong
-701,2012-04-20,FP-non GTC,53064,0,15,76.5825,0,10000551,JP,DE,ANALYST,Beijing
-702,2012-11-18,Auction,50677,0,11,44.5149,0,10000924,CN,CN,MODELER,Hongkong
-703,2013-07-31,FP-GTC,51582,0,14,86.5325,0,10000652,UK,CN,MODELER,Hongkong
-704,2012-12-25,Others,31387,3,13,79.7624,0,10000495,JP,CN,ADMIN,Shanghai
-705,2012-08-10,ABIN,2635,0,12,54.5975,0,10000453,FR,CN,ADMIN,Shanghai
-706,2012-06-09,Others,31519,0,15,20.1828,0,10000226,CN,US,ANALYST,Beijing
-707,2012-09-16,Others,44079,0,16,46.0626,0,10000193,FR,US,ANALYST,Beijing
-708,2012-04-23,Others,16145,0,11,60.2064,0,10000058,US,CN,ANALYST,Beijing
-709,2012-01-03,Others,164,0,15,94.1749,0,10000509,FR,UK,ADMIN,Shanghai
-710,2012-05-16,FP-GTC,13987,0,15,5.6834,0,10000052,UK,DE,ADMIN,Shanghai
-711,2012-07-24,FP-non GTC,16145,0,15,8.1625,0,10000036,UK,UK,ADMIN,Shanghai
-712,2013-01-01,FP-non GTC,32996,15,15,75.5057,0,10000393,CN,US,ADMIN,Shanghai
-713,2013-01-28,FP-non GTC,155226,0,16,49.2395,0,10000966,JP,US,ANALYST,Beijing
-714,2013-03-19,FP-GTC,20485,0,5,57.4433,0,10000138,US,CN,ADMIN,Shanghai
-715,2013-02-03,FP-GTC,57784,0,5,11.8152,0,10000731,US,DE,ADMIN,Shanghai
-716,2012-01-02,Others,53064,0,-99,45.8162,0,10000785,CN,UK,ANALYST,Beijing
-717,2013-02-23,ABIN,16145,0,14,25.1092,0,10000582,CN,FR,ANALYST,Beijing
-718,2013-04-19,Auction,159184,0,12,85.351,0,10000422,CN,DE,ANALYST,Beijing
-719,2012-10-12,FP-non GTC,139973,0,11,95.7331,0,10000791,FR,UK,ANALYST,Beijing
-720,2012-04-20,FP-non GTC,87118,0,16,15.2148,0,10000621,CN,UK,ADMIN,Shanghai
-721,2013-04-30,Auction,53064,0,5,89.5035,0,10000377,JP,DE,MODELER,Hongkong
-722,2013-10-24,FP-non GTC,73506,0,12,84.0199,0,10000503,UK,UK,ANALYST,Beijing
-723,2012-01-08,Auction,63861,0,13,74.886,0,10000589,JP,DE,ADMIN,Shanghai
-724,2012-05-21,Others,63861,3,16,63.7247,0,10000730,FR,DE,ANALYST,Beijing
-725,2013-01-29,Auction,24541,0,15,22.2189,0,10000167,DE,CN,ANALYST,Beijing
-726,2012-02-08,Auction,533,0,5,53.5867,0,10000564,UK,FR,MODELER,Hongkong
-727,2012-08-11,FP-non GTC,174053,3,13,0.5792,0,10000568,FR,JP,ANALYST,Beijing
-728,2012-07-05,FP-GTC,20886,0,12,31.1464,0,10000806,JP,UK,MODELER,Hongkong
-729,2012-01-08,Auction,156356,0,5,7.4293,0,10000638,DE,US,MODELER,Hongkong
-730,2012-02-14,Others,65,0,14,62.6745,0,10000253,FR,UK,ADMIN,Shanghai
-731,2013-03-25,FP-non GTC,48027,0,-99,53.489,0,10000899,CN,GB,MODELER,Hongkong
-732,2012-09-30,Others,57013,0,12,75.9109,0,10000274,US,JP,MODELER,Hongkong
-733,2013-09-01,ABIN,32876,0,12,75.0498,0,10000086,FR,UK,ADMIN,Shanghai
-734,2013-11-11,FP-GTC,164,0,12,36.6051,0,10000521,JP,US,MODELER,Hongkong
-735,2012-02-18,FP-GTC,57013,0,12,14.3117,0,10000763,FR,UK,ANALYST,Beijing
-736,2013-11-23,ABIN,139973,0,15,58.3344,0,10000787,DE,FR,ANALYST,Beijing
-737,2012-03-21,FP-non GTC,41940,0,15,38.2502,0,10000342,US,DE,MODELER,Hongkong
-738,2012-02-24,Auction,57990,0,5,73.5795,0,10000175,CN,FR,ANALYST,Beijing
-739,2013-07-20,Auction,88750,0,-99,58.2532,0,10000122,FR,UK,ANALYST,Beijing
-740,2012-10-17,Others,43479,0,13,67.9585,0,10000516,CN,DE,ANALYST,Beijing
-741,2012-11-03,FP-non GTC,118687,3,13,90.9173,0,10000957,DE,DE,ADMIN,Shanghai
-742,2012-10-22,FP-GTC,60340,0,14,68.5877,0,10000502,FR,CN,ANALYST,Beijing
-743,2013-04-25,FP-GTC,11554,0,5,60.828,0,10000074,FR,FR,ADMIN,Shanghai
-744,2012-10-23,FP-GTC,24760,0,13,6.0732,0,10000138,US,CN,ANALYST,Beijing
-745,2013-04-29,ABIN,175750,0,11,8.0341,0,10000077,UK,CN,ADMIN,Shanghai
-746,2012-05-06,Auction,106340,15,14,8.0384,0,10000234,CN,CN,MODELER,Hongkong
-747,2012-07-15,ABIN,57784,0,14,27.1882,0,10000729,UK,FR,MODELER,Hongkong
-748,2012-10-15,Auction,67698,0,-99,63.179,0,10000226,UK,US,MODELER,Hongkong
-749,2013-03-22,FP-non GTC,57013,0,14,27.7251,0,10000658,FR,CN,ADMIN,Shanghai
-750,2013-08-12,FP-non GTC,11848,0,13,38.5597,0,10000020,FR,CN,ANALYST,Beijing
-751,2012-07-14,FP-GTC,80053,0,-99,81.0002,0,10000850,UK,JP,ADMIN,Shanghai
-752,2012-08-12,FP-non GTC,38238,0,11,58.6987,0,10000377,DE,FR,ANALYST,Beijing
-753,2013-09-09,FP-GTC,106246,0,11,5.0352,0,10000594,CN,JP,MODELER,Hongkong
-754,2013-02-11,FP-non GTC,57784,0,12,80.842,0,10000657,CN,CN,ADMIN,Shanghai
-755,2013-03-09,Others,175750,0,14,87.9884,0,10000152,CN,FR,MODELER,Hongkong
-756,2013-12-18,FP-non GTC,20485,0,14,74.4627,0,10000272,JP,US,MODELER,Hongkong
-757,2013-03-16,FP-non GTC,106246,0,5,64.1494,0,10000459,FR,FR,MODELER,Hongkong
-758,2012-09-06,FP-non GTC,80135,0,13,30.1506,0,10000269,CN,JP,MODELER,Hongkong
-759,2013-06-18,FP-non GTC,80135,0,-99,75.5826,0,10000706,JP,CN,ANALYST,Beijing
-760,2013-03-16,FP-GTC,156614,0,15,36.7157,0,10000761,US,UK,MODELER,Hongkong
-761,2012-11-07,Others,1349,0,15,96.7575,0,10000612,UK,CN,ANALYST,Beijing
-762,2012-11-25,ABIN,95173,0,5,61.1186,0,10000364,CN,UK,MODELER,Hongkong
-763,2013-08-10,ABIN,31673,0,11,63.4095,0,10000421,CN,JP,ADMIN,Shanghai
-764,2012-02-17,ABIN,88750,0,14,87.8624,0,10000306,DE,CN,MODELER,Hongkong
-765,2013-03-29,ABIN,139973,0,16,9.1685,0,10000089,UK,US,MODELER,Hongkong
-766,2012-12-27,ABIN,121153,0,12,88.7482,0,10000726,DE,FR,MODELER,Hongkong
-767,2013-10-13,FP-GTC,67698,0,16,20.8225,0,10000504,US,UK,MODELER,Hongkong
-768,2012-09-26,ABIN,2023,0,11,83.6499,0,10000641,CN,UK,MODELER,Hongkong
-769,2012-08-01,Others,139973,0,-99,1.0542,0,10000202,CN,GB,MODELER,Hongkong
-770,2012-03-02,ABIN,113802,15,5,23.4439,0,10000068,FR,UK,MODELER,Hongkong
-771,2012-10-25,Others,10866,0,11,60.7453,0,10000770,FR,US,ADMIN,Shanghai
-772,2013-01-07,FP-non GTC,20485,0,16,16.4177,0,10000698,US,JP,ADMIN,Shanghai
-773,2012-03-18,FP-non GTC,46575,0,15,55.2768,0,10000962,JP,FR,MODELER,Hongkong
-774,2012-07-09,FP-GTC,106246,0,14,99.6346,0,10000563,DE,DE,MODELER,Hongkong
-775,2012-09-26,FP-GTC,314,0,13,45.8302,0,10000769,DE,UK,ANALYST,Beijing
-776,2012-01-14,FP-non GTC,15868,0,16,47.5496,0,10000869,CN,CN,ADMIN,Shanghai
-777,2012-01-01,ABIN,63861,0,13,76.1393,0,10000028,JP,UK,ADMIN,Shanghai
-778,2012-08-15,FP-GTC,26249,0,5,40.7448,0,10000419,JP,UK,ADMIN,Shanghai
-779,2012-09-24,FP-non GTC,43398,0,12,54.0864,0,10000688,CN,US,MODELER,Hongkong
-780,2013-10-13,Others,533,0,-99,58.0312,0,10000658,UK,JP,MODELER,Hongkong
-781,2012-07-13,FP-GTC,148324,15,11,71.6067,0,10000006,UK,FR,ADMIN,Shanghai
-782,2012-01-21,FP-GTC,32996,15,11,86.8077,0,10000928,DE,FR,ADMIN,Shanghai
-783,2012-04-04,Others,63861,3,16,85.2671,0,10000648,JP,UK,MODELER,Hongkong
-784,2012-10-20,FP-non GTC,31519,0,13,99.193,0,10000469,UK,CN,ANALYST,Beijing
-785,2013-12-28,FP-GTC,1504,0,5,14.9821,0,10000342,DE,FR,ANALYST,Beijing
-786,2013-06-19,Others,25147,0,5,77.4671,0,10000212,FR,CN,ANALYST,Beijing
-787,2013-05-04,Others,13836,0,11,13.4655,0,10000331,CN,DE,MODELER,Hongkong
-788,2012-06-28,ABIN,145970,0,15,74.3304,0,10000900,US,CN,ANALYST,Beijing
-789,2012-12-24,FP-non GTC,156614,0,12,79.4508,0,10000743,JP,DE,MODELER,Hongkong
-790,2013-07-17,FP-GTC,139973,0,13,30.0555,0,10000949,CN,DE,ADMIN,Shanghai
-791,2013-11-23,Others,31519,3,11,9.0845,0,10000883,US,UK,MODELER,Hongkong
-792,2013-01-15,Others,164261,0,12,31.5563,0,10000029,FR,US,ANALYST,Beijing
-793,2012-04-15,FP-non GTC,20213,0,-99,55.6917,0,10000513,US,DE,ANALYST,Beijing
-794,2013-01-20,FP-non GTC,24760,0,15,71.7279,0,10000274,UK,CN,ANALYST,Beijing
-795,2012-11-13,FP-GTC,95173,0,5,95.7043,0,10000418,UK,CN,ANALYST,Beijing
-796,2012-09-03,ABIN,57990,0,12,1.5845,0,10000703,CN,JP,ANALYST,Beijing
-797,2012-01-02,FP-non GTC,57990,3,16,12.3706,0,10000090,UK,UK,ADMIN,Shanghai
-798,2013-12-06,Auction,67703,3,5,70.4134,0,10000753,CN,CN,MODELER,Hongkong
-799,2012-06-09,Others,50677,0,12,88.7297,0,10000990,FR,UK,MODELER,Hongkong
-800,2012-05-17,ABIN,31519,0,14,37.707,0,10000326,JP,CN,ADMIN,Shanghai
-801,2012-03-03,Others,156356,0,16,50.7844,0,10000693,CN,DE,MODELER,Hongkong
-802,2012-05-21,Auction,44079,0,5,86.759,0,10000795,UK,US,ADMIN,Shanghai
-803,2013-10-15,Auction,26262,0,15,56.3327,0,10000077,US,JP,MODELER,Hongkong
-804,2013-12-27,ABIN,20213,0,13,96.1815,0,10000195,JP,FR,ADMIN,Shanghai
-805,2012-02-15,ABIN,314,0,5,6.5869,0,10000753,UK,CN,ANALYST,Beijing
-806,2012-08-17,FP-non GTC,6762,0,15,41.0782,0,10000797,US,FR,ADMIN,Shanghai
-807,2013-04-29,Auction,145970,0,15,11.0876,0,10000208,UK,DE,ADMIN,Shanghai
-808,2013-10-27,Auction,80053,0,14,81.7435,0,10000310,UK,CN,ADMIN,Shanghai
-809,2012-12-21,FP-GTC,63861,0,13,57.9491,0,10000971,CN,JP,MODELER,Hongkong
-810,2013-07-29,ABIN,45333,0,12,33.5405,0,10000475,FR,UK,ADMIN,Shanghai
-811,2012-04-18,Auction,64076,0,13,83.3621,0,10000697,UK,US,ANALYST,Beijing
-812,2012-12-14,FP-non GTC,63889,0,16,0.964,0,10000607,JP,CN,ANALYST,Beijing
-813,2013-06-07,Auction,145970,0,13,6.1316,0,10000450,DE,JP,ANALYST,Beijing
-814,2012-11-27,Others,164,0,15,53.7718,0,10000305,CN,CN,ADMIN,Shanghai
-815,2012-08-03,ABIN,61323,0,15,62.2945,0,10000214,JP,CN,ANALYST,Beijing
-816,2012-07-07,ABIN,75665,0,15,77.0551,0,10000094,CN,GB,ANALYST,Beijing
-817,2012-08-06,FP-non GTC,99985,0,13,39.1253,0,10000609,US,DE,MODELER,Hongkong
-818,2012-10-01,Auction,759,0,15,69.179,0,10000199,US,DE,MODELER,Hongkong
-819,2012-03-22,Auction,20865,0,5,40.78,0,10000392,FR,US,MODELER,Hongkong
-820,2012-02-06,FP-non GTC,132939,0,11,66.8705,0,10000207,US,CN,ADMIN,Shanghai
-821,2012-10-17,FP-non GTC,63861,3,14,35.8018,0,10000096,DE,CN,ANALYST,Beijing
-822,2013-02-21,Others,41940,0,5,87.4721,0,10000858,CN,CN,MODELER,Hongkong
-823,2012-11-16,FP-GTC,57784,0,15,96.2799,0,10000537,FR,CN,ADMIN,Shanghai
-824,2012-01-10,Others,158666,15,11,7.4077,0,10000190,FR,JP,ADMIN,Shanghai
-825,2013-10-29,FP-non GTC,65,0,-99,21.3439,0,10000182,UK,FR,ADMIN,Shanghai
-826,2013-07-30,Auction,103178,15,-99,94.8679,0,10000943,DE,US,ADMIN,Shanghai
-827,2012-08-05,FP-non GTC,175750,0,14,10.098,0,10000212,CN,JP,ADMIN,Shanghai
-828,2012-07-29,ABIN,24760,0,13,44.527,0,10000168,JP,FR,ANALYST,Beijing
-829,2013-04-27,FP-GTC,57990,3,-99,75.6664,0,10000878,US,JP,ANALYST,Beijing
-830,2012-12-06,FP-GTC,37831,0,11,57.1191,0,10000090,CN,US,ADMIN,Shanghai
-831,2013-08-29,FP-GTC,164,0,16,75.2345,0,10000689,US,FR,ANALYST,Beijing
-832,2012-08-30,FP-GTC,63861,0,12,21.2099,0,10000643,US,UK,MODELER,Hongkong
-833,2013-05-30,ABIN,57013,0,15,28.841,0,10000290,US,JP,ADMIN,Shanghai
-834,2013-10-17,ABIN,50677,0,-99,16.3836,0,10000705,CN,DE,ANALYST,Beijing
-835,2012-04-25,FP-GTC,67698,0,11,52.3502,0,10000257,CN,FR,ANALYST,Beijing
-836,2013-08-18,ABIN,759,0,16,23.8258,0,10000911,US,UK,ADMIN,Shanghai
-837,2013-02-24,Others,13836,0,-99,40.6826,0,10000399,CN,CN,ADMIN,Shanghai
-838,2012-07-22,FP-non GTC,158798,0,15,94.1886,0,10000705,FR,CN,ANALYST,Beijing
-839,2012-08-05,FP-GTC,100847,0,-99,74.15,0,10000797,CN,GB,ADMIN,Shanghai
-840,2012-12-30,Auction,31519,0,11,69.1499,0,10000576,UK,US,ANALYST,Beijing
-841,2013-05-18,Auction,63864,3,14,44.5408,0,10000232,DE,CN,ANALYST,Beijing
-842,2012-11-01,ABIN,53064,0,15,19.9817,0,10000065,US,CN,ADMIN,Shanghai
-843,2013-06-25,FP-GTC,156614,0,16,91.4652,0,10000326,UK,DE,ANALYST,Beijing
-844,2013-07-11,FP-non GTC,10058,3,5,92.6671,0,10000787,FR,CN,ADMIN,Shanghai
-845,2013-01-19,FP-non GTC,13987,0,12,49.0313,0,10000556,FR,CN,ADMIN,Shanghai
-846,2013-06-17,Auction,94847,0,13,95.5377,0,10000047,JP,CN,ANALYST,Beijing
-847,2012-12-23,Others,64076,0,-99,50.1173,0,10000063,JP,CN,MODELER,Hongkong
-848,2013-01-07,FP-non GTC,67698,0,5,6.5979,0,10000412,UK,CN,ADMIN,Shanghai
-849,2012-01-20,ABIN,175750,3,16,79.6931,0,10000270,FR,JP,ADMIN,Shanghai
-850,2013-01-14,Others,95672,3,12,31.7315,0,10000044,CN,US,ANALYST,Beijing
-851,2013-02-22,Others,26249,0,16,43.7969,0,10000634,CN,DE,ADMIN,Shanghai
-852,2013-04-13,FP-non GTC,156614,0,16,79.3213,0,10000321,CN,JP,ADMIN,Shanghai
-853,2013-09-18,FP-non GTC,43398,0,5,17.3702,0,10000621,US,CN,MODELER,Hongkong
-854,2013-09-05,ABIN,67703,3,11,55.6439,0,10000784,DE,UK,ANALYST,Beijing
-855,2013-05-25,FP-GTC,43398,0,15,73.0548,0,10000921,CN,DE,MODELER,Hongkong
-856,2012-10-06,Others,100847,0,16,77.0258,0,10000606,US,US,MODELER,Hongkong
-857,2013-11-08,Others,164261,0,11,16.6959,0,10000136,UK,UK,ANALYST,Beijing
-858,2012-04-13,FP-non GTC,3838,0,5,68.4347,0,10000451,JP,CN,ADMIN,Shanghai
-859,2012-07-03,FP-GTC,63861,0,-99,89.5962,0,10000893,DE,JP,ADMIN,Shanghai
-860,2012-02-21,Auction,40059,3,-99,84.7455,0,10000613,DE,CN,MODELER,Hongkong
-861,2012-02-25,FP-non GTC,759,0,13,23.9258,0,10000826,JP,DE,MODELER,Hongkong
-862,2013-10-30,FP-non GTC,57990,0,16,88.4859,0,10000782,FR,FR,MODELER,Hongkong
-863,2013-10-12,FP-non GTC,57784,0,14,85.8986,0,10000220,CN,CN,MODELER,Hongkong
-864,2012-08-15,FP-GTC,223,0,12,32.1974,0,10000316,CN,JP,ANALYST,Beijing
-865,2012-10-18,FP-GTC,15115,0,16,52.5243,0,10000353,CN,US,ADMIN,Shanghai
-866,2013-11-09,FP-GTC,20886,0,13,94.0128,0,10000690,CN,US,MODELER,Hongkong
-867,2012-09-27,ABIN,31673,0,12,24.1332,0,10000404,US,CN,ANALYST,Beijing
-868,2012-05-08,FP-GTC,95672,0,16,88.8853,0,10000984,DE,JP,ADMIN,Shanghai
-869,2013-01-14,Others,95173,0,12,86.3987,0,10000501,CN,UK,ADMIN,Shanghai
-870,2012-12-02,Auction,152801,0,-99,71.8799,0,10000021,FR,DE,ADMIN,Shanghai
-871,2012-03-13,ABIN,31519,3,15,96.8998,0,10000188,FR,UK,ADMIN,Shanghai
-872,2013-06-15,Auction,121153,0,14,66.2729,0,10000101,DE,DE,ANALYST,Beijing
-873,2012-04-11,Others,63861,0,15,88.0097,0,10000536,DE,US,ADMIN,Shanghai
-874,2013-01-25,FP-non GTC,1357,0,16,49.8991,0,10000637,JP,US,ANALYST,Beijing
-875,2013-10-17,FP-GTC,106246,0,15,92.2507,0,10000046,JP,UK,MODELER,Hongkong
-876,2012-10-04,Others,4943,0,13,88.8498,0,10000215,US,UK,ADMIN,Shanghai
-877,2013-05-14,Auction,314,0,13,77.3441,0,10000900,FR,JP,ANALYST,Beijing
-878,2013-03-17,FP-non GTC,759,0,16,17.9719,0,10000759,UK,CN,MODELER,Hongkong
-879,2013-01-20,FP-non GTC,51582,0,16,3.6644,0,10000961,FR,CN,ADMIN,Shanghai
-880,2013-03-20,FP-non GTC,57990,0,12,9.368,0,10000846,CN,US,ANALYST,Beijing
-881,2012-06-06,FP-non GTC,165888,0,16,9.4584,0,10000312,UK,FR,ADMIN,Shanghai
-882,2012-12-13,Auction,43479,0,16,84.0632,0,10000349,FR,CN,MODELER,Hongkong
-883,2012-05-13,FP-non GTC,139973,3,5,37.351,0,10000790,CN,US,MODELER,Hongkong
-884,2013-03-27,Auction,48027,0,5,75.7167,0,10000424,FR,DE,MODELER,Hongkong
-885,2013-08-08,FP-GTC,37831,0,-99,27.78,0,10000637,CN,UK,ANALYST,Beijing
-886,2012-04-06,ABIN,314,0,12,18.3274,0,10000749,DE,CN,MODELER,Hongkong
-887,2013-10-11,FP-non GTC,57013,0,14,39.1868,0,10000599,JP,FR,MODELER,Hongkong
-888,2012-01-18,FP-GTC,41940,0,12,94.5165,0,10000102,FR,FR,MODELER,Hongkong
-889,2013-05-20,ABIN,50677,0,16,25.6136,0,10000423,CN,UK,ANALYST,Beijing
-890,2012-06-24,FP-GTC,963,0,13,20.9442,0,10000069,UK,CN,ADMIN,Shanghai
-891,2013-04-01,ABIN,75665,0,12,65.3307,0,10000543,UK,CN,MODELER,Hongkong
-892,2012-02-05,ABIN,50508,0,-99,69.4516,0,10000623,FR,UK,ANALYST,Beijing
-893,2012-06-24,ABIN,314,0,5,13.8612,0,10000347,CN,CN,ANALYST,Beijing
-894,2013-12-07,Others,1349,0,16,10.8619,0,10000784,UK,CN,MODELER,Hongkong
-895,2013-03-01,ABIN,73506,0,11,7.7818,0,10000882,UK,CN,ADMIN,Shanghai
-896,2012-08-24,Auction,45333,0,16,94.9583,0,10000495,UK,CN,ANALYST,Beijing
-897,2012-08-04,FP-non GTC,20886,0,15,69.73,0,10000428,CN,CN,MODELER,Hongkong
-898,2012-11-08,Auction,31519,0,15,41.4423,0,10000431,FR,CN,MODELER,Hongkong
-899,2013-08-07,FP-GTC,156356,0,13,44.6853,0,10000305,DE,JP,ANALYST,Beijing
-900,2013-09-25,ABIN,43398,0,16,46.5536,0,10000387,UK,CN,ANALYST,Beijing
-901,2012-04-26,FP-non GTC,95672,0,13,30.9202,0,10000591,CN,FR,MODELER,Hongkong
-902,2012-03-30,Others,159184,0,12,58.3993,0,10000381,CN,UK,ADMIN,Shanghai
-903,2012-04-25,Auction,73506,0,14,46.1501,0,10000010,FR,US,ANALYST,Beijing
-904,2012-09-13,FP-GTC,20485,0,5,2.4112,0,10000959,FR,FR,ADMIN,Shanghai
-905,2013-09-27,ABIN,80287,0,-99,64.4361,0,10000770,US,DE,ANALYST,Beijing
-906,2013-01-17,Others,36250,0,11,73.5773,0,10000948,JP,US,ADMIN,Shanghai
-907,2012-07-07,Auction,103324,15,16,4.8559,0,10000123,UK,CN,MODELER,Hongkong
-908,2013-08-15,ABIN,13836,0,16,25.8438,0,10000851,US,DE,ANALYST,Beijing
-909,2012-07-07,Others,12688,0,5,3.4934,0,10000096,DE,FR,MODELER,Hongkong
-910,2012-06-03,Auction,80135,0,12,17.8258,0,10000144,JP,CN,ANALYST,Beijing
-911,2013-12-24,FP-GTC,60340,0,11,22.6409,0,10000341,FR,DE,MODELER,Hongkong
-912,2012-10-06,ABIN,36250,0,5,7.4322,0,10000384,US,CN,ADMIN,Shanghai
-913,2013-01-03,Auction,175750,0,15,14.1976,0,10000366,DE,UK,ADMIN,Shanghai
-914,2013-04-15,Auction,88750,0,11,98.6057,0,10000584,US,JP,MODELER,Hongkong
-915,2013-06-03,FP-non GTC,1349,0,15,11.0419,0,10000866,CN,FR,ANALYST,Beijing
-916,2013-01-30,FP-GTC,2635,0,14,54.5175,0,10000959,UK,CN,ANALYST,Beijing
-917,2013-08-27,FP-non GTC,26249,0,13,50.0365,0,10000289,US,DE,MODELER,Hongkong
-918,2012-05-14,FP-non GTC,9426,3,5,60.0224,0,10000730,FR,US,ADMIN,Shanghai
-919,2012-10-16,FP-non GTC,16145,0,-99,53.0896,0,10000195,JP,JP,MODELER,Hongkong
-920,2012-09-24,FP-GTC,57013,0,14,81.7929,0,10000498,JP,US,MODELER,Hongkong
-921,2012-08-20,FP-non GTC,25147,0,-99,30.7605,0,10000242,CN,FR,ADMIN,Shanghai
-922,2012-02-19,Others,94847,0,13,20.6395,0,10000707,JP,US,ANALYST,Beijing
-923,2013-11-14,ABIN,50508,0,15,91.9217,0,10000208,CN,FR,ADMIN,Shanghai
-924,2012-07-10,Others,95672,0,13,21.1886,0,10000762,UK,DE,ADMIN,Shanghai
-925,2012-03-14,ABIN,44079,0,13,89.6838,0,10000227,DE,DE,ADMIN,Shanghai
-926,2012-01-17,FP-non GTC,314,0,14,44.3066,0,10000251,CN,CN,ADMIN,Shanghai
-927,2012-02-27,FP-non GTC,15868,0,14,80.8427,0,10000741,FR,DE,ANALYST,Beijing
-928,2012-10-23,Others,1161,3,5,54.0104,0,10000289,DE,DE,ADMIN,Shanghai
-929,2013-06-12,Others,53064,0,12,87.1336,0,10000871,CN,DE,ANALYST,Beijing
-930,2013-03-06,Auction,34273,100,15,6.7044,0,10000269,FR,DE,MODELER,Hongkong
-931,2012-06-16,Others,533,0,14,43.7104,0,10000172,CN,UK,ADMIN,Shanghai
-932,2012-12-19,FP-GTC,15868,0,15,94.1727,0,10000366,JP,DE,ANALYST,Beijing
-933,2012-07-21,ABIN,121153,0,12,42.3437,0,10000688,CN,US,ANALYST,Beijing
-934,2013-08-19,FP-non GTC,65,0,11,3.0275,0,10000055,US,DE,MODELER,Hongkong
-935,2012-08-08,Auction,15687,0,14,72.9505,0,10000725,US,FR,ADMIN,Shanghai
-936,2013-12-13,FP-GTC,4943,0,-99,37.7781,0,10000932,CN,DE,MODELER,Hongkong
-937,2013-05-18,FP-GTC,3838,0,14,45.1642,0,10000370,CN,US,ANALYST,Beijing
-938,2012-01-31,Auction,25147,0,14,78.658,0,10000721,US,JP,MODELER,Hongkong
-939,2013-12-05,FP-GTC,62179,0,12,76.4692,0,10000423,DE,UK,MODELER,Hongkong
-940,2012-03-07,Auction,175750,0,15,19.5357,0,10000053,FR,FR,MODELER,Hongkong
-941,2013-09-30,Others,100847,0,12,38.2299,0,10000772,US,FR,ADMIN,Shanghai
-942,2013-01-07,Others,15115,0,12,82.5099,0,10000864,FR,FR,ADMIN,Shanghai
-943,2013-11-04,FP-non GTC,57013,0,-99,61.3731,0,10000335,CN,DE,MODELER,Hongkong
-944,2012-08-11,FP-non GTC,31673,0,12,12.7001,0,10000303,FR,DE,MODELER,Hongkong
-945,2012-12-30,ABIN,156356,0,14,99.3562,0,10000427,UK,JP,ANALYST,Beijing
-946,2013-05-19,Others,113593,15,11,31.1634,0,10000361,FR,FR,ADMIN,Shanghai
-947,2013-06-03,ABIN,314,0,13,32.6968,0,10000373,US,CN,ANALYST,Beijing
-948,2013-06-29,Auction,15808,15,12,18.3967,0,10000484,US,CN,ADMIN,Shanghai
-949,2012-06-10,FP-GTC,61323,0,13,10.8143,0,10000403,UK,UK,ADMIN,Shanghai
-950,2012-01-29,FP-GTC,1349,0,15,0.4358,0,10000639,US,CN,ANALYST,Beijing
-951,2013-05-30,FP-non GTC,759,0,14,19.592,0,10000116,JP,DE,MODELER,Hongkong
-952,2013-07-28,ABIN,15868,0,14,59.7123,0,10000668,FR,FR,ADMIN,Shanghai
-953,2013-03-23,Auction,165888,0,12,67.1201,0,10000063,DE,US,MODELER,Hongkong
-954,2012-05-29,FP-GTC,118687,3,-99,98.203,0,10000886,CN,DE,ADMIN,Shanghai
-955,2013-09-15,FP-non GTC,156614,0,5,43.1795,0,10000302,FR,UK,ANALYST,Beijing
-956,2012-05-21,FP-GTC,223,0,-99,66.285,0,10000118,UK,FR,ANALYST,Beijing
-957,2012-04-03,FP-non GTC,26262,0,12,17.5241,0,10000440,CN,US,ADMIN,Shanghai
-958,2012-05-22,ABIN,44079,0,16,25.2405,0,10000183,FR,UK,ANALYST,Beijing
-959,2014-01-01,Others,50508,0,16,92.5843,0,10000911,CN,FR,MODELER,Hongkong
-960,2012-04-08,Others,16145,3,12,90.2242,0,10000825,JP,JP,ADMIN,Shanghai
-961,2013-11-27,ABIN,95672,0,16,90.938,0,10000829,CN,CN,ANALYST,Beijing
-962,2013-03-22,Auction,41940,0,15,72.0648,0,10000795,DE,UK,ANALYST,Beijing
-963,2012-04-06,Others,64076,0,14,86.9185,0,10000356,JP,DE,ADMIN,Shanghai
-964,2013-05-02,Others,156356,0,11,41.6871,0,10000122,UK,JP,ANALYST,Beijing
-965,2012-04-02,Others,132939,0,12,75.8372,0,10000395,JP,UK,ADMIN,Shanghai
-966,2012-06-29,ABIN,26262,0,13,83.6043,0,10000120,CN,UK,ADMIN,Shanghai
-967,2012-07-06,FP-GTC,11554,0,16,38.4329,0,10000352,FR,UK,MODELER,Hongkong
-968,2012-06-10,ABIN,156614,0,-99,94.1812,0,10000280,US,UK,ANALYST,Beijing
-969,2012-04-05,Auction,164261,0,12,0.9691,0,10000480,UK,CN,ANALYST,Beijing
-970,2012-11-02,Auction,31519,0,11,98.0505,0,10000893,JP,DE,MODELER,Hongkong
-971,2012-05-20,Auction,50508,0,15,61.9439,0,10000363,CN,US,ANALYST,Beijing
-972,2012-03-31,Auction,80135,0,16,11.1543,0,10000692,FR,CN,MODELER,Hongkong
-973,2012-07-01,FP-non GTC,63889,0,-99,86.6557,0,10000402,JP,DE,MODELER,Hongkong
-974,2013-01-04,ABIN,41940,0,-99,48.4505,0,10000296,DE,FR,ANALYST,Beijing
-975,2013-02-10,FP-non GTC,63861,0,13,60.3535,0,10000214,US,UK,ADMIN,Shanghai
-976,2012-03-25,Others,73506,0,11,74.2113,0,10000801,JP,JP,ANALYST,Beijing
-977,2013-07-23,FP-non GTC,53064,0,16,69.2368,0,10000542,US,US,MODELER,Hongkong
-978,2012-04-09,Auction,11848,0,15,76.172,0,10000555,CN,FR,ADMIN,Shanghai
-979,2012-08-01,Others,12688,0,5,85.4589,0,10000130,DE,CN,ADMIN,Shanghai
-980,2012-07-15,FP-non GTC,31519,3,-99,17.8485,0,10000045,CN,GB,MODELER,Hongkong
-981,2013-10-06,ABIN,1349,0,11,52.278,0,10000622,US,CN,MODELER,Hongkong
-982,2012-10-26,Auction,25147,0,13,60.9912,0,10000379,CN,FR,ADMIN,Shanghai
-983,2013-01-04,FP-non GTC,37831,0,15,61.0134,0,10000785,CN,JP,ADMIN,Shanghai
-984,2012-03-24,Auction,139973,0,-99,8.1533,0,10000487,CN,JP,ADMIN,Shanghai
-985,2012-12-30,Auction,6762,0,-99,77.8179,0,10000645,DE,CN,ADMIN,Shanghai
-986,2012-10-03,ABIN,103178,15,12,15.2201,0,10000824,DE,JP,MODELER,Hongkong
-987,2012-04-18,FP-non GTC,50508,0,14,11.9715,0,10000012,FR,CN,MODELER,Hongkong
-988,2012-09-30,FP-non GTC,31673,0,12,90.0864,0,10000281,CN,US,MODELER,Hongkong
-989,2013-03-24,ABIN,4943,0,12,11.0294,0,10000785,CN,US,ADMIN,Shanghai
-990,2012-05-02,Others,87118,0,14,52.6549,0,10000924,CN,DE,ADMIN,Shanghai
-991,2013-05-03,FP-GTC,24760,0,5,8.9077,0,10000758,CN,CN,MODELER,Hongkong
-992,2012-08-05,FP-non GTC,38238,0,11,0.8463,0,10000066,FR,CN,MODELER,Hongkong
-993,2012-08-15,Auction,67698,0,11,23.6278,0,10000085,CN,CN,ADMIN,Shanghai
-994,2013-04-04,Auction,164261,0,13,52.3718,0,10000965,JP,DE,ADMIN,Shanghai
-995,2013-04-18,ABIN,25147,0,14,71.7687,0,10000157,FR,CN,ANALYST,Beijing
-996,2013-11-09,ABIN,43479,0,12,39.9269,0,10000024,US,DE,ANALYST,Beijing
-997,2013-05-02,FP-non GTC,175750,0,12,17.6149,0,10000862,JP,US,ANALYST,Beijing
-998,2012-09-01,ABIN,50508,0,14,99.1518,0,10000746,DE,UK,ANALYST,Beijing
-999,2013-02-23,FP-non GTC,139255,15,-99,74.6182,0,10000447,FR,JP,ANALYST,Beijing
-1000,2012-01-19,FP-non GTC,6762,0,13,0.1297,0,10000189,UK,FR,MODELER,Hongkong
-1001,2012-11-10,Auction,113802,15,-99,11.9583,0,10000596,JP,UK,ANALYST,Beijing
-1002,2012-12-11,FP-non GTC,95173,0,5,67.9416,0,10000582,CN,CN,ADMIN,Shanghai
-1003,2012-01-05,ABIN,2635,0,11,72.3723,0,10000375,UK,JP,ANALYST,Beijing
-1004,2012-05-04,FP-non GTC,43479,0,13,79.1307,0,10000944,FR,UK,ADMIN,Shanghai
-1005,2013-07-20,ABIN,63861,0,13,86.7155,0,10000274,JP,UK,MODELER,Hongkong
-1006,2013-08-25,FP-GTC,80053,0,5,11.7108,0,10000059,CN,JP,MODELER,Hongkong
-1007,2012-10-24,ABIN,38238,0,5,79.2964,0,10000388,FR,CN,MODELER,Hongkong
-1008,2012-01-10,ABIN,73506,0,5,3.8878,0,10000895,JP,DE,ANALYST,Beijing
-1009,2013-07-11,Auction,174106,3,12,46.7087,0,10000683,FR,CN,ANALYST,Beijing
-1010,2013-06-16,FP-GTC,61323,0,15,64.0224,0,10000121,US,DE,ADMIN,Shanghai
-1011,2013-06-23,ABIN,63889,0,5,59.2766,0,10000466,JP,US,MODELER,Hongkong
-1012,2013-01-25,Others,156356,0,14,79.9992,0,10000611,FR,DE,ANALYST,Beijing
-1013,2013-10-09,Auction,50508,0,16,70.9682,0,10000009,US,FR,MODELER,Hongkong
-1014,2013-05-19,Auction,25147,0,16,8.0973,0,10000731,FR,JP,ADMIN,Shanghai
-1015,2012-10-14,Auction,67698,0,5,49.0497,0,10000605,CN,FR,ADMIN,Shanghai
-1016,2012-06-08,Auction,65,0,14,76.5149,0,10000165,UK,US,MODELER,Hongkong
-1017,2012-12-21,FP-GTC,15868,0,5,45.9224,0,10000215,JP,US,ADMIN,Shanghai
-1018,2012-12-02,Auction,1357,0,15,8.9337,0,10000730,JP,DE,ANALYST,Beijing
-1019,2013-11-27,ABIN,24760,0,11,62.4675,0,10000932,FR,US,ADMIN,Shanghai
-1020,2013-11-24,Auction,95173,0,16,16.7927,0,10000795,CN,JP,ANALYST,Beijing
-1021,2013-11-30,ABIN,164,0,11,10.8897,0,10000914,US,DE,MODELER,Hongkong
-1022,2012-12-22,Auction,15868,0,15,7.4153,0,10000540,JP,CN,MODELER,Hongkong
-1023,2012-05-13,FP-non GTC,26249,0,5,58.8647,0,10000898,UK,JP,MODELER,Hongkong
-1024,2013-06-22,ABIN,95672,3,12,71.8628,0,10000026,UK,FR,ANALYST,Beijing
-1025,2013-05-22,ABIN,63861,0,11,71.8836,0,10000650,UK,CN,ADMIN,Shanghai
-1026,2012-11-17,FP-GTC,32876,0,12,35.6019,0,10000959,US,CN,ADMIN,Shanghai
-1027,2013-04-13,Auction,38238,0,5,21.7443,0,10000036,FR,CN,ANALYST,Beijing
-1028,2012-09-09,FP-non GTC,87118,0,14,46.2858,0,10000512,CN,DE,MODELER,Hongkong
-1029,2013-08-23,FP-non GTC,41940,0,11,98.4779,0,10000844,JP,US,MODELER,Hongkong
-1030,2012-09-02,FP-non GTC,43398,0,12,91.8543,0,10000917,JP,CN,ANALYST,Beijing
-1031,2012-11-23,Others,145970,0,11,43.8631,0,10000997,FR,US,ANALYST,Beijing
-1032,2012-01-22,FP-non GTC,164261,0,16,74.9772,0,10000091,DE,DE,MODELER,Hongkong
-1033,2012-05-02,ABIN,152801,0,13,15.2794,0,10000649,JP,UK,ADMIN,Shanghai
-1034,2013-08-14,Others,50677,0,13,26.5329,0,10000275,JP,DE,MODELER,Hongkong
-1035,2012-06-04,Others,156614,0,14,42.781,0,10000347,CN,JP,ANALYST,Beijing
-1036,2012-08-04,FP-non GTC,145970,0,15,92.6953,0,10000622,US,CN,ADMIN,Shanghai
-1037,2012-08-15,Auction,32876,0,16,35.2015,0,10000533,DE,DE,MODELER,Hongkong
-1038,2012-11-05,Auction,95672,0,11,0.5233,0,10000965,CN,US,MODELER,Hongkong
-1039,2013-10-12,ABIN,165888,0,11,27.3564,0,10000036,UK,DE,ADMIN,Shanghai
-1040,2012-10-22,ABIN,20485,0,14,28.6742,0,10000448,DE,UK,ANALYST,Beijing
-1041,2012-07-02,Auction,20213,0,15,81.3332,0,10000484,CN,UK,ADMIN,Shanghai
-1042,2013-01-13,Others,152801,0,11,3.3406,0,10000124,CN,DE,MODELER,Hongkong
-1043,2012-05-17,Others,132939,0,15,55.3503,0,10000086,US,DE,MODELER,Hongkong
-1044,2013-02-05,Others,48904,0,15,25.234,0,10000246,UK,JP,MODELER,Hongkong
-1045,2013-09-13,FP-GTC,32876,0,-99,10.7672,0,10000729,CN,FR,ANALYST,Beijing
-1046,2012-06-14,ABIN,20865,0,14,47.9841,0,10000406,CN,CN,ADMIN,Shanghai
-1047,2013-02-11,Auction,152801,0,5,86.4355,0,10000050,FR,US,ANALYST,Beijing
-1048,2012-12-13,Auction,50508,0,5,72.5114,0,10000715,JP,FR,ANALYST,Beijing
-1049,2013-11-30,Auction,3838,0,-99,6.8517,0,10000706,FR,JP,ADMIN,Shanghai
-1050,2013-03-15,FP-non GTC,20865,0,14,93.304,0,10000926,FR,US,MODELER,Hongkong
-1051,2012-08-12,FP-GTC,57784,0,-99,18.4045,0,10000231,UK,UK,ADMIN,Shanghai
-1052,2013-10-19,Others,1161,3,14,79.1353,0,10000561,US,JP,ADMIN,Shanghai
-1053,2013-02-17,Others,31519,0,-99,49.0409,0,10000904,FR,UK,ADMIN,Shanghai
-1054,2012-03-30,FP-non GTC,314,0,11,93.6413,0,10000041,CN,US,ANALYST,Beijing
-1055,2012-08-26,Others,175750,0,-99,46.6557,0,10000719,CN,UK,ANALYST,Beijing
-1056,2012-12-26,Auction,139973,0,15,6.9809,0,10000044,US,JP,MODELER,Hongkong
-1057,2013-01-30,Others,159184,0,13,45.4599,0,10000131,DE,CN,ANALYST,Beijing
-1058,2012-04-27,Auction,48904,0,5,16.3472,0,10000157,US,UK,MODELER,Hongkong
-1059,2012-11-10,ABIN,16145,0,13,0.4693,0,10000668,UK,CN,ANALYST,Beijing
-1060,2012-05-13,Auction,121153,0,5,24.642,0,10000314,US,DE,MODELER,Hongkong
-1061,2012-02-01,FP-GTC,6762,0,13,5.9417,0,10000851,JP,UK,MODELER,Hongkong
-1062,2012-07-16,Auction,95672,0,-99,11.9934,0,10000828,FR,US,MODELER,Hongkong
-1063,2012-09-21,Auction,106246,0,5,39.0057,0,10000826,FR,FR,ANALYST,Beijing
-1064,2012-10-20,FP-GTC,314,0,16,5.5339,0,10000011,UK,UK,ANALYST,Beijing
-1065,2013-04-29,FP-non GTC,100847,0,13,3.3872,0,10000840,US,CN,ADMIN,Shanghai
-1066,2013-02-16,FP-non GTC,43398,0,13,3.4171,0,10000106,JP,UK,ANALYST,Beijing
-1067,2013-09-11,FP-GTC,63889,0,12,15.4662,0,10000004,US,CN,MODELER,Hongkong
-1068,2012-12-18,Others,80287,0,15,71.309,0,10000722,CN,JP,MODELER,Hongkong
-1069,2013-09-14,FP-non GTC,20865,0,-99,98.0987,0,10000591,JP,JP,ADMIN,Shanghai
-1070,2013-01-27,FP-non GTC,57990,3,14,84.9483,0,10000304,CN,DE,ANALYST,Beijing
-1071,2013-02-07,Others,95672,0,14,9.7034,0,10000894,US,FR,ANALYST,Beijing
-1072,2013-03-24,FP-non GTC,38238,0,-99,98.5328,0,10000286,CN,CN,MODELER,Hongkong
-1073,2012-01-05,Others,164,0,15,21.3336,0,10000151,CN,JP,ADMIN,Shanghai
-1074,2012-11-14,Auction,57990,0,12,91.1773,0,10000087,CN,GB,ADMIN,Shanghai
-1075,2013-03-24,Auction,13987,0,13,5.9953,0,10000551,FR,CN,ADMIN,Shanghai
-1076,2013-12-26,FP-GTC,32876,0,11,86.1904,0,10000012,UK,DE,MODELER,Hongkong
-1077,2013-06-23,FP-non GTC,1504,0,12,9.4689,0,10000720,JP,CN,ANALYST,Beijing
-1078,2012-01-11,FP-GTC,57013,0,13,96.6705,0,10000790,JP,CN,ADMIN,Shanghai
-1079,2012-08-30,FP-non GTC,62179,0,5,22.4244,0,10000403,FR,CN,MODELER,Hongkong
-1080,2012-09-01,ABIN,61323,0,12,30.1513,0,10000283,FR,CN,ANALYST,Beijing
-1081,2013-04-20,Auction,16145,3,12,77.9327,0,10000043,CN,UK,MODELER,Hongkong
-1082,2013-10-03,Others,963,0,14,82.3371,0,10000002,DE,FR,MODELER,Hongkong
-1083,2012-10-23,ABIN,45333,0,16,86.7017,0,10000180,UK,DE,MODELER,Hongkong
-1084,2013-10-09,ABIN,63889,0,-99,33.9942,0,10000485,CN,US,ADMIN,Shanghai
-1085,2013-04-28,ABIN,73506,0,5,22.6563,0,10000070,DE,CN,ANALYST,Beijing
-1086,2013-07-07,ABIN,57990,0,11,11.7659,0,10000834,CN,DE,ADMIN,Shanghai
-1087,2012-01-04,FP-non GTC,165888,0,16,78.7873,0,10000743,CN,FR,ANALYST,Beijing
-1088,2012-05-05,ABIN,158666,15,16,55.1036,0,10000372,DE,US,ANALYST,Beijing
-1089,2012-08-04,ABIN,43479,0,13,61.3469,0,10000425,FR,UK,MODELER,Hongkong
-1090,2013-02-18,Others,161567,15,5,43.5109,0,10000315,JP,JP,MODELER,Hongkong
-1091,2013-08-09,FP-GTC,161567,15,14,0.9756,0,10000420,CN,FR,MODELER,Hongkong
-1092,2012-04-30,Others,65,0,12,31.5741,0,10000858,US,CN,ANALYST,Beijing
-1093,2013-10-16,FP-non GTC,16509,0,15,8.4323,0,10000376,US,UK,MODELER,Hongkong
-1094,2013-11-06,FP-GTC,15115,0,12,91.7204,0,10000495,UK,CN,ADMIN,Shanghai
-1095,2012-04-13,ABIN,37831,0,16,86.915,0,10000947,US,JP,MODELER,Hongkong
-1096,2013-04-21,FP-GTC,95672,0,-99,60.6048,0,10000052,JP,DE,ANALYST,Beijing
-1097,2013-12-04,FP-GTC,121153,0,13,9.3639,0,10000384,US,US,ADMIN,Shanghai
-1098,2012-08-03,Others,50508,0,13,74.2474,0,10000103,US,DE,ANALYST,Beijing
-1099,2013-12-29,FP-GTC,1357,0,5,46.9382,0,10000987,CN,JP,ANALYST,Beijing
-1100,2012-11-01,Others,46575,0,13,54.452,0,10000247,JP,US,ANALYST,Beijing
-1101,2012-06-30,FP-non GTC,26249,0,5,74.2755,0,10000641,FR,CN,MODELER,Hongkong
-1102,2012-06-20,Auction,26262,0,11,11.9173,0,10000418,CN,FR,MODELER,Hongkong
-1103,2012-07-24,Others,80287,0,14,49.7794,0,10000590,UK,CN,MODELER,Hongkong
-1104,2012-08-11,FP-GTC,26262,0,11,16.291,0,10000698,UK,JP,MODELER,Hongkong
-1105,2013-06-27,ABIN,63861,0,-99,5.4086,0,10000810,UK,CN,ANALYST,Beijing
-1106,2012-04-28,FP-GTC,15115,0,15,91.7724,0,10000414,CN,CN,MODELER,Hongkong
-1107,2013-04-19,ABIN,73506,0,13,14.8212,0,10000728,CN,UK,ADMIN,Shanghai
-1108,2012-01-25,Others,32876,0,13,23.4295,0,10000673,CN,UK,MODELER,Hongkong
-1109,2013-11-06,ABIN,139973,3,12,41.9681,0,10000902,DE,FR,MODELER,Hongkong
-1110,2013-03-09,Auction,61323,0,15,53.8594,0,10000323,US,UK,ANALYST,Beijing
-1111,2012-03-01,ABIN,60340,0,11,78.1279,0,10000947,JP,DE,ANALYST,Beijing
-1112,2012-07-28,FP-non GTC,279,15,16,80.8961,0,10000691,FR,JP,MODELER,Hongkong
-1113,2013-02-04,Others,24541,0,11,40.4673,0,10000727,JP,DE,MODELER,Hongkong
-1114,2012-02-24,Auction,152801,0,13,9.8921,0,10000661,US,CN,ADMIN,Shanghai
-1115,2013-08-13,ABIN,156614,0,15,61.6452,0,10000734,DE,FR,ANALYST,Beijing
-1116,2012-04-02,ABIN,63861,3,11,18.4644,0,10000446,CN,CN,ANALYST,Beijing
-1117,2013-09-28,Others,95173,0,-99,51.2096,0,10000049,CN,FR,ANALYST,Beijing
-1118,2013-08-13,FP-non GTC,64076,0,12,85.3952,0,10000581,UK,US,ANALYST,Beijing
-1119,2012-09-09,ABIN,20485,0,15,0.5979,0,10000081,CN,GB,ADMIN,Shanghai
-1120,2012-04-26,Auction,145970,0,11,40.5874,0,10000401,US,JP,ANALYST,Beijing
-1121,2013-05-10,Others,26262,0,11,83.8561,0,10000545,FR,CN,MODELER,Hongkong
-1122,2013-05-23,FP-GTC,80287,0,11,27.6123,0,10000529,DE,FR,ADMIN,Shanghai
-1123,2012-01-08,Others,175750,0,14,45.4268,0,10000408,DE,CN,ANALYST,Beijing
-1124,2012-07-20,ABIN,38238,0,16,44.1376,0,10000796,CN,US,ADMIN,Shanghai
-1125,2012-09-15,Auction,65,0,-99,97.3146,0,10000792,CN,FR,MODELER,Hongkong
-1126,2012-10-17,ABIN,65,0,12,68.5363,0,10000569,FR,JP,MODELER,Hongkong
-1127,2013-08-03,FP-GTC,40059,3,15,87.3892,0,10000317,UK,UK,ADMIN,Shanghai
-1128,2013-08-28,FP-non GTC,80287,0,14,61.9829,0,10000015,UK,US,ADMIN,Shanghai
-1129,2012-07-21,Auction,25147,0,11,24.7662,0,10000333,FR,DE,MODELER,Hongkong
-1130,2013-10-17,Auction,132939,0,11,11.6038,0,10000926,US,DE,MODELER,Hongkong
-1131,2012-09-04,Auction,44079,0,15,75.1095,0,10000435,FR,UK,ANALYST,Beijing
-1132,2012-11-01,Auction,67698,0,5,8.8273,0,10000834,JP,DE,ADMIN,Shanghai
-1133,2013-12-02,Auction,24541,0,15,95.2195,0,10000259,DE,FR,ANALYST,Beijing
-1134,2012-02-06,Auction,533,0,12,66.4962,0,10000007,FR,US,MODELER,Hongkong
-1135,2013-12-03,FP-non GTC,99985,0,12,0.0537,0,10000244,DE,CN,ANALYST,Beijing
-1136,2013-05-11,FP-non GTC,60606,3,12,76.6828,0,10000002,CN,FR,ANALYST,Beijing
-1137,2012-09-18,Auction,156614,0,16,72.1912,0,10000174,DE,FR,ANALYST,Beijing
-1138,2012-05-19,Auction,60340,0,16,42.9975,0,10000813,FR,CN,MODELER,Hongkong
-1139,2012-04-26,FP-GTC,165888,0,14,88.3875,0,10000919,DE,CN,ADMIN,Shanghai
-1140,2013-08-30,Others,963,0,15,6.6424,0,10000994,CN,UK,ADMIN,Shanghai
-1141,2013-08-28,ABIN,10866,0,12,79.7295,0,10000832,CN,DE,ADMIN,Shanghai
-1142,2012-01-16,ABIN,145970,0,11,72.394,0,10000008,CN,FR,ANALYST,Beijing
-1143,2013-12-23,Others,65,0,15,94.0397,0,10000812,FR,CN,ADMIN,Shanghai
-1144,2013-09-06,FP-GTC,25147,0,11,72.9395,0,10000956,CN,JP,ANALYST,Beijing
-1145,2012-05-07,FP-GTC,16509,0,11,9.829,0,10000940,CN,UK,MODELER,Hongkong
-1146,2013-09-07,Others,139973,0,11,22.9964,0,10000563,CN,UK,ANALYST,Beijing
-1147,2012-11-17,Others,65,0,-99,62.7316,0,10000227,US,CN,MODELER,Hongkong
-1148,2012-05-14,ABIN,57013,0,13,19.0969,0,10000844,CN,CN,ANALYST,Beijing
-1149,2012-06-01,FP-non GTC,30059,3,16,26.9105,0,10000516,US,FR,ADMIN,Shanghai
-1150,2012-11-24,Auction,75665,0,15,26.5788,0,10000717,DE,UK,ADMIN,Shanghai
-1151,2013-10-23,FP-non GTC,75708,3,12,10.5298,0,10000238,JP,CN,ANALYST,Beijing
-1152,2012-10-19,Auction,64076,0,11,49.0746,0,10000389,UK,CN,ANALYST,Beijing
-1153,2012-02-17,ABIN,65,0,12,58.3004,0,10000219,CN,CN,MODELER,Hongkong
-1154,2012-01-08,FP-GTC,15115,0,16,3.238,0,10000435,UK,FR,ANALYST,Beijing
-1155,2012-02-04,Others,164261,0,14,45.9304,0,10000748,FR,CN,ANALYST,Beijing
-1156,2012-08-25,FP-GTC,156356,0,5,70.3654,0,10000864,CN,US,ADMIN,Shanghai
-1157,2013-04-10,FP-GTC,38238,0,5,72.9872,0,10000638,DE,UK,ADMIN,Shanghai
-1158,2013-05-16,FP-GTC,175750,0,5,95.3008,0,10000366,CN,JP,ADMIN,Shanghai
-1159,2012-06-27,FP-GTC,100847,0,14,64.8447,0,10000686,CN,JP,MODELER,Hongkong
-1160,2013-03-06,Auction,139255,15,12,20.7811,0,10000261,CN,CN,ANALYST,Beijing
-1161,2013-08-04,Auction,67698,0,14,20.1344,0,10000142,CN,DE,MODELER,Hongkong
-1162,2013-08-15,Auction,20865,0,12,64.6842,0,10000235,DE,CN,ANALYST,Beijing
-1163,2012-04-17,Auction,24760,0,-99,88.4159,0,10000039,CN,CN,ADMIN,Shanghai
-1164,2013-03-14,Others,75665,0,13,36.977,0,10000480,CN,JP,ANALYST,Beijing
-1165,2012-12-09,Others,139973,0,15,85.1056,0,10000801,US,CN,MODELER,Hongkong
-1166,2012-07-02,Others,36250,0,11,71.5548,0,10000926,US,US,MODELER,Hongkong
-1167,2013-08-04,FP-non GTC,31519,0,16,23.9847,0,10000680,JP,JP,ADMIN,Shanghai
-1168,2013-02-15,FP-non GTC,80053,0,15,68.4438,0,10000487,JP,CN,MODELER,Hongkong
-1169,2012-07-12,FP-non GTC,64076,0,5,54.574,0,10000628,CN,UK,ANALYST,Beijing
-1170,2012-11-07,Others,164,0,12,45.1637,0,10000846,FR,FR,ADMIN,Shanghai
-1171,2013-09-14,FP-GTC,106340,15,15,38.1572,0,10000201,US,CN,ANALYST,Beijing
-1172,2013-12-19,Auction,759,0,-99,53.0086,0,10000250,CN,US,ANALYST,Beijing
-1173,2012-05-11,Others,16509,0,-99,68.3043,0,10000809,FR,CN,ADMIN,Shanghai
-1174,2013-07-20,Others,45333,0,15,58.5554,0,10000981,CN,JP,MODELER,Hongkong
-1175,2013-03-24,FP-GTC,20485,0,5,62.1012,0,10000877,FR,CN,ADMIN,Shanghai
-1176,2013-08-09,ABIN,63861,0,5,44.1975,0,10000554,US,US,MODELER,Hongkong
-1177,2013-12-04,FP-GTC,53064,0,14,29.8358,0,10000491,US,CN,MODELER,Hongkong
-1178,2013-07-06,ABIN,139973,0,5,26.8986,0,10000978,UK,CN,ANALYST,Beijing
-1179,2013-04-29,FP-non GTC,67698,0,11,46.9203,0,10000148,CN,US,ANAL
<TRUNCATED>
[4/9] kylin git commit: JoinsTree complete, simple query pass
Posted by li...@apache.org.
JoinsTree complete, simple query pass
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/237c7632
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/237c7632
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/237c7632
Branch: refs/heads/KYLIN-1875
Commit: 237c7632a7fd4cb5cfaeaadf028d952a5817c024
Parents: e9ccf5f
Author: Li Yang <li...@apache.org>
Authored: Mon Nov 28 14:04:39 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Nov 28 14:22:20 2016 +0800
----------------------------------------------------------------------
.../apache/kylin/dict/DictionaryManager.java | 4 +-
.../kylin/metadata/model/DataModelDesc.java | 30 +-
.../apache/kylin/metadata/model/JoinsTree.java | 61 ++-
.../kylin/metadata/MetadataManagerTest.java | 11 +-
.../kylin/metadata/model/JoinsTreeTest.java | 74 ++++
.../test_kylin_snowflake_sales_cube.json | 268 ++++++++++++
.../test_kylin_snowflake_model_desc.json | 161 --------
.../test_kylin_snowflake_sales_model.json | 87 ++++
.../localmeta/table/SNOWTEST.KYLIN_ACCOUNT.json | 28 ++
.../localmeta/table/SNOWTEST.KYLIN_CAL_DT.json | 408 +++++++++++++++++++
.../SNOWTEST.KYLIN_CATEGORY_GROUPINGS.json | 152 +++++++
.../localmeta/table/SNOWTEST.KYLIN_COUNTRY.json | 24 ++
.../localmeta/table/SNOWTEST.KYLIN_SALES.json | 56 +++
.../apache/kylin/query/relnode/OLAPContext.java | 2 +
.../kylin/query/relnode/OLAPTableScan.java | 7 +-
.../kylin/query/routing/ModelChooser.java | 46 +--
16 files changed, 1175 insertions(+), 244 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index 3c64e45..6178234 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -339,7 +339,7 @@ public class DictionaryManager {
// find a lookup table that the col joins as FK
for (TableRef lookup : model.getLookupTables()) {
- JoinDesc lookupJoin = model.getPKSideJoinMap().get(lookup);
+ JoinDesc lookupJoin = model.getJoinByPKSide(lookup);
int find = ArrayUtils.indexOf(lookupJoin.getForeignKeyColumns(), col);
if (find < 0)
continue;
@@ -358,7 +358,7 @@ public class DictionaryManager {
return false;
TableRef table = join.getFKSide();
- join = model.getPKSideJoinMap().get(table);
+ join = model.getJoinByPKSide(table);
}
return true;
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index ff92def..d917571 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -97,8 +97,7 @@ public class DataModelDesc extends RootPersistentEntity {
private Set<TableRef> allTableRefs = Sets.newLinkedHashSet();
private Map<String, TableRef> aliasMap = Maps.newHashMap(); // alias => TableRef, a table has exactly one alias
private Map<String, TableRef> tableNameMap = Maps.newHashMap(); // name => TableRef, a table maybe referenced by multiple names
- private Map<TableRef, JoinDesc> pkSideJoinMap = Maps.newHashMap(); // table (PK side) => JoinTable
- private Map<String, List<JoinDesc>> fkSideJoinMap = Maps.newHashMap(); // table (FK side) => JoinDesc
+ private JoinsTree joinsTree;
/**
* Error messages during resolving json metadata
@@ -151,12 +150,12 @@ public class DataModelDesc extends RootPersistentEntity {
return joinTables;
}
- public Map<TableRef, JoinDesc> getPKSideJoinMap() {
- return pkSideJoinMap;
+ public JoinDesc getJoinByPKSide(TableRef table) {
+ return joinsTree.getJoinByPKSide(table);
}
-
- public Map<String, List<JoinDesc>> getFKSideJoinMap() {
- return fkSideJoinMap;
+
+ public JoinsTree getJoinsTree() {
+ return joinsTree;
}
@Deprecated
@@ -282,6 +281,7 @@ public class DataModelDesc extends RootPersistentEntity {
initJoinTablesForUpgrade();
initTableAlias(tables);
initJoinColumns();
+ initJoinsTree();
ModelDimensionDesc.capicalizeStrings(dimensions);
initPartitionDesc();
}
@@ -360,8 +360,6 @@ public class DataModelDesc extends RootPersistentEntity {
}
private void initJoinColumns() {
- pkSideJoinMap.clear();
- fkSideJoinMap.clear();
for (JoinTableDesc joinTable : joinTables) {
TableRef dimTable = joinTable.getTableRef();
@@ -413,15 +411,15 @@ public class DataModelDesc extends RootPersistentEntity {
logger.warn("PK " + dimTable + "." + pkCols[i].getName() + "." + pkCols[i].getDatatype() + " are not consistent with FK " + fkTable + "." + fkCols[i].getName() + "." + fkCols[i].getDatatype());
}
}
+ }
+ }
- // pk/fk side join maps
- pkSideJoinMap.put(dimTable, join);
- List<JoinDesc> list = fkSideJoinMap.get(fkTable.getTableIdentity());
- if (list == null) {
- fkSideJoinMap.put(fkTable.getTableIdentity(), list = Lists.newArrayListWithCapacity(4));
- }
- list.add(join);
+ private void initJoinsTree() {
+ List<JoinDesc> joins = new ArrayList<>();
+ for (JoinTableDesc joinTable : joinTables) {
+ joins.add(joinTable.getJoin());
}
+ joinsTree = new JoinsTree(rootFactTableRef, joins);
}
/**
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
index 0317a3d..a0b267d 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
@@ -18,6 +18,7 @@
package org.apache.kylin.metadata.model;
+import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -26,9 +27,8 @@ import java.util.Map;
import com.google.common.base.Preconditions;
public class JoinsTree {
-
- final private Chain root;
- final private Map<TableRef, Chain> tableChains = new LinkedHashMap<>();
+
+ final Map<String, Chain> tableChains = new LinkedHashMap<>();
public JoinsTree(TableRef rootTable, List<JoinDesc> joins) {
for (JoinDesc join : joins) {
@@ -37,33 +37,41 @@ public class JoinsTree {
for (TblColRef col : join.getPrimaryKeyColumns())
Preconditions.checkState(col.isQualified());
}
-
- root = new Chain(rootTable, null, null);
- tableChains.put(rootTable, root);
-
+
+ tableChains.put(rootTable.getAlias(), new Chain(rootTable, null, null));
+
for (JoinDesc join : joins) {
TableRef pkSide = join.getPKSide();
- Chain fkSide = tableChains.get(join.getFKSide());
- tableChains.put(pkSide, new Chain(pkSide, join, fkSide));
+ Chain fkSide = tableChains.get(join.getFKSide().getAlias());
+ tableChains.put(pkSide.getAlias(), new Chain(pkSide, join, fkSide));
}
}
-
+
public Map<String, String> matches(JoinsTree another) {
+ return matches(another, Collections.<String, String> emptyMap());
+ }
+
+ public Map<String, String> matches(JoinsTree another, Map<String, String> constraints) {
Map<String, String> matchUp = new HashMap<>();
-
+
for (Chain chain : tableChains.values()) {
- if (matchInTree(chain, another, matchUp) == false)
+ if (matchInTree(chain, another, constraints, matchUp) == false)
return null;
}
-
+
return matchUp;
}
-
- private boolean matchInTree(Chain chain, JoinsTree another, Map<String, String> matchUp) {
+
+ private boolean matchInTree(Chain chain, JoinsTree another, Map<String, String> constraints, Map<String, String> matchUp) {
String thisAlias = chain.table.getAlias();
if (matchUp.containsKey(thisAlias))
return true;
-
+
+ String constraint = constraints.get(thisAlias);
+ if (constraint != null) {
+ return matchChain(chain, another.tableChains.get(constraint), matchUp);
+ }
+
for (Chain anotherChain : another.tableChains.values()) {
if (matchChain(chain, anotherChain, matchUp)) {
return true;
@@ -75,39 +83,48 @@ public class JoinsTree {
private boolean matchChain(Chain chain, Chain anotherChain, Map<String, String> matchUp) {
String thisAlias = chain.table.getAlias();
String anotherAlias = anotherChain.table.getAlias();
-
+
String curMatch = matchUp.get(thisAlias);
if (curMatch != null)
return curMatch.equals(anotherAlias);
if (curMatch == null && matchUp.values().contains(anotherAlias))
return false;
-
+
boolean matches = false;
if (chain.join == null) {
matches = anotherChain.join == null && chain.table.getTableDesc().equals(anotherChain.table.getTableDesc());
} else {
matches = chain.join.matches(anotherChain.join) && matchChain(chain.fkSide, anotherChain.fkSide, matchUp);
}
-
+
if (matches) {
matchUp.put(thisAlias, anotherAlias);
}
return matches;
}
- private static class Chain {
+ public JoinDesc getJoinByPKSide(TableRef table) {
+ Chain chain = tableChains.get(table.getAlias());
+ if (chain == null)
+ return null;
+ else
+ return chain.join;
+ }
+
+ static class Chain {
TableRef table; // pk side
JoinDesc join;
Chain fkSide;
-
+
public Chain(TableRef table, JoinDesc join, Chain fkSide) {
this.table = table;
this.join = join;
this.fkSide = fkSide;
if (join != null) {
Preconditions.checkArgument(table == join.getPKSide());
- Preconditions.checkArgument(fkSide.table == join.getPKSide());
+ Preconditions.checkArgument(fkSide.table == join.getFKSide());
}
}
}
+
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
index fcae8d4..204b4e0 100644
--- a/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
+++ b/core-metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
@@ -76,17 +76,20 @@ public class MetadataManagerTest extends LocalFileMetadataTestCase {
@Test
public void testSnowflakeDataModel() throws Exception {
- DataModelDesc model = getInstance(getTestConfig()).getDataModelDesc("test_kylin_snowflake_model_desc");
+ DataModelDesc model = getInstance(getTestConfig()).getDataModelDesc("test_kylin_snowflake_sales_model");
Assert.assertTrue(model.getDimensions().size() > 0);
try {
- model.findTable("TEST_KYLIN_COUNTRY");
+ model.findTable("KYLIN_COUNTRY");
Assert.fail();
} catch (IllegalArgumentException ex) {
// excepted
}
- Assert.assertNotNull(model.findColumn("BUYER_COUNTRY"));
- Assert.assertNotNull(model.findColumn("SELLER_COUNTRY"));
+
+ Assert.assertNotNull(model.findTable("BUYER_COUNTRY"));
+ Assert.assertNotNull(model.findTable("SELLER_COUNTRY"));
+ Assert.assertNotNull(model.findColumn("BUYER_COUNTRY.NAME"));
+ Assert.assertNotNull(model.findColumn("BUYER_ID"));
}
@Test
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/core-metadata/src/test/java/org/apache/kylin/metadata/model/JoinsTreeTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/model/JoinsTreeTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/model/JoinsTreeTest.java
new file mode 100644
index 0000000..f52ef45
--- /dev/null
+++ b/core-metadata/src/test/java/org/apache/kylin/metadata/model/JoinsTreeTest.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+*/
+
+package org.apache.kylin.metadata.model;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.JoinsTree.Chain;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ */
+public class JoinsTreeTest extends LocalFileMetadataTestCase {
+
+ @Before
+ public void setUp() throws Exception {
+ this.createTestMetadata();
+ }
+
+ @After
+ public void after() throws Exception {
+ this.cleanupTestMetadata();
+ }
+
+ @Test
+ public void testBasics() {
+ MetadataManager mgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+ DataModelDesc model = mgr.getDataModelDesc("test_kylin_snowflake_sales_model");
+ JoinsTree joinsTree = model.getJoinsTree();
+
+ Chain chain = joinsTree.tableChains.get("BUYER_COUNTRY");
+ assertTrue(chain.table == model.findTable("BUYER_COUNTRY"));
+ assertTrue(chain.fkSide.table == model.findTable("BUYER_ACCOUNT"));
+ assertTrue(chain.fkSide.fkSide.table == model.findTable("KYLIN_SALES"));
+ assertTrue(chain.fkSide.fkSide.join == null);
+ assertTrue(chain.fkSide.fkSide.fkSide == null);
+ }
+
+ @Test
+ public void testMatch() {
+ MetadataManager mgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+ DataModelDesc model = mgr.getDataModelDesc("test_kylin_snowflake_sales_model");
+ JoinsTree joinsTree = model.getJoinsTree();
+
+ Map<String, String> matchUp = joinsTree.matches(joinsTree);
+ for (Entry<String, String> e : matchUp.entrySet()) {
+ assertTrue(e.getKey().equals(e.getValue()));
+ }
+ assertTrue(model.getAllTables().size() == matchUp.size());
+ }
+}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json b/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
new file mode 100644
index 0000000..aa0f874
--- /dev/null
+++ b/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
@@ -0,0 +1,268 @@
+{
+ "uuid" : "0ef9b7a8-3929-4dff-b59d-2100aadc8dbf",
+ "last_modified" : 1451468470824,
+ "name" : "test_kylin_snowflake_sales_cube",
+ "model_name" : "test_kylin_snowflake_sales_model",
+ "description" : null,
+ "null_string" : null,
+ "dimensions" : [ {
+ "name" : "TRANS_ID",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "TRANS_ID",
+ "derived" : null
+ }, {
+ "name" : "CAL_DT",
+ "table" : "SNOWTEST.KYLIN_CAL_DT",
+ "column" : "{FK}",
+ "derived" : [ "WEEK_BEG_DT", "MONTH_BEG_DT", "YEAR_BEG_DT" ]
+ }, {
+ "name" : "CATEGORY",
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "column" : "{FK}",
+ "derived" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3" ]
+ }, {
+ "name" : "META_CATEG_NAME",
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "column" : "META_CATEG_NAME",
+ "derived" : null
+ }, {
+ "name" : "CATEG_LVL2_NAME",
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "column" : "CATEG_LVL2_NAME",
+ "derived" : null
+ }, {
+ "name" : "CATEG_LVL3_NAME",
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "column" : "CATEG_LVL3_NAME",
+ "derived" : null
+ }, {
+ "name" : "LSTG_FORMAT_NAME",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "LSTG_FORMAT_NAME",
+ "derived" : null
+ }, {
+ "name" : "SELLER_ID",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "SELLER_ID",
+ "derived" : null
+ }, {
+ "name" : "BUYER_ID",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "BUYER_ID",
+ "derived" : null
+ }, {
+ "name" : "ACCOUNT_BUYER_LEVEL",
+ "table" : "BUYER_ACCOUNT",
+ "column" : "ACCOUNT_BUYER_LEVEL",
+ "derived" : null
+ }, {
+ "name" : "ACCOUNT_SELLER_LEVEL",
+ "table" : "SELLER_ACCOUNT",
+ "column" : "ACCOUNT_SELLER_LEVEL",
+ "derived" : null
+ }, {
+ "name" : "BUYER_COUNTRY",
+ "table" : "BUYER_ACCOUNT",
+ "column" : "ACCOUNT_COUNTRY",
+ "derived" : null
+ }, {
+ "name" : "SELLER_COUNTRY",
+ "table" : "SELLER_ACCOUNT",
+ "column" : "ACCOUNT_COUNTRY",
+ "derived" : null
+ }, {
+ "name" : "BUYER_COUNTRY_NAME",
+ "table" : "BUYER_COUNTRY",
+ "column" : "NAME",
+ "derived" : null
+ }, {
+ "name" : "SELLER_COUNTRY_NAME",
+ "table" : "SELLER_COUNTRY",
+ "column" : "NAME",
+ "derived" : null
+ }, {
+ "name" : "OPS_USER_ID",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "OPS_USER_ID",
+ "derived" : null
+ }, {
+ "name" : "OPS_REGION",
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "column" : "OPS_REGION",
+ "derived" : null
+ } ],
+ "measures" : [ {
+ "name" : "GMV_SUM",
+ "function" : {
+ "expression" : "SUM",
+ "parameter" : {
+ "type" : "column",
+ "value" : "PRICE",
+ "next_parameter" : null
+ },
+ "returntype" : "decimal(19,4)"
+ }
+ }, {
+ "name" : "GMV_MIN",
+ "function" : {
+ "expression" : "MIN",
+ "parameter" : {
+ "type" : "column",
+ "value" : "PRICE",
+ "next_parameter" : null
+ },
+ "returntype" : "decimal(19,4)"
+ }
+ }, {
+ "name" : "GMV_MAX",
+ "function" : {
+ "expression" : "MAX",
+ "parameter" : {
+ "type" : "column",
+ "value" : "PRICE",
+ "next_parameter" : null
+ },
+ "returntype" : "decimal(19,4)"
+ }
+ }, {
+ "name" : "TRANS_CNT",
+ "function" : {
+ "expression" : "COUNT",
+ "parameter" : {
+ "type" : "constant",
+ "value" : "1",
+ "next_parameter" : null
+ },
+ "returntype" : "bigint"
+ }
+ }, {
+ "name" : "SELLER_CNT_HLL",
+ "function" : {
+ "expression" : "COUNT_DISTINCT",
+ "parameter" : {
+ "type" : "column",
+ "value" : "SELLER_ID",
+ "next_parameter" : null
+ },
+ "returntype" : "hllc(10)"
+ }
+ }, {
+ "name" : "TOP_SELLER",
+ "function" : {
+ "expression" : "TOP_N",
+ "parameter" : {
+ "type" : "column",
+ "value" : "PRICE",
+ "next_parameter" : {
+ "type" : "column",
+ "value" : "SELLER_ID",
+ "next_parameter" : null
+ }
+ },
+ "returntype" : "topn(100)"
+ }
+ } ],
+ "rowkey" : {
+ "rowkey_columns" : [ {
+ "column" : "BUYER_ID",
+ "encoding" : "integer:4"
+ }, {
+ "column" : "SELLER_ID",
+ "encoding" : "integer:4"
+ }, {
+ "column" : "TRANS_ID",
+ "encoding" : "integer:4"
+ }, {
+ "column" : "PART_DT",
+ "encoding" : "date"
+ }, {
+ "column" : "LEAF_CATEG_ID",
+ "encoding" : "dict"
+ }, {
+ "column" : "META_CATEG_NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "CATEG_LVL2_NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "CATEG_LVL3_NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
+ "encoding" : "dict"
+ }, {
+ "column" : "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL",
+ "encoding" : "dict"
+ }, {
+ "column" : "BUYER_ACCOUNT.ACCOUNT_COUNTRY",
+ "encoding" : "dict"
+ }, {
+ "column" : "SELLER_ACCOUNT.ACCOUNT_COUNTRY",
+ "encoding" : "dict"
+ }, {
+ "column" : "BUYER_COUNTRY.NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "SELLER_COUNTRY.NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "LSTG_FORMAT_NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "LSTG_SITE_ID",
+ "encoding" : "dict"
+ }, {
+ "column" : "OPS_USER_ID",
+ "encoding" : "dict"
+ }, {
+ "column" : "OPS_REGION",
+ "encoding" : "dict"
+ } ]
+ },
+ "hbase_mapping" : {
+ "column_family" : [ {
+ "name" : "F1",
+ "columns" : [ {
+ "qualifier" : "M",
+ "measure_refs" : [ "GMV_SUM", "GMV_MIN", "GMV_MAX", "TRANS_CNT" ]
+ } ]
+ }, {
+ "name" : "F2",
+ "columns" : [ {
+ "qualifier" : "M",
+ "measure_refs" : [ "SELLER_CNT_HLL", "TOP_SELLER" ]
+ } ]
+ } ]
+ },
+ "aggregation_groups" : [ {
+ "includes" : [ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
+ "select_rule" : {
+ "hierarchy_dims" : [ [ "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID" ] ],
+ "mandatory_dims" : [ "PART_DT" ],
+ "joint_dims" : [ [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME" ], [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_COUNTRY.NAME" ],
+ [ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL" ], [ "LSTG_FORMAT_NAME", "LSTG_SITE_ID" ], [ "OPS_USER_ID", "OPS_REGION" ] ]
+ }
+ }, {
+ "includes" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID",
+ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
+ "select_rule" : {
+ "hierarchy_dims" : [ ],
+ "mandatory_dims" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID",
+ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
+ "joint_dims" : [ ]
+ }
+ } ],
+ "notify_list" : null,
+ "status_need_notify" : [ ],
+ "partition_date_start" : 1325376000000,
+ "auto_merge_time_ranges" : null,
+ "retention_range" : 0,
+ "engine_type" : %default_engine_type%,
+ "storage_type" : %default_engine_type%,
+ "override_kylin_properties" : {
+ "kylin.cube.aggrgroup.is-mandatory-only-valid" : "true"
+ }
+}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_model_desc.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_model_desc.json b/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_model_desc.json
deleted file mode 100644
index b06a217..0000000
--- a/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_model_desc.json
+++ /dev/null
@@ -1,161 +0,0 @@
-{
- "uuid": "ac0f4ee2-1dcb-4b07-a38e-4c298563e0e3",
- "name": "test_kylin_snowflake_model_desc",
- "lookups": [
- {
- "table": "EDW.TEST_CAL_DT",
- "join": {
- "type": "left",
- "primary_key": [
- "CAL_DT"
- ],
- "foreign_key": [
- "CAL_DT"
- ]
- }
- },
- {
- "table": "DEFAULT.TEST_CATEGORY_GROUPINGS",
- "join": {
- "type": "left",
- "primary_key": [
- "LEAF_CATEG_ID",
- "SITE_ID"
- ],
- "foreign_key": [
- "LEAF_CATEG_ID",
- "LSTG_SITE_ID"
- ]
- }
- },
- {
- "table": "EDW.TEST_SITES",
- "join": {
- "type": "left",
- "primary_key": [
- "SITE_ID"
- ],
- "foreign_key": [
- "LSTG_SITE_ID"
- ]
- }
- },
- {
- "table": "EDW.TEST_SELLER_TYPE_DIM",
- "join": {
- "type": "left",
- "primary_key": [
- "SELLER_TYPE_CD"
- ],
- "foreign_key": [
- "SLR_SEGMENT_CD"
- ]
- }
- },
- {
- "table": "DEFAULT.TEST_KYLIN_COUNTRY",
- "alias": "BUYER_COUNTRY",
- "join": {
- "type": "left",
- "primary_key": [
- "COUNTRY"
- ],
- "foreign_key": [
- "BUYER_COUNTRY"
- ]
- }
- },
- {
- "table": "DEFAULT.TEST_KYLIN_COUNTRY",
- "alias": "SELLER_COUNTRY",
- "join": {
- "type": "left",
- "primary_key": [
- "COUNTRY"
- ],
- "foreign_key": [
- "SELLER_COUNTRY"
- ]
- }
- }
- ],
- "dimensions": [
- {
- "table": "default.test_kylin_fact",
- "columns": [
- "lstg_format_name",
- "LSTG_SITE_ID",
- "SLR_SEGMENT_CD",
- "TRANS_ID",
- "CAL_DT",
- "LEAF_CATEG_ID",
- "SELLER_ID",
- "BUYER_COUNTRY",
- "SELLER_COUNTRY"
- ]
- },
- {
- "table": "default.test_category_groupings",
- "columns": [
- "leaf_categ_id",
- "site_id",
- "USER_DEFINED_FIELD1",
- "USER_DEFINED_FIELD3",
- "UPD_DATE",
- "UPD_USER",
- "meta_categ_name",
- "categ_lvl2_name",
- "categ_lvl3_name"
- ]
- },
- {
- "table": "edw.test_sites",
- "columns": [
- "site_id",
- "site_name",
- "cre_user"
- ]
- },
- {
- "table": "edw.test_seller_type_dim",
- "columns": [
- "seller_type_cd",
- "seller_type_desc"
- ]
- },
- {
- "table": "edw.test_cal_dt",
- "columns": [
- "cal_dt",
- "week_beg_dt"
- ]
- },
- {
- "table": "BUYER_COUNTRY",
- "columns": [
- "country",
- "name"
- ]
- },
- {
- "table": "SELLER_COUNTRY",
- "columns": [
- "country",
- "name"
- ]
- }
- ],
- "metrics": [
- "PRICE",
- "ITEM_COUNT",
- "SELLER_ID"
- ],
- "last_modified": 1422435345352,
- "fact_table": "DEFAULT.TEST_KYLIN_FACT",
- "filter_condition": null,
- "partition_desc": {
- "partition_date_column": "DEFAULT.TEST_KYLIN_FACT.cal_dt",
- "partition_date_start": 0,
- "partition_type": "APPEND"
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_sales_model.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_sales_model.json b/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_sales_model.json
new file mode 100644
index 0000000..84c6979
--- /dev/null
+++ b/examples/test_case_data/localmeta/model_desc/test_kylin_snowflake_sales_model.json
@@ -0,0 +1,87 @@
+{
+ "uuid" : "0928468a-9fab-4185-9a14-6f2e7c74823f",
+ "name" : "test_kylin_snowflake_sales_model",
+ "lookups" : [ {
+ "table" : "SNOWTEST.KYLIN_CAL_DT",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "CAL_DT" ],
+ "foreign_key" : [ "PART_DT" ]
+ }
+ }, {
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "LEAF_CATEG_ID", "SITE_ID" ],
+ "foreign_key" : [ "LEAF_CATEG_ID", "LSTG_SITE_ID" ]
+ }
+ }, {
+ "table" : "SNOWTEST.KYLIN_ACCOUNT",
+ "alias" : "BUYER_ACCOUNT",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "ACCOUNT_ID" ],
+ "foreign_key" : [ "BUYER_ID" ]
+ }
+ }, {
+ "table" : "SNOWTEST.KYLIN_ACCOUNT",
+ "alias" : "SELLER_ACCOUNT",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "ACCOUNT_ID" ],
+ "foreign_key" : [ "SELLER_ID" ]
+ }
+ }, {
+ "table" : "SNOWTEST.KYLIN_COUNTRY",
+ "alias" : "BUYER_COUNTRY",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "COUNTRY" ],
+ "foreign_key" : [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY" ]
+ }
+ }, {
+ "table" : "SNOWTEST.KYLIN_COUNTRY",
+ "alias" : "SELLER_COUNTRY",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "COUNTRY" ],
+ "foreign_key" : [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY" ]
+ }
+ }],
+ "dimensions" : [ {
+ "table" : "SNOWTEST.KYLIN_SALES",
+ "columns" : [ "TRANS_ID", "SELLER_ID", "BUYER_ID", "PART_DT", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION" ]
+ }, {
+ "table" : "SNOWTEST.KYLIN_CAL_DT",
+ "columns" : ["CAL_DT", "WEEK_BEG_DT"]
+ }, {
+ "table" : "SNOWTEST.KYLIN_CATEGORY_GROUPINGS",
+ "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "SITE_ID" ]
+ }, {
+ "table" : "BUYER_ACCOUNT",
+ "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+ }, {
+ "table" : "SELLER_ACCOUNT",
+ "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+ }, {
+ "table" : "BUYER_COUNTRY",
+ "columns" : [ "COUNTRY", "NAME" ]
+ }, {
+ "table" : "SELLER_COUNTRY",
+ "columns" : [ "COUNTRY", "NAME" ]
+ } ],
+ "metrics": [
+ "PRICE",
+ "ITEM_COUNT",
+ "SELLER_ID",
+ "LSTG_FORMAT_NAME"
+ ],
+ "last_modified" : 1422435345362,
+ "fact_table" : "SNOWTEST.KYLIN_SALES",
+ "filter_condition" : null,
+ "partition_desc" : {
+ "partition_date_column" : "SNOWTEST.KYLIN_SALES.PART_DT",
+ "partition_date_start" : 1325376000000,
+ "partition_type" : "APPEND"
+ }
+}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_ACCOUNT.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_ACCOUNT.json b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_ACCOUNT.json
new file mode 100644
index 0000000..8d39cbc
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_ACCOUNT.json
@@ -0,0 +1,28 @@
+{
+ "uuid" : "f386e39e-40d7-44c2-9eb3-41b365632231",
+
+ "name" : "KYLIN_ACCOUNT",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "ACCOUNT_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "2",
+ "name" : "ACCOUNT_BUYER_LEVEL",
+ "datatype" : "int"
+ }, {
+ "id" : "3",
+ "name" : "ACCOUNT_SELLER_LEVEL",
+ "datatype" : "int"
+ }, {
+ "id" : "4",
+ "name" : "ACCOUNT_COUNTRY",
+ "datatype" : "string"
+ }, {
+ "id" : "5",
+ "name" : "ACCOUNT_CONTACT",
+ "datatype" : "string"
+ } ],
+ "database" : "SNOWTEST",
+ "last_modified" : 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CAL_DT.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CAL_DT.json b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CAL_DT.json
new file mode 100644
index 0000000..655d4e7
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CAL_DT.json
@@ -0,0 +1,408 @@
+{
+ "uuid" : "0ff420eb-79ad-40bd-bca9-12d8cd05c60a",
+
+ "name" : "KYLIN_CAL_DT",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "CAL_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "2",
+ "name" : "YEAR_BEG_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "3",
+ "name" : "QTR_BEG_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "4",
+ "name" : "MONTH_BEG_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "5",
+ "name" : "WEEK_BEG_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "6",
+ "name" : "AGE_FOR_YEAR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "7",
+ "name" : "AGE_FOR_QTR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "8",
+ "name" : "AGE_FOR_MONTH_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "9",
+ "name" : "AGE_FOR_WEEK_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "10",
+ "name" : "AGE_FOR_DT_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "11",
+ "name" : "AGE_FOR_RTL_YEAR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "12",
+ "name" : "AGE_FOR_RTL_QTR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "13",
+ "name" : "AGE_FOR_RTL_MONTH_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "14",
+ "name" : "AGE_FOR_RTL_WEEK_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "15",
+ "name" : "AGE_FOR_CS_WEEK_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "16",
+ "name" : "DAY_OF_CAL_ID",
+ "datatype" : "int"
+ }, {
+ "id" : "17",
+ "name" : "DAY_OF_YEAR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "18",
+ "name" : "DAY_OF_QTR_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "19",
+ "name" : "DAY_OF_MONTH_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "20",
+ "name" : "DAY_OF_WEEK_ID",
+ "datatype" : "int"
+ }, {
+ "id" : "21",
+ "name" : "WEEK_OF_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "22",
+ "name" : "WEEK_OF_CAL_ID",
+ "datatype" : "int"
+ }, {
+ "id" : "23",
+ "name" : "MONTH_OF_QTR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "24",
+ "name" : "MONTH_OF_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "25",
+ "name" : "MONTH_OF_CAL_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "26",
+ "name" : "QTR_OF_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "27",
+ "name" : "QTR_OF_CAL_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "28",
+ "name" : "YEAR_OF_CAL_ID",
+ "datatype" : "smallint"
+ }, {
+ "id" : "29",
+ "name" : "YEAR_END_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "30",
+ "name" : "QTR_END_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "31",
+ "name" : "MONTH_END_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "32",
+ "name" : "WEEK_END_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "33",
+ "name" : "CAL_DT_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "34",
+ "name" : "CAL_DT_DESC",
+ "datatype" : "string"
+ }, {
+ "id" : "35",
+ "name" : "CAL_DT_SHORT_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "36",
+ "name" : "YTD_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "37",
+ "name" : "QTD_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "38",
+ "name" : "MTD_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "39",
+ "name" : "WTD_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "40",
+ "name" : "SEASON_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "41",
+ "name" : "DAY_IN_YEAR_COUNT",
+ "datatype" : "smallint"
+ }, {
+ "id" : "42",
+ "name" : "DAY_IN_QTR_COUNT",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "43",
+ "name" : "DAY_IN_MONTH_COUNT",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "44",
+ "name" : "DAY_IN_WEEK_COUNT",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "45",
+ "name" : "RTL_YEAR_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "46",
+ "name" : "RTL_QTR_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "47",
+ "name" : "RTL_MONTH_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "48",
+ "name" : "RTL_WEEK_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "49",
+ "name" : "CS_WEEK_BEG_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "50",
+ "name" : "CAL_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "51",
+ "name" : "DAY_OF_WEEK",
+ "datatype" : "string"
+ }, {
+ "id" : "52",
+ "name" : "MONTH_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "53",
+ "name" : "PRD_DESC",
+ "datatype" : "string"
+ }, {
+ "id" : "54",
+ "name" : "PRD_FLAG",
+ "datatype" : "string"
+ }, {
+ "id" : "55",
+ "name" : "PRD_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "56",
+ "name" : "PRD_IND",
+ "datatype" : "string"
+ }, {
+ "id" : "57",
+ "name" : "QTR_DESC",
+ "datatype" : "string"
+ }, {
+ "id" : "58",
+ "name" : "QTR_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "59",
+ "name" : "QTR_IND",
+ "datatype" : "string"
+ }, {
+ "id" : "60",
+ "name" : "RETAIL_WEEK",
+ "datatype" : "string"
+ }, {
+ "id" : "61",
+ "name" : "RETAIL_YEAR",
+ "datatype" : "string"
+ }, {
+ "id" : "62",
+ "name" : "RETAIL_START_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "63",
+ "name" : "RETAIL_WK_END_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "64",
+ "name" : "WEEK_IND",
+ "datatype" : "string"
+ }, {
+ "id" : "65",
+ "name" : "WEEK_NUM_DESC",
+ "datatype" : "string"
+ }, {
+ "id" : "66",
+ "name" : "WEEK_BEG_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "67",
+ "name" : "WEEK_END_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "68",
+ "name" : "WEEK_IN_YEAR_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "69",
+ "name" : "WEEK_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "70",
+ "name" : "WEEK_BEG_END_DESC_MDY",
+ "datatype" : "string"
+ }, {
+ "id" : "71",
+ "name" : "WEEK_BEG_END_DESC_MD",
+ "datatype" : "string"
+ }, {
+ "id" : "72",
+ "name" : "YEAR_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "73",
+ "name" : "YEAR_IND",
+ "datatype" : "string"
+ }, {
+ "id" : "74",
+ "name" : "CAL_DT_MNS_1YEAR_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "75",
+ "name" : "CAL_DT_MNS_2YEAR_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "76",
+ "name" : "CAL_DT_MNS_1QTR_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "77",
+ "name" : "CAL_DT_MNS_2QTR_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "78",
+ "name" : "CAL_DT_MNS_1MONTH_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "79",
+ "name" : "CAL_DT_MNS_2MONTH_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "80",
+ "name" : "CAL_DT_MNS_1WEEK_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "81",
+ "name" : "CAL_DT_MNS_2WEEK_DT",
+ "datatype" : "string"
+ }, {
+ "id" : "82",
+ "name" : "CURR_CAL_DT_MNS_1YEAR_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "83",
+ "name" : "CURR_CAL_DT_MNS_2YEAR_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "84",
+ "name" : "CURR_CAL_DT_MNS_1QTR_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "85",
+ "name" : "CURR_CAL_DT_MNS_2QTR_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "86",
+ "name" : "CURR_CAL_DT_MNS_1MONTH_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "87",
+ "name" : "CURR_CAL_DT_MNS_2MONTH_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "88",
+ "name" : "CURR_CAL_DT_MNS_1WEEK_YN_IND",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "89",
+ "name" : "CURR_CAL_DT_MNS_2WEEK_YN_IND",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "90",
+ "name" : "RTL_MONTH_OF_RTL_YEAR_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "91",
+ "name" : "RTL_QTR_OF_RTL_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "92",
+ "name" : "RTL_WEEK_OF_RTL_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "93",
+ "name" : "SEASON_OF_YEAR_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "94",
+ "name" : "YTM_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "95",
+ "name" : "YTQ_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "96",
+ "name" : "YTW_YN_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "97",
+ "name" : "KYLIN_CAL_DT_CRE_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "98",
+ "name" : "KYLIN_CAL_DT_CRE_USER",
+ "datatype" : "string"
+ }, {
+ "id" : "99",
+ "name" : "KYLIN_CAL_DT_UPD_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "100",
+ "name" : "KYLIN_CAL_DT_UPD_USER",
+ "datatype" : "string"
+ } ],
+ "database" : "SNOWTEST",
+ "last_modified" : 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CATEGORY_GROUPINGS.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CATEGORY_GROUPINGS.json b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CATEGORY_GROUPINGS.json
new file mode 100644
index 0000000..abee6d1
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_CATEGORY_GROUPINGS.json
@@ -0,0 +1,152 @@
+{
+ "uuid" : "952d11b5-69d9-45d1-92af-227489485e3f",
+
+ "name" : "KYLIN_CATEGORY_GROUPINGS",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "LEAF_CATEG_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "2",
+ "name" : "LEAF_CATEG_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "3",
+ "name" : "SITE_ID",
+ "datatype" : "int"
+ }, {
+ "id" : "4",
+ "name" : "CATEG_BUSN_MGR",
+ "datatype" : "string"
+ }, {
+ "id" : "5",
+ "name" : "CATEG_BUSN_UNIT",
+ "datatype" : "string"
+ }, {
+ "id" : "6",
+ "name" : "REGN_CATEG",
+ "datatype" : "string"
+ }, {
+ "id" : "7",
+ "name" : "USER_DEFINED_FIELD1",
+ "datatype" : "string"
+ }, {
+ "id" : "8",
+ "name" : "USER_DEFINED_FIELD3",
+ "datatype" : "string"
+ }, {
+ "id" : "9",
+ "name" : "KYLIN_GROUPINGS_CRE_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "10",
+ "name" : "KYLIN_GROUPINGS_UPD_DATE",
+ "datatype" : "string"
+ }, {
+ "id" : "11",
+ "name" : "KYLIN_GROUPINGS_CRE_USER",
+ "datatype" : "string"
+ }, {
+ "id" : "12",
+ "name" : "KYLIN_GROUPINGS_UPD_USER",
+ "datatype" : "string"
+ }, {
+ "id" : "13",
+ "name" : "META_CATEG_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "14",
+ "name" : "META_CATEG_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "15",
+ "name" : "CATEG_LVL2_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "16",
+ "name" : "CATEG_LVL3_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "17",
+ "name" : "CATEG_LVL4_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "18",
+ "name" : "CATEG_LVL5_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "19",
+ "name" : "CATEG_LVL6_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "20",
+ "name" : "CATEG_LVL7_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "21",
+ "name" : "CATEG_LVL2_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "22",
+ "name" : "CATEG_LVL3_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "23",
+ "name" : "CATEG_LVL4_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "24",
+ "name" : "CATEG_LVL5_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "25",
+ "name" : "CATEG_LVL6_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "26",
+ "name" : "CATEG_LVL7_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "27",
+ "name" : "CATEG_FLAGS",
+ "datatype" : "decimal"
+ }, {
+ "id" : "28",
+ "name" : "ADULT_CATEG_YN",
+ "datatype" : "string"
+ }, {
+ "id" : "29",
+ "name" : "DOMAIN_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "30",
+ "name" : "USER_DEFINED_FIELD5",
+ "datatype" : "string"
+ }, {
+ "id" : "31",
+ "name" : "VCS_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "32",
+ "name" : "GCS_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "33",
+ "name" : "MOVE_TO",
+ "datatype" : "decimal"
+ }, {
+ "id" : "34",
+ "name" : "SAP_CATEGORY_ID",
+ "datatype" : "decimal"
+ }, {
+ "id" : "35",
+ "name" : "SRC_ID",
+ "datatype" : "tinyint"
+ }, {
+ "id" : "36",
+ "name" : "BSNS_VRTCL_NAME",
+ "datatype" : "string"
+ } ],
+ "database" : "SNOWTEST",
+ "last_modified" : 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_COUNTRY.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_COUNTRY.json b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_COUNTRY.json
new file mode 100644
index 0000000..64708c7
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_COUNTRY.json
@@ -0,0 +1,24 @@
+{
+ "uuid" : "e286e39e-40d7-44c2-8fa2-41b365632882",
+
+ "name" : "KYLIN_COUNTRY",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "COUNTRY",
+ "datatype" : "string"
+ }, {
+ "id" : "2",
+ "name" : "LATITUDE",
+ "datatype" : "double"
+ }, {
+ "id" : "3",
+ "name" : "LONGITUDE",
+ "datatype" : "double"
+ }, {
+ "id" : "4",
+ "name" : "NAME",
+ "datatype" : "string"
+ } ],
+ "database" : "SNOWTEST",
+ "last_modified" : 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_SALES.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_SALES.json b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_SALES.json
new file mode 100644
index 0000000..4aa82b5
--- /dev/null
+++ b/examples/test_case_data/localmeta/table/SNOWTEST.KYLIN_SALES.json
@@ -0,0 +1,56 @@
+{
+ "uuid" : "e286e39e-40d7-44c2-8fa2-41b365522771",
+
+ "name" : "KYLIN_SALES",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "TRANS_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "2",
+ "name" : "PART_DT",
+ "datatype" : "date"
+ }, {
+ "id" : "3",
+ "name" : "LSTG_FORMAT_NAME",
+ "datatype" : "string"
+ }, {
+ "id" : "4",
+ "name" : "LEAF_CATEG_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "5",
+ "name" : "LSTG_SITE_ID",
+ "datatype" : "int"
+ }, {
+ "id" : "6",
+ "name" : "SLR_SEGMENT_CD",
+ "datatype" : "smallint"
+ }, {
+ "id" : "7",
+ "name" : "PRICE",
+ "datatype" : "decimal(19,4)"
+ }, {
+ "id" : "8",
+ "name" : "ITEM_COUNT",
+ "datatype" : "bigint"
+ }, {
+ "id" : "9",
+ "name" : "SELLER_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "10",
+ "name" : "BUYER_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "11",
+ "name" : "OPS_USER_ID",
+ "datatype" : "string"
+ }, {
+ "id" : "12",
+ "name" : "OPS_REGION",
+ "datatype" : "string"
+ } ],
+ "database" : "SNOWTEST",
+ "last_modified" : 0
+}
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
index 615d802..5fb2c5c 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
@@ -33,6 +33,7 @@ import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.model.FunctionDesc;
import org.apache.kylin.metadata.model.JoinDesc;
+import org.apache.kylin.metadata.model.JoinsTree;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.IRealization;
import org.apache.kylin.metadata.realization.SQLDigest;
@@ -127,6 +128,7 @@ public class OLAPContext {
public Set<TblColRef> filterColumns = new HashSet<>();
public TupleFilter filter;
public List<JoinDesc> joins = new LinkedList<>();
+ public JoinsTree joinsTree;
private List<TblColRef> sortColumns;
private List<SQLDigest.OrderEnum> sortOrders;
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
index 3c2bf48..14758c9 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
@@ -239,10 +239,13 @@ public class OLAPTableScan extends TableScan implements OLAPRel, EnumerableRel {
return new ColumnRowType(columns);
}
+ public TableRef getTableRef() {
+ return columnRowType.getColumnByIndex(0).getTableRef();
+ }
+
@SuppressWarnings("deprecation")
public TblColRef makeRewriteColumn(String name) {
- TableRef tableRef = columnRowType.getColumnByIndex(0).getTableRef();
- return tableRef.makeFakeColumn(name);
+ return getTableRef().makeFakeColumn(name);
}
public void fixColumnRowTypeWithModel(DataModelDesc model, Map<String, String> aliasMap) {
http://git-wip-us.apache.org/repos/asf/kylin/blob/237c7632/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java b/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
index f1f5a48..cc2522a 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/ModelChooser.java
@@ -30,7 +30,7 @@ import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.JoinDesc;
import org.apache.kylin.metadata.model.JoinTableDesc;
-import org.apache.kylin.metadata.model.TableRef;
+import org.apache.kylin.metadata.model.JoinsTree;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.project.ProjectManager;
import org.apache.kylin.metadata.realization.IRealization;
@@ -38,7 +38,6 @@ import org.apache.kylin.query.relnode.OLAPContext;
import org.apache.kylin.query.relnode.OLAPTableScan;
import org.apache.kylin.query.routing.rules.RemoveBlackoutRealizationsRule;
-import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -73,47 +72,20 @@ public class ModelChooser {
private static Map<String, String> matches(DataModelDesc model, List<OLAPContext> contexts) {
Map<String, String> result = Maps.newHashMap();
- // the greedy match is not perfect but works for the moment
- Map<String, List<JoinDesc>> modelJoinsMap = model.getFKSideJoinMap();
for (OLAPContext ctx : contexts) {
- for (JoinDesc queryJoin : ctx.joins) {
- String fkTable = queryJoin.getForeignKeyColumns()[0].getTable();
- List<JoinDesc> modelJoins = modelJoinsMap.get(fkTable);
- if (modelJoins == null)
- return null;
-
- JoinDesc matchJoin = null;
- for (JoinDesc modelJoin : modelJoins) {
- if (modelJoin.matches(queryJoin)) {
- matchJoin = modelJoin;
- break;
- }
- }
- if (matchJoin == null)
- return null;
-
- matchesAdd(queryJoin.getForeignKeyColumns()[0].getTableAlias(), matchJoin.getForeignKeyColumns()[0].getTableAlias(), result);
- matchesAdd(queryJoin.getPrimaryKeyColumns()[0].getTableAlias(), matchJoin.getPrimaryKeyColumns()[0].getTableAlias(), result);
- }
+ if (ctx.joinsTree == null)
+ ctx.joinsTree = new JoinsTree(ctx.firstTableScan.getTableRef(), ctx.joins);
- OLAPTableScan firstTable = ctx.firstTableScan;
- String firstTableAlias = firstTable.getAlias();
- if (result.containsKey(firstTableAlias) == false) {
- TableRef tableRef = model.findFirstTable(firstTable.getOlapTable().getTableName());
- if (tableRef == null)
- return null;
- matchesAdd(firstTableAlias, tableRef.getAlias(), result);
- }
+ Map<String, String> matchUp = ctx.joinsTree.matches(model.getJoinsTree(), result);
+
+ if (matchUp == null)
+ return null;
+
+ result.putAll(matchUp);
}
-
return result;
}
- private static void matchesAdd(String origAlias, String targetAlias, Map<String, String> result) {
- String existingTarget = result.put(origAlias, targetAlias);
- Preconditions.checkState(existingTarget == null || existingTarget.equals(targetAlias));
- }
-
private static Map<DataModelDesc, Set<IRealization>> makeOrderedModelMap(List<OLAPContext> contexts) {
// the first context, which is the top most context, contains all columns from all contexts
OLAPContext first = contexts.get(0);
[6/9] kylin git commit: KYLIN-1875 A good snowflake sample data,
and rename 'kylin_metadata' to 'kylin_default_instance'
Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/cube_desc/kylin_sales_cube.json b/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
index eb17922..48eef46 100644
--- a/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
+++ b/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
@@ -6,27 +6,32 @@
"description" : null,
"null_string" : null,
"dimensions" : [ {
+ "name" : "TRANS_ID",
+ "table" : "DEFAULT.KYLIN_SALES",
+ "column" : "TRANS_ID",
+ "derived" : null
+ }, {
"name" : "CAL_DT",
"table" : "DEFAULT.KYLIN_CAL_DT",
"column" : "{FK}",
- "derived" : [ "WEEK_BEG_DT" ]
+ "derived" : [ "WEEK_BEG_DT", "MONTH_BEG_DT", "YEAR_BEG_DT" ]
}, {
"name" : "CATEGORY",
"table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
"column" : "{FK}",
"derived" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3" ]
}, {
- "name" : "CATEGORY_HIERARCHY",
+ "name" : "META_CATEG_NAME",
"table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
"column" : "META_CATEG_NAME",
"derived" : null
}, {
- "name" : "CATEGORY_HIERARCHY",
+ "name" : "CATEG_LVL2_NAME",
"table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
"column" : "CATEG_LVL2_NAME",
"derived" : null
}, {
- "name" : "CATEGORY_HIERARCHY",
+ "name" : "CATEG_LVL3_NAME",
"table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
"column" : "CATEG_LVL3_NAME",
"derived" : null
@@ -36,14 +41,54 @@
"column" : "LSTG_FORMAT_NAME",
"derived" : null
}, {
- "name" : "USER_ID",
+ "name" : "SELLER_ID",
"table" : "DEFAULT.KYLIN_SALES",
- "column" : "USER_ID",
+ "column" : "SELLER_ID",
"derived" : null
}, {
- "name" : "REGION",
+ "name" : "BUYER_ID",
"table" : "DEFAULT.KYLIN_SALES",
- "column" : "REGION",
+ "column" : "BUYER_ID",
+ "derived" : null
+ }, {
+ "name" : "ACCOUNT_BUYER_LEVEL",
+ "table" : "BUYER_ACCOUNT",
+ "column" : "ACCOUNT_BUYER_LEVEL",
+ "derived" : null
+ }, {
+ "name" : "ACCOUNT_SELLER_LEVEL",
+ "table" : "SELLER_ACCOUNT",
+ "column" : "ACCOUNT_SELLER_LEVEL",
+ "derived" : null
+ }, {
+ "name" : "BUYER_COUNTRY",
+ "table" : "BUYER_ACCOUNT",
+ "column" : "ACCOUNT_COUNTRY",
+ "derived" : null
+ }, {
+ "name" : "SELLER_COUNTRY",
+ "table" : "SELLER_ACCOUNT",
+ "column" : "ACCOUNT_COUNTRY",
+ "derived" : null
+ }, {
+ "name" : "BUYER_COUNTRY_NAME",
+ "table" : "BUYER_COUNTRY",
+ "column" : "NAME",
+ "derived" : null
+ }, {
+ "name" : "SELLER_COUNTRY_NAME",
+ "table" : "SELLER_COUNTRY",
+ "column" : "NAME",
+ "derived" : null
+ }, {
+ "name" : "OPS_USER_ID",
+ "table" : "DEFAULT.KYLIN_SALES",
+ "column" : "OPS_USER_ID",
+ "derived" : null
+ }, {
+ "name" : "OPS_REGION",
+ "table" : "DEFAULT.KYLIN_SALES",
+ "column" : "OPS_REGION",
"derived" : null
} ],
"measures" : [ {
@@ -56,8 +101,7 @@
"next_parameter" : null
},
"returntype" : "decimal(19,4)"
- },
- "dependent_measure_ref" : null
+ }
}, {
"name" : "GMV_MIN",
"function" : {
@@ -68,8 +112,7 @@
"next_parameter" : null
},
"returntype" : "decimal(19,4)"
- },
- "dependent_measure_ref" : null
+ }
}, {
"name" : "GMV_MAX",
"function" : {
@@ -80,8 +123,7 @@
"next_parameter" : null
},
"returntype" : "decimal(19,4)"
- },
- "dependent_measure_ref" : null
+ }
}, {
"name" : "TRANS_CNT",
"function" : {
@@ -92,8 +134,7 @@
"next_parameter" : null
},
"returntype" : "bigint"
- },
- "dependent_measure_ref" : null
+ }
}, {
"name" : "SELLER_CNT_HLL",
"function" : {
@@ -104,20 +145,7 @@
"next_parameter" : null
},
"returntype" : "hllc(10)"
- },
- "dependent_measure_ref" : null
- }, {
- "name" : "SELLER_FORMAT_CNT",
- "function" : {
- "expression" : "COUNT_DISTINCT",
- "parameter" : {
- "type" : "column",
- "value" : "LSTG_FORMAT_NAME",
- "next_parameter" : null
- },
- "returntype" : "hllc(10)"
- },
- "dependent_measure_ref" : null
+ }
}, {
"name" : "TOP_SELLER",
"function" : {
@@ -132,13 +160,21 @@
}
},
"returntype" : "topn(100)"
- },
- "dependent_measure_ref" : null
+ }
} ],
"rowkey" : {
"rowkey_columns" : [ {
+ "column" : "BUYER_ID",
+ "encoding" : "integer:4"
+ }, {
+ "column" : "SELLER_ID",
+ "encoding" : "integer:4"
+ }, {
+ "column" : "TRANS_ID",
+ "encoding" : "integer:4"
+ }, {
"column" : "PART_DT",
- "encoding" : "dict"
+ "encoding" : "date"
}, {
"column" : "LEAF_CATEG_ID",
"encoding" : "dict"
@@ -152,17 +188,35 @@
"column" : "CATEG_LVL3_NAME",
"encoding" : "dict"
}, {
- "column" : "LSTG_FORMAT_NAME",
- "encoding" : "fixed_length:12"
+ "column" : "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
+ "encoding" : "dict"
+ }, {
+ "column" : "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL",
+ "encoding" : "dict"
}, {
- "column" : "USER_ID",
+ "column" : "BUYER_ACCOUNT.ACCOUNT_COUNTRY",
"encoding" : "dict"
}, {
- "column" : "REGION",
+ "column" : "SELLER_ACCOUNT.ACCOUNT_COUNTRY",
+ "encoding" : "dict"
+ }, {
+ "column" : "BUYER_COUNTRY.NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "SELLER_COUNTRY.NAME",
+ "encoding" : "dict"
+ }, {
+ "column" : "LSTG_FORMAT_NAME",
"encoding" : "dict"
}, {
"column" : "LSTG_SITE_ID",
"encoding" : "dict"
+ }, {
+ "column" : "OPS_USER_ID",
+ "encoding" : "dict"
+ }, {
+ "column" : "OPS_REGION",
+ "encoding" : "dict"
} ]
},
"hbase_mapping" : {
@@ -170,21 +224,34 @@
"name" : "F1",
"columns" : [ {
"qualifier" : "M",
- "measure_refs" : [ "GMV_SUM", "GMV_MIN", "GMV_MAX", "TRANS_CNT", "TOP_SELLER" ]
+ "measure_refs" : [ "GMV_SUM", "GMV_MIN", "GMV_MAX", "TRANS_CNT" ]
} ]
}, {
"name" : "F2",
"columns" : [ {
"qualifier" : "M",
- "measure_refs" : [ "SELLER_CNT_HLL", "SELLER_FORMAT_CNT" ]
+ "measure_refs" : [ "SELLER_CNT_HLL", "TOP_SELLER" ]
} ]
} ]
},
"aggregation_groups" : [ {
- "includes" : [ "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "META_CATEG_NAME", "PART_DT" ],
+ "includes" : [ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
+ "select_rule" : {
+ "hierarchy_dims" : [ [ "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID" ] ],
+ "mandatory_dims" : [ "PART_DT" ],
+ "joint_dims" : [ [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME" ], [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_COUNTRY.NAME" ],
+ [ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL" ], [ "LSTG_FORMAT_NAME", "LSTG_SITE_ID" ], [ "OPS_USER_ID", "OPS_REGION" ] ]
+ }
+ }, {
+ "includes" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID",
+ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
"select_rule" : {
- "hierarchy_dims" : [ [ "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME" ] ],
- "mandatory_dims" : [ ],
+ "hierarchy_dims" : [ ],
+ "mandatory_dims" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID",
+ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION",
+ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
"joint_dims" : [ ]
}
} ],
@@ -194,6 +261,8 @@
"auto_merge_time_ranges" : null,
"retention_range" : 0,
"engine_type" : %default_engine_type%,
- "storage_type" : %default_storage_type%,
- "override_kylin_properties" : { }
+ "storage_type" : %default_engine_type%,
+ "override_kylin_properties" : {
+ "kylin.cube.aggrgroup.is-mandatory-only-valid" : "true"
+ }
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/template/model_desc/kylin_sales_model.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/model_desc/kylin_sales_model.json b/examples/sample_cube/template/model_desc/kylin_sales_model.json
index 3c4fa5a..2d3cfb6 100644
--- a/examples/sample_cube/template/model_desc/kylin_sales_model.json
+++ b/examples/sample_cube/template/model_desc/kylin_sales_model.json
@@ -15,16 +15,60 @@
"primary_key" : [ "LEAF_CATEG_ID", "SITE_ID" ],
"foreign_key" : [ "LEAF_CATEG_ID", "LSTG_SITE_ID" ]
}
+ }, {
+ "table" : "DEFAULT.KYLIN_ACCOUNT",
+ "alias" : "BUYER_ACCOUNT",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "ACCOUNT_ID" ],
+ "foreign_key" : [ "BUYER_ID" ]
+ }
+ }, {
+ "table" : "DEFAULT.KYLIN_ACCOUNT",
+ "alias" : "SELLER_ACCOUNT",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "ACCOUNT_ID" ],
+ "foreign_key" : [ "SELLER_ID" ]
+ }
+ }, {
+ "table" : "DEFAULT.KYLIN_COUNTRY",
+ "alias" : "BUYER_COUNTRY",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "COUNTRY" ],
+ "foreign_key" : [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY" ]
+ }
+ }, {
+ "table" : "DEFAULT.KYLIN_COUNTRY",
+ "alias" : "SELLER_COUNTRY",
+ "join" : {
+ "type" : "inner",
+ "primary_key" : [ "COUNTRY" ],
+ "foreign_key" : [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY" ]
+ }
}],
"dimensions" : [ {
+ "table" : "DEFAULT.KYLIN_SALES",
+ "columns" : [ "TRANS_ID", "SELLER_ID", "BUYER_ID", "PART_DT", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION" ]
+ }, {
"table" : "DEFAULT.KYLIN_CAL_DT",
"columns" : ["CAL_DT", "WEEK_BEG_DT"]
}, {
"table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
- "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME" ]
+ "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "SITE_ID" ]
}, {
- "table" : "DEFAULT.KYLIN_SALES",
- "columns" : [ "LSTG_FORMAT_NAME", "SELLER_ID", "PART_DT", "USER_ID", "REGION" ]
+ "table" : "BUYER_ACCOUNT",
+ "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+ }, {
+ "table" : "SELLER_ACCOUNT",
+ "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+ }, {
+ "table" : "BUYER_COUNTRY",
+ "columns" : [ "COUNTRY", "NAME" ]
+ }, {
+ "table" : "SELLER_COUNTRY",
+ "columns" : [ "COUNTRY", "NAME" ]
} ],
"metrics": [
"PRICE",
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json b/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
new file mode 100644
index 0000000..f1b7755
--- /dev/null
+++ b/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
@@ -0,0 +1,28 @@
+{
+ "uuid" : "f386e39e-40d7-44c2-9eb3-41b365632231",
+
+ "name" : "KYLIN_ACCOUNT",
+ "columns" : [ {
+ "id" : "1",
+ "name" : "ACCOUNT_ID",
+ "datatype" : "bigint"
+ }, {
+ "id" : "2",
+ "name" : "ACCOUNT_BUYER_LEVEL",
+ "datatype" : "int"
+ }, {
+ "id" : "3",
+ "name" : "ACCOUNT_SELLER_LEVEL",
+ "datatype" : "int"
+ }, {
+ "id" : "4",
+ "name" : "ACCOUNT_COUNTRY",
+ "datatype" : "string"
+ }, {
+ "id" : "5",
+ "name" : "ACCOUNT_CONTACT",
+ "datatype" : "string"
+ } ],
+ "database" : "DEFAULT",
+ "last_modified" : 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
index fbeafb3..9286215 100644
--- a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
+++ b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
@@ -40,19 +40,15 @@
"datatype" : "bigint"
}, {
"id" : "10",
- "name" : "BUYER_COUNTRY",
- "datatype" : "string"
+ "name" : "BUYER_ID",
+ "datatype" : "bigint"
}, {
"id" : "11",
- "name" : "SELLER_COUNTRY",
+ "name" : "OPS_USER_ID",
"datatype" : "string"
}, {
"id" : "12",
- "name" : "USER_ID",
- "datatype" : "string"
- }, {
- "id" : "13",
- "name" : "REGION",
+ "name" : "OPS_REGION",
"datatype" : "string"
} ],
"database" : "DEFAULT",
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/test_case_data/sandbox/kylin.properties
----------------------------------------------------------------------
diff --git a/examples/test_case_data/sandbox/kylin.properties b/examples/test_case_data/sandbox/kylin.properties
index dc7132a..20bc427 100644
--- a/examples/test_case_data/sandbox/kylin.properties
+++ b/examples/test_case_data/sandbox/kylin.properties
@@ -39,7 +39,7 @@ kylin.source.hive.client=cli
### STORAGE ###
# The metadata store in hbase
-kylin.metadata.url=kylin_metadata@hbase
+kylin.metadata.url=kylin_default_instance@hbase
# The storage for final cube file in hbase
kylin.storage.url=hbase
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
index 4c0a1dc..6869858 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
@@ -70,6 +70,7 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
private OLAPContext context;
private ColumnRowType columnRowType;
+ private int columnRowTypeLeftRightCut;
private boolean isTopJoin;
private boolean hasSubQuery;
@@ -180,6 +181,8 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
ColumnRowType leftColumnRowType = olapLeft.getColumnRowType();
columns.addAll(leftColumnRowType.getAllColumns());
+ this.columnRowTypeLeftRightCut = columns.size();
+
OLAPRel olapRight = (OLAPRel) this.right;
ColumnRowType rightColumnRowType = olapRight.getColumnRowType();
columns.addAll(rightColumnRowType.getAllColumns());
@@ -198,21 +201,13 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
List<TblColRef> pkCols = new ArrayList<TblColRef>();
List<String> fks = new ArrayList<String>();
List<TblColRef> fkCols = new ArrayList<TblColRef>();
- String factTable = context.firstTableScan.getTableName();
for (Map.Entry<TblColRef, TblColRef> columnPair : joinColumns.entrySet()) {
TblColRef fromCol = columnPair.getKey();
TblColRef toCol = columnPair.getValue();
- if (factTable.equalsIgnoreCase(fromCol.getTable())) {
- fks.add(fromCol.getName());
- fkCols.add(fromCol);
- pks.add(toCol.getName());
- pkCols.add(toCol);
- } else {
- fks.add(toCol.getName());
- fkCols.add(toCol);
- pks.add(fromCol.getName());
- pkCols.add(fromCol);
- }
+ fks.add(fromCol.getName());
+ fkCols.add(fromCol);
+ pks.add(toCol.getName());
+ pkCols.add(toCol);
}
JoinDesc join = new JoinDesc();
@@ -237,7 +232,11 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
TblColRef col0 = columnRowType.getColumnByIndex(op0.getIndex());
RexInputRef op1 = (RexInputRef) operands.get(1);
TblColRef col1 = columnRowType.getColumnByIndex(op1.getIndex());
- joinColumns.put(col0, col1);
+ // map left => right
+ if (op0.getIndex() < columnRowTypeLeftRightCut)
+ joinColumns.put(col0, col1);
+ else
+ joinColumns.put(col1, col0);
}
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
index 38f299e..ea68855 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
@@ -25,7 +25,6 @@ import org.apache.hadoop.hbase.client.HTableInterface;
/**
*/
public interface AclHBaseStorage {
- String DEFAULT_TABLE_PREFIX = "kylin_metadata";
String ACL_INFO_FAMILY = "i";
String ACL_ACES_FAMILY = "a";
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
index ab18029..1d520c4 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
@@ -38,10 +38,11 @@ public class RealAclHBaseStorage implements AclHBaseStorage {
@Override
public String prepareHBaseTable(Class<?> clazz) throws IOException {
- String metadataUrl = KylinConfig.getInstanceFromEnv().getMetadataUrl();
+ KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
+ String metadataUrl = kylinConfig.getMetadataUrl();
int cut = metadataUrl.indexOf('@');
- String tableNameBase = cut < 0 ? DEFAULT_TABLE_PREFIX : metadataUrl.substring(0, cut);
hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1);
+ String tableNameBase = kylinConfig.getMetadataUrlPrefix();
if (clazz == AclService.class) {
aclTableName = tableNameBase + ACL_TABLE_NAME;
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
index 81af044..4389a5d 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -104,7 +104,6 @@ public class QueryService extends BasicService {
private static final Logger logger = LoggerFactory.getLogger(QueryService.class);
public static final String USER_QUERY_FAMILY = "q";
- private static final String DEFAULT_TABLE_PREFIX = "kylin_metadata";
private static final String USER_TABLE_NAME = "_user";
private static final String USER_QUERY_COLUMN = "c";
@@ -129,11 +128,12 @@ public class QueryService extends BasicService {
}
public QueryService() {
- String metadataUrl = KylinConfig.getInstanceFromEnv().getMetadataUrl();
+ KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
+ String metadataUrl = kylinConfig.getMetadataUrl();
// split TABLE@HBASE_URL
int cut = metadataUrl.indexOf('@');
- String tableNameBase = cut < 0 ? DEFAULT_TABLE_PREFIX : metadataUrl.substring(0, cut);
hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1);
+ String tableNameBase = kylinConfig.getMetadataUrlPrefix();
userTableName = tableNameBase + USER_TABLE_NAME;
badQueryDetector.start();
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
index 82cc93c..1d19983 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
@@ -58,7 +58,7 @@ public class HBaseResourceStore extends ResourceStore {
private static final Logger logger = LoggerFactory.getLogger(HBaseResourceStore.class);
- private static final String DEFAULT_TABLE_NAME = "kylin_metadata";
+ private static final String DEFAULT_TABLE_NAME = "kylin_default_instance";
private static final String FAMILY = "f";
private static final byte[] B_FAMILY = Bytes.toBytes(FAMILY);
private static final String COLUMN = "c";
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
index 90080b6..9fe5a23 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
@@ -185,7 +185,7 @@ public class StorageCleanupJob extends AbstractApplication {
// GlobFilter filter = new
// GlobFilter(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()
// + "/kylin-.*");
- // TODO: when first use, /kylin/kylin_metadata does not exist.
+ // TODO: when first use, /kylin/kylin_default_instance does not exist.
FileStatus[] fStatus = fs.listStatus(new Path(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()));
for (FileStatus status : fStatus) {
String path = status.getPath().getName();
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
index b4accac..05e0142 100644
--- a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
+++ b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
@@ -190,7 +190,7 @@ public class StorageCleanupJob extends AbstractApplication {
// GlobFilter filter = new
// GlobFilter(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()
// + "/kylin-.*");
- // TODO: when first use, /kylin/kylin_metadata does not exist.
+ // TODO: when first use, /kylin/kylin_default_instance does not exist.
FileStatus[] fStatus = fs.listStatus(new Path(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()));
for (FileStatus status : fStatus) {
String path = status.getPath().getName();
[5/9] kylin git commit: fix UT
Posted by li...@apache.org.
fix UT
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/07322faf
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/07322faf
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/07322faf
Branch: refs/heads/KYLIN-1875
Commit: 07322fafdb1c2475df924d61167cf70806a08020
Parents: 237c763
Author: Li Yang <li...@apache.org>
Authored: Mon Nov 28 14:22:02 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Nov 28 14:22:20 2016 +0800
----------------------------------------------------------------------
.../localmeta/cube_desc/test_kylin_snowflake_sales_cube.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/07322faf/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json b/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
index aa0f874..ee0d68c 100644
--- a/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
+++ b/examples/test_case_data/localmeta/cube_desc/test_kylin_snowflake_sales_cube.json
@@ -260,8 +260,8 @@
"partition_date_start" : 1325376000000,
"auto_merge_time_ranges" : null,
"retention_range" : 0,
- "engine_type" : %default_engine_type%,
- "storage_type" : %default_engine_type%,
+ "engine_type" : 2,
+ "storage_type" : 2,
"override_kylin_properties" : {
"kylin.cube.aggrgroup.is-mandatory-only-valid" : "true"
}
[3/9] kylin git commit: add JoinsTree, halfway
Posted by li...@apache.org.
add JoinsTree, halfway
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e9ccf5f7
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e9ccf5f7
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e9ccf5f7
Branch: refs/heads/KYLIN-1875
Commit: e9ccf5f708b51c9c282bbf7a96c974f95c711feb
Parents: 4271f10
Author: Yang Li <li...@apache.org>
Authored: Mon Nov 28 07:49:11 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Nov 28 14:22:20 2016 +0800
----------------------------------------------------------------------
.../apache/kylin/dict/DictionaryManager.java | 2 +-
.../apache/kylin/metadata/model/JoinDesc.java | 11 ++
.../apache/kylin/metadata/model/JoinsTree.java | 113 +++++++++++++++++++
.../apache/kylin/metadata/model/TblColRef.java | 4 +
4 files changed, 129 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/e9ccf5f7/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index 820299c..3c64e45 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -357,7 +357,7 @@ public class DictionaryManager {
if (join.isInnerJoin() == false)
return false;
- TableRef table = join.getForeignKeyColumns()[0].getTableRef();
+ TableRef table = join.getFKSide();
join = model.getPKSideJoinMap().get(table);
}
return true;
http://git-wip-us.apache.org/repos/asf/kylin/blob/e9ccf5f7/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinDesc.java
index d3c0745..6489244 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinDesc.java
@@ -110,6 +110,14 @@ public class JoinDesc {
Preconditions.checkState(tableRef == cols[i].getTableRef());
}
+ public TableRef getPKSide() {
+ return primaryKeyColumns[0].getTableRef();
+ }
+
+ public TableRef getFKSide() {
+ return foreignKeyColumns[0].getTableRef();
+ }
+
public void sortByFK() {
Preconditions.checkState(primaryKey.length == foreignKey.length && primaryKey.length == primaryKeyColumns.length && foreignKey.length == foreignKeyColumns.length);
boolean cont = true;
@@ -174,6 +182,9 @@ public class JoinDesc {
// equals() without alias
public boolean matches(JoinDesc other) {
+ if (other == null)
+ return false;
+
if (!this.type.equalsIgnoreCase(other.getType()))
return false;
http://git-wip-us.apache.org/repos/asf/kylin/blob/e9ccf5f7/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
new file mode 100644
index 0000000..0317a3d
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinsTree.java
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+*/
+
+package org.apache.kylin.metadata.model;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.base.Preconditions;
+
+public class JoinsTree {
+
+ final private Chain root;
+ final private Map<TableRef, Chain> tableChains = new LinkedHashMap<>();
+
+ public JoinsTree(TableRef rootTable, List<JoinDesc> joins) {
+ for (JoinDesc join : joins) {
+ for (TblColRef col : join.getForeignKeyColumns())
+ Preconditions.checkState(col.isQualified());
+ for (TblColRef col : join.getPrimaryKeyColumns())
+ Preconditions.checkState(col.isQualified());
+ }
+
+ root = new Chain(rootTable, null, null);
+ tableChains.put(rootTable, root);
+
+ for (JoinDesc join : joins) {
+ TableRef pkSide = join.getPKSide();
+ Chain fkSide = tableChains.get(join.getFKSide());
+ tableChains.put(pkSide, new Chain(pkSide, join, fkSide));
+ }
+ }
+
+ public Map<String, String> matches(JoinsTree another) {
+ Map<String, String> matchUp = new HashMap<>();
+
+ for (Chain chain : tableChains.values()) {
+ if (matchInTree(chain, another, matchUp) == false)
+ return null;
+ }
+
+ return matchUp;
+ }
+
+ private boolean matchInTree(Chain chain, JoinsTree another, Map<String, String> matchUp) {
+ String thisAlias = chain.table.getAlias();
+ if (matchUp.containsKey(thisAlias))
+ return true;
+
+ for (Chain anotherChain : another.tableChains.values()) {
+ if (matchChain(chain, anotherChain, matchUp)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean matchChain(Chain chain, Chain anotherChain, Map<String, String> matchUp) {
+ String thisAlias = chain.table.getAlias();
+ String anotherAlias = anotherChain.table.getAlias();
+
+ String curMatch = matchUp.get(thisAlias);
+ if (curMatch != null)
+ return curMatch.equals(anotherAlias);
+ if (curMatch == null && matchUp.values().contains(anotherAlias))
+ return false;
+
+ boolean matches = false;
+ if (chain.join == null) {
+ matches = anotherChain.join == null && chain.table.getTableDesc().equals(anotherChain.table.getTableDesc());
+ } else {
+ matches = chain.join.matches(anotherChain.join) && matchChain(chain.fkSide, anotherChain.fkSide, matchUp);
+ }
+
+ if (matches) {
+ matchUp.put(thisAlias, anotherAlias);
+ }
+ return matches;
+ }
+
+ private static class Chain {
+ TableRef table; // pk side
+ JoinDesc join;
+ Chain fkSide;
+
+ public Chain(TableRef table, JoinDesc join, Chain fkSide) {
+ this.table = table;
+ this.join = join;
+ this.fkSide = fkSide;
+ if (join != null) {
+ Preconditions.checkArgument(table == join.getPKSide());
+ Preconditions.checkArgument(fkSide.table == join.getPKSide());
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/kylin/blob/e9ccf5f7/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
index 2cfbafc..bf8d36b 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
@@ -123,6 +123,10 @@ public class TblColRef implements Serializable {
return table;
}
+ public boolean isQualified() {
+ return table != null;
+ }
+
public String getTableAlias() {
return table != null ? table.getAlias() : "UNKNOWN_ALIAS";
}
[2/9] kylin git commit: minor, update 1.6 doc links in README.md
Posted by li...@apache.org.
minor, update 1.6 doc links in README.md
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/3f10b3a5
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/3f10b3a5
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/3f10b3a5
Branch: refs/heads/KYLIN-1875
Commit: 3f10b3a534166f43118caf0564ad521a9fb2632f
Parents: 99f1dd9
Author: lidongsjtu <li...@apache.org>
Authored: Mon Nov 28 09:02:28 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Mon Nov 28 09:02:36 2016 +0800
----------------------------------------------------------------------
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/3f10b3a5/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index e72bd56..06e5ba4 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ For more details, see the website [http://kylin.apache.org](http://kylin.apache.
Documentation
=============
-Please refer to [http://kylin.apache.org/docs15/](http://kylin.apache.org/docs15/).
+Please refer to [http://kylin.apache.org/docs16/](http://kylin.apache.org/docs16/).
Get Help
============
[8/9] kylin git commit: KYLIN-1875 A good snowflake sample data,
and rename 'kylin_metadata' to 'kylin_default_instance'
Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv
----------------------------------------------------------------------
diff --git a/examples/sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv b/examples/sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv
new file mode 100644
index 0000000..253afbf
--- /dev/null
+++ b/examples/sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv
@@ -0,0 +1,10000 @@
+10000000,1,4,FR,N/A
+10000001,0,1,DE,N/A
+10000002,0,1,IT,N/A
+10000003,4,2,DE,N/A
+10000004,2,3,JP,N/A
+10000005,0,1,CN,N/A
+10000006,2,3,JP,N/A
+10000007,0,2,GB,N/A
+10000008,5,3,US,N/A
+10000009,1,3,US,N/A
+10000010,1,1,IT,N/A
+10000011,2,4,FR,N/A
+10000012,3,1,CN,N/A
+10000013,1,1,FR,N/A
+10000014,5,3,CN,N/A
+10000015,3,5,IT,N/A
+10000016,4,5,JP,N/A
+10000017,3,4,US,N/A
+10000018,0,5,CN,N/A
+10000019,4,4,GB,N/A
+10000020,4,4,IT,N/A
+10000021,1,2,FR,N/A
+10000022,2,2,DE,N/A
+10000023,0,1,GB,N/A
+10000024,3,4,IT,N/A
+10000025,4,4,JP,N/A
+10000026,5,4,IT,N/A
+10000027,2,4,FR,N/A
+10000028,2,2,GB,N/A
+10000029,1,1,GB,N/A
+10000030,5,5,CN,N/A
+10000031,4,2,CN,N/A
+10000032,1,3,CN,N/A
+10000033,2,1,JP,N/A
+10000034,2,1,JP,N/A
+10000035,4,2,US,N/A
+10000036,5,4,DE,N/A
+10000037,2,4,DE,N/A
+10000038,1,3,US,N/A
+10000039,3,5,US,N/A
+10000040,2,3,GB,N/A
+10000041,1,5,IT,N/A
+10000042,5,5,CN,N/A
+10000043,5,1,IT,N/A
+10000044,3,4,IT,N/A
+10000045,1,3,US,N/A
+10000046,3,3,JP,N/A
+10000047,2,2,FR,N/A
+10000048,5,4,JP,N/A
+10000049,3,1,JP,N/A
+10000050,3,5,JP,N/A
+10000051,5,1,US,N/A
+10000052,3,5,DE,N/A
+10000053,1,3,JP,N/A
+10000054,5,1,GB,N/A
+10000055,2,1,GB,N/A
+10000056,2,3,CN,N/A
+10000057,1,5,US,N/A
+10000058,2,2,CN,N/A
+10000059,2,4,FR,N/A
+10000060,0,3,FR,N/A
+10000061,0,5,FR,N/A
+10000062,1,1,US,N/A
+10000063,4,5,DE,N/A
+10000064,2,5,GB,N/A
+10000065,0,3,GB,N/A
+10000066,1,1,IT,N/A
+10000067,0,2,GB,N/A
+10000068,4,1,IT,N/A
+10000069,0,4,FR,N/A
+10000070,3,4,CN,N/A
+10000071,3,5,GB,N/A
+10000072,4,3,CN,N/A
+10000073,0,4,IT,N/A
+10000074,5,3,GB,N/A
+10000075,0,4,JP,N/A
+10000076,2,5,JP,N/A
+10000077,0,3,CN,N/A
+10000078,4,3,GB,N/A
+10000079,4,5,US,N/A
+10000080,4,2,JP,N/A
+10000081,5,2,CN,N/A
+10000082,4,1,JP,N/A
+10000083,0,4,GB,N/A
+10000084,1,4,DE,N/A
+10000085,4,4,FR,N/A
+10000086,2,5,JP,N/A
+10000087,0,1,IT,N/A
+10000088,0,2,FR,N/A
+10000089,3,2,DE,N/A
+10000090,5,2,IT,N/A
+10000091,0,3,GB,N/A
+10000092,1,4,DE,N/A
+10000093,2,1,IT,N/A
+10000094,4,3,JP,N/A
+10000095,1,1,DE,N/A
+10000096,0,5,JP,N/A
+10000097,3,3,CN,N/A
+10000098,5,3,JP,N/A
+10000099,3,1,GB,N/A
+10000100,5,1,CN,N/A
+10000101,2,3,JP,N/A
+10000102,5,1,IT,N/A
+10000103,5,2,GB,N/A
+10000104,3,5,GB,N/A
+10000105,3,1,DE,N/A
+10000106,3,5,GB,N/A
+10000107,5,3,DE,N/A
+10000108,4,1,CN,N/A
+10000109,4,3,GB,N/A
+10000110,4,1,FR,N/A
+10000111,3,5,FR,N/A
+10000112,1,1,GB,N/A
+10000113,5,4,FR,N/A
+10000114,2,2,DE,N/A
+10000115,4,3,GB,N/A
+10000116,0,3,FR,N/A
+10000117,1,4,CN,N/A
+10000118,4,4,IT,N/A
+10000119,0,2,CN,N/A
+10000120,5,2,DE,N/A
+10000121,0,2,GB,N/A
+10000122,4,3,CN,N/A
+10000123,1,4,FR,N/A
+10000124,0,2,CN,N/A
+10000125,4,5,US,N/A
+10000126,0,4,GB,N/A
+10000127,4,3,CN,N/A
+10000128,4,3,GB,N/A
+10000129,1,4,JP,N/A
+10000130,2,2,JP,N/A
+10000131,0,3,IT,N/A
+10000132,4,1,GB,N/A
+10000133,1,5,US,N/A
+10000134,3,3,DE,N/A
+10000135,3,2,IT,N/A
+10000136,2,2,JP,N/A
+10000137,0,3,CN,N/A
+10000138,3,1,FR,N/A
+10000139,2,3,FR,N/A
+10000140,3,1,IT,N/A
+10000141,0,3,US,N/A
+10000142,3,4,FR,N/A
+10000143,4,5,DE,N/A
+10000144,3,3,JP,N/A
+10000145,5,5,DE,N/A
+10000146,2,5,FR,N/A
+10000147,0,5,IT,N/A
+10000148,2,5,US,N/A
+10000149,0,3,CN,N/A
+10000150,2,2,GB,N/A
+10000151,5,5,CN,N/A
+10000152,2,2,IT,N/A
+10000153,3,2,FR,N/A
+10000154,5,4,FR,N/A
+10000155,3,5,FR,N/A
+10000156,5,2,GB,N/A
+10000157,1,2,IT,N/A
+10000158,3,3,JP,N/A
+10000159,5,1,IT,N/A
+10000160,3,4,CN,N/A
+10000161,2,5,IT,N/A
+10000162,4,5,CN,N/A
+10000163,3,5,FR,N/A
+10000164,1,2,FR,N/A
+10000165,0,3,GB,N/A
+10000166,5,4,CN,N/A
+10000167,4,5,IT,N/A
+10000168,3,2,IT,N/A
+10000169,3,2,DE,N/A
+10000170,2,2,DE,N/A
+10000171,3,1,IT,N/A
+10000172,3,1,IT,N/A
+10000173,3,5,CN,N/A
+10000174,5,2,US,N/A
+10000175,2,3,FR,N/A
+10000176,5,5,JP,N/A
+10000177,1,4,DE,N/A
+10000178,4,5,GB,N/A
+10000179,5,3,FR,N/A
+10000180,2,3,GB,N/A
+10000181,0,3,IT,N/A
+10000182,3,2,JP,N/A
+10000183,5,5,IT,N/A
+10000184,4,1,IT,N/A
+10000185,3,2,IT,N/A
+10000186,3,2,CN,N/A
+10000187,2,5,IT,N/A
+10000188,3,2,JP,N/A
+10000189,4,4,IT,N/A
+10000190,4,3,GB,N/A
+10000191,3,4,JP,N/A
+10000192,2,2,FR,N/A
+10000193,5,1,FR,N/A
+10000194,5,2,US,N/A
+10000195,2,5,FR,N/A
+10000196,1,2,FR,N/A
+10000197,5,3,FR,N/A
+10000198,1,4,GB,N/A
+10000199,1,3,FR,N/A
+10000200,4,5,IT,N/A
+10000201,3,1,GB,N/A
+10000202,0,3,GB,N/A
+10000203,4,3,DE,N/A
+10000204,4,2,GB,N/A
+10000205,4,2,DE,N/A
+10000206,5,2,GB,N/A
+10000207,1,5,DE,N/A
+10000208,4,5,GB,N/A
+10000209,0,3,FR,N/A
+10000210,1,5,FR,N/A
+10000211,3,2,DE,N/A
+10000212,5,1,JP,N/A
+10000213,0,4,CN,N/A
+10000214,3,1,JP,N/A
+10000215,5,1,CN,N/A
+10000216,4,2,FR,N/A
+10000217,4,5,DE,N/A
+10000218,5,3,DE,N/A
+10000219,3,1,CN,N/A
+10000220,4,5,IT,N/A
+10000221,3,1,GB,N/A
+10000222,2,3,CN,N/A
+10000223,3,3,GB,N/A
+10000224,2,4,JP,N/A
+10000225,2,5,CN,N/A
+10000226,4,4,IT,N/A
+10000227,4,1,GB,N/A
+10000228,2,2,IT,N/A
+10000229,5,3,DE,N/A
+10000230,2,1,GB,N/A
+10000231,4,4,DE,N/A
+10000232,2,5,JP,N/A
+10000233,4,4,DE,N/A
+10000234,0,1,GB,N/A
+10000235,5,4,FR,N/A
+10000236,4,4,DE,N/A
+10000237,0,3,DE,N/A
+10000238,4,2,CN,N/A
+10000239,2,4,CN,N/A
+10000240,0,2,GB,N/A
+10000241,2,4,DE,N/A
+10000242,2,1,US,N/A
+10000243,1,1,US,N/A
+10000244,5,4,DE,N/A
+10000245,5,3,GB,N/A
+10000246,2,1,FR,N/A
+10000247,1,1,JP,N/A
+10000248,2,5,JP,N/A
+10000249,2,1,GB,N/A
+10000250,4,4,FR,N/A
+10000251,3,2,IT,N/A
+10000252,3,2,DE,N/A
+10000253,0,3,US,N/A
+10000254,3,4,JP,N/A
+10000255,0,4,CN,N/A
+10000256,4,3,FR,N/A
+10000257,1,2,IT,N/A
+10000258,2,2,JP,N/A
+10000259,5,2,US,N/A
+10000260,3,3,CN,N/A
+10000261,5,1,GB,N/A
+10000262,3,2,DE,N/A
+10000263,0,2,JP,N/A
+10000264,4,2,CN,N/A
+10000265,2,3,CN,N/A
+10000266,3,4,US,N/A
+10000267,2,2,IT,N/A
+10000268,5,5,FR,N/A
+10000269,5,3,DE,N/A
+10000270,0,5,FR,N/A
+10000271,5,3,DE,N/A
+10000272,2,2,GB,N/A
+10000273,5,5,DE,N/A
+10000274,3,5,FR,N/A
+10000275,1,5,IT,N/A
+10000276,5,1,CN,N/A
+10000277,5,1,IT,N/A
+10000278,4,1,JP,N/A
+10000279,1,3,US,N/A
+10000280,1,3,IT,N/A
+10000281,3,5,US,N/A
+10000282,0,5,IT,N/A
+10000283,4,4,CN,N/A
+10000284,0,1,US,N/A
+10000285,1,5,DE,N/A
+10000286,3,3,US,N/A
+10000287,5,1,JP,N/A
+10000288,5,1,GB,N/A
+10000289,2,4,FR,N/A
+10000290,2,5,GB,N/A
+10000291,5,3,IT,N/A
+10000292,4,4,US,N/A
+10000293,3,3,GB,N/A
+10000294,2,2,GB,N/A
+10000295,4,5,DE,N/A
+10000296,0,5,DE,N/A
+10000297,1,2,JP,N/A
+10000298,1,5,GB,N/A
+10000299,4,1,JP,N/A
+10000300,1,2,DE,N/A
+10000301,4,4,IT,N/A
+10000302,5,5,DE,N/A
+10000303,5,3,JP,N/A
+10000304,5,5,GB,N/A
+10000305,0,1,GB,N/A
+10000306,4,1,CN,N/A
+10000307,4,5,US,N/A
+10000308,5,5,DE,N/A
+10000309,0,5,IT,N/A
+10000310,5,1,GB,N/A
+10000311,4,5,FR,N/A
+10000312,2,1,CN,N/A
+10000313,1,4,FR,N/A
+10000314,1,2,DE,N/A
+10000315,5,3,CN,N/A
+10000316,0,3,CN,N/A
+10000317,3,2,DE,N/A
+10000318,0,1,CN,N/A
+10000319,1,5,JP,N/A
+10000320,2,1,FR,N/A
+10000321,0,5,IT,N/A
+10000322,0,4,DE,N/A
+10000323,4,1,DE,N/A
+10000324,5,5,GB,N/A
+10000325,0,4,GB,N/A
+10000326,5,2,IT,N/A
+10000327,3,5,IT,N/A
+10000328,2,1,JP,N/A
+10000329,5,3,CN,N/A
+10000330,5,2,CN,N/A
+10000331,3,1,CN,N/A
+10000332,0,3,GB,N/A
+10000333,4,5,CN,N/A
+10000334,0,3,IT,N/A
+10000335,2,1,GB,N/A
+10000336,4,3,DE,N/A
+10000337,1,2,FR,N/A
+10000338,2,4,IT,N/A
+10000339,5,4,FR,N/A
+10000340,0,2,GB,N/A
+10000341,2,3,IT,N/A
+10000342,0,3,DE,N/A
+10000343,4,1,US,N/A
+10000344,4,1,CN,N/A
+10000345,5,1,FR,N/A
+10000346,2,4,DE,N/A
+10000347,4,1,DE,N/A
+10000348,5,5,DE,N/A
+10000349,2,2,US,N/A
+10000350,1,5,DE,N/A
+10000351,2,4,US,N/A
+10000352,0,4,US,N/A
+10000353,2,5,GB,N/A
+10000354,0,3,DE,N/A
+10000355,2,1,FR,N/A
+10000356,1,5,JP,N/A
+10000357,3,2,GB,N/A
+10000358,3,4,FR,N/A
+10000359,0,4,IT,N/A
+10000360,3,1,CN,N/A
+10000361,5,4,GB,N/A
+10000362,5,3,IT,N/A
+10000363,1,1,IT,N/A
+10000364,2,1,DE,N/A
+10000365,1,1,FR,N/A
+10000366,2,2,IT,N/A
+10000367,2,5,FR,N/A
+10000368,5,5,CN,N/A
+10000369,4,3,DE,N/A
+10000370,0,2,US,N/A
+10000371,2,2,DE,N/A
+10000372,0,5,JP,N/A
+10000373,0,5,DE,N/A
+10000374,3,2,CN,N/A
+10000375,4,2,IT,N/A
+10000376,3,5,GB,N/A
+10000377,5,4,GB,N/A
+10000378,3,4,US,N/A
+10000379,3,4,FR,N/A
+10000380,3,1,IT,N/A
+10000381,0,2,FR,N/A
+10000382,1,1,JP,N/A
+10000383,1,5,CN,N/A
+10000384,3,4,US,N/A
+10000385,3,2,DE,N/A
+10000386,3,1,JP,N/A
+10000387,2,2,US,N/A
+10000388,4,2,US,N/A
+10000389,0,2,IT,N/A
+10000390,5,5,CN,N/A
+10000391,2,3,JP,N/A
+10000392,3,3,IT,N/A
+10000393,0,1,DE,N/A
+10000394,1,2,IT,N/A
+10000395,4,4,FR,N/A
+10000396,3,1,CN,N/A
+10000397,0,5,CN,N/A
+10000398,4,5,IT,N/A
+10000399,2,5,DE,N/A
+10000400,2,5,JP,N/A
+10000401,0,1,FR,N/A
+10000402,4,5,FR,N/A
+10000403,4,3,JP,N/A
+10000404,4,1,JP,N/A
+10000405,2,5,US,N/A
+10000406,0,2,US,N/A
+10000407,0,3,GB,N/A
+10000408,5,3,FR,N/A
+10000409,5,1,US,N/A
+10000410,1,2,CN,N/A
+10000411,3,3,CN,N/A
+10000412,2,2,JP,N/A
+10000413,4,4,DE,N/A
+10000414,0,5,GB,N/A
+10000415,3,1,GB,N/A
+10000416,2,5,CN,N/A
+10000417,5,1,GB,N/A
+10000418,4,3,IT,N/A
+10000419,2,3,US,N/A
+10000420,1,2,DE,N/A
+10000421,0,5,GB,N/A
+10000422,1,3,US,N/A
+10000423,0,3,DE,N/A
+10000424,4,3,JP,N/A
+10000425,4,4,DE,N/A
+10000426,3,2,CN,N/A
+10000427,4,2,FR,N/A
+10000428,2,2,JP,N/A
+10000429,0,2,IT,N/A
+10000430,3,4,DE,N/A
+10000431,0,3,CN,N/A
+10000432,2,5,FR,N/A
+10000433,5,2,IT,N/A
+10000434,1,3,JP,N/A
+10000435,0,5,JP,N/A
+10000436,2,4,FR,N/A
+10000437,0,5,IT,N/A
+10000438,0,3,JP,N/A
+10000439,1,1,CN,N/A
+10000440,5,5,GB,N/A
+10000441,4,3,JP,N/A
+10000442,5,3,US,N/A
+10000443,4,1,DE,N/A
+10000444,1,3,GB,N/A
+10000445,1,2,IT,N/A
+10000446,2,2,JP,N/A
+10000447,1,5,FR,N/A
+10000448,3,3,IT,N/A
+10000449,1,1,US,N/A
+10000450,3,3,JP,N/A
+10000451,5,5,CN,N/A
+10000452,5,4,CN,N/A
+10000453,2,4,US,N/A
+10000454,3,5,JP,N/A
+10000455,0,3,GB,N/A
+10000456,3,4,CN,N/A
+10000457,5,2,IT,N/A
+10000458,1,1,DE,N/A
+10000459,4,5,IT,N/A
+10000460,3,3,US,N/A
+10000461,1,2,US,N/A
+10000462,2,5,US,N/A
+10000463,1,4,GB,N/A
+10000464,3,1,FR,N/A
+10000465,5,3,GB,N/A
+10000466,3,1,IT,N/A
+10000467,0,1,FR,N/A
+10000468,4,5,GB,N/A
+10000469,3,2,US,N/A
+10000470,4,3,CN,N/A
+10000471,4,2,JP,N/A
+10000472,4,5,DE,N/A
+10000473,4,3,FR,N/A
+10000474,1,1,GB,N/A
+10000475,1,4,CN,N/A
+10000476,2,3,US,N/A
+10000477,0,1,DE,N/A
+10000478,3,2,IT,N/A
+10000479,4,4,GB,N/A
+10000480,5,4,GB,N/A
+10000481,4,3,US,N/A
+10000482,0,5,CN,N/A
+10000483,0,1,CN,N/A
+10000484,4,3,FR,N/A
+10000485,5,2,FR,N/A
+10000486,5,3,CN,N/A
+10000487,5,3,GB,N/A
+10000488,4,3,JP,N/A
+10000489,1,4,FR,N/A
+10000490,1,1,US,N/A
+10000491,2,3,DE,N/A
+10000492,1,2,GB,N/A
+10000493,4,5,GB,N/A
+10000494,5,3,CN,N/A
+10000495,1,2,CN,N/A
+10000496,3,3,US,N/A
+10000497,3,1,IT,N/A
+10000498,4,4,US,N/A
+10000499,4,5,JP,N/A
+10000500,4,3,DE,N/A
+10000501,4,3,FR,N/A
+10000502,2,1,CN,N/A
+10000503,5,5,CN,N/A
+10000504,3,4,US,N/A
+10000505,0,2,GB,N/A
+10000506,2,4,FR,N/A
+10000507,1,2,IT,N/A
+10000508,4,2,IT,N/A
+10000509,2,5,IT,N/A
+10000510,0,1,DE,N/A
+10000511,5,5,IT,N/A
+10000512,2,5,FR,N/A
+10000513,4,2,IT,N/A
+10000514,4,2,JP,N/A
+10000515,4,5,IT,N/A
+10000516,2,4,JP,N/A
+10000517,4,2,CN,N/A
+10000518,2,3,JP,N/A
+10000519,2,3,GB,N/A
+10000520,4,2,JP,N/A
+10000521,0,4,DE,N/A
+10000522,2,2,US,N/A
+10000523,0,2,FR,N/A
+10000524,1,2,GB,N/A
+10000525,4,5,IT,N/A
+10000526,0,3,US,N/A
+10000527,4,1,FR,N/A
+10000528,0,5,DE,N/A
+10000529,3,5,IT,N/A
+10000530,4,1,IT,N/A
+10000531,0,1,GB,N/A
+10000532,0,2,DE,N/A
+10000533,2,4,GB,N/A
+10000534,4,4,FR,N/A
+10000535,3,2,JP,N/A
+10000536,3,2,GB,N/A
+10000537,2,4,US,N/A
+10000538,0,3,DE,N/A
+10000539,5,2,IT,N/A
+10000540,2,1,IT,N/A
+10000541,3,2,US,N/A
+10000542,2,3,JP,N/A
+10000543,4,2,DE,N/A
+10000544,1,3,JP,N/A
+10000545,5,3,FR,N/A
+10000546,4,2,IT,N/A
+10000547,4,1,CN,N/A
+10000548,3,2,US,N/A
+10000549,5,2,DE,N/A
+10000550,1,4,US,N/A
+10000551,2,1,FR,N/A
+10000552,3,5,GB,N/A
+10000553,5,3,FR,N/A
+10000554,3,1,JP,N/A
+10000555,2,4,JP,N/A
+10000556,3,4,FR,N/A
+10000557,3,2,CN,N/A
+10000558,4,1,US,N/A
+10000559,4,2,JP,N/A
+10000560,0,1,GB,N/A
+10000561,5,3,CN,N/A
+10000562,5,2,IT,N/A
+10000563,2,3,DE,N/A
+10000564,4,5,US,N/A
+10000565,1,3,US,N/A
+10000566,1,3,IT,N/A
+10000567,3,5,CN,N/A
+10000568,3,1,FR,N/A
+10000569,0,2,DE,N/A
+10000570,0,2,JP,N/A
+10000571,4,5,DE,N/A
+10000572,0,3,IT,N/A
+10000573,5,4,JP,N/A
+10000574,5,3,GB,N/A
+10000575,2,4,GB,N/A
+10000576,4,4,JP,N/A
+10000577,4,3,GB,N/A
+10000578,2,2,FR,N/A
+10000579,0,4,DE,N/A
+10000580,1,5,JP,N/A
+10000581,2,3,JP,N/A
+10000582,2,3,JP,N/A
+10000583,4,4,US,N/A
+10000584,2,3,JP,N/A
+10000585,0,2,JP,N/A
+10000586,1,4,CN,N/A
+10000587,1,3,DE,N/A
+10000588,2,1,JP,N/A
+10000589,2,1,DE,N/A
+10000590,0,1,US,N/A
+10000591,2,4,JP,N/A
+10000592,4,5,GB,N/A
+10000593,0,4,FR,N/A
+10000594,1,4,US,N/A
+10000595,5,1,FR,N/A
+10000596,0,1,JP,N/A
+10000597,0,3,GB,N/A
+10000598,5,3,IT,N/A
+10000599,2,5,JP,N/A
+10000600,4,1,JP,N/A
+10000601,2,3,GB,N/A
+10000602,3,3,IT,N/A
+10000603,4,4,CN,N/A
+10000604,3,1,FR,N/A
+10000605,5,2,GB,N/A
+10000606,4,1,DE,N/A
+10000607,4,4,US,N/A
+10000608,4,2,GB,N/A
+10000609,3,4,IT,N/A
+10000610,5,1,US,N/A
+10000611,5,5,GB,N/A
+10000612,0,2,CN,N/A
+10000613,0,1,GB,N/A
+10000614,5,1,IT,N/A
+10000615,0,1,FR,N/A
+10000616,3,3,DE,N/A
+10000617,3,3,FR,N/A
+10000618,2,4,IT,N/A
+10000619,3,5,FR,N/A
+10000620,1,5,FR,N/A
+10000621,2,2,DE,N/A
+10000622,5,3,CN,N/A
+10000623,0,5,DE,N/A
+10000624,0,3,IT,N/A
+10000625,0,3,IT,N/A
+10000626,2,1,IT,N/A
+10000627,1,1,CN,N/A
+10000628,2,1,IT,N/A
+10000629,2,5,GB,N/A
+10000630,2,2,GB,N/A
+10000631,5,1,IT,N/A
+10000632,0,1,FR,N/A
+10000633,2,3,US,N/A
+10000634,5,4,GB,N/A
+10000635,4,5,US,N/A
+10000636,0,4,GB,N/A
+10000637,4,1,US,N/A
+10000638,5,4,JP,N/A
+10000639,4,3,IT,N/A
+10000640,3,3,US,N/A
+10000641,2,4,IT,N/A
+10000642,4,1,FR,N/A
+10000643,5,3,FR,N/A
+10000644,4,5,IT,N/A
+10000645,4,1,IT,N/A
+10000646,3,2,US,N/A
+10000647,1,5,JP,N/A
+10000648,5,2,DE,N/A
+10000649,3,2,FR,N/A
+10000650,4,1,IT,N/A
+10000651,1,2,JP,N/A
+10000652,0,3,DE,N/A
+10000653,3,5,IT,N/A
+10000654,2,2,DE,N/A
+10000655,3,3,US,N/A
+10000656,2,4,GB,N/A
+10000657,1,5,FR,N/A
+10000658,2,4,JP,N/A
+10000659,4,1,JP,N/A
+10000660,4,3,CN,N/A
+10000661,3,4,IT,N/A
+10000662,1,2,DE,N/A
+10000663,4,3,US,N/A
+10000664,3,5,GB,N/A
+10000665,1,1,CN,N/A
+10000666,2,4,DE,N/A
+10000667,2,2,IT,N/A
+10000668,3,2,JP,N/A
+10000669,5,5,CN,N/A
+10000670,0,5,IT,N/A
+10000671,4,1,GB,N/A
+10000672,2,5,FR,N/A
+10000673,1,2,DE,N/A
+10000674,1,4,JP,N/A
+10000675,0,3,FR,N/A
+10000676,1,1,FR,N/A
+10000677,5,5,IT,N/A
+10000678,1,1,CN,N/A
+10000679,2,2,IT,N/A
+10000680,3,4,DE,N/A
+10000681,4,1,US,N/A
+10000682,1,4,GB,N/A
+10000683,4,4,CN,N/A
+10000684,3,1,GB,N/A
+10000685,2,1,DE,N/A
+10000686,0,3,IT,N/A
+10000687,4,1,IT,N/A
+10000688,5,1,US,N/A
+10000689,2,3,IT,N/A
+10000690,5,2,GB,N/A
+10000691,2,3,JP,N/A
+10000692,4,2,JP,N/A
+10000693,0,3,GB,N/A
+10000694,1,4,IT,N/A
+10000695,2,2,JP,N/A
+10000696,2,1,US,N/A
+10000697,2,5,FR,N/A
+10000698,5,4,IT,N/A
+10000699,0,3,FR,N/A
+10000700,2,4,CN,N/A
+10000701,3,1,DE,N/A
+10000702,0,5,GB,N/A
+10000703,3,1,CN,N/A
+10000704,4,5,JP,N/A
+10000705,2,4,JP,N/A
+10000706,4,4,JP,N/A
+10000707,1,5,DE,N/A
+10000708,1,3,FR,N/A
+10000709,2,3,US,N/A
+10000710,5,1,GB,N/A
+10000711,3,5,IT,N/A
+10000712,0,1,IT,N/A
+10000713,1,4,DE,N/A
+10000714,0,2,GB,N/A
+10000715,3,4,US,N/A
+10000716,0,3,FR,N/A
+10000717,0,5,IT,N/A
+10000718,5,2,GB,N/A
+10000719,2,1,FR,N/A
+10000720,1,4,GB,N/A
+10000721,0,2,US,N/A
+10000722,4,1,US,N/A
+10000723,4,1,DE,N/A
+10000724,4,4,US,N/A
+10000725,4,4,US,N/A
+10000726,2,3,US,N/A
+10000727,3,2,GB,N/A
+10000728,1,5,GB,N/A
+10000729,1,2,FR,N/A
+10000730,1,5,IT,N/A
+10000731,2,2,US,N/A
+10000732,3,1,IT,N/A
+10000733,4,4,US,N/A
+10000734,5,3,US,N/A
+10000735,3,3,US,N/A
+10000736,0,1,IT,N/A
+10000737,2,3,JP,N/A
+10000738,2,1,CN,N/A
+10000739,4,5,FR,N/A
+10000740,5,5,US,N/A
+10000741,3,3,DE,N/A
+10000742,1,1,IT,N/A
+10000743,5,2,JP,N/A
+10000744,1,2,GB,N/A
+10000745,2,3,DE,N/A
+10000746,0,4,CN,N/A
+10000747,1,2,US,N/A
+10000748,3,5,JP,N/A
+10000749,5,4,FR,N/A
+10000750,3,1,CN,N/A
+10000751,1,2,GB,N/A
+10000752,3,3,JP,N/A
+10000753,0,4,JP,N/A
+10000754,1,1,JP,N/A
+10000755,4,3,US,N/A
+10000756,4,5,IT,N/A
+10000757,4,1,US,N/A
+10000758,2,3,CN,N/A
+10000759,3,5,GB,N/A
+10000760,5,2,GB,N/A
+10000761,2,3,US,N/A
+10000762,2,5,JP,N/A
+10000763,0,3,US,N/A
+10000764,2,2,IT,N/A
+10000765,1,2,CN,N/A
+10000766,0,1,IT,N/A
+10000767,1,5,FR,N/A
+10000768,3,3,GB,N/A
+10000769,3,3,US,N/A
+10000770,0,5,US,N/A
+10000771,2,1,GB,N/A
+10000772,0,1,US,N/A
+10000773,4,3,CN,N/A
+10000774,3,3,DE,N/A
+10000775,4,5,CN,N/A
+10000776,1,2,IT,N/A
+10000777,3,3,DE,N/A
+10000778,0,1,IT,N/A
+10000779,0,2,CN,N/A
+10000780,0,2,GB,N/A
+10000781,4,2,DE,N/A
+10000782,1,4,FR,N/A
+10000783,4,4,JP,N/A
+10000784,5,3,CN,N/A
+10000785,3,5,FR,N/A
+10000786,1,1,CN,N/A
+10000787,0,5,GB,N/A
+10000788,2,4,IT,N/A
+10000789,0,5,CN,N/A
+10000790,0,3,GB,N/A
+10000791,1,2,JP,N/A
+10000792,0,2,GB,N/A
+10000793,5,3,US,N/A
+10000794,1,5,FR,N/A
+10000795,3,4,CN,N/A
+10000796,1,2,JP,N/A
+10000797,3,1,JP,N/A
+10000798,1,4,US,N/A
+10000799,2,3,DE,N/A
+10000800,2,5,JP,N/A
+10000801,5,4,CN,N/A
+10000802,0,4,JP,N/A
+10000803,0,1,CN,N/A
+10000804,4,4,FR,N/A
+10000805,0,3,CN,N/A
+10000806,0,1,US,N/A
+10000807,5,5,US,N/A
+10000808,3,5,DE,N/A
+10000809,1,3,US,N/A
+10000810,5,4,IT,N/A
+10000811,3,2,DE,N/A
+10000812,5,5,GB,N/A
+10000813,2,5,CN,N/A
+10000814,4,5,JP,N/A
+10000815,5,4,IT,N/A
+10000816,4,2,CN,N/A
+10000817,0,4,DE,N/A
+10000818,1,1,JP,N/A
+10000819,0,1,CN,N/A
+10000820,5,2,JP,N/A
+10000821,4,5,JP,N/A
+10000822,0,2,JP,N/A
+10000823,0,2,GB,N/A
+10000824,3,3,US,N/A
+10000825,4,1,CN,N/A
+10000826,5,4,JP,N/A
+10000827,3,2,US,N/A
+10000828,4,4,DE,N/A
+10000829,2,5,DE,N/A
+10000830,4,3,JP,N/A
+10000831,2,2,DE,N/A
+10000832,2,2,US,N/A
+10000833,5,2,FR,N/A
+10000834,3,4,FR,N/A
+10000835,5,2,JP,N/A
+10000836,4,4,IT,N/A
+10000837,5,1,IT,N/A
+10000838,1,3,IT,N/A
+10000839,2,3,GB,N/A
+10000840,4,2,GB,N/A
+10000841,5,5,JP,N/A
+10000842,5,3,GB,N/A
+10000843,0,2,GB,N/A
+10000844,3,2,JP,N/A
+10000845,2,4,GB,N/A
+10000846,2,2,DE,N/A
+10000847,0,1,CN,N/A
+10000848,2,1,US,N/A
+10000849,0,1,DE,N/A
+10000850,5,5,US,N/A
+10000851,4,1,US,N/A
+10000852,1,2,DE,N/A
+10000853,5,4,FR,N/A
+10000854,5,4,US,N/A
+10000855,2,2,IT,N/A
+10000856,2,3,JP,N/A
+10000857,2,5,DE,N/A
+10000858,0,4,IT,N/A
+10000859,2,5,CN,N/A
+10000860,0,5,DE,N/A
+10000861,5,5,US,N/A
+10000862,5,5,CN,N/A
+10000863,4,4,GB,N/A
+10000864,1,3,FR,N/A
+10000865,4,2,US,N/A
+10000866,5,1,US,N/A
+10000867,0,1,DE,N/A
+10000868,4,2,CN,N/A
+10000869,5,5,JP,N/A
+10000870,4,4,DE,N/A
+10000871,2,5,FR,N/A
+10000872,5,5,CN,N/A
+10000873,0,1,IT,N/A
+10000874,2,1,CN,N/A
+10000875,3,4,CN,N/A
+10000876,3,1,IT,N/A
+10000877,5,3,GB,N/A
+10000878,5,4,CN,N/A
+10000879,1,4,JP,N/A
+10000880,0,5,FR,N/A
+10000881,2,3,JP,N/A
+10000882,5,3,GB,N/A
+10000883,5,4,CN,N/A
+10000884,3,3,CN,N/A
+10000885,5,1,DE,N/A
+10000886,5,3,FR,N/A
+10000887,4,5,CN,N/A
+10000888,4,3,JP,N/A
+10000889,5,3,IT,N/A
+10000890,2,4,JP,N/A
+10000891,4,5,DE,N/A
+10000892,0,4,JP,N/A
+10000893,1,2,US,N/A
+10000894,2,1,FR,N/A
+10000895,1,5,DE,N/A
+10000896,5,1,US,N/A
+10000897,2,5,FR,N/A
+10000898,4,1,IT,N/A
+10000899,3,2,JP,N/A
+10000900,5,5,DE,N/A
+10000901,0,5,CN,N/A
+10000902,1,4,DE,N/A
+10000903,4,5,IT,N/A
+10000904,4,3,IT,N/A
+10000905,1,1,GB,N/A
+10000906,0,5,GB,N/A
+10000907,0,4,GB,N/A
+10000908,1,4,GB,N/A
+10000909,5,1,IT,N/A
+10000910,5,5,IT,N/A
+10000911,0,2,CN,N/A
+10000912,5,1,CN,N/A
+10000913,0,2,IT,N/A
+10000914,2,1,CN,N/A
+10000915,4,4,GB,N/A
+10000916,0,4,IT,N/A
+10000917,4,2,FR,N/A
+10000918,0,1,US,N/A
+10000919,1,1,GB,N/A
+10000920,0,4,IT,N/A
+10000921,0,3,CN,N/A
+10000922,4,2,DE,N/A
+10000923,1,4,IT,N/A
+10000924,2,1,GB,N/A
+10000925,0,4,US,N/A
+10000926,4,5,CN,N/A
+10000927,2,5,FR,N/A
+10000928,5,5,CN,N/A
+10000929,4,1,FR,N/A
+10000930,0,2,JP,N/A
+10000931,1,2,IT,N/A
+10000932,3,4,JP,N/A
+10000933,1,2,JP,N/A
+10000934,2,5,IT,N/A
+10000935,4,4,CN,N/A
+10000936,2,5,US,N/A
+10000937,3,3,IT,N/A
+10000938,2,4,GB,N/A
+10000939,4,5,IT,N/A
+10000940,4,3,GB,N/A
+10000941,4,2,FR,N/A
+10000942,1,1,JP,N/A
+10000943,0,3,FR,N/A
+10000944,0,3,DE,N/A
+10000945,0,1,DE,N/A
+10000946,3,2,GB,N/A
+10000947,5,5,US,N/A
+10000948,4,2,CN,N/A
+10000949,0,4,DE,N/A
+10000950,3,2,FR,N/A
+10000951,4,3,JP,N/A
+10000952,5,2,GB,N/A
+10000953,3,1,JP,N/A
+10000954,5,3,DE,N/A
+10000955,2,3,DE,N/A
+10000956,1,2,JP,N/A
+10000957,2,1,JP,N/A
+10000958,2,1,CN,N/A
+10000959,4,1,US,N/A
+10000960,5,3,US,N/A
+10000961,3,1,FR,N/A
+10000962,5,5,CN,N/A
+10000963,2,2,GB,N/A
+10000964,3,3,IT,N/A
+10000965,5,1,JP,N/A
+10000966,2,3,US,N/A
+10000967,5,1,US,N/A
+10000968,1,1,IT,N/A
+10000969,5,5,US,N/A
+10000970,5,3,IT,N/A
+10000971,5,3,FR,N/A
+10000972,1,4,US,N/A
+10000973,5,3,CN,N/A
+10000974,4,5,GB,N/A
+10000975,5,4,JP,N/A
+10000976,0,2,GB,N/A
+10000977,0,1,FR,N/A
+10000978,2,3,GB,N/A
+10000979,3,5,JP,N/A
+10000980,2,2,GB,N/A
+10000981,0,3,FR,N/A
+10000982,1,3,US,N/A
+10000983,0,1,FR,N/A
+10000984,2,1,CN,N/A
+10000985,0,4,CN,N/A
+10000986,5,4,FR,N/A
+10000987,5,2,IT,N/A
+10000988,5,1,DE,N/A
+10000989,2,4,IT,N/A
+10000990,5,1,CN,N/A
+10000991,2,2,DE,N/A
+10000992,5,2,IT,N/A
+10000993,0,3,DE,N/A
+10000994,1,4,US,N/A
+10000995,0,4,IT,N/A
+10000996,1,3,US,N/A
+10000997,3,2,FR,N/A
+10000998,2,5,CN,N/A
+10000999,4,1,US,N/A
+10001000,2,0,GB,N/A
+10001001,4,0,DE,N/A
+10001002,3,0,IT,N/A
+10001003,2,0,US,N/A
+10001004,1,0,DE,N/A
+10001005,3,0,CN,N/A
+10001006,2,0,CN,N/A
+10001007,2,0,DE,N/A
+10001008,1,0,DE,N/A
+10001009,2,0,DE,N/A
+10001010,5,0,IT,N/A
+10001011,4,0,GB,N/A
+10001012,0,0,JP,N/A
+10001013,0,0,US,N/A
+10001014,5,0,JP,N/A
+10001015,0,0,CN,N/A
+10001016,2,0,DE,N/A
+10001017,1,0,CN,N/A
+10001018,3,0,IT,N/A
+10001019,5,0,GB,N/A
+10001020,1,0,GB,N/A
+10001021,0,0,IT,N/A
+10001022,3,0,CN,N/A
+10001023,1,0,CN,N/A
+10001024,2,0,JP,N/A
+10001025,3,0,CN,N/A
+10001026,0,0,IT,N/A
+10001027,3,0,GB,N/A
+10001028,5,0,CN,N/A
+10001029,5,0,CN,N/A
+10001030,2,0,FR,N/A
+10001031,3,0,FR,N/A
+10001032,2,0,FR,N/A
+10001033,3,0,JP,N/A
+10001034,5,0,CN,N/A
+10001035,4,0,DE,N/A
+10001036,2,0,IT,N/A
+10001037,0,0,FR,N/A
+10001038,4,0,DE,N/A
+10001039,0,0,DE,N/A
+10001040,3,0,US,N/A
+10001041,0,0,CN,N/A
+10001042,3,0,GB,N/A
+10001043,4,0,DE,N/A
+10001044,5,0,DE,N/A
+10001045,4,0,GB,N/A
+10001046,1,0,FR,N/A
+10001047,1,0,US,N/A
+10001048,3,0,CN,N/A
+10001049,1,0,IT,N/A
+10001050,2,0,GB,N/A
+10001051,1,0,GB,N/A
+10001052,1,0,CN,N/A
+10001053,0,0,FR,N/A
+10001054,4,0,JP,N/A
+10001055,4,0,CN,N/A
+10001056,1,0,CN,N/A
+10001057,3,0,US,N/A
+10001058,2,0,DE,N/A
+10001059,1,0,FR,N/A
+10001060,3,0,CN,N/A
+10001061,0,0,CN,N/A
+10001062,1,0,GB,N/A
+10001063,4,0,GB,N/A
+10001064,1,0,FR,N/A
+10001065,4,0,JP,N/A
+10001066,3,0,JP,N/A
+10001067,3,0,GB,N/A
+10001068,5,0,DE,N/A
+10001069,2,0,FR,N/A
+10001070,3,0,IT,N/A
+10001071,5,0,GB,N/A
+10001072,0,0,JP,N/A
+10001073,1,0,IT,N/A
+10001074,3,0,DE,N/A
+10001075,5,0,IT,N/A
+10001076,1,0,IT,N/A
+10001077,4,0,IT,N/A
+10001078,5,0,GB,N/A
+10001079,5,0,US,N/A
+10001080,4,0,CN,N/A
+10001081,3,0,FR,N/A
+10001082,0,0,US,N/A
+10001083,4,0,CN,N/A
+10001084,2,0,GB,N/A
+10001085,1,0,FR,N/A
+10001086,3,0,DE,N/A
+10001087,4,0,IT,N/A
+10001088,0,0,IT,N/A
+10001089,4,0,GB,N/A
+10001090,5,0,IT,N/A
+10001091,2,0,JP,N/A
+10001092,1,0,FR,N/A
+10001093,1,0,US,N/A
+10001094,3,0,IT,N/A
+10001095,1,0,JP,N/A
+10001096,1,0,FR,N/A
+10001097,1,0,FR,N/A
+10001098,3,0,US,N/A
+10001099,0,0,JP,N/A
+10001100,5,0,DE,N/A
+10001101,4,0,JP,N/A
+10001102,5,0,CN,N/A
+10001103,5,0,GB,N/A
+10001104,0,0,DE,N/A
+10001105,4,0,IT,N/A
+10001106,3,0,DE,N/A
+10001107,0,0,DE,N/A
+10001108,4,0,CN,N/A
+10001109,4,0,DE,N/A
+10001110,3,0,GB,N/A
+10001111,4,0,DE,N/A
+10001112,1,0,US,N/A
+10001113,4,0,US,N/A
+10001114,0,0,FR,N/A
+10001115,5,0,CN,N/A
+10001116,0,0,CN,N/A
+10001117,4,0,IT,N/A
+10001118,2,0,GB,N/A
+10001119,4,0,US,N/A
+10001120,3,0,GB,N/A
+10001121,2,0,DE,N/A
+10001122,3,0,US,N/A
+10001123,3,0,US,N/A
+10001124,1,0,JP,N/A
+10001125,5,0,IT,N/A
+10001126,2,0,JP,N/A
+10001127,1,0,JP,N/A
+10001128,2,0,JP,N/A
+10001129,2,0,IT,N/A
+10001130,4,0,GB,N/A
+10001131,3,0,FR,N/A
+10001132,4,0,US,N/A
+10001133,4,0,JP,N/A
+10001134,4,0,GB,N/A
+10001135,1,0,FR,N/A
+10001136,4,0,DE,N/A
+10001137,1,0,CN,N/A
+10001138,1,0,US,N/A
+10001139,2,0,JP,N/A
+10001140,2,0,US,N/A
+10001141,1,0,CN,N/A
+10001142,0,0,DE,N/A
+10001143,5,0,US,N/A
+10001144,4,0,GB,N/A
+10001145,0,0,US,N/A
+10001146,0,0,DE,N/A
+10001147,2,0,IT,N/A
+10001148,2,0,IT,N/A
+10001149,3,0,DE,N/A
+10001150,3,0,GB,N/A
+10001151,4,0,JP,N/A
+10001152,5,0,JP,N/A
+10001153,4,0,JP,N/A
+10001154,1,0,FR,N/A
+10001155,3,0,IT,N/A
+10001156,2,0,US,N/A
+10001157,0,0,GB,N/A
+10001158,1,0,JP,N/A
+10001159,0,0,DE,N/A
+10001160,0,0,DE,N/A
+10001161,0,0,CN,N/A
+10001162,0,0,IT,N/A
+10001163,1,0,DE,N/A
+10001164,0,0,US,N/A
+10001165,4,0,DE,N/A
+10001166,4,0,IT,N/A
+10001167,5,0,JP,N/A
+10001168,4,0,US,N/A
+10001169,4,0,JP,N/A
+10001170,0,0,FR,N/A
+10001171,3,0,IT,N/A
+10001172,4,0,CN,N/A
+10001173,3,0,FR,N/A
+10001174,0,0,US,N/A
+10001175,2,0,JP,N/A
+10001176,3,0,US,N/A
+10001177,3,0,CN,N/A
+10001178,0,0,FR,N/A
+10001179,4,0,CN,N/A
+10001180,5,0,GB,N/A
+10001181,0,0,GB,N/A
+10001182,1,0,FR,N/A
+10001183,2,0,CN,N/A
+10001184,2,0,IT,N/A
+10001185,0,0,GB,N/A
+10001186,3,0,JP,N/A
+10001187,2,0,GB,N/A
+10001188,0,0,US,N/A
+10001189,2,0,US,N/A
+10001190,2,0,CN,N/A
+10001191,2,0,IT,N/A
+10001192,4,0,CN,N/A
+10001193,2,0,GB,N/A
+10001194,0,0,IT,N/A
+10001195,2,0,FR,N/A
+10001196,4,0,FR,N/A
+10001197,0,0,US,N/A
+10001198,2,0,US,N/A
+10001199,1,0,DE,N/A
+10001200,0,0,CN,N/A
+10001201,5,0,CN,N/A
+10001202,2,0,DE,N/A
+10001203,0,0,CN,N/A
+10001204,0,0,DE,N/A
+10001205,0,0,GB,N/A
+10001206,1,0,IT,N/A
+10001207,3,0,DE,N/A
+10001208,1,0,JP,N/A
+10001209,3,0,GB,N/A
+10001210,5,0,GB,N/A
+10001211,5,0,JP,N/A
+10001212,1,0,US,N/A
+10001213,5,0,DE,N/A
+10001214,2,0,JP,N/A
+10001215,0,0,CN,N/A
+10001216,4,0,CN,N/A
+10001217,3,0,US,N/A
+10001218,3,0,CN,N/A
+10001219,1,0,CN,N/A
+10001220,1,0,CN,N/A
+10001221,0,0,DE,N/A
+10001222,3,0,DE,N/A
+10001223,1,0,GB,N/A
+10001224,4,0,DE,N/A
+10001225,0,0,IT,N/A
+10001226,4,0,GB,N/A
+10001227,4,0,IT,N/A
+10001228,0,0,JP,N/A
+10001229,2,0,FR,N/A
+10001230,4,0,CN,N/A
+10001231,5,0,GB,N/A
+10001232,3,0,DE,N/A
+10001233,1,0,FR,N/A
+10001234,3,0,JP,N/A
+10001235,2,0,US,N/A
+10001236,0,0,DE,N/A
+10001237,1,0,DE,N/A
+10001238,2,0,IT,N/A
+10001239,4,0,US,N/A
+10001240,0,0,US,N/A
+10001241,0,0,CN,N/A
+10001242,3,0,JP,N/A
+10001243,3,0,JP,N/A
+10001244,4,0,DE,N/A
+10001245,3,0,CN,N/A
+10001246,4,0,GB,N/A
+10001247,5,0,US,N/A
+10001248,2,0,DE,N/A
+10001249,1,0,CN,N/A
+10001250,3,0,CN,N/A
+10001251,1,0,FR,N/A
+10001252,3,0,IT,N/A
+10001253,0,0,CN,N/A
+10001254,3,0,GB,N/A
+10001255,0,0,JP,N/A
+10001256,0,0,GB,N/A
+10001257,3,0,FR,N/A
+10001258,3,0,IT,N/A
+10001259,5,0,DE,N/A
+10001260,5,0,US,N/A
+10001261,3,0,DE,N/A
+10001262,4,0,FR,N/A
+10001263,2,0,IT,N/A
+10001264,2,0,US,N/A
+10001265,0,0,GB,N/A
+10001266,1,0,FR,N/A
+10001267,5,0,JP,N/A
+10001268,3,0,GB,N/A
+10001269,4,0,IT,N/A
+10001270,5,0,JP,N/A
+10001271,0,0,IT,N/A
+10001272,0,0,GB,N/A
+10001273,1,0,FR,N/A
+10001274,0,0,FR,N/A
+10001275,4,0,GB,N/A
+10001276,4,0,DE,N/A
+10001277,4,0,FR,N/A
+10001278,1,0,FR,N/A
+10001279,5,0,DE,N/A
+10001280,0,0,IT,N/A
+10001281,2,0,IT,N/A
+10001282,1,0,FR,N/A
+10001283,1,0,JP,N/A
+10001284,1,0,CN,N/A
+10001285,0,0,CN,N/A
+10001286,2,0,DE,N/A
+10001287,2,0,CN,N/A
+10001288,4,0,FR,N/A
+10001289,5,0,IT,N/A
+10001290,2,0,US,N/A
+10001291,3,0,JP,N/A
+10001292,0,0,GB,N/A
+10001293,5,0,US,N/A
+10001294,3,0,FR,N/A
+10001295,2,0,CN,N/A
+10001296,5,0,JP,N/A
+10001297,2,0,CN,N/A
+10001298,5,0,DE,N/A
+10001299,1,0,DE,N/A
+10001300,3,0,US,N/A
+10001301,5,0,DE,N/A
+10001302,4,0,CN,N/A
+10001303,5,0,DE,N/A
+10001304,2,0,JP,N/A
+10001305,2,0,CN,N/A
+10001306,4,0,FR,N/A
+10001307,0,0,CN,N/A
+10001308,5,0,JP,N/A
+10001309,4,0,DE,N/A
+10001310,5,0,FR,N/A
+10001311,0,0,CN,N/A
+10001312,2,0,CN,N/A
+10001313,4,0,DE,N/A
+10001314,0,0,US,N/A
+10001315,1,0,FR,N/A
+10001316,3,0,FR,N/A
+10001317,0,0,DE,N/A
+10001318,2,0,JP,N/A
+10001319,5,0,CN,N/A
+10001320,4,0,US,N/A
+10001321,0,0,DE,N/A
+10001322,4,0,JP,N/A
+10001323,3,0,DE,N/A
+10001324,0,0,GB,N/A
+10001325,2,0,CN,N/A
+10001326,3,0,IT,N/A
+10001327,3,0,CN,N/A
+10001328,4,0,GB,N/A
+10001329,5,0,FR,N/A
+10001330,5,0,GB,N/A
+10001331,3,0,FR,N/A
+10001332,4,0,US,N/A
+10001333,0,0,DE,N/A
+10001334,5,0,US,N/A
+10001335,3,0,GB,N/A
+10001336,0,0,IT,N/A
+10001337,4,0,DE,N/A
+10001338,3,0,GB,N/A
+10001339,2,0,FR,N/A
+10001340,1,0,IT,N/A
+10001341,2,0,US,N/A
+10001342,1,0,JP,N/A
+10001343,0,0,US,N/A
+10001344,5,0,US,N/A
+10001345,3,0,FR,N/A
+10001346,4,0,JP,N/A
+10001347,3,0,JP,N/A
+10001348,1,0,IT,N/A
+10001349,2,0,CN,N/A
+10001350,5,0,GB,N/A
+10001351,1,0,DE,N/A
+10001352,3,0,US,N/A
+10001353,4,0,US,N/A
+10001354,5,0,US,N/A
+10001355,5,0,DE,N/A
+10001356,5,0,IT,N/A
+10001357,5,0,DE,N/A
+10001358,2,0,FR,N/A
+10001359,4,0,CN,N/A
+10001360,5,0,JP,N/A
+10001361,3,0,US,N/A
+10001362,5,0,IT,N/A
+10001363,3,0,DE,N/A
+10001364,4,0,DE,N/A
+10001365,2,0,FR,N/A
+10001366,0,0,DE,N/A
+10001367,3,0,CN,N/A
+10001368,4,0,US,N/A
+10001369,1,0,IT,N/A
+10001370,0,0,US,N/A
+10001371,2,0,IT,N/A
+10001372,3,0,GB,N/A
+10001373,5,0,IT,N/A
+10001374,5,0,GB,N/A
+10001375,1,0,IT,N/A
+10001376,4,0,CN,N/A
+10001377,2,0,FR,N/A
+10001378,2,0,IT,N/A
+10001379,5,0,CN,N/A
+10001380,1,0,DE,N/A
+10001381,3,0,US,N/A
+10001382,0,0,CN,N/A
+10001383,5,0,IT,N/A
+10001384,1,0,FR,N/A
+10001385,2,0,US,N/A
+10001386,1,0,IT,N/A
+10001387,3,0,GB,N/A
+10001388,1,0,JP,N/A
+10001389,4,0,IT,N/A
+10001390,4,0,US,N/A
+10001391,1,0,GB,N/A
+10001392,1,0,FR,N/A
+10001393,1,0,CN,N/A
+10001394,2,0,GB,N/A
+10001395,3,0,US,N/A
+10001396,1,0,US,N/A
+10001397,1,0,IT,N/A
+10001398,0,0,DE,N/A
+10001399,1,0,GB,N/A
+10001400,4,0,US,N/A
+10001401,4,0,FR,N/A
+10001402,1,0,CN,N/A
+10001403,2,0,CN,N/A
+10001404,5,0,IT,N/A
+10001405,5,0,CN,N/A
+10001406,5,0,US,N/A
+10001407,2,0,JP,N/A
+10001408,3,0,IT,N/A
+10001409,5,0,FR,N/A
+10001410,4,0,GB,N/A
+10001411,1,0,CN,N/A
+10001412,5,0,CN,N/A
+10001413,3,0,JP,N/A
+10001414,3,0,JP,N/A
+10001415,5,0,IT,N/A
+10001416,5,0,US,N/A
+10001417,3,0,CN,N/A
+10001418,2,0,FR,N/A
+10001419,5,0,GB,N/A
+10001420,2,0,FR,N/A
+10001421,3,0,DE,N/A
+10001422,3,0,DE,N/A
+10001423,4,0,GB,N/A
+10001424,5,0,DE,N/A
+10001425,5,0,IT,N/A
+10001426,0,0,FR,N/A
+10001427,4,0,JP,N/A
+10001428,2,0,JP,N/A
+10001429,1,0,JP,N/A
+10001430,1,0,JP,N/A
+10001431,1,0,JP,N/A
+10001432,2,0,GB,N/A
+10001433,2,0,FR,N/A
+10001434,4,0,FR,N/A
+10001435,1,0,JP,N/A
+10001436,3,0,GB,N/A
+10001437,0,0,JP,N/A
+10001438,4,0,GB,N/A
+10001439,3,0,JP,N/A
+10001440,4,0,DE,N/A
+10001441,2,0,IT,N/A
+10001442,1,0,CN,N/A
+10001443,3,0,FR,N/A
+10001444,0,0,FR,N/A
+10001445,0,0,FR,N/A
+10001446,0,0,US,N/A
+10001447,5,0,IT,N/A
+10001448,3,0,FR,N/A
+10001449,2,0,US,N/A
+10001450,4,0,DE,N/A
+10001451,3,0,IT,N/A
+10001452,2,0,IT,N/A
+10001453,0,0,IT,N/A
+10001454,3,0,US,N/A
+10001455,1,0,DE,N/A
+10001456,0,0,GB,N/A
+10001457,5,0,FR,N/A
+10001458,1,0,JP,N/A
+10001459,4,0,GB,N/A
+10001460,1,0,GB,N/A
+10001461,0,0,GB,N/A
+10001462,3,0,CN,N/A
+10001463,1,0,GB,N/A
+10001464,3,0,CN,N/A
+10001465,0,0,DE,N/A
+10001466,2,0,FR,N/A
+10001467,3,0,JP,N/A
+10001468,0,0,FR,N/A
+10001469,0,0,JP,N/A
+10001470,4,0,GB,N/A
+10001471,4,0,IT,N/A
+10001472,3,0,JP,N/A
+10001473,1,0,JP,N/A
+10001474,0,0,FR,N/A
+10001475,0,0,FR,N/A
+10001476,2,0,IT,N/A
+10001477,5,0,DE,N/A
+10001478,4,0,GB,N/A
+10001479,3,0,FR,N/A
+10001480,5,0,US,N/A
+10001481,4,0,JP,N/A
+10001482,4,0,FR,N/A
+10001483,0,0,IT,N/A
+10001484,0,0,DE,N/A
+10001485,1,0,IT,N/A
+10001486,1,0,US,N/A
+10001487,4,0,FR,N/A
+10001488,1,0,GB,N/A
+10001489,2,0,CN,N/A
+10001490,1,0,FR,N/A
+10001491,4,0,IT,N/A
+10001492,0,0,IT,N/A
+10001493,0,0,DE,N/A
+10001494,1,0,DE,N/A
+10001495,1,0,DE,N/A
+10001496,5,0,IT,N/A
+10001497,4,0,GB,N/A
+10001498,3,0,US,N/A
+10001499,0,0,CN,N/A
+10001500,0,0,IT,N/A
+10001501,0,0,DE,N/A
+10001502,3,0,CN,N/A
+10001503,2,0,GB,N/A
+10001504,3,0,FR,N/A
+10001505,5,0,JP,N/A
+10001506,0,0,GB,N/A
+10001507,0,0,JP,N/A
+10001508,0,0,CN,N/A
+10001509,4,0,CN,N/A
+10001510,0,0,FR,N/A
+10001511,1,0,US,N/A
+10001512,1,0,DE,N/A
+10001513,1,0,IT,N/A
+10001514,0,0,IT,N/A
+10001515,1,0,US,N/A
+10001516,2,0,JP,N/A
+10001517,1,0,GB,N/A
+10001518,4,0,IT,N/A
+10001519,1,0,FR,N/A
+10001520,0,0,JP,N/A
+10001521,4,0,DE,N/A
+10001522,4,0,DE,N/A
+10001523,1,0,JP,N/A
+10001524,2,0,IT,N/A
+10001525,2,0,FR,N/A
+10001526,3,0,IT,N/A
+10001527,0,0,GB,N/A
+10001528,4,0,FR,N/A
+10001529,2,0,US,N/A
+10001530,5,0,US,N/A
+10001531,2,0,IT,N/A
+10001532,3,0,US,N/A
+10001533,1,0,CN,N/A
+10001534,1,0,DE,N/A
+10001535,3,0,CN,N/A
+10001536,1,0,US,N/A
+10001537,0,0,GB,N/A
+10001538,5,0,IT,N/A
+10001539,5,0,US,N/A
+10001540,4,0,DE,N/A
+10001541,3,0,IT,N/A
+10001542,0,0,FR,N/A
+10001543,2,0,GB,N/A
+10001544,5,0,IT,N/A
+10001545,2,0,GB,N/A
+10001546,0,0,DE,N/A
+10001547,5,0,CN,N/A
+10001548,2,0,JP,N/A
+10001549,0,0,JP,N/A
+10001550,5,0,IT,N/A
+10001551,1,0,CN,N/A
+10001552,2,0,JP,N/A
+10001553,1,0,JP,N/A
+10001554,1,0,FR,N/A
+10001555,4,0,DE,N/A
+10001556,5,0,GB,N/A
+10001557,4,0,IT,N/A
+10001558,1,0,FR,N/A
+10001559,4,0,IT,N/A
+10001560,1,0,JP,N/A
+10001561,0,0,FR,N/A
+10001562,0,0,DE,N/A
+10001563,3,0,FR,N/A
+10001564,1,0,CN,N/A
+10001565,3,0,US,N/A
+10001566,0,0,US,N/A
+10001567,3,0,IT,N/A
+10001568,3,0,JP,N/A
+10001569,2,0,DE,N/A
+10001570,5,0,FR,N/A
+10001571,0,0,GB,N/A
+10001572,3,0,JP,N/A
+10001573,2,0,DE,N/A
+10001574,4,0,DE,N/A
+10001575,1,0,CN,N/A
+10001576,0,0,IT,N/A
+10001577,0,0,JP,N/A
+10001578,0,0,GB,N/A
+10001579,2,0,IT,N/A
+10001580,0,0,FR,N/A
+10001581,2,0,IT,N/A
+10001582,2,0,FR,N/A
+10001583,0,0,IT,N/A
+10001584,3,0,DE,N/A
+10001585,5,0,US,N/A
+10001586,4,0,US,N/A
+10001587,1,0,IT,N/A
+10001588,1,0,CN,N/A
+10001589,5,0,IT,N/A
+10001590,3,0,US,N/A
+10001591,3,0,DE,N/A
+10001592,0,0,DE,N/A
+10001593,4,0,IT,N/A
+10001594,0,0,CN,N/A
+10001595,0,0,IT,N/A
+10001596,0,0,US,N/A
+10001597,4,0,CN,N/A
+10001598,5,0,US,N/A
+10001599,2,0,JP,N/A
+10001600,3,0,FR,N/A
+10001601,2,0,CN,N/A
+10001602,0,0,IT,N/A
+10001603,1,0,DE,N/A
+10001604,2,0,US,N/A
+10001605,1,0,DE,N/A
+10001606,2,0,CN,N/A
+10001607,3,0,US,N/A
+10001608,4,0,GB,N/A
+10001609,3,0,CN,N/A
+10001610,0,0,IT,N/A
+10001611,5,0,DE,N/A
+10001612,4,0,DE,N/A
+10001613,0,0,DE,N/A
+10001614,4,0,JP,N/A
+10001615,2,0,GB,N/A
+10001616,2,0,CN,N/A
+10001617,2,0,DE,N/A
+10001618,5,0,CN,N/A
+10001619,0,0,FR,N/A
+10001620,2,0,IT,N/A
+10001621,3,0,IT,N/A
+10001622,3,0,DE,N/A
+10001623,4,0,DE,N/A
+10001624,3,0,FR,N/A
+10001625,2,0,GB,N/A
+10001626,2,0,JP,N/A
+10001627,1,0,FR,N/A
+10001628,3,0,US,N/A
+10001629,5,0,CN,N/A
+10001630,3,0,DE,N/A
+10001631,2,0,GB,N/A
+10001632,2,0,CN,N/A
+10001633,1,0,DE,N/A
+10001634,4,0,GB,N/A
+10001635,4,0,DE,N/A
+10001636,2,0,CN,N/A
+10001637,4,0,DE,N/A
+10001638,5,0,CN,N/A
+10001639,2,0,US,N/A
+10001640,5,0,US,N/A
+10001641,4,0,US,N/A
+10001642,3,0,JP,N/A
+10001643,0,0,CN,N/A
+10001644,1,0,JP,N/A
+10001645,2,0,FR,N/A
+10001646,3,0,JP,N/A
+10001647,0,0,JP,N/A
+10001648,1,0,FR,N/A
+10001649,5,0,DE,N/A
+10001650,1,0,GB,N/A
+10001651,3,0,DE,N/A
+10001652,0,0,DE,N/A
+10001653,5,0,IT,N/A
+10001654,2,0,IT,N/A
+10001655,5,0,FR,N/A
+10001656,4,0,DE,N/A
+10001657,1,0,FR,N/A
+10001658,1,0,JP,N/A
+10001659,0,0,US,N/A
+10001660,2,0,IT,N/A
+10001661,4,0,FR,N/A
+10001662,5,0,JP,N/A
+10001663,4,0,FR,N/A
+10001664,0,0,GB,N/A
+10001665,2,0,GB,N/A
+10001666,5,0,IT,N/A
+10001667,1,0,DE,N/A
+10001668,3,0,JP,N/A
+10001669,0,0,CN,N/A
+10001670,2,0,US,N/A
+10001671,5,0,IT,N/A
+10001672,3,0,IT,N/A
+10001673,0,0,JP,N/A
+10001674,1,0,IT,N/A
+10001675,0,0,CN,N/A
+10001676,4,0,US,N/A
+10001677,4,0,DE,N/A
+10001678,4,0,JP,N/A
+10001679,0,0,DE,N/A
+10001680,0,0,CN,N/A
+10001681,4,0,DE,N/A
+10001682,2,0,CN,N/A
+10001683,4,0,CN,N/A
+10001684,3,0,FR,N/A
+10001685,2,0,US,N/A
+10001686,2,0,DE,N/A
+10001687,4,0,GB,N/A
+10001688,5,0,IT,N/A
+10001689,5,0,DE,N/A
+10001690,4,0,CN,N/A
+10001691,2,0,JP,N/A
+10001692,5,0,GB,N/A
+10001693,1,0,CN,N/A
+10001694,3,0,IT,N/A
+10001695,0,0,CN,N/A
+10001696,1,0,JP,N/A
+10001697,0,0,US,N/A
+10001698,2,0,JP,N/A
+10001699,2,0,US,N/A
+10001700,1,0,DE,N/A
+10001701,4,0,JP,N/A
+10001702,5,0,JP,N/A
+10001703,0,0,IT,N/A
+10001704,3,0,JP,N/A
+10001705,4,0,JP,N/A
+10001706,1,0,IT,N/A
+10001707,1,0,IT,N/A
+10001708,1,0,GB,N/A
+10001709,0,0,US,N/A
+10001710,1,0,FR,N/A
+10001711,0,0,FR,N/A
+10001712,1,0,DE,N/A
+10001713,4,0,GB,N/A
+10001714,4,0,CN,N/A
+10001715,4,0,GB,N/A
+10001716,4,0,US,N/A
+10001717,3,0,DE,N/A
+10001718,5,0,DE,N/A
+10001719,3,0,IT,N/A
+10001720,3,0,GB,N/A
+10001721,4,0,GB,N/A
+10001722,5,0,US,N/A
+10001723,3,0,FR,N/A
+10001724,3,0,FR,N/A
+10001725,2,0,DE,N/A
+10001726,0,0,JP,N/A
+10001727,4,0,GB,N/A
+10001728,1,0,GB,N/A
+10001729,2,0,CN,N/A
+10001730,1,0,IT,N/A
+10001731,2,0,GB,N/A
+10001732,0,0,JP,N/A
+10001733,3,0,JP,N/A
+10001734,2,0,CN,N/A
+10001735,1,0,JP,N/A
+10001736,3,0,FR,N/A
+10001737,5,0,CN,N/A
+10001738,3,0,FR,N/A
+10001739,0,0,IT,N/A
+10001740,5,0,JP,N/A
+10001741,0,0,GB,N/A
+10001742,4,0,GB,N/A
+10001743,1,0,US,N/A
+10001744,4,0,US,N/A
+10001745,3,0,GB,N/A
+10001746,3,0,DE,N/A
+10001747,3,0,IT,N/A
+10001748,0,0,JP,N/A
+10001749,4,0,DE,N/A
+10001750,2,0,FR,N/A
+10001751,2,0,GB,N/A
+10001752,2,0,IT,N/A
+10001753,5,0,CN,N/A
+10001754,5,0,CN,N/A
+10001755,1,0,IT,N/A
+10001756,0,0,CN,N/A
+10001757,2,0,GB,N/A
+10001758,2,0,IT,N/A
+10001759,3,0,FR,N/A
+10001760,4,0,JP,N/A
+10001761,0,0,IT,N/A
+10001762,0,0,GB,N/A
+10001763,0,0,JP,N/A
+10001764,4,0,JP,N/A
+10001765,3,0,FR,N/A
+10001766,2,0,DE,N/A
+10001767,1,0,GB,N/A
+10001768,5,0,IT,N/A
+10001769,3,0,FR,N/A
+10001770,1,0,DE,N/A
+10001771,0,0,IT,N/A
+10001772,1,0,JP,N/A
+10001773,1,0,CN,N/A
+10001774,1,0,DE,N/A
+10001775,3,0,US,N/A
+10001776,4,0,JP,N/A
+10001777,4,0,JP,N/A
+10001778,5,0,US,N/A
+10001779,5,0,GB,N/A
+10001780,1,0,US,N/A
+10001781,5,0,US,N/A
+10001782,5,0,FR,N/A
+10001783,4,0,CN,N/A
+10001784,2,0,CN,N/A
+10001785,2,0,GB,N/A
+10001786,4,0,DE,N/A
+10001787,2,0,IT,N/A
+10001788,4,0,GB,N/A
+10001789,3,0,JP,N/A
+10001790,1,0,US,N/A
+10001791,3,0,CN,N/A
+10001792,1,0,FR,N/A
+10001793,5,0,US,N/A
+10001794,4,0,US,N/A
+10001795,3,0,GB,N/A
+10001796,3,0,CN,N/A
+10001797,5,0,GB,N/A
+10001798,3,0,DE,N/A
+10001799,4,0,US,N/A
+10001800,3,0,GB,N/A
+10001801,1,0,IT,N/A
+10001802,3,0,CN,N/A
+10001803,2,0,US,N/A
+10001804,5,0,DE,N/A
+10001805,5,0,CN,N/A
+10001806,4,0,GB,N/A
+10001807,5,0,US,N/A
+10001808,1,0,CN,N/A
+10001809,2,0,JP,N/A
+10001810,5,0,JP,N/A
+10001811,1,0,DE,N/A
+10001812,2,0,GB,N/A
+10001813,0,0,FR,N/A
+10001814,0,0,IT,N/A
+10001815,3,0,DE,N/A
+10001816,2,0,FR,N/A
+10001817,5,0,IT,N/A
+10001818,2,0,DE,N/A
+10001819,2,0,GB,N/A
+10001820,3,0,CN,N/A
+10001821,5,0,US,N/A
+10001822,0,0,CN,N/A
+10001823,2,0,JP,N/A
+10001824,0,0,IT,N/A
+10001825,5,0,CN,N/A
+10001826,1,0,IT,N/A
+10001827,1,0,GB,N/A
+10001828,0,0,CN,N/A
+10001829,0,0,GB,N/A
+10001830,1,0,GB,N/A
+10001831,4,0,US,N/A
+10001832,3,0,GB,N/A
+10001833,5,0,DE,N/A
+10001834,1,0,IT,N/A
+10001835,2,0,CN,N/A
+10001836,1,0,JP,N/A
+10001837,0,0,FR,N/A
+10001838,0,0,IT,N/A
+10001839,0,0,GB,N/A
+10001840,1,0,DE,N/A
+10001841,4,0,FR,N/A
+10001842,1,0,JP,N/A
+10001843,1,0,IT,N/A
+10001844,1,0,GB,N/A
+10001845,1,0,US,N/A
+10001846,1,0,IT,N/A
+10001847,5,0,FR,N/A
+10001848,2,0,IT,N/A
+10001849,2,0,GB,N/A
+10001850,4,0,GB,N/A
+10001851,2,0,JP,N/A
+10001852,5,0,DE,N/A
+10001853,5,0,CN,N/A
+10001854,5,0,IT,N/A
+10001855,0,0,DE,N/A
+10001856,1,0,CN,N/A
+10001857,2,0,CN,N/A
+10001858,1,0,FR,N/A
+10001859,3,0,IT,N/A
+10001860,3,0,CN,N/A
+10001861,0,0,GB,N/A
+10001862,0,0,IT,N/A
+10001863,2,0,CN,N/A
+10001864,2,0,US,N/A
+10001865,2,0,CN,N/A
+10001866,4,0,FR,N/A
+10001867,4,0,IT,N/A
+10001868,0,0,DE,N/A
+10001869,3,0,JP,N/A
+10001870,3,0,JP,N/A
+10001871,5,0,GB,N/A
+10001872,4,0,FR,N/A
+10001873,1,0,IT,N/A
+10001874,5,0,US,N/A
+10001875,5,0,IT,N/A
+10001876,4,0,US,N/A
+10001877,0,0,JP,N/A
+10001878,4,0,GB,N/A
+10001879,3,0,US,N/A
+10001880,0,0,FR,N/A
+10001881,4,0,GB,N/A
+10001882,2,0,IT,N/A
+10001883,0,0,CN,N/A
+10001884,1,0,GB,N/A
+10001885,5,0,US,N/A
+10001886,4,0,CN,N/A
+10001887,5,0,IT,N/A
+10001888,1,0,US,N/A
+10001889,1,0,FR,N/A
+10001890,2,0,US,N/A
+10001891,1,0,DE,N/A
+10001892,4,0,CN,N/A
+10001893,0,0,IT,N/A
+10001894,3,0,US,N/A
+10001895,3,0,IT,N/A
+10001896,0,0,DE,N/A
+10001897,4,0,DE,N/A
+10001898,4,0,FR,N/A
+10001899,4,0,US,N/A
+10001900,0,0,CN,N/A
+10001901,2,0,DE,N/A
+10001902,5,0,US,N/A
+10001903,4,0,JP,N/A
+10001904,5,0,CN,N/A
+10001905,1,0,GB,N/A
+10001906,0,0,IT,N/A
+10001907,1,0,US,N/A
+10001908,1,0,JP,N/A
+10001909,4,0,CN,N/A
+10001910,4,0,FR,N/A
+10001911,4,0,CN,N/A
+10001912,4,0,US,N/A
+10001913,5,0,GB,N/A
+10001914,0,0,GB,N/A
+10001915,2,0,JP,N/A
+10001916,3,0,US,N/A
+10001917,1,0,DE,N/A
+10001918,5,0,FR,N/A
+10001919,4,0,FR,N/A
+10001920,4,0,CN,N/A
+10001921,0,0,IT,N/A
+10001922,3,0,GB,N/A
+10001923,5,0,IT,N/A
+10001924,0,0,DE,N/A
+10001925,1,0,DE,N/A
+10001926,4,0,US,N/A
+10001927,3,0,GB,N/A
+10001928,0,0,GB,N/A
+10001929,3,0,GB,N/A
+10001930,1,0,DE,N/A
+10001931,4,0,US,N/A
+10001932,5,0,JP,N/A
+10001933,1,0,GB,N/A
+10001934,4,0,GB,N/A
+10001935,1,0,GB,N/A
+10001936,0,0,US,N/A
+10001937,1,0,DE,N/A
+10001938,5,0,JP,N/A
+10001939,5,0,JP,N/A
+10001940,3,0,CN,N/A
+10001941,3,0,US,N/A
+10001942,5,0,JP,N/A
+10001943,4,0,US,N/A
+10001944,4,0,FR,N/A
+10001945,1,0,US,N/A
+10001946,2,0,US,N/A
+10001947,1,0,GB,N/A
+10001948,5,0,DE,N/A
+10001949,1,0,DE,N/A
+10001950,4,0,US,N/A
+10001951,3,0,US,N/A
+10001952,0,0,IT,N/A
+10001953,5,0,IT,N/A
+10001954,4,0,CN,N/A
+10001955,2,0,GB,N/A
+10001956,3,0,FR,N/A
+10001957,1,0,JP,N/A
+10001958,1,0,CN,N/A
+10001959,4,0,GB,N/A
+10001960,2,0,JP,N/A
+10001961,5,0,DE,N/A
+10001962,5,0,FR,N/A
+10001963,2,0,IT,N/A
+10001964,3,0,JP,N/A
+10001965,2,0,IT,N/A
+10001966,1,0,GB,N/A
+10001967,0,0,GB,N/A
+10001968,3,0,US,N/A
+10001969,0,0,IT,N/A
+10001970,4,0,IT,N/A
+10001971,1,0,DE,N/A
+10001972,3,0,GB,N/A
+10001973,3,0,CN,N/A
+10001974,1,0,IT,N/A
+10001975,1,0,CN,N/A
+10001976,5,0,US,N/A
+10001977,1,0,IT,N/A
+10001978,2,0,GB,N/A
+10001979,5,0,GB,N/A
+10001980,4,0,IT,N/A
+10001981,1,0,CN,N/A
+10001982,4,0,GB,N/A
+10001983,4,0,US,N/A
+10001984,3,0,FR,N/A
+10001985,5,0,DE,N/A
+10001986,1,0,IT,N/A
+10001987,4,0,US,N/A
+10001988,5,0,DE,N/A
+10001989,2,0,DE,N/A
+10001990,0,0,GB,N/A
+10001991,0,0,US,N/A
+10001992,2,0,GB,N/A
+10001993,2,0,IT,N/A
+10001994,1,0,DE,N/A
+10001995,1,0,FR,N/A
+10001996,5,0,CN,N/A
+10001997,1,0,CN,N/A
+10001998,4,0,DE,N/A
+10001999,1,0,DE,N/A
+10002000,3,0,DE,N/A
+10002001,0,0,GB,N/A
+10002002,3,0,CN,N/A
+10002003,4,0,GB,N/A
+10002004,4,0,GB,N/A
+10002005,3,0,JP,N/A
+10002006,0,0,DE,N/A
+10002007,1,0,DE,N/A
+10002008,3,0,IT,N/A
+10002009,0,0,GB,N/A
+10002010,3,0,IT,N/A
+10002011,0,0,FR,N/A
+10002012,2,0,US,N/A
+10002013,1,0,JP,N/A
+10002014,3,0,US,N/A
+10002015,0,0,GB,N/A
+10002016,4,0,DE,N/A
+10002017,0,0,DE,N/A
+10002018,4,0,FR,N/A
+10002019,3,0,GB,N/A
+10002020,2,0,GB,N/A
+10002021,3,0,DE,N/A
+10002022,5,0,FR,N/A
+10002023,4,0,CN,N/A
+10002024,4,0,US,N/A
+10002025,3,0,IT,N/A
+10002026,3,0,DE,N/A
+10002027,2,0,CN,N/A
+10002028,1,0,DE,N/A
+10002029,1,0,US,N/A
+10002030,3,0,DE,N/A
+10002031,5,0,US,N/A
+10002032,2,0,GB,N/A
+10002033,2,0,FR,N/A
+10002034,0,0,CN,N/A
+10002035,5,0,FR,N/A
+10002036,5,0,DE,N/A
+10002037,5,0,US,N/A
+10002038,5,0,US,N/A
+10002039,5,0,GB,N/A
+10002040,4,0,US,N/A
+10002041,4,0,IT,N/A
+10002042,3,0,JP,N/A
+10002043,4,0,CN,N/A
+10002044,3,0,DE,N/A
+10002045,2,0,US,N/A
+10002046,0,0,IT,N/A
+10002047,1,0,US,N/A
+10002048,5,0,DE,N/A
+10002049,2,0,JP,N/A
+10002050,5,0,US,N/A
+10002051,3,0,GB,N/A
+10002052,3,0,IT,N/A
+10002053,0,0,GB,N/A
+10002054,3,0,DE,N/A
+10002055,3,0,JP,N/A
+10002056,4,0,DE,N/A
+10002057,0,0,DE,N/A
+10002058,5,0,CN,N/A
+10002059,0,0,IT,N/A
+10002060,1,0,CN,N/A
+10002061,4,0,CN,N/A
+10002062,3,0,CN,N/A
+10002063,4,0,DE,N/A
+10002064,2,0,JP,N/A
+10002065,1,0,FR,N/A
+10002066,2,0,FR,N/A
+10002067,1,0,US,N/A
+10002068,2,0,JP,N/A
+10002069,5,0,IT,N/A
+10002070,0,0,FR,N/A
+10002071,0,0,GB,N/A
+10002072,3,0,US,N/A
+10002073,5,0,CN,N/A
+10002074,4,0,GB,N/A
+10002075,3,0,FR,N/A
+10002076,3,0,GB,N/A
+10002077,2,0,IT,N/A
+10002078,5,0,US,N/A
+10002079,3,0,JP,N/A
+10002080,4,0,IT,N/A
+10002081,1,0,CN,N/A
+10002082,1,0,IT,N/A
+10002083,4,0,DE,N/A
+10002084,2,0,GB,N/A
+10002085,3,0,FR,N/A
+10002086,0,0,CN,N/A
+10002087,1,0,FR,N/A
+10002088,1,0,CN,N/A
+10002089,5,0,FR,N/A
+10002090,4,0,IT,N/A
+10002091,5,0,JP,N/A
+10002092,4,0,FR,N/A
+10002093,0,0,FR,N/A
+10002094,0,0,IT,N/A
+10002095,4,0,JP,N/A
+10002096,1,0,US,N/A
+10002097,4,0,FR,N/A
+10002098,0,0,FR,N/A
+10002099,4,0,IT,N/A
+10002100,2,0,US,N/A
+10002101,5,0,US,N/A
+10002102,1,0,GB,N/A
+10002103,1,0,IT,N/A
+10002104,4,0,CN,N/A
+10002105,3,0,US,N/A
+10002106,3,0,GB,N/A
+10002107,4,0,JP,N/A
+10002108,1,0,CN,N/A
+10002109,1,0,DE,N/A
+10002110,1,0,GB,N/A
+10002111,3,0,US,N/A
+10002112,5,0,FR,N/A
+10002113,5,0,DE,N/A
+10002114,0,0,IT,N/A
+10002115,1,0,DE,N/A
+10002116,5,0,FR,N/A
+10002117,5,0,US,N/A
+10002118,1,0,DE,N/A
+10002119,2,0,CN,N/A
+10002120,1,0,CN,N/A
+10002121,1,0,CN,N/A
+10002122,3,0,FR,N/A
+10002123,0,0,US,N/A
+10002124,4,0,FR,N/A
+10002125,2,0,FR,N/A
+10002126,2,0,GB,N/A
+10002127,3,0,US,N/A
+10002128,1,0,IT,N/A
+10002129,3,0,DE,N/A
+10002130,5,0,FR,N/A
+10002131,5,0,GB,N/A
+10002132,4,0,GB,N/A
+10002133,2,0,IT,N/A
+10002134,3,0,FR,N/A
+10002135,3,0,DE,N/A
+10002136,3,0,FR,N/A
+10002137,3,0,FR,N/A
+10002138,4,0,JP,N/A
+10002139,5,0,JP,N/A
+10002140,5,0,DE,N/A
+10002141,0,0,IT,N/A
+10002142,1,0,IT,N/A
+10002143,0,0,CN,N/A
+10002144,2,0,JP,N/A
+10002145,1,0,JP,N/A
+10002146,5,0,US,N/A
+10002147,2,0,FR,N/A
+10002148,3,0,IT,N/A
+10002149,2,0,JP,N/A
+10002150,2,0,IT,N/A
+10002151,5,0,CN,N/A
+10002152,2,0,DE,N/A
+10002153,4,0,US,N/A
+10002154,0,0,GB,N/A
+10002155,3,0,GB,N/A
+10002156,1,0,JP,N/A
+10002157,0,0,FR,N/A
+10002158,5,0,IT,N/A
+10002159,3,0,FR,N/A
+10002160,5,0,GB,N/A
+10002161,2,0,US,N/A
+10002162,4,0,GB,N/A
+10002163,4,0,US,N/A
+10002164,2,0,US,N/A
+10002165,0,0,IT,N/A
+10002166,4,0,CN,N/A
+10002167,4,0,US,N/A
+10002168,4,0,CN,N/A
+10002169,4,0,JP,N/A
+10002170,1,0,FR,N/A
+10002171,4,0,US,N/A
+10002172,3,0,IT,N/A
+10002173,5,0,IT,N/A
+10002174,0,0,FR,N/A
+10002175,2,0,DE,N/A
+10002176,4,0,JP,N/A
+10002177,5,0,DE,N/A
+10002178,0,0,FR,N/A
+10002179,2,0,CN,N/A
+10002180,3,0,GB,N/A
+10002181,0,0,GB,N/A
+10002182,5,0,DE,N/A
+10002183,0,0,US,N/A
+10002184,2,0,IT,N/A
+10002185,4,0,GB,N/A
+10002186,5,0,US,N/A
+10002187,5,0,DE,N/A
+10002188,5,0,DE,N/A
+10002189,2,0,CN,N/A
+10002190,5,0,GB,N/A
+10002191,1,0,IT,N/A
+10002192,3,0,GB,N/A
+10002193,5,0,FR,N/A
+10002194,5,0,JP,N/A
+10002195,2,0,GB,N/A
+10002196,1,0,FR,N/A
+10002197,3,0,GB,N/A
+10002198,4,0,JP,N/A
+10002199,3,0,CN,N/A
+10002200,3,0,JP,N/A
+10002201,4,0,JP,N/A
+10002202,4,0,IT,N/A
+10002203,4,0,IT,N/A
+10002204,5,0,FR,N/A
+10002205,4,0,IT,N/A
+10002206,3,0,JP,N/A
+10002207,2,0,DE,N/A
+10002208,5,0,US,N/A
+10002209,1,0,CN,N/A
+10002210,0,0,FR,N/A
+10002211,1,0,US,N/A
+10002212,1,0,CN,N/A
+10002213,3,0,CN,N/A
+10002214,2,0,JP,N/A
+10002215,1,0,DE,N/A
+10002216,2,0,JP,N/A
+10002217,5,0,JP,N/A
+10002218,0,0,IT,N/A
+10002219,2,0,US,N/A
+10002220,4,0,CN,N/A
+10002221,2,0,FR,N/A
+10002222,1,0,CN,N/A
+10002223,3,0,IT,N/A
+10002224,5,0,JP,N/A
+10002225,2,0,US,N/A
+10002226,5,0,FR,N/A
+10002227,1,0,JP,N/A
+10002228,2,0,DE,N/A
+10002229,1,0,CN,N/A
+10002230,1,0,GB,N/A
+10002231,1,0,FR,N/A
+10002232,5,0,GB,N/A
+10002233,5,0,DE,N/A
+10002234,5,0,DE,N/A
+10002235,3,0,FR,N/A
+10002236,3,0,JP,N/A
+10002237,3,0,DE,N/A
+10002238,4,0,US,N/A
+10002239,3,0,CN,N/A
+10002240,2,0,US,N/A
+10002241,5,0,FR,N/A
+10002242,4,0,US,N/A
+10002243,2,0,CN,N/A
+10002244,2,0,US,N/A
+10002245,5,0,GB,N/A
+10002246,1,0,JP,N/A
+10002247,4,0,CN,N/A
+10002248,2,0,GB,N/A
+10002249,5,0,JP,N/A
+10002250,0,0,DE,N/A
+10002251,3,0,JP,N/A
+10002252,4,0,FR,N/A
+10002253,4,0,JP,N/A
+10002254,5,0,JP,N/A
+10002255,0,0,GB,N/A
+10002256,2,0,CN,N/A
+10002257,5,0,IT,N/A
+10002258,4,0,US,N/A
+10002259,3,0,JP,N/A
+10002260,1,0,IT,N/A
+10002261,4,0,JP,N/A
+10002262,3,0,US,N/A
+10002263,0,0,CN,N/A
+10002264,2,0,CN,N/A
+10002265,2,0,JP,N/A
+10002266,5,0,US,N/A
+10002267,1,0,CN,N/A
+10002268,4,0,GB,N/A
+10002269,5,0,JP,N/A
+10002270,3,0,GB,N/A
+10002271,5,0,JP,N/A
+10002272,5,0,GB,N/A
+10002273,0,0,IT,N/A
+10002274,1,0,JP,N/A
+10002275,4,0,FR,N/A
+10002276,3,0,FR,N/A
+10002277,5,0,CN,N/A
+10002278,3,0,JP,N/A
+10002279,5,0,FR,N/A
+10002280,0,0,DE,N/A
+10002281,1,0,GB,N/A
+10002282,0,0,US,N/A
+10002283,5,0,JP,N/A
+10002284,2,0,IT,N/A
+10002285,1,0,CN,N/A
+10002286,5,0,US,N/A
+10002287,4,0,FR,N/A
+10002288,3,0,DE,N/A
+10002289,1,0,US,N/A
+10002290,3,0,CN,N/A
+10002291,0,0,FR,N/A
+10002292,2,0,IT,N/A
+10002293,3,0,US,N/A
+10002294,1,0,JP,N/A
+10002295,5,0,DE,N/A
+10002296,2,0,CN,N/A
+10002297,5,0,US,N/A
+10002298,0,0,GB,N/A
+10002299,2,0,FR,N/A
+10002300,2,0,DE,N/A
+10002301,0,0,US,N/A
+10002302,4,0,US,N/A
+10002303,3,0,DE,N/A
+10002304,1,0,US,N/A
+10002305,0,0,US,N/A
+10002306,1,0,IT,N/A
+10002307,2,0,CN,N/A
+10002308,0,0,GB,N/A
+10002309,5,0,JP,N/A
+10002310,0,0,CN,N/A
+10002311,1,0,FR,N/A
+10002312,0,0,US,N/A
+10002313,1,0,FR,N/A
+10002314,4,0,CN,N/A
+10002315,1,0,IT,N/A
+10002316,5,0,US,N/A
+10002317,5,0,JP,N/A
+10002318,1,0,IT,N/A
+10002319,3,0,IT,N/A
+10002320,4,0,IT,N/A
+10002321,0,0,DE,N/A
+10002322,4,0,CN,N/A
+10002323,4,0,FR,N/A
+10002324,2,0,GB,N/A
+10002325,4,0,JP,N/A
+10002326,5,0,JP,N/A
+10002327,3,0,JP,N/A
+10002328,4,0,US,N/A
+10002329,2,0,JP,N/A
+10002330,0,0,CN,N/A
+10002331,2,0,US,N/A
+10002332,5,0,IT,N/A
+10002333,0,0,IT,N/A
+10002334,0,0,CN,N/A
+10002335,4,0,DE,N/A
+10002336,3,0,US,N/A
+10002337,3,0,GB,N/A
+10002338,0,0,US,N/A
+10002339,2,0,GB,N/A
+10002340,5,0,GB,N/A
+10002341,1,0,GB,N/A
+10002342,4,0,FR,N/A
+10002343,3,0,IT,N/A
+10002344,2,0,DE,N/A
+10002345,1,0,US,N/A
+10002346,2,0,DE,N/A
+10002347,5,0,US,N/A
+10002348,0,0,DE,N/A
+10002349,4,0,FR,N/A
+10002350,5,0,CN,N/A
+10002351,3,0,US,N/A
+10002352,1,0,US,N/A
+10002353,0,0,GB,N/A
+10002354,5,0,FR,N/A
+10002355,2,0,IT,N/A
+10002356,5,0,DE,N/A
+10002357,3,0,GB,N/A
+10002358,1,0,JP,N/A
+10002359,0,0,FR,N/A
+10002360,4,0,GB,N/A
+10002361,3,0,FR,N/A
+10002362,0,0,IT,N/A
+10002363,0,0,US,N/A
+10002364,2,0,IT,N/A
+10002365,2,0,FR,N/A
+10002366,2,0,DE,N/A
+10002367,3,0,GB,N/A
+10002368,2,0,GB,N/A
+10002369,0,0,JP,N/A
+10002370,0,0,JP,N/A
+10002371,1,0,GB,N/A
+10002372,4,0,FR,N/A
+10002373,1,0,US,N/A
+10002374,1,0,FR,N/A
+10002375,0,0,CN,N/A
+10002376,3,0,JP,N/A
+10002377,2,0,US,N/A
+10002378,3,0,DE,N/A
+10002379,1,0,US,N/A
+10002380,5,0,JP,N/A
+10002381,1,0,GB,N/A
+10002382,4,0,JP,N/A
+10002383,2,0,FR,N/A
+10002384,4,0,GB,N/A
+10002385,0,0,FR,N/A
+10002386,0,0,GB,N/A
+10002387,4,0,FR,N/A
+10002388,5,0,IT,N/A
+10002389,3,0,GB,N/A
+10002390,2,0,IT,N/A
+10002391,2,0,CN,N/A
+10002392,0,0,US,N/A
+10002393,5,0,FR,N/A
+10002394,4,0,CN,N/A
+10002395,0,0,GB,N/A
+10002396,5,0,FR,N/A
+10002397,0,0,FR,N/A
+10002398,4,0,DE,N/A
+10002399,5,0,DE,N/A
+10002400,3,0,US,N/A
+10002401,0,0,GB,N/A
+10002402,3,0,US,N/A
+10002403,2,0,IT,N/A
+10002404,3,0,FR,N/A
+10002405,2,0,DE,N/A
+10002406,5,0,DE,N/A
+10002407,4,0,JP,N/A
+10002408,3,0,GB,N/A
+10002409,2,0,FR,N/A
+10002410,5,0,DE,N/A
+10002411,3,0,JP,N/A
+10002412,3,0,DE,N/A
+10002413,4,0,DE,N/A
+10002414,1,0,IT,N/A
+10002415,1,0,US,N/A
+10002416,4,0,GB,N/A
+10002417,4,0,JP,N/A
+10002418,1,0,DE,N/A
+10002419,4,0,US,N/A
+10002420,5,0,JP,N/A
+10002421,2,0,US,N/A
+10002422,0,0,IT,N/A
+10002423,4,0,CN,N/A
+10002424,0,0,DE,N/A
+10002425,4,0,CN,N/A
+10002426,0,0,US,N/A
+10002427,2,0,JP,N/A
+10002428,2,0,DE,N/A
+10002429,2,0,GB,N/A
+10002430,2,0,US,N/A
+10002431,2,0,US,N/A
+10002432,0,0,JP,N/A
+10002433,5,0,US,N/A
+10002434,3,0,CN,N/A
+10002435,4,0,GB,N/A
+10002436,5,0,JP,N/A
+10002437,0,0,GB,N/A
+10002438,3,0,FR,N/A
+10002439,2,0,JP,N/A
+10002440,3,0,FR,N/A
+10002441,1,0,DE,N/A
+10002442,0,0,JP,N/A
+10002443,3,0,FR,N/A
+10002444,2,0,US,N/A
+10002445,3,0,JP,N/A
+10002446,4,0,CN,N/A
+10002447,2,0,FR,N/A
+10002448,2,0,DE,N/A
+10002449,4,0,US,N/A
+10002450,5,0,JP,N/A
+10002451,0,0,CN,N/A
+10002452,1,0,IT,N/A
+10002453,0,0,FR,N/A
+10002454,1,0,GB,N/A
+10002455,2,0,JP,N/A
+10002456,4,0,FR,N/A
+10002457,0,0,CN,N/A
+10002458,2,0,DE,N/A
+10002459,5,0,CN,N/A
+10002460,3,0,DE,N/A
+10002461,4,0,US,N/A
+10002462,5,0,FR,N/A
+10002463,5,0,FR,N/A
+10002464,5,0,JP,N/A
+10002465,3,0,DE,N/A
+10002466,1,0,FR,N/A
+10002467,4,0,FR,N/A
+10002468,4,0,CN,N/A
+10002469,3,0,IT,N/A
+10002470,4,0,FR,N/A
+10002471,0,0,JP,N/A
+10002472,3,0,JP,N/A
+10002473,5,0,JP,N/A
+10002474,0,0,IT,N/A
+10002475,1,0,CN,N/A
+10002476,1,0,GB,N/A
+10002477,2,0,IT,N/A
+10002478,0,0,CN,N/A
+10002479,3,0,JP,N/A
+10002480,5,0,GB,N/A
+10002481,0,0,DE,N/A
+10002482,0,0,FR,N/A
+10002483,5,0,US,N/A
+10002484,3,0,US,N/A
+10002485,0,0,FR,N/A
+10002486,5,0,JP,N/A
+10002487,2,0,JP,N/A
+10002488,3,0,IT,N/A
+10002489,1,0,GB,N/A
+10002490,2,0,IT,N/A
+10002491,3,0,GB,N/A
+10002492,2,0,IT,N/A
+10002493,0,0,US,N/A
+10002494,3,0,IT,N/A
+10002495,3,0,CN,N/A
+10002496,2,0,DE,N/A
+10002497,2,0,FR,N/A
+10002498,3,0,IT,N/A
+10002499,1,0,GB,N/A
+10002500,4,0,JP,N/A
+10002501,0,0,FR,N/A
+10002502,3,0,US,N/A
+10002503,2,0,JP,N/A
+10002504,5,0,JP,N/A
+10002505,0,0,CN,N/A
+10002506,2,0,CN,N/A
+10002507,4,0,JP,N/A
+10002508,0,0,DE,N/A
+10002509,1,0,FR,N/A
+10002510,0,0,JP,N/A
+10002511,2,0,JP,N/A
+10002512,2,0,IT,N/A
+10002513,2,0,GB,N/A
+10002514,2,0,US,N/A
+10002515,3,0,DE,N/A
+10002516,3,0,IT,N/A
+10002517,1,0,FR,N/A
+10002518,2,0,FR,N/A
+10002519,5,0,DE,N/A
+10002520,1,0,FR,N/A
+10002521,3,0,FR,N/A
+10002522,5,0,US,N/A
+10002523,2,0,US,N/A
+10002524,4,0,DE,N/A
+10002525,0,0,GB,N/A
+10002526,0,0,CN,N/A
+10002527,4,0,CN,N/A
+10002528,4,0,JP,N/A
+10002529,3,0,GB,N/A
+10002530,3,0,JP,N/A
+10002531,1,0,CN,N/A
+10002532,1,0,FR,N/A
+10002533,5,0,IT,N/A
+10002534,0,0,GB,N/A
+10002535,3,0,US,N/A
+10002536,5,0,US,N/A
+10002537,1,0,US,N/A
+10002538,2,0,US,N/A
+10002539,0,0,US,N/A
+10002540,5,0,FR,N/A
+10002541,5,0,FR,N/A
+10002542,2,0,FR,N/A
+10002543,4,0,CN,N/A
+10002544,1,0,IT,N/A
+10002545,5,0,GB,N/A
+10002546,2,0,JP,N/A
+10002547,4,0,JP,N/A
+10002548,5,0,CN,N/A
+10002549,1,0,DE,N/A
+10002550,3,0,CN,N/A
+10002551,1,0,US,N/A
+10002552,0,0,CN,N/A
+10002553,1,0,JP,N/A
+10002554,5,0,IT,N/A
+10002555,4,0,US,N/A
+10002556,1,0,FR,N/A
+10002557,5,0,FR,N/A
+10002558,4,0,IT,N/A
+10002559,1,0,DE,N/A
+10002560,2,0,US,N/A
+10002561,5,0,DE,N/A
+10002562,2,0,JP,N/A
+10002563,4,0,IT,N/A
+10002564,1,0,JP,N/A
+10002565,4,0,US,N/A
+10002566,4,0,FR,N/A
+10002567,5,0,IT,N/A
+10002568,3,0,CN,N/A
+10002569,0,0,JP,N/A
+10002570,2,0,US,N/A
+10002571,5,0,GB,N/A
+10002572,4,0,GB,N/A
+10002573,4,0,US,N/A
+10002574,4,0,FR,N/A
+10002575,1,0,DE,N/A
+10002576,3,0,IT,N/A
+10002577,3,0,GB,N/A
+10002578,2,0,US,N/A
+10002579,1,0,GB,N/A
+10002580,0,0,US,N/A
+10002581,0,0,US,N/A
+10002582,4,0,IT,N/A
+10002583,2,0,FR,N/A
+10002584,3,0,CN,N/A
+10002585,3,0,JP,N/A
+10002586,0,0,JP,N/A
+10002587,3,0,JP,N/A
+10002588,3,0,GB,N/A
+10002589,5,0,FR,N/A
+10002590,3,0,FR,N/A
+10002591,1,0,IT,N/A
+10002592,4,0,FR,N/A
+10002593,2,0,CN,N/A
+10002594,4,0,CN,N/A
+10002595,1,0,JP,N/A
+10002596,3,0,CN,N/A
+10002597,3,0,GB,N/A
+10002598,1,0,FR,N/A
+10002599,0,0,DE,N/A
+10002600,2,0,JP,N/A
+10002601,1,0,DE,N/A
+10002602,5,0,CN,N/A
+10002603,2,0,CN,N/A
+10002604,5,0,GB,N/A
+10002605,4,0,DE,N/A
+10002606,5,0,JP,N/A
+10002607,5,0,CN,N/A
+10002608,2,0,US,N/A
+10002609,2,0,GB,N/A
+10002610,0,0,GB,N/A
+10002611,0,0,CN,N/A
+10002612,4,0,US,N/A
+10002613,2,0,CN,N/A
+10002614,1,0,GB,N/A
+10002615,0,0,JP,N/A
+10002616,0,0,CN,N/A
+10002617,4,0,US,N/A
+10002618,3,0,US,N/A
+10002619,4,0,CN,N/A
+10002620,3,0,FR,N/A
+10002621,0,0,GB,N/A
+10002622,0,0,GB,N/A
+10002623,1,0,GB,N/A
+10002624,2,0,US,N/A
+10002625,4,0,FR,N/A
+10002626,1,0,GB,N/A
+10002627,4,0,US,N/A
+10002628,0,0,DE,N/A
+10002629,2,0,DE,N/A
+10002630,2,0,DE,N/A
+10002631,5,0,GB,N/A
+10002632,2,0,US,N/A
+10002633,1,0,FR,N/A
+10002634,3,0,IT,N/A
+10002635,1,0,JP,N/A
+10002636,1,0,JP,N/A
+10002637,4,0,CN,N/A
+10002638,3,0,IT,N/A
+10002639,3,0,DE,N/A
+10002640,1,0,IT,N/A
+10002641,5,0,IT,N/A
+10002642,2,0,JP,N/A
+10002643,1,0,DE,N/A
+10002644,1,0,GB,N/A
+10002645,2,0,JP,N/A
+10002646,1,0,IT,N/A
+10002647,1,0,FR,N/A
+10002648,1,0,CN,N/A
+10002649,4,0,FR,N/A
+10002650,4,0,JP,N/A
+10002651,5,0,DE,N/A
+10002652,5,0,US,N/A
+10002653,5,0,DE,N/A
+10002654,3,0,JP,N/A
+10002655,5,0,GB,N/A
+10002656,3,0,GB,N/A
+10002657,2,0,US,N/A
+10002658,1,0,US,N/A
+10002659,5,0,GB,N/A
+10002660,5,0,FR,N/A
+10002661,2,0,US,N/A
+10002662,5,0,US,N/A
+10002663,0,0,IT,N/A
+10002664,5,0,IT,N/A
+10002665,4,0,IT,N/A
+10002666,4,0,CN,N/A
+10002667,0,0,JP,N/A
+10002668,0,0,DE,N/A
+10002669,0,0,CN,N/A
+10002670,4,0,IT,N/A
+10002671,2,0,US,N/A
+10002672,4,0,CN,N/A
+10002673,0,0,JP,N/A
+10002674,4,0,FR,N/A
+10002675,4,0,CN,N/A
+10002676,4,0,GB,N/A
+10002677,3,0,JP,N/A
+10002678,4,0,DE,N/A
+10002679,4,0,IT,N/A
+10002680,0,0,FR,N/A
+10002681,2,0,DE,N/A
+10002682,1,0,CN,N/A
+10002683,0,0,US,N/A
+10002684,3,0,DE,N/A
+10002685,4,0,IT,N/A
+10002686,0,0,FR,N/A
+10002687,2,0,GB,N/A
+10002688,1,0,IT,N/A
+10002689,0,0,IT,N/A
+10002690,1,0,GB,N/A
+10002691,0,0,IT,N/A
+10002692,2,0,US,N/A
+10002693,1,0,FR,N/A
+10002694,5,0,IT,N/A
+10002695,2,0,FR,N/A
+10002696,1,0,CN,N/A
+10002697,5,0,FR,N/A
+10002698,0,0,GB,N/A
+10002699,1,0,GB,N/A
+10002700,0,0,DE,N/A
+10002701,0,0,CN,N/A
+10002702,3,0,FR,N/A
+10002703,1,0,FR,N/A
+10002704,3,0,FR,N/A
+10002705,5,0,US,N/A
+10002706,5,0,DE,N/A
+10002707,1,0,DE,N/A
+10002708,5,0,DE,N/A
+10002709,5,0,US,N/A
+10002710,2,0,DE,N/A
+10002711,3,0,CN,N/A
+10002712,5,0,DE,N/A
+10002713,1,0,GB,N/A
+10002714,2,0,FR,N/A
+10002715,2,0,JP,N/A
+10002716,4,0,CN,N/A
+10002717,3,0,JP,N/A
+10002718,4,0,JP,N/A
+10002719,1,0,FR,N/A
+10002720,2,0,FR,N/A
+10002721,2,0,DE,N/A
+10002722,5,0,FR,N/A
+10002723,5,0,DE,N/A
+10002724,0,0,JP,N/A
+10002725,5,0,CN,N/A
+10002726,1,0,US,N/A
+10002727,4,0,IT,N/A
+10002728,1,0,CN,N/A
+10002729,5,0,US,N/A
+10002730,5,0,FR,N/A
+10002731,1,0,FR,N/A
+10002732,3,0,FR,N/A
+10002733,0,0,US,N/A
+10002734,4,0,JP,N/A
+10002735,3,0,IT,N/A
+10002736,4,0,IT,N/A
+10002737,2,0,IT,N/A
+10002738,5,0,DE,N/A
+10002739,3,0,JP,N/A
+10002740,2,0,CN,N/A
+10002741,2,0,FR,N/A
+10002742,3,0,US,N/A
+10002743,0,0,DE,N/A
+10002744,5,0,GB,N/A
+10002745,0,0,GB,N/A
+10002746,1,0,FR,N/A
+10002747,5,0,FR,N/A
+10002748,1,0,US,N/A
+10002749,1,0,JP,N/A
+10002750,3,0,JP,N/A
+10002751,5,0,IT,N/A
+10002752,0,0,FR,N/A
+10002753,5,0,DE,N/A
+10002754,1,0,US,N/A
+10002755,1,0,US,N/A
+10002756,1,0,JP,N/A
+10002757,3,0,DE,N/A
+10002758,0,0,FR,N/A
+10002759,3,0,CN,N/A
+10002760,3,0,US,N/A
+10002761,1,0,US,N/A
+10002762,3,0,FR,N/A
+10002763,0,0,US,N/A
+10002764,0,0,DE,N/A
+10002765,4,0,US,N/A
+10002766,4,0,US,N/A
+10002767,1,0,FR,N/A
+10002768,1,0,US,N/A
+10002769,4,0,CN,N/A
+10002770,0,0,GB,N/A
+10002771,0,0,GB,N/A
+10002772,3,0,CN,N/A
+10002773,3,0,US,N/A
+10002774,5,0,US,N/A
+10002775,5,0,FR,N/A
+10002776,4,0,IT,N/A
+10002777,3,0,IT,N/A
+10002778,1,0,CN,N/A
+10002779,3,0,FR,N/A
+10002780,2,0,IT,N/A
+10002781,4,0,JP,N/A
+10002782,1,0,US,N/A
+10002783,5,0,US,N/A
+10002784,5,0,IT,N/A
+10002785,3,0,DE,N/A
+10002786,5,0,DE,N/A
+10002787,0,0,JP,N/A
+10002788,3,0,DE,N/A
+10002789,4,0,FR,N/A
+10002790,4,0,JP,N/A
+10002791,0,0,FR,N/A
+10002792,3,0,FR,N/A
+10002793,3,0,GB,N/A
+10002794,3,0,CN,N/A
+10002795,2,0,JP,N/A
+10002796,1,0,CN,N/A
+10002797,5,0,US,N/A
+10002798,4,0,CN,N/A
+10002799,3,0,CN,N/A
+10002800,5,0,JP,N/A
+10002801,3,0,JP,N/A
+10002802,0,0,US,N/A
+10002803,2,0,DE,N/A
+10002804,0,0,IT,N/A
+10002805,2,0,FR,N/A
+10002806,5,0,GB,N/A
+10002807,5,0,JP,N/A
+10002808,4,0,DE,N/A
+10002809,4,0,FR,N/A
+10002810,4,0,GB,N/A
+10002811,2,0,US,N/A
+10002812,0,0,GB,N/A
+10002813,1,0,CN,N/A
+10002814,2,0,DE,N/A
+10002815,4,0,FR,N/A
+10002816,2,0,DE,N/A
+10002817,5,0,JP,N/A
+10002818,3,0,FR,N/A
+10002819,0,0,FR,N/A
+10002820,3,0,CN,N/A
+10002821,4,0,IT,N/A
+10002822,1,0,GB,N/A
+10002823,4,0,IT,N/A
+10002824,4,0,FR,N/A
+10002825,1,0,US,N/A
+10002826,2,0,US,N/A
+10002827,4,0,CN,N/A
+10002828,4,0,FR,N/A
+10002829,3,0,FR,N/A
+10002830,1,0,DE,N/A
+10002831,4,0,DE,N/A
+10002832,2,0,US,N/A
+10002833,5,0,CN,N/A
+10002834,2,0,US,N/A
+10002835,2,0,IT,N/A
+10002836,4,0,GB,N/A
+10002837,5,0,US,N/A
+10002838,5,0,US,N/A
+10002839,0,0,US,N/A
+10002840,0,0,DE,N/A
+10002841,5,0,CN,N/A
+10002842,3,0,GB,N/A
+10002843,4,0,JP,N/A
+10002844,2,0,IT,N/A
+10002845,3,0,FR,N/A
+10002846,0,0,GB,N/A
+10002847,0,0,US,N/A
+10002848,3,0,CN,N/A
+10002849,0,0,FR,N/A
+10002850,0,0,DE,N/A
+10002851,4,0,IT,N/A
+10002852,3,0,JP,N/A
+10002853,3,0,FR,N/A
+10002854,1,0,CN,N/A
+10002855,1,0,DE,N/A
+10002856,3,0,DE,N/A
+10002857,5,0,FR,N/A
+10002858,1,0,JP,N/A
+10002859,4,0,US,N/A
+10002860,4,0,JP,N/A
+10002861,2,0,CN,N/A
+10002862,1,0,DE,N/A
+10002863,0,0,FR,N/A
+10002864,2,0,FR,N/A
+10002865,0,0,CN,N/A
+10002866,4,0,CN,N/A
+10002867,5,0,JP,N/A
+10002868,5,0,GB,N/A
+10002869,0,0,US,N/A
+10002870,3,0,FR,N/A
+10002871,4,0,GB,N/A
+10002872,4,0,FR,N/A
+10002873,2,0,DE,N/A
+10002874,2,0,JP,N/A
+10002875,0,0,GB,N/A
+10002876,0,0,JP,N/A
+10002877,5,0,CN,N/A
+10002878,0,0,FR,N/A
+10002879,3,0,JP,N/A
+10002880,0,0,CN,N/A
+10002881,1,0,FR,N/A
+10002882,0,0,US,N/A
+10002883,4,0,FR,N/A
+10002884,3,0,DE,N/A
+10002885,5,0,FR,N/A
+10002886,4,0,CN,N/A
+10002887,3,0,CN,N/A
+10002888,2,0,DE,N/A
+10002889,5,0,GB,N/A
+10002890,4,0,JP,N/A
+10002891,4,0,GB,N/A
+10002892,5,0,IT,N/A
+10002893,5,0,IT,N/A
+10002894,4,0,DE,N/A
+10002895,1,0,CN,N/A
+10002896,1,0,JP,N/A
+10002897,4,0,CN,N/A
+10002898,4,0,JP,N/A
+10002899,3,0,CN,N/A
+10002900,1,0,FR,N/A
+10002901,1,0,IT,N/A
+10002902,4,0,DE,N/A
+10002903,2,0,FR,N/A
+10002904,0,0,JP,N/A
+10002905,1,0,US,N/A
+10002906,2,0,GB,N/A
+10002907,4,0,US,N/A
+10002908,3,0,JP,N/A
+10002909,5,0,US,N/A
+10002910,0,0,GB,N/A
+10002911,2,0,US,N/A
+10002912,4,0,US,N/A
+10002913,4,0,DE,N/A
+10002914,3,0,IT,N/A
+10002915,0,0,FR,N/A
+10002916,0,0,CN,N/A
+10002917,1,0,GB,N/A
+10002918,4,0,US,N/A
+10002919,3,0,US,N/A
+10002920,3,0,FR,N/A
+10002921,2,0,GB,N/A
+10002922,0,0,US,N/A
+10002923,2,0,JP,N/A
+10002924,3,0,CN,N/A
+10002925,4,0,JP,N/A
+10002926,2,0,GB,N/A
+10002927,0,0,CN,N/A
+10002928,0,0,IT,N/A
+10002929,4,0,GB,N/A
+10002930,3,0,GB,N/A
+10002931,2,0,IT,N/A
+10002932,4,0,IT,N/A
+10002933,3,0,US,N/A
+10002934,4,0,JP,N/A
+10002935,2,0,DE,N/A
+10002936,0,0,DE,N/A
+10002937,5,0,IT,N/A
+10002938,2,0,FR,N/A
+10002939,0,0,JP,N/A
+10002940,2,0,GB,N/A
+10002941,3,0,US,N/A
+10002942,4,0,US,N/A
+10002943,5,0,IT,N/A
+10002944,3,0,US,N/A
+10002945,3,0,CN,N/A
+10002946,4,0,FR,N/A
+10002947,4,0,JP,N/A
+10002948,0,0,FR,N/A
+10002949,0,0,CN,N/A
+10002950,0,0,GB,N/A
+10002951,3,0,FR,N/A
+10002952,0,0,IT,N/A
+10002953,2,0,US,N/A
+10002954,1,0,IT,N/A
+10002955,0,0,US,N/A
+10002956,2,0,US,N/A
+10002957,1,0,DE,N/A
+10002958,3,0,DE,N/A
+10002959,5,0,CN,N/A
+10002960,1,0,FR,N/A
+10002961,4,0,FR,N/A
+10002962,3,0,US,N/A
+10002963,4,0,DE,N/A
+10002964,3,0,JP,N/A
+10002965,4,0,CN,N/A
+10002966,1,0,GB,N/A
+10002967,0,0,IT,N/A
+10002968,4,0,FR,N/A
+10002969,2,0,JP,N/A
+10002970,5,0,FR,N/A
+10002971,1,0,FR,N/A
+10002972,4,0,JP,N/A
+10002973,5,0,CN,N/A
+10002974,1,0,DE,N/A
+10002975,4,0,US,N/A
+10002976,5,0,US,N/A
+10002977,0,0,GB,N/A
+10002978,1,0,JP,N/A
+10002979,1,0,CN,N/A
+10002980,5,0,US,N/A
+10002981,3,0,JP,N/A
+10002982,0,0,IT,N/A
+10002983,5,0,FR,N/A
+10002984,4,0,IT,N/A
+10002985,3,0,GB,N/A
+10002986,2,0,US,N/A
+10002987,0,0,CN,N/A
+10002988,2,0,FR,N/A
+10002989,0,0,US,N/A
+10002990,0,0,CN,N/A
+10002991,0,0,US,N/A
+10002992,4,0,FR,N/A
+10002993,4,0,CN,N/A
+10002994,4,0,FR,N/A
+10002995,0,0,CN,N/A
+10002996,2,0,DE,N/A
+10002997,2,0,IT,N/A
+10002998,1,0,CN,N/A
+10002999,2,0,US,N/A
+10003000,5,0,JP,N/A
+10003001,4,0,FR,N/A
+10003002,4,0,FR,N/A
+10003003,5,0,CN,N/A
+10003004,2,0,GB,N/A
+10003005,3,0,FR,N/A
+10003006,5,0,FR,N/A
+10003007,5,0,GB,N/A
+10003008,4,0,DE,N/A
+10003009,3,0,US,N/A
+10003010,4,0,DE,N/A
+10003011,5,0,JP,N/A
+10003012,1,0,FR,N/A
+10003013,5,0,US,N/A
+10003014,4,0,US,N/A
+10003015,1,0,US,N/A
+10003016,0,0,FR,N/A
+10003017,0,0,CN,N/A
+10003018,1,0,GB,N/A
+10003019,3,0,DE,N/A
+10003020,3,0,FR,N/A
+10003021,1,0,IT,N/A
+10003022,1,0,IT,N/A
+10003023,0,0,GB,N/A
+10003024,4,0,US,N/A
+10003025,5,0,IT,N/A
+10003026,0,0,US,N/A
+10003027,1,0,IT,N/A
+10003028,3,0,US,N/A
+10003029,4,0,IT,N/A
+10003030,4,0,DE,N/A
+10003031,4,0,IT,N/A
+10003032,1,0,US,N/A
+10003033,4,0,GB,N/A
+10003034,3,0,FR,N/A
+10003035,0,0,DE,N/A
+10003036,0,0,US,N/A
+10003037,3,0,JP,N/A
+10003038,2,0,GB,N/A
+10003039,2,0,US,N/A
+10003040,1,0,CN,N/A
+10003041,5,0,JP,N/A
+10003042,2,0,CN,N/A
+10003043,2,0,JP,N/A
+10003044,2,0,CN,N/A
+10003045,2,0,GB,N/A
+10003046,1,0,GB,N/A
+10003047,0,0,FR,N/A
+10003048,2,0,US,N/A
+10003049,5,0,US,N/A
+10003050,5,0,US,N/A
+10003051,1,0,GB,N/A
+10003052,4,0,CN,N/A
+10003053,1,0,GB,N/A
+10003054,4,0,FR,N/A
+10003055,3,0,FR,N/A
+10003056,3,0,IT,N/A
+10003057,5,0,FR,N/A
+10003058,1,0,DE,N/A
+10003059,5,0,IT,N/A
+10003060,3,0,US,N/A
+10003061,4,0,DE,N/A
+10003062,3,0,DE,N/A
+10003063,3,0,DE,N/A
+10003064,4,0,JP,N/A
+10003065,4,0,CN,N/A
+10003066,1,0,IT,N/A
+10003067,0,0,IT,N/A
+10003068,2,0,CN,N/A
+10003069,4,0,CN,N/A
+10003070,0,0,JP,N/A
+10003071,0,0,US,N/A
+10003072,0,0,JP,N/A
+10003073,4,0,GB,N/A
+10003074,5,0,FR,N/A
+10003075,2,0,JP,N/A
+10003076,0,0,JP,N/A
+10003077,3,0,DE,N/A
+10003078,3,0,FR,N/A
+10003079,4,0,IT,N/A
+10003080,4,0,IT,N/A
+10003081,0,0,DE,N/A
+10003082,3,0,CN,N/A
+10003083,4,0,GB,N/A
+10003084,3,0,JP,N/A
+10003085,0,0,GB,N/A
+10003086,0,0,DE,N/A
+10003087,0,0,GB,N/A
+10003088,5,0,CN,N/A
+10003089,2,0,DE,N/A
+10003090,4,0,US,N/A
+10003091,2,0,CN,N/A
+10003092,0,0,GB,N/A
+10003093,2,0,IT,N/A
+10003094,4,0,DE,N/A
+10003095,3,0,IT,N/A
+10003096,3,0,FR,N/A
+10003097,0,0,CN,N/A
+10003098,1,0,DE,N/A
+10003099,3,0,GB,N/A
+10003100,2,0,GB,N/A
+10003101,1,0,CN,N/A
+10003102,4,0,IT,N/A
+10003103,5,0,GB,N/A
+10003104,3,0,GB,N/A
+10003105,4,0,JP,N/A
+10003106,2,0,US,N/A
+10003107,1,0,CN,N/A
+10003108,2,0,IT,N/A
+10003109,4,0,JP,N/A
+10003110,0,0,CN,N/A
+10003111,1,0,CN,N/A
+10003112,5,0,IT,N/A
+10003113,1,0,JP,N/A
+10003114,2,0,DE,N/A
+10003115,1,0,US,N/A
+10003116,4,0,IT,N/A
+10003117,2,0,DE,N/A
+10003118,2,0,JP,N/A
+10003119,2,0,IT,N/A
+10003120,4,0,FR,N/A
+10003121,4,0,GB,N/A
+10003122,3,0,JP,N/A
+10003123,3,0,FR,N/A
+10003124,2,0,JP,N/A
+10003125,4,0,US,N/A
+10003126,1,0,FR,N/A
+10003127,4,0,FR,N/A
+10003128,4,0,IT,N/A
+10003129,2,0,US,N/A
+10003130,3,0,IT,N/A
+10003131,2,0,CN,N/A
+10003132,5,0,DE,N/A
+10003133,3,0,CN,N/A
+10003134,4,0,FR,N/A
+10003135,1,0,DE,N/A
+10003136,0,0,FR,N/A
+10003137,4,0,JP,N/A
+10003138,0,0,GB,N/A
+10003139,0,0,FR,N/A
+10003140,2,0,CN,N/A
+10003141,4,0,IT,N/A
+10003142,4,0,DE,N/A
+10003143,1,0,IT,N/A
+10003144,1,0,JP,N/A
+10003145,4,0,GB,N/A
+10003146,4,0,DE,N/A
+10003147,0,0,US,N/A
+10003148,2,0,FR,N/A
+10003149,0,0,CN,N/A
+10003150,4,0,FR,N/A
+10003151,0,0,JP,N/A
+10003152,0,0,CN,N/A
+10003153,1,0,FR,N/A
+10003154,4,0,DE,N/A
+10003155,4,0,IT,N/A
+10003156,1,0,GB,N/A
+10003157,1,0,FR,N/A
+10003158,3,0,US,N/A
+10003159,1,0,US,N/A
+10003160,1,0,JP,N/A
+10003161,1,0,DE,N/A
+10003162,0,0,JP,N/A
+10003163,1,0,GB,N/A
+10003164,0,0,GB,N/A
+10003165,0,0,DE,N/A
+10003166,2,0,GB,N/A
+10003167,5,0,JP,N/A
+10003168,5,0,JP,N/A
+10003169,1,0,IT,N/A
+10003170,2,0,FR,N/A
+10003171,3,0,JP,N/A
+10003172,0,0,GB,N/A
+10003173,3,0,CN,N/A
+10003174,4,0,GB,N/A
+10003175,0,0,GB,N/A
+10003176,2,0,GB,N/A
+10003177,0,0,IT,N/A
+10003178,5,0,JP,N/A
+10003179,1,0,DE,N/A
+10003180,3,0,FR,N/A
+10003181,4,0,GB,N/A
+10003182,0,0,GB,N/A
+10003183,4,0,IT,N/A
+10003184,2,0,GB,N/A
+10003185,0,0,GB,N/A
+10003186,4,0,GB,N/A
+10003187,3,0,US,N/A
+10003188,3,0,JP,N/A
+10003189,5,0,DE,N/A
+10003190,0,0,US,N/A
+10003191,2,0,DE,N/A
+10003192,0,0,US,N/A
+10003193,3,0,US,N/A
+10003194,1,0,CN,N/A
+10003195,4,0,DE,N/A
+10003196,5,0,DE,N/A
+10003197,1,0,US,N/A
+10003198,0,0,JP,N/A
+10003199,1,0,GB,N/A
+10003200,1,0,US,N/A
+10003201,3,0,IT,N/A
+10003202,5,0,JP,N/A
+10003203,0,0,JP,N/A
+10003204,3,0,CN,N/A
+10003205,1,0,JP,N/A
+10003206,0,0,FR,N/A
+10003207,5,0,FR,N/A
+10003208,4,0,US,N/A
+10003209,1,0,JP,N/A
+10003210,5,0,GB,N/A
+10003211,4,0,DE,N/A
+10003212,3,0,FR,N/A
+10003213,0,0,CN,N/A
+10003214,4,0,IT,N/A
+10003215,4,0,CN,N/A
+10003216,0,0,GB,N/A
+10003217,5,0,IT,N/A
+10003218,3,0,CN,N/A
+10003219,3,0,US,N/A
+10003220,5,0,CN,N/A
+10003221,2,0,DE,N/A
+10003222,4,0,JP,N/A
+10003223,5,0,DE,N/A
+10003224,5,0,US,N/A
+10003225,4,0,JP,N/A
+10003226,1,0,DE,N/A
+10003227,0,0,US,N/A
+10003228,2,0,CN,N/A
+10003229,4,0,IT,N/A
+10003230,4,0,CN,N/A
+10003231,1,0,US,N/A
+10003232,4,0,US,N/A
+10003233,0,0,JP,N/A
+10003234,2,0,DE,N/A
+10003235,0,0,IT,N/A
+10003236,3,0,IT,N/A
+10003237,2,0,GB,N/A
+10003238,2,0,IT,N/A
+10003239,2,0,IT,N/A
+10003240,2,0,DE,N/A
+10003241,5,0,US,N/A
+10003242,2,0,US,N/A
+10003243,4,0,US,N/A
+10003244,1,0,DE,N/A
+10003245,2,0,CN,N/A
+10003246,1,0,IT,N/A
+10003247,0,0,DE,N/A
+10003248,2,0,DE,N/A
+10003249,4,0,US,N/A
+10003250,5,0,DE,N/A
+10003251,4,0,IT,N/A
+10003252,1,0,DE,N/A
+10003253,0,0,FR,N/A
+10003254,3,0,CN,N/A
+10003255,2,0,US,N/A
+10003256,1,0,JP,N/A
+10003257,5,0,CN,N/A
+10003258,3,0,JP,N/A
+10003259,5,0,IT,N/A
+10003260,0,0,FR,N/A
+10003261,2,0,CN,N/A
+10003262,5,0,DE,N/A
+10003263,3,0,FR,N/A
+10003264,3,0,GB,N/A
+10003265,0,0,US,N/A
+10003266,3,0,US,N/A
+10003267,3,0,GB,N/A
+10003268,4,0,US,N/A
+10003269,2,0,IT,N/A
+10003270,1,0,FR,N/A
+10003271,2,0,CN,N/A
+10003272,4,0,GB,N/A
+10003273,5,0,DE,N/A
+10003274,3,0,CN,N/A
+10003275,1,0,DE,N/A
+10003276,3,0,GB,N/A
+10003277,3,0,JP,N/A
+10003278,0,0,JP,N/A
+10003279,4,0,FR,N/A
+10003280,1,0,JP,N/A
+10003281,4,0,FR,N/A
+10003282,4,0,IT,N/A
+10003283,2,0,DE,N/A
+10003284,1,0,DE,N/A
+10003285,1,0,DE,N/A
+10003286,3,0,DE,N/A
+10003287,3,0,JP,N/A
+10003288,0,0,JP,N/A
+10003289,1,0,US,N/A
+10003290,5,0,GB,N/A
+10003291,1,0,IT,N/A
+10003292,3,0,IT,N/A
+10003293,1,0,US,N/A
+10003294,1,0,DE,N/A
+10003295,3,0,JP,N/A
+10003296,0,0,JP,N/A
+10003297,0,0,JP,N/A
+10003298,4,0,US,N/A
+10003299,1,0,JP,N/A
+10003300,2,0,IT,N/A
+10003301,2,0,JP,N/A
+10003302,5,0,GB,N/A
+10003303,1,0,GB,N/A
+10003304,0,0,GB,N/A
+10003305,3,0,DE,N/A
+10003306,0,0,JP,N/A
+10003307,3,0,US,N/A
+10003308,0,0,DE,N/A
+10003309,3,0,FR,N/A
+10003310,1,0,CN,N/A
+10003311,4,0,FR,N/A
+10003312,0,0,IT,N/A
+10003313,5,0,US,N/A
+10003314,2,0,IT,N/A
+10003315,1,0,IT,N/A
+10003316,0,0,GB,N/A
+10003317,2,0,DE,N/A
+10003318,5,0,US,N/A
+10003319,1,0,GB,N/A
+10003320,0,0,FR,N/A
+10003321,2,0,FR,N/A
+10003322,4,0,JP,N/A
+10003323,4,0,FR,N/A
+10003324,3,0,DE,N/A
+10003325,2,0,GB,N/A
+10003326,2,0,GB,N/A
+10003327,0,0,FR,N/A
+10003328,0,0,IT,N/A
+10003329,3,0,US,N/A
+10003330,0,0,FR,N/A
+10003331,5,0,IT,N/A
+10003332,4,0,IT,N/A
+10003333,0,0,GB,N/A
+10003334,0,0,US,N/A
+10003335,2,0,IT,N/A
+10003336,5,0,US,N/A
+10003337,1,0,US,N/A
+10003338,5,0,IT,N/A
+10003339,5,0,JP,N/A
+10003340,1,0,FR,N/A
+10003341,0,0,JP,N/A
+10003342,0,0,JP,N/A
+10003343,3,0,JP,N/A
+10003344,5,0,CN,N/A
+10003345,3,0,JP,N/A
+10003346,1,0,JP,N/A
+10003347,3,0,FR,N/A
+10003348,4,0,DE,N/A
+10003349,1,0,FR,N/A
+10003350,1,0,US,N/A
+10003351,2,0,CN,N/A
+10003352,2,0,IT,N/A
+10003353,0,0,IT,N/A
+10003354,1,0,GB,N/A
+10003355,0,0,GB,N/A
+10003356,4,0,FR,N/A
+10003357,4,0,IT,N/A
+10003358,5,0,FR,N/A
+10003359,0,0,FR,N/A
+10003360,0,0,FR,N/A
+10003361,1,0,CN,N/A
+10003362,1,0,DE,N/A
+10003363,0,0,IT,N/A
+10003364,2,0,US,N/A
+10003365,2,0,GB,N/A
+10003366,2,0,GB,N/A
+10003367,2,0,DE,N/A
+10003368,2,0,IT,N/A
+10003369,5,0,DE,N/A
+10003370,4,0,CN,N/A
+10003371,3,0,JP,N/A
+10003372,3,0,DE,N/A
+10003373,2,0,CN,N/A
+10003374,4,0,FR,N/A
+10003375,2,0,GB,N/A
+10003376,4,0,DE,N/A
+10003377,5,0,IT,N/A
+10003378,0,0,DE,N/A
+10003379,1,0,US,N/A
+10003380,5,0,FR,N/A
+10003381,1,0,DE,N/A
+10003382,3,0,IT,N/A
+10003383,0,0,CN,N/A
+10003384,0,0,CN,N/A
+10003385,3,0,FR,N/A
+10003386,4,0,FR,N/A
+10003387,0,0,GB,N/A
+10003388,0,0,CN,N/A
+10003389,0,0,GB,N/A
+10003390,2,0,CN,N/A
+10003391,5,0,DE,N/A
+10003392,3,0,FR,N/A
+10003393,0,0,CN,N/A
+10003394,1,0,CN,N/A
+10003395,4,0,CN,N/A
+10003396,2,0,JP,N/A
+10003397,0,0,IT,N/A
+10003398,3,0,DE,N/A
+10003399,4,0,FR,N/A
+10003400,3,0,JP,N/A
+10003401,5,0,FR,N/A
+10003402,3,0,JP,N/A
+10003403,3,0,JP,N/A
+10003404,4,0,CN,N/A
+10003405,1,0,DE,N/A
+10003406,3,0,JP,N/A
+10003407,2,0,DE,N/A
+10003408,3,0,CN,N/A
+10003409,2,0,JP,N/A
+10003410,2,0,IT,N/A
+10003411,3,0,US,N/A
+10003412,1,0,CN,N/A
+10003413,4,0,GB,N/A
+10003414,4,0,JP,N/A
+10003415,4,0,GB,N/A
+10003416,2,0,IT,N/A
+10003417,0,0,DE,N/A
+10003418,4,0,JP,N/A
+10003419,0,0,GB,N/A
+10003420,2,0,IT,N/A
+10003421,2,0,FR,N/A
+10003422,1,0,US,N/A
+10003423,2,0,FR,N/A
+10003424,5,0,JP,N/A
+10003425,5,0,IT,N/A
+10003426,0,0,JP,N/A
+10003427,2,0,IT,N/A
+10003428,4,0,JP,N/A
+10003429,5,0,FR,N/A
+10003430,3,0,GB,N/A
+10003431,4,0,IT,N/A
+10003432,4,0,CN,N/A
+10003433,4,0,IT,N/A
+10003434,3,0,FR,N/A
+10003435,1,0,IT,N/A
+10003436,4,0,CN,N/A
+10003437,4,0,DE,N/A
+10003438,3,0,DE,N/A
+10003439,5,0,CN,N/A
+10003440,3,0,JP,N/A
+10003441,4,0,US,N/A
+10003442,4,0,JP,N/A
+10003443,3,0,JP,N/A
+10003444,4,0,DE,N/A
+10003445,3,0,CN,N/A
+10003446,0,0,JP,N/A
+10003447,2,0,JP,N/A
+10003448,2,0,CN,N/A
+10003449,2,0,CN,N/A
+10003450,2,0,IT,N/A
+10003451,0,0,GB,N/A
+10003452,2,0,JP,N/A
+10003453,2,0,JP,N/A
+10003454,5,0,CN,N/A
+10003455,3,0,GB,N/A
+10003456,1,0,JP,N/A
+10003457,2,0,IT,N/A
+10003458,4,0,US,N/A
+10003459,3,0,GB,N/A
+10003460,4,0,US,N/A
+10003461,3,0,DE,N/A
+10003462,3,0,CN,N/A
+10003463,4,0,JP,N/A
+10003464,3,0,IT,N/A
+10003465,2,0,US,N/A
+10003466,4,0,IT,N/A
+10003467,3,0,JP,N/A
+10003468,3,0,DE,N/A
+10003469,5,0,JP,N/A
+10003470,5,0,US,N/A
+10003471,2,0,GB,N/A
+10003472,5,0,DE,N/A
+10003473,0,0,JP,N/A
+10003474,4,0,JP,N/A
+10003475,5,0,US,N/A
+10003476,5,0,JP,N/A
+10003477,1,0,GB,N/A
+10003478,5,0,GB,N/A
+10003479,0,0,GB,N/A
+10003480,0,0,CN,N/A
+10003481,1,0,DE,N/A
+10003482,1,0,GB,N/A
+10003483,5,0,DE,N/A
+10003484,0,0,FR,N/A
+10003485,4,0,DE,N/A
+10003486,1,0,CN,N/A
+10003487,0,0,GB,N/A
+10003488,2,0,GB,N/A
+10003489,3,0,US,N/A
+10003490,4,0,JP,N/A
+10003491,5,0,FR,N/A
+10003492,3,0,CN,N/A
+10003493,0,0,GB,N/A
+10003494,1,0,IT,N/A
+10003495,4,0,JP,N/A
+10003496,3,0,JP,N/A
+10003497,1,0,GB,N/A
+10003498,3,0,JP,N/A
+10003499,1,0,CN,N/A
+10003500,1,0,IT,N/A
+10003501,4,0,JP,N/A
+10003502,1,0,CN,N/A
+10003503,5,0,DE,N/A
+10003504,4,0,IT,N/A
+10003505,3,0,IT,N/A
+10003506,1,0,FR,N/A
+10003507,2,0,US,N/A
+10003508,4,0,IT,N/A
+10003509,3,0,IT,N/A
+10003510,5,0,CN,N/A
+10003511,4,0,FR,N/A
+10003512,1,0,FR,N/A
+10003513,3,0,IT,N/A
+10003514,0,0,IT,N/A
+10003515,3,0,JP,N/A
+10003516,1,0,IT,N/A
+10003517,4,0,DE,N/A
+10003518,1,0,CN,N/A
+10003519,1,0,CN,N/A
+10003520,3,0,IT,N/A
+10003521,1,0,FR,N/A
+10003522,5,0,US,N/A
+10003523,5,0,GB,N/A
+10003524,1,0,FR,N/A
+10003525,1,0,FR,N/A
+10003526,1,0,DE,N/A
+10003527,4,0,JP,N/A
+10003528,3,0,CN,N/A
+10003529,2,0,FR,N/A
+10003530,0,0,IT,N/A
+10003531,4,0,DE,N/A
+10003532,5,0,DE,N/A
+10003533,2,0,IT,N/A
+10003534,1,0,IT,N/A
+10003535,3,0,IT,N/A
+10003536,5,0,IT,N/A
+10003537,3,0,JP,N/A
+10003538,0,0,US,N/A
+10003539,2,0,JP,N/A
+10003540,5,0,IT,N/A
+10003541,1,0,JP,N/A
+10003542,2,0,US,N/A
+10003543,4,0,DE,N/A
+10003544,1,0,DE,N/A
+10003545,1,0,GB,N/A
+10003546,5,0,US,N/A
+10003547,4,0,GB,N/A
+10003548,3,0,JP,N/A
+10003549,5,0,JP,N/A
+10003550,0,0,JP,N/A
+10003551,0,0,JP,N/A
+10003552,1,0,IT,N/A
+10003553,2,0,US,N/A
+10003554,0,0,JP,N/A
+10003555,2,0,JP,N/A
+10003556,5,0,JP,N/A
+10003557,2,0,FR,N/A
+10003558,2,0,FR,N/A
+10003559,0,0,FR,N/A
+10003560,3,0,IT,N/A
+10003561,1,0,CN,N/A
+10003562,3,0,US,N/A
+10003563,2,0,FR,N/A
+10003564,5,0,CN,N/A
+10003565,5,0,IT,N/A
+10003566,1,0,FR,N/A
+10003567,4,0,IT,N/A
+10003568,2,0,DE,N/A
+10003569,5,0,CN,N/A
+10003570,3,0,FR,N/A
+10003571,3,0,DE,N/A
+10003572,3,0,JP,N/A
+10003573,1,0,FR,N/A
+10003574,1,0,US,N/A
+10003575,2,0,FR,N/A
+10003576,2,0,IT,N/A
+10003577,3,0,FR,N/A
+10003578,2,0,CN,N/A
+10003579,2,0,FR,N/A
+10003580,4,0,CN,N/A
+10003581,1,0,JP,N/A
+10003582,3,0,GB,N/A
+10003583,4,0,IT,N/A
+10003584,5,0,GB,N/A
+10003585,5,0,JP,N/A
+10003586,1,0,GB,N/A
+10003587,5,0,IT,N/A
+10003588,1,0,FR,N/A
+10003589,3,0,IT,N/A
+10003590,2,0,IT,N/A
+10003591,1,0,US,N/A
+10003592,1,0,CN,N/A
+10003593,0,0,DE,N/A
+10003594,0,0,US,N/A
+10003595,1,0,JP,N/A
+10003596,1,0,DE,N/A
+10003597,3,0,IT,N/A
+10003598,3,0,FR,N/A
+10003599,2,0,FR,N/A
+10003600,4,0,DE,N/A
+10003601,4,0,IT,N/A
+10003602,3,0,US,N/A
+10003603,4,0,FR,N/A
+10003604,2,0,DE,N/A
+10003605,3,0,JP,N/A
+10003606,4,0,CN,N/A
+10003607,1,0,JP,N/A
+10003608,3,0,FR,N/A
+10003609,5,0,IT,N/A
+10003610,3,0,GB,N/A
+10003611,5,0,GB,N/A
+10003612,4,0,DE,N/A
+10003613,2,0,JP,N/A
+10003614,4,0,JP,N/A
+10003615,3,0,GB,N/A
+10003616,3,0,JP,N/A
+10003617,3,0,CN,N/A
+10003618,5,0,FR,N/A
+10003619,2,0,FR,N/A
+10003620,4,0,DE,N/A
+10003621,2,0,GB,N/A
+10003622,5,0,GB,N/A
+10003623,5,0,DE,N/A
+10003624,4,0,CN,N/A
+10003625,5,0,IT,N/A
+10003626,1,0,US,N/A
+10003627,0,0,FR,N/A
+10003628,0,0,FR,N/A
+10003629,4,0,FR,N/A
+10003630,4,0,CN,N/A
+10003631,3,0,GB,N/A
+10003632,1,0,US,N/A
+10003633,1,0,IT,N/A
+10003634,5,0,FR,N/A
+10003635,5,0,GB,N/A
+10003636,4,0,JP,N/A
+10003637,5,0,IT,N/A
+10003638,3,0,IT,N/A
+10003639,2,0,US,N/A
+10003640,4,0,JP,N/A
+10003641,3,0,FR,N/A
+10003642,5,0,CN,N/A
+10003643,0,0,DE,N/A
+10003644,5,0,US,N/A
+10003645,2,0,GB,N/A
+10003646,4,0,JP,N/A
+10003647,5,0,GB,N/A
+10003648,1,0,JP,N/A
+10003649,3,0,CN,N/A
+10003650,4,0,DE,N/A
+10003651,1,0,JP,N/A
+10003652,3,0,FR,N/A
+10003653,5,0,JP,N/A
+10003654,1,0,JP,N/A
+10003655,4,0,US,N/A
+10003656,0,0,FR,N/A
+10003657,4,0,CN,N/A
+10003658,3,0,US,N/A
+10003659,3,0,DE,N/A
+10003660,3,0,CN,N/A
+10003661,0,0,CN,N/A
+10003662,0,0,US,N/A
+10003663,5,0,JP,N/A
+10003664,0,0,GB,N/A
+10003665,4,0,FR,N/A
+10003666,5,0,JP,N/A
+10003667,4,0,DE,N/A
+10003668,5,0,JP,N/A
+10003669,3,0,GB,N/A
+10003670,1,0,GB,N/A
+10003671,4,0,FR,N/A
+10003672,5,0,CN,N/A
+10003673,0,0,DE,N/A
+10003674,4,0,CN,N/A
+10003675,5,0,IT,N/A
+10003676,0,0,US,N/A
+10003677,1,0,CN,N/A
+10003678,4,0,US,N/A
+10003679,1,0,IT,N/A
+10003680,0,0,IT,N/A
+10003681,5,0,IT,N/A
+10003682,0,0,IT,N/A
+10003683,4,0,DE,N/A
+10003684,5,0,US,N/A
+10003685,1,0,FR,N/A
+10003686,1,0,DE,N/A
+10003687,1,0,IT,N/A
+10003688,1,0,IT,N/A
+10003689,0,0,US,N/A
+10003690,4,0,CN,N/A
+10003691,4,0,FR,N/A
+10003692,2,0,DE,N/A
+10003693,0,0,DE,N/A
+10003694,3,0,CN,N/A
+10003695,1,0,US,N/A
+10003696,3,0,US,N/A
+10003697,3,0,IT,N/A
+10003698,3,0,JP,N/A
+10003699,5,0,DE,N/A
+10003700,1,0,GB,N/A
+10003701,2,0,CN,N/A
+10003702,4,0,JP,N/A
+10003703,5,0,FR,N/A
+10003704,3,0,JP,N/A
+10003705,4,0,CN,N/A
+10003706,5,0,DE,N/A
+10003707,2,0,FR,N/A
+10003708,5,0,JP,N/A
+10003709,0,0,JP,N/A
+10003710,1,0,IT,N/A
+10003711,1,0,IT,N/A
+10003712,4,0,JP,N/A
+10003713,3,0,CN,N/A
+10003714,0,0,JP,N/A
+10003715,3,0,IT,N/A
+10003716,0,0,DE,N/A
+10003717,4,0,GB,N/A
+10003718,1,0,IT,N/A
+10003719,4,0,FR,N/A
+10003720,3,0,JP,N/A
+10003721,3,0,IT,N/A
+10003722,0,0,US,N/A
+10003723,1,0,IT,N/A
+10003724,5,0,US,N/A
+10003725,4,0,FR,N/A
+10003726,3,0,DE,N/A
+10003727,5,0,FR,N/A
+10003728,2,0,DE,N/A
+10003729,2,0,JP,N/A
+10003730,0,0,DE,N/A
+10003731,0,0,FR,N/A
+10003732,1,0,FR,N/A
+10003733,4,0,CN,N/A
+10003734,0,0,FR,N/A
+10003735,2,0,GB,N/A
+10003736,1,0,US,N/A
+10003737,3,0,CN,N/A
+10003738,5,0,CN,N/A
+10003739,2,0,DE,N/A
+10003740,4,0,IT,N/A
+10003741,3,0,IT,N/A
+10003742,3,0,JP,N/A
+10003743,1,0,DE,N/A
+10003744,3,0,DE,N/A
+10003745,3,0,IT,N/A
+10003746,0,0,JP,N/A
+10003747,0,0,CN,N/A
+10003748,0,0,JP,N/A
+10003749,2,0,FR,N/A
+10003750,1,0,US,N/A
+10003751,5,0,FR,N/A
+10003752,5,0,US,N/A
+10003753,3,0,IT,N/A
+10003754,1,0,IT,N/A
+10003755,1,0,DE,N/A
+10003756,4,0,US,N/A
+10003757,0,0,CN,N/A
+10003758,3,0,JP,N/A
+10003759,5,0,FR,N/A
+10003760,3,0,US,N/A
+10003761,5,0,US,N/A
+10003762,0,0,GB,N/A
+10003763,5,0,US,N/A
+10003764,3,0,DE,N/A
+10003765,3,0,DE,N/A
+10003766,5,0,JP,N/A
+10003767,2,0,JP,N/A
+10003768,1,0,JP,N/A
+10003769,1,0,US,N/A
+10003770,0,0,FR,N/A
+10003771,3,0,JP,N/A
+10003772,2,0,GB,N/A
+10003773,1,0,GB,N/A
+10003774,2,0,DE,N/A
+10003775,3,0,CN,N/A
+10003776,1,0,DE,N/A
+10003777,5,0,CN,N/A
+10003778,2,0,FR,N/A
+10003779,4,0,CN,N/A
+10003780,3,0,JP,N/A
+10003781,2,0,IT,N/A
+10003782,4,0,DE,N/A
+10003783,4,0,GB,N/A
+10003784,1,0,US,N/A
+10003785,3,0,FR,N/A
+10003786,2,0,DE,N/A
+10003787,0,0,JP,N/A
+10003788,4,0,JP,N/A
+10003789,5,0,GB,N/A
+10003790,1,0,FR,N/A
+10003791,1,0,US,N/A
+10003792,0,0,IT,N/A
+10003793,0,0,IT,N/A
+10003794,5,0,JP,N/A
+10003795,1,0,US,N/A
+10003796,5,0,IT,N/A
+10003797,2,0,CN,N/A
+10003798,5,0,IT,N/A
+10003799,1,0,US,N/A
+10003800,0,0,US,N/A
+10003801,2,0,FR,N/A
+10003802,4,0,US,N/A
+10003803,3,0,JP,N/A
+10003804,5,0,IT,N/A
+10003805,4,0,JP,N/A
+10003806,4,0,GB,N/A
+10003807,5,0,CN,N/A
+10003808,0,0,JP,N/A
+10003809,2,0,IT,N/A
+10003810,5,0,DE,N/A
+10003811,3,0,GB,N/A
+10003812,3,0,DE,N/A
+10003813,0,0,FR,N/A
+10003814,5,0,FR,N/A
+10003815,4,0,US,N/A
+10003816,3,0,GB,N/A
+10003817,3,0,GB,N/A
+10003818,1,0,US,N/A
+10003819,4,0,FR,N/A
+10003820,4,0,IT,N/A
+10003821,1,0,GB,N/A
+10003822,3,0,FR,N/A
+10003823,0,0,GB,N/A
+10003824,2,0,CN,N/A
+10003825,2,0,IT,N/A
+10003826,4,0,GB,N/A
+10003827,5,0,DE,N/A
+10003828,4,0,JP,N/A
+10003829,1,0,GB,N/A
+10003830,1,0,GB,N/A
+10003831,4,0,DE,N/A
+10003832,3,0,GB,N/A
+10003833,3,0,JP,N/A
+10003834,3,0,DE,N/A
+10003835,4,0,GB,N/A
+10003836,5,0,DE,N/A
+10003837,2,0,CN,N/A
+10003838,5,0,JP,N/A
+10003839,4,0,FR,N/A
+10003840,3,0,US,N/A
+10003841,0,0,FR,N/A
+10003842,2,0,FR,N/A
+10003843,5,0,GB,N/A
+10003844,2,0,JP,N/A
+10003845,0,0,FR,N/A
+10003846,0,0,US,N/A
+10003847,3,0,US,N/A
+10003848,0,0,JP,N/A
+10003849,3,0,JP,N/A
+10003850,4,0,US,N/A
+10003851,2,0,CN,N/A
+10003852,4,0,JP,N/A
+10003853,2,0,CN,N/A
+10003854,2,0,FR,N/A
+10003855,0,0,US,N/A
+10003856,3,0,IT,N/A
+10003857,3,0,FR,N/A
+10003858,3,0,IT,N/A
+10003859,2,0,FR,N/A
+10003860,3,0,CN,N/A
+10003861,4,0,DE,N/A
+10003862,1,0,FR,N/A
+10003863,0,0,FR,N/A
+10003864,2,0,CN,N/A
+10003865,2,0,FR,N/A
+10003866,5,0,DE,N/A
+10003867,2,0,CN,N/A
+10003868,4,0,CN,N/A
+10003869,3,0,GB,N/A
+10003870,3,0,IT,N/A
+10003871,3,0,IT,N/A
+10003872,0,0,CN,N/A
+10003873,5,0,DE,N/A
+10003874,5,0,GB,N/A
+10003875,5,0,FR,N/A
+10003876,1,0,GB,N/A
+10003877,0,0,DE,N/A
+10003878,3,0,GB,N/A
+10003879,5,0,CN,N/A
+10003880,1,0,FR,N/A
+10003881,5,0,JP,N/A
+10003882,0,0,IT,N/A
+10003883,3,0,US,N/A
+10003884,4,0,US,N/A
+10003885,0,0,JP,N/A
+10003886,4,0,FR,N/A
+10003887,3,0,DE,N/A
+10003888,3,0,JP,N/A
+10003889,5,0,US,N/A
+10003890,0,0,IT,N/A
+10003891,2,0,FR,N/A
+10003892,5,0,GB,N/A
+10003893,1,0,JP,N/A
+10003894,1,0,FR,N/A
+10003895,4,0,FR,N/A
+10003896,0,0,FR,N/A
+10003897,0,0,JP,N/A
+10003898,0,0,US,N/A
+10003899,2,0,IT,N/A
+10003900,2,0,US,N/A
+10003901,3,0,JP,N/A
+10003902,1,0,CN,N/A
+10003903,1,0,US,N/A
+10003904,1,0,CN,N/A
+10003905,2,0,US,N/A
+10003906,4,0,JP,N/A
+10003907,3,0,GB,N/A
+10003908,0,0,GB,N/A
+10003909,4,0,FR,N/A
+10003910,0,0,GB,N/A
+10003911,0,0,JP,N/A
+10003912,2,0,GB,N/A
+10003913,1,0,US,N/A
+10003914,4,0,DE,N/A
+10003915,5,0,CN,N/A
+10003916,3,0,JP,N/A
+10003917,3,0,IT,N/A
+10003918,1,0,DE,N/A
+10003919,0,0,IT,N/A
+10003920,0,0,DE,N/A
+10003921,1,0,IT,N/A
+10003922,5,0,GB,N/A
+10003923,0,0,JP,N/A
+10003924,5,0,US,N/A
+10003925,5,0,CN,N/A
+10003926,4,0,CN,N/A
+10003927,3,0,US,N/A
+10003928,2,0,CN,N/A
+10003929,1,0,CN,N/A
+10003930,3,0,JP,N/A
+10003931,2,0,GB,N/A
+10003932,4,0,IT,N/A
+10003933,5,0,IT,N/A
+10003934,5,0,CN,N/A
+10003935,2,0,US,N/A
+10003936,3,0,IT,N/A
+10003937,0,0,US,N/A
+10003938,3,0,IT,N/A
+10003939,5,0,DE,N/A
+10003940,3,0,CN,N/A
+10003941,0,0,JP,N/A
+10003942,4,0,US,N/A
+10003943,0,0,IT,N/A
+10003944,5,0,GB,N/A
+10003945,5,0,GB,N/A
+10003946,4,0,JP,N/A
+10003947,0,0,FR,N/A
+10003948,1,0,FR,N/A
+10003949,4,0,DE,N/A
+10003950,1,0,GB,N/A
+10003951,0,0,DE,N/A
+10003952,3,0,US,N/A
+10003953,5,0,IT,N/A
+10003954,4,0,IT,N/A
+10003955,3,0,GB,N/A
+10003956,2,0,CN,N/A
+10003957,2,0,IT,N/A
+10003958,5,0,CN,N/A
+10003959,1,0,FR,N/A
+10003960,1,0,DE,N/A
+10003961,1,0,FR,N/A
+10003962,4,0,US,N/A
+10003963,0,0,JP,N/A
+10003964,4,0,GB,N/A
+10003965,3,0,GB,N/A
+10003966,5,0,DE,N/A
+10003967,3,0,DE,N/A
+10003968,2,0,FR,N/A
+10003969,1,0,DE,N/A
+10003970,1,0,US,N/A
+10003971,3,0,CN,N/A
+10003972,3,0,JP,N/A
+10003973,1,0,CN,N/A
+10003974,2,0,CN,N/A
+10003975,0,0,FR,N/A
+10003976,2,0,US,N/A
+10003977,2,0,CN,N/A
+10003978,0,0,FR,N/A
+10003979,2,0,IT,N/A
+10003980,0,0,GB,N/A
+10003981,3,0,DE,N/A
+10003982,0,0,JP,N/A
+10003983,1,0,IT,N/A
+10003984,0,0,CN,N/A
+10003985,3,0,IT,N/A
+10003986,4,0,GB,N/A
+10003987,5,0,GB,N/A
+10003988,0,0,IT,N/A
+10003989,0,0,JP,N/A
+10003990,5,0,CN,N/A
+10003991,1,0,US,N/A
+10003992,4,0,JP,N/A
+10003993,2,0,GB,N/A
+10003994,5,0,IT,N/A
+10003995,3,0,FR,N/A
+10003996,0,0,GB,N/A
+10003997,1,0,CN,N/A
+10003998,4,0,JP,N/A
+10003999,4,0,DE,N/A
+10004000,4,0,IT,N/A
+10004001,5,0,JP,N/A
+10004002,5,0,IT,N/A
+10004003,3,0,CN,N/A
+10004004,4,0,US,N/A
+10004005,2,0,GB,N/A
+10004006,0,0,CN,N/A
+10004007,4,0,US,N/A
+10004008,4,0,DE,N/A
+10004009,5,0,FR,N/A
+10004010,0,0,CN,N/A
+10004011,0,0,GB,N/A
+10004012,0,0,FR,N/A
+10004013,0,0,GB,N/A
+10004014,4,0,US,N/A
+10004015,3,0,CN,N/A
+10004016,1,0,GB,N/A
+10004017,1,0,JP,N/A
+10004018,3,0,FR,N/A
+10004019,3,0,JP,N/A
+10004020,2,0,GB,N/A
+10004021,1,0,IT,N/A
+10004022,1,0,GB,N/A
+10004023,1,0,FR,N/A
+10004024,3,0,CN,N/A
+10004025,0,0,GB,N/A
+10004026,1,0,DE,N/A
+10004027,1,0,CN,N/A
+10004028,5,0,JP,N/A
+10004029,5,0,GB,N/A
+10004030,0,0,IT,N/A
+10004031,5,0,DE,N/A
+10004032,5,0,US,N/A
+10004033,2,0,FR,N/A
+10004034,1,0,DE,N/A
+10004035,2,0,CN,N/A
+10004036,4,0,JP,N/A
+10004037,2,0,GB,N/A
+10004038,2,0,JP,N/A
+10004039,1,0,FR,N/A
+10004040,0,0,GB,N/A
+10004041,4,0,JP,N/A
+10004042,1,0,DE,N/A
+10004043,3,0,CN,N/A
+10004044,0,0,GB,N/A
+10004045,4,0,FR,N/A
+10004046,4,0,FR,N/A
+10004047,0,0,IT,N/A
+10004048,3,0,JP,N/A
+10004049,3,0,DE,N/A
+10004050,3,0,DE,N/A
+10004051,4,0,US,N/A
+10004052,3,0,GB,N/A
+10004053,3,0,DE,N/A
+10004054,4,0,GB,N/A
+10004055,0,0,GB,N/A
+10004056,3,0,CN,N/A
+10004057,4,0,GB,N/A
+10004058,2,0,FR,N/A
+10004059,1,0,DE,N/A
+10004060,1,0,CN,N/A
+10004061,0,0,JP,N/A
+10004062,3,0,CN,N/A
+10004063,5,0,DE,N/A
+10004064,2,0,FR,N/A
+10004065,5,0,GB,N/A
+10004066,3,0,US,N/A
+10004067,1,0,FR,N/A
+10004068,3,0,US,N/A
+10004069,5,0,US,N/A
+10004070,1,0,FR,N/A
+10004071,5,0,CN,N/A
+10004072,2,0,GB,N/A
+10004073,4,0,JP,N/A
+10004074,2,0,FR,N/A
+10004075,1,0,CN,N/A
+10004076,0,0,US,N/A
+10004077,3,0,DE,N/A
+10004078,1,0,JP,N/A
+10004079,1,0,DE,N/A
+10004080,4,0,DE,N/A
+10004081,0,0,DE,N/A
+10004082,0,0,CN,N/A
+10004083,0,0,DE,N/A
+10004084,2,0,CN,N/A
+10004085,1,0,DE,N/A
+10004086,4,0,IT,N/A
+10004087,0,0,FR,N/A
+10004088,5,0,JP,N/A
+10004089,4,0,IT,N/A
+10004090,2,0,JP,N/A
+10004091,2,0,FR,N/A
+10004092,4,0,JP,N/A
+10004093,2,0,IT,N/A
+10004094,1,0,JP,N/A
+10004095,2,0,IT,N/A
+10004096,5,0,US,N/A
+10004097,3,0,IT,N/A
+10004098,2,0,IT,N/A
+10004099,3,0,IT,N/A
+10004100,0,0,FR,N/A
+10004101,0,0,IT,N/A
+10004102,1,0,JP,N/A
+10004103,1,0,DE,N/A
+10004104,2,0,FR,N/A
+10004105,0,0,IT,N/A
+10004106,1,0,DE,N/A
+10004107,0,0,US,N/A
+10004108,2,0,IT,N/A
+10004109,3,0,IT,N/A
+10004110,2,0,US,N/A
+10004111,5,0,US,N/A
+10004112,4,0,IT,N/A
+10004113,0,0,DE,N/A
+10004114,1,0,FR,N/A
+10004115,1,0,FR,N/A
+10004116,3,0,JP,N/A
+10004117,3,0,US,N/A
+10004118,4,0,CN,N/A
+10004119,5,0,US,N/A
+10004120,1,0,DE,N/A
+10004121,2,0,CN,N/A
+10004122,3,0,US,N/A
+10004123,1,0,GB,N/A
+10004124,0,0,IT,N/A
+10004125,3,0,DE,N/A
+10004126,2,0,FR,N/A
+10004127,2,0,GB,N/A
+10004128,2,0,GB,N/A
+10004129,0,0,IT,N/A
+10004130,4,0,CN,N/A
+10004131,0,0,FR,N/A
+10004132,5,0,FR,N/A
+10004133,0,0,US,N/A
+10004134,0,0,FR,N/A
+10004135,4,0,FR,N/A
+10004136,1,0,DE,N/A
+10004137,5,0,DE,N/A
+10004138,2,0,GB,N/A
+10004139,1,0,US,N/A
+10004140,3,0,GB,N/A
+10004141,2,0,CN,N/A
+10004142,3,0,CN,N/A
+10004143,4,0,JP,N/A
+10004144,3,0,FR,N/A
+10004145,1,0,JP,N/A
+10004146,2,0,GB,N/A
+10004147,0,0,US,N/A
+10004148,3,0,DE,N/A
+10004149,1,0,IT,N/A
+10004150,1,0,IT,N/A
+10004151,1,0,IT,N/A
+10004152,0,0,CN,N/A
+10004153,4,0,JP,N/A
+10004154,5,0,CN,N/A
+10004155,2,0,US,N/A
+10004156,2,0,CN,N/A
+10004157,5,0,US,N/A
+10004158,5,0,DE,N/A
+10004159,1,0,CN,N/A
+10004160,3,0,FR,N/A
+10004161,4,0,DE,N/A
+10004162,1,0,CN,N/A
+10004163,3,0,US,N/A
+10004164,4,0,CN,N/A
+10004165,3,0,GB,N/A
+10004166,4,0,IT,N/A
+10004167,5,0,IT,N/A
+10004168,1,0,CN,N/A
+10004169,4,0,JP,N/A
+10004170,4,0,GB,N/A
+10004171,0,0,FR,N/A
+10004172,5,0,GB,N/A
+10004173,4,0,DE,N/A
+10004174,5,0,IT,N/A
+10004175,4,0,GB,N/A
+10004176,1,0,IT,N/A
+10004177,2,0,GB,N/A
+10004178,1,0,CN,N/A
+10004179,5,0,CN,N/A
+10004180,5,0,IT,N/A
+10004181,0,0,DE,N/A
+10004182,0,0,IT,N/A
+10004183,4,0,JP,N/A
+10004184,5,0,US,N/A
+10004185,2,0,CN,N/A
+10004186,5,0,CN,N/A
+10004187,1,0,IT,N/A
+10004188,4,0,DE,N/A
+10004189,4,0,IT,N/A
+10004190,2,0,GB,N/A
+10004191,1,0,FR,N/A
+10004192,2,0,JP,N/A
+10004193,2,0,IT,N/A
+10004194,1,0,CN,N/A
+10004195,2,0,IT,N/A
+10004196,0,0,JP,N/A
+10004197,4,0,JP,N/A
+10004198,2,0,IT,N/A
+10004199,2,0,DE,N/A
+10004200,2,0,GB,N/A
+10004201,1,0,GB,N/A
+10004202,1,0,GB,N/A
+10004203,3,0,FR,N/A
+10004204,2,0,FR,N/A
+10004205,2,0,US,N/A
+10004206,4,0,DE,N/A
+10004207,0,0,FR,N/A
+10004208,5,0,DE,N/A
+10004209,1,0,FR,N/A
+10004210,5,0,GB,N/A
+10004211,2,0,GB,N/A
+10004212,1,0,IT,N/A
+10004213,2,0,CN,N/A
+10004214,1,0,US,N/A
+10004215,3,0,JP,N/A
+10004216,3,0,DE,N/A
+10004217,5,0,GB,N/A
+10004218,3,0,JP,N/A
+10004219,4,0,FR,N/A
+10004220,4,0,US,N/A
+10004221,3,0,DE,N/A
+10004222,1,0,CN,N/A
+10004223,3,0,FR,N/A
+10004224,0,0,GB,N/A
+10004225,4,0,IT,N/A
+10004226,0,0,IT,N/A
+10004227,3,0,DE,N/A
+10004228,4,0,FR,N/A
+10004229,2,0,CN,N/A
+10004230,0,0,JP,N/A
+10004231,3,0,CN,N/A
+10004232,4,0,CN,N/A
+10004233,1,0,CN,N/A
+10004234,5,0,GB,N/A
+10004235,2,0,US,N/A
+10004236,2,0,JP,N/A
+10004237,0,0,FR,N/A
+10004238,1,0,DE,N/A
+10004239,0,0,GB,N/A
+10004240,3
<TRUNCATED>
[9/9] kylin git commit: KYLIN-1875 A good snowflake sample data,
and rename 'kylin_metadata' to 'kylin_default_instance'
Posted by li...@apache.org.
KYLIN-1875 A good snowflake sample data, and rename 'kylin_metadata' to 'kylin_default_instance'
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/4271f108
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/4271f108
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/4271f108
Branch: refs/heads/KYLIN-1875
Commit: 4271f108e4134ccf43034fd4a350cf33cd9d2f17
Parents: 3f10b3a
Author: Yang Li <li...@apache.org>
Authored: Sun Nov 27 18:26:33 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Nov 28 14:22:20 2016 +0800
----------------------------------------------------------------------
build/conf/kylin.properties | 2 +-
.../apache/kylin/common/KylinConfigBase.java | 11 +-
.../kylin/metadata/model/DataModelDesc.java | 3 +
.../kylin/metadata/model/MeasureDesc.java | 5 +
.../realization/IRealizationConstants.java | 2 +-
examples/sample_cube/create_sample_tables.sql | 21 +-
.../sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv | 10000 +++++++++
.../sample_cube/data/DEFAULT.KYLIN_SALES.csv | 20000 ++++++++---------
.../template/cube_desc/kylin_sales_cube.json | 157 +-
.../template/model_desc/kylin_sales_model.json | 50 +-
.../template/table/DEFAULT.KYLIN_ACCOUNT.json | 28 +
.../template/table/DEFAULT.KYLIN_SALES.json | 12 +-
.../test_case_data/sandbox/kylin.properties | 2 +-
.../apache/kylin/query/relnode/OLAPJoinRel.java | 25 +-
.../kylin/rest/security/AclHBaseStorage.java | 1 -
.../rest/security/RealAclHBaseStorage.java | 5 +-
.../apache/kylin/rest/service/QueryService.java | 6 +-
.../kylin/storage/hbase/HBaseResourceStore.java | 2 +-
.../storage/hbase/util/StorageCleanupJob.java | 2 +-
.../apache/kylin/tool/StorageCleanupJob.java | 2 +-
20 files changed, 20246 insertions(+), 10090 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/build/conf/kylin.properties
----------------------------------------------------------------------
diff --git a/build/conf/kylin.properties b/build/conf/kylin.properties
index 1409394..131a725 100644
--- a/build/conf/kylin.properties
+++ b/build/conf/kylin.properties
@@ -18,7 +18,7 @@
### METADATA | ENV ###
# The metadata store in hbase
-kylin.metadata.url=kylin_metadata@hbase
+kylin.metadata.url=kylin_default_instance@hbase
# Working folder in HDFS, make sure user has the right access to the hdfs directory
kylin.env.hdfs-working-dir=/kylin
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index aa5e6e1..7dcc771 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -188,13 +188,12 @@ abstract public class KylinConfigBase implements Serializable {
}
public String getMetadataUrlPrefix() {
- String hbaseMetadataUrl = getMetadataUrl();
- String defaultPrefix = "kylin_metadata";
+ String metadataUrl = getMetadataUrl();
+ String defaultPrefix = "kylin_default_instance";
- if (org.apache.commons.lang3.StringUtils.containsIgnoreCase(hbaseMetadataUrl, "@hbase")) {
- int cut = hbaseMetadataUrl.indexOf('@');
- String tmp = cut < 0 ? defaultPrefix : hbaseMetadataUrl.substring(0, cut);
- return tmp;
+ if (metadataUrl.endsWith("@hbase")) {
+ int cut = metadataUrl.lastIndexOf('@');
+ return metadataUrl.substring(0, cut);
} else {
return defaultPrefix;
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index c2de5d6..ff92def 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -378,6 +378,9 @@ public class DataModelDesc extends RootPersistentEntity {
for (int i = 0; i < pks.length; i++) {
TblColRef col = dimTable.getColumn(pks[i]);
if (col == null) {
+ col = findColumn(pks[i]);
+ }
+ if (col == null || col.getTableRef().equals(dimTable) == false) {
throw new IllegalStateException("Can't find column " + pks[i] + " in table " + dimTable.getTableIdentity());
}
pkCols[i] = col;
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
index dcf6350..253b06b 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
@@ -21,6 +21,7 @@ package org.apache.kylin.metadata.model;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -35,6 +36,8 @@ public class MeasureDesc {
@JsonProperty("function")
private FunctionDesc function;
@JsonProperty("dependent_measure_ref")
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ @Deprecated
private String dependentMeasureRef;
public String getName() {
@@ -53,10 +56,12 @@ public class MeasureDesc {
this.function = function;
}
+ @Deprecated
public String getDependentMeasureRef() {
return dependentMeasureRef;
}
+ @Deprecated
public void setDependentMeasureRef(String dependentMeasureRef) {
this.dependentMeasureRef = dependentMeasureRef;
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
index 2a3b01e..adc53a1 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
@@ -28,7 +28,7 @@ public class IRealizationConstants {
/**
* For each cube htable, we leverage htable's metadata to keep track of
- * which kylin server(represented by its kylin_metadata prefix) owns this htable
+ * which kylin server(represented by its kylin_default_instance prefix) owns this htable
*/
public final static String HTableTag = "KYLIN_HOST";
http://git-wip-us.apache.org/repos/asf/kylin/blob/4271f108/examples/sample_cube/create_sample_tables.sql
----------------------------------------------------------------------
diff --git a/examples/sample_cube/create_sample_tables.sql b/examples/sample_cube/create_sample_tables.sql
index 3189b58..bdfc4d7 100644
--- a/examples/sample_cube/create_sample_tables.sql
+++ b/examples/sample_cube/create_sample_tables.sql
@@ -182,6 +182,19 @@ COUNTRY string
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
+DROP TABLE IF EXISTS DEFAULT.KYLIN_ACCOUNT;
+
+CREATE TABLE DEFAULT.KYLIN_ACCOUNT
+(
+ACCOUNT_ID bigint
+,ACCOUNT_BUYER_LEVEL int COMMENT 'Account Buyer Level'
+,ACCOUNT_SELLER_LEVEL int COMMENT 'Account Seller Level'
+,ACCOUNT_COUNTRY string COMMENT 'Account Country'
+,ACCOUNT_CONTACT string COMMENT 'Account Contact Info'
+)
+ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
+STORED AS TEXTFILE;
+
DROP TABLE IF EXISTS DEFAULT.KYLIN_SALES;
CREATE TABLE DEFAULT.KYLIN_SALES
@@ -195,16 +208,16 @@ TRANS_ID bigint
,PRICE decimal(19,4) COMMENT 'Order Price'
,ITEM_COUNT bigint COMMENT 'Number of Purchased Goods'
,SELLER_ID bigint COMMENT 'Seller ID'
-,BUYER_COUNTRY string COMMENT 'Buyer Country'
-,SELLER_COUNTRY string COMMENT 'Seller Country'
-,USER_ID string COMMENT 'System User ID'
-,REGION string COMMENT 'System User Region'
+,BUYER_ID bigint COMMENT 'Buyer ID'
+,OPS_USER_ID string COMMENT 'System User ID'
+,OPS_REGION string COMMENT 'System User Region'
)
COMMENT 'Sales order table, fact table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_SALES.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_SALES;
+LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_ACCOUNT.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_ACCOUNT;
LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_COUNTRY.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_COUNTRY;
LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_CAL_DT.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_CAL_DT;
LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_CATEGORY_GROUPINGS.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_CATEGORY_GROUPINGS;