summaryrefslogtreecommitdiff
path: root/ambari-web
diff options
context:
space:
mode:
authorYusaku Sako <yusaku@apache.org>2012-12-09 14:00:34 +0000
committerYusaku Sako <yusaku@apache.org>2012-12-09 14:00:34 +0000
commit00ba841494a44f60b1888377fa8fc8972eb1ce2b (patch)
treea3cf3103dc1718ebeb52f7736c6f8368a4713c89 /ambari-web
parent46eb1a01782ee64c2d7cb7f1a1fe54f04ba1df50 (diff)
AMBARI-1059. Refactor cluster management. (yusaku)
git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/branches/AMBARI-666@1418960 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'ambari-web')
-rw-r--r--ambari-web/app/assets/data/apps/jobs/taskview.json12573
-rw-r--r--ambari-web/app/assets/data/apps/jobs/timeline.json6748
-rw-r--r--ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_start.json370
-rw-r--r--ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_stop.json370
-rw-r--r--ambari-web/app/assets/data/hosts/hosts.json668
-rw-r--r--ambari-web/app/controllers/installer.js50
-rw-r--r--ambari-web/app/controllers/main/admin/user.js17
-rw-r--r--ambari-web/app/controllers/main/charts/heatmap_metrics/heatmap_metric.js2
-rw-r--r--ambari-web/app/controllers/main/host/add_controller.js207
-rw-r--r--ambari-web/app/controllers/main/service/add_controller.js54
-rw-r--r--ambari-web/app/controllers/main/service/info/configs.js874
-rw-r--r--ambari-web/app/controllers/main/service/item.js4
-rw-r--r--ambari-web/app/controllers/wizard/step10_controller.js25
-rw-r--r--ambari-web/app/controllers/wizard/step5_controller.js7
-rw-r--r--ambari-web/app/controllers/wizard/step6_controller.js8
-rw-r--r--ambari-web/app/controllers/wizard/step7_controller.js23
-rw-r--r--ambari-web/app/controllers/wizard/step8_controller.js5
-rw-r--r--ambari-web/app/controllers/wizard/step9_controller.js12
-rw-r--r--ambari-web/app/data/config_mapping.js7
-rw-r--r--ambari-web/app/data/config_properties.js6
-rw-r--r--ambari-web/app/initialize.js2
-rw-r--r--ambari-web/app/mappers/hosts_mapper.js1
-rw-r--r--ambari-web/app/mappers/jobs_mapper.js11
-rw-r--r--ambari-web/app/mappers/services_mapper.js1
-rw-r--r--ambari-web/app/messages.js5
-rw-r--r--ambari-web/app/models/component.js6
-rw-r--r--ambari-web/app/models/host.js1
-rw-r--r--ambari-web/app/models/hosts.js4
-rw-r--r--ambari-web/app/models/service.js31
-rw-r--r--ambari-web/app/routes/add_host_routes.js23
-rw-r--r--ambari-web/app/routes/add_service_routes.js3
-rw-r--r--ambari-web/app/routes/installer.js1
-rw-r--r--ambari-web/app/styles/application.less68
-rw-r--r--ambari-web/app/templates/main/background_operations_popup.hbs9
-rw-r--r--ambari-web/app/templates/main/host.hbs53
-rw-r--r--ambari-web/app/templates/main/service/info/configs.hbs2
-rw-r--r--ambari-web/app/templates/wizard/step5.hbs2
-rw-r--r--ambari-web/app/utils/data_table.js29
-rw-r--r--ambari-web/app/utils/graph.js46
-rw-r--r--ambari-web/app/utils/helper.js55
-rw-r--r--ambari-web/app/views/main.js46
-rw-r--r--ambari-web/app/views/main/admin/user/create.js8
-rw-r--r--ambari-web/app/views/main/admin/user/edit.js8
-rw-r--r--ambari-web/app/views/main/apps/item/bar_view.js38
-rw-r--r--ambari-web/app/views/main/apps/item/dag_view.js2
-rw-r--r--ambari-web/app/views/main/host.js131
-rw-r--r--ambari-web/app/views/wizard/controls_view.js3
47 files changed, 4257 insertions, 18362 deletions
diff --git a/ambari-web/app/assets/data/apps/jobs/taskview.json b/ambari-web/app/assets/data/apps/jobs/taskview.json
index 0e1e0489b6..f00765e8ff 100644
--- a/ambari-web/app/assets/data/apps/jobs/taskview.json
+++ b/ambari-web/app/assets/data/apps/jobs/taskview.json
@@ -1,12017 +1,556 @@
-{"jobName":"", "items":[
- [
- {
- "x":1348174676895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174676971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695819,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714819,
- "y":0,
- "r":0,
- "label":null
- }
- ],
- [
- {
- "x":1348174676895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174676971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":"1348174687606",
- "y":6995,
- "r":6,
- "label":"attempt_201209201356_0002_m_000000_0"
- },
- {
- "x":"1348174687607",
- "y":6993,
- "r":4,
- "label":"attempt_201209201356_0002_m_000001_0"
- },
- {
- "x":1348174688143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695819,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714819,
- "y":0,
- "r":0,
- "label":null
- }
- ],
- [
- {
- "x":1348174676895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174676971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695819,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714819,
- "y":0,
- "r":0,
- "label":null
- }
- ],
- [
- {
- "x":1348174676895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174676971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174677959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678111,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174678947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174679935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174680999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174681987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174682975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174683963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174684951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174685939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174686927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174687991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174688979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174689967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174690955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174691943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174692931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174693995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174694983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695819,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695895,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174695971,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696047,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696123,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696199,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696275,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696351,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696427,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696503,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696579,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696655,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696731,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696807,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696883,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174696959,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697035,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":"1348174696690",
- "y":11548,
- "r":9,
- "label":"attempt_201209201356_0002_r_000000_0"
- },
- {
- "x":1348174697187,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697263,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697339,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697415,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697491,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697567,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697643,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697719,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697795,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697871,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174697947,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698023,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698099,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698175,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698251,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698327,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698403,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698479,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698555,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698631,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698707,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698783,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698859,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174698935,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699011,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699087,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699163,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699239,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699315,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699391,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699467,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699543,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699619,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699695,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699771,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699847,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699923,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174699999,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700075,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700151,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700227,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700303,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700379,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700455,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700531,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700607,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700683,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700759,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700835,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700911,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174700987,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701063,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701139,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701215,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701291,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701367,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701443,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701519,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701595,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701671,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701747,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701823,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701899,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174701975,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702051,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702127,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702203,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702279,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702355,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702431,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702507,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702583,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702659,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702735,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702811,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702887,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174702963,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703039,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703115,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703191,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703267,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703343,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703419,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703495,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703571,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703647,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703723,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703799,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703875,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174703951,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704027,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704103,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704179,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704255,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704331,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704407,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704483,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704559,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704635,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704711,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704787,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704863,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174704939,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705015,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705091,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705167,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705243,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705319,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705395,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705471,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705547,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705623,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705699,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705775,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705851,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174705927,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706003,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706079,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706155,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706231,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706307,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706383,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706459,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706535,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706611,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706687,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706763,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706839,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706915,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174706991,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707067,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707143,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707219,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707295,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707371,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707447,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707523,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707599,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707675,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707751,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707827,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707903,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174707979,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708055,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708131,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708207,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708283,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708359,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708435,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708511,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708587,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708663,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708739,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708815,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708891,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174708967,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709043,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709119,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709195,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709271,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709347,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709423,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709499,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709575,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709651,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709727,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709803,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709879,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174709955,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710031,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710107,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710183,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710259,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710335,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710411,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710487,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710563,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710639,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710715,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710791,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710867,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174710943,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711019,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711095,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711171,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711247,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711323,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711399,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711475,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711551,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711627,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711703,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711779,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711855,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174711931,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712007,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712083,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712159,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712235,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712311,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712387,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712463,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712539,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712615,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712691,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712767,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712843,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712919,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174712995,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713071,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713147,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713223,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713299,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713375,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713451,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713527,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713603,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713679,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713755,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713831,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713907,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174713983,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714059,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714135,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714211,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714287,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714363,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714439,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714515,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714591,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714667,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714743,
- "y":0,
- "r":0,
- "label":null
- },
- {
- "x":1348174714819,
- "y":0,
- "r":0,
- "label":null
- }
- ],
- {
- "submitTime":"1348174676895",
- "0":"1348174676895",
- "finishTime":"1348174714773",
- "1":"1348174714773"
- }
-]
-} \ No newline at end of file
+{
+ "mapNodeLocal": [
+ {
+ "r": 0,
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "label": "attempt_201210011000_0012_m_000000_0",
+ "r": 6,
+ "x": 1349196028,
+ "y": 5219
+ },
+ {
+ "label": "attempt_201210011000_0012_m_000000_1",
+ "r": 6,
+ "x": 1349196029,
+ "y": 104219
+ },
+ {
+ "r": 0,
+ "x": 1349196030,
+ "y": 0
+ },
+ {
+ "label": "attempt_201210011000_0012_m_000000_2",
+ "r": 6,
+ "x": 1349196031,
+ "y": 102219
+ },
+ {
+ "r": 0,
+ "x": 1349196034,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196037,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196043,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196046,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196055,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196058,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196067,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196070,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196079,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196085,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196091,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196097,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196103,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196106,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196115,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196118,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196124,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196127,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196136,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196139,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "mapRackLocal": [
+ {
+ "r": 0,
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196028,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196029,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196030,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196031,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196034,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196037,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196043,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196046,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196055,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196058,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196067,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196070,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196079,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196085,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196091,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196097,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196103,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196106,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196115,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196118,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196124,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196127,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196136,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196139,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "mapOffSwitch": [
+ {
+ "r": 0,
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196028,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196029,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196030,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196031,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196034,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196037,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196043,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196046,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196055,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196058,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196067,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196070,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196079,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196085,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196091,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196097,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196103,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196106,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196115,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196118,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196124,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196127,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196136,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196139,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "reduceOffSwitch": [
+ {
+ "r": 0,
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196028,
+ "y": 0
+ },
+ {
+ "r": 0,
+ "x": 1349196029,
+ "y": 0
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000000_1",
+ "r": 6,
+ "x": 1349196030,
+ "y": 103219
+ },
+ {
+ "r": 0,
+ "x": 1349196031,
+ "y": 0
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000000_0",
+ "r": 6,
+ "x": 1349196034,
+ "y": 10484
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000001_0",
+ "r": 6,
+ "x": 1349196037,
+ "y": 10645
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000002_0",
+ "r": 6,
+ "x": 1349196043,
+ "y": 14970
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000003_0",
+ "r": 6,
+ "x": 1349196046,
+ "y": 14872
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000004_0",
+ "r": 6,
+ "x": 1349196055,
+ "y": 13521
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000005_0",
+ "r": 6,
+ "x": 1349196058,
+ "y": 16319
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000006_0",
+ "r": 6,
+ "x": 1349196067,
+ "y": 15078
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000007_0",
+ "r": 6,
+ "x": 1349196070,
+ "y": 17741
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000008_0",
+ "r": 6,
+ "x": 1349196079,
+ "y": 13609
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000009_0",
+ "r": 6,
+ "x": 1349196085,
+ "y": 13184
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000010_0",
+ "r": 6,
+ "x": 1349196091,
+ "y": 14919
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000011_0",
+ "r": 6,
+ "x": 1349196097,
+ "y": 11590
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000012_0",
+ "r": 6,
+ "x": 1349196103,
+ "y": 13223
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000013_0",
+ "r": 6,
+ "x": 1349196106,
+ "y": 12841
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000014_0",
+ "r": 6,
+ "x": 1349196115,
+ "y": 11585
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000015_0",
+ "r": 6,
+ "x": 1349196118,
+ "y": 11085
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000016_0",
+ "r": 6,
+ "x": 1349196124,
+ "y": 12886
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000017_0",
+ "r": 6,
+ "x": 1349196127,
+ "y": 15345
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000018_0",
+ "r": 6,
+ "x": 1349196136,
+ "y": 11112
+ },
+ {
+ "label": "attempt_201210011000_0012_r_000019_0",
+ "r": 6,
+ "x": 1349196139,
+ "y": 13773
+ },
+ {
+ "r": 0,
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "submitTime": 1349195920,
+ "finishTime": 1349196160
+}
diff --git a/ambari-web/app/assets/data/apps/jobs/timeline.json b/ambari-web/app/assets/data/apps/jobs/timeline.json
index 8e2e89c730..54ee3bc1e1 100644
--- a/ambari-web/app/assets/data/apps/jobs/timeline.json
+++ b/ambari-web/app/assets/data/apps/jobs/timeline.json
@@ -1,6008 +1,740 @@
-{"jobName":"", "items":[
- [
- {
- "x":0,
- "y":0
- },
- {
- "x":1,
- "y":0
- },
- {
- "x":2,
- "y":0
- },
- {
- "x":3,
- "y":0
- },
- {
- "x":4,
- "y":0
- },
- {
- "x":5,
- "y":0
- },
- {
- "x":6,
- "y":0
- },
- {
- "x":7,
- "y":0
- },
- {
- "x":8,
- "y":0
- },
- {
- "x":9,
- "y":0
- },
- {
- "x":10,
- "y":0
- },
- {
- "x":11,
- "y":0
- },
- {
- "x":12,
- "y":0
- },
- {
- "x":13,
- "y":0
- },
- {
- "x":14,
- "y":0
- },
- {
- "x":15,
- "y":0
- },
- {
- "x":16,
- "y":0
- },
- {
- "x":17,
- "y":0
- },
- {
- "x":18,
- "y":0
- },
- {
- "x":19,
- "y":0
- },
- {
- "x":20,
- "y":0
- },
- {
- "x":21,
- "y":0
- },
- {
- "x":22,
- "y":0
- },
- {
- "x":23,
- "y":0
- },
- {
- "x":24,
- "y":0
- },
- {
- "x":25,
- "y":0
- },
- {
- "x":26,
- "y":0
- },
- {
- "x":27,
- "y":0
- },
- {
- "x":28,
- "y":0
- },
- {
- "x":29,
- "y":0
- },
- {
- "x":30,
- "y":0
- },
- {
- "x":31,
- "y":0
- },
- {
- "x":32,
- "y":0
- },
- {
- "x":33,
- "y":0
- },
- {
- "x":34,
- "y":0
- },
- {
- "x":35,
- "y":0
- },
- {
- "x":36,
- "y":0
- },
- {
- "x":37,
- "y":0
- },
- {
- "x":38,
- "y":0
- },
- {
- "x":39,
- "y":0
- },
- {
- "x":40,
- "y":0
- },
- {
- "x":41,
- "y":0
- },
- {
- "x":42,
- "y":0
- },
- {
- "x":43,
- "y":0
- },
- {
- "x":44,
- "y":0
- },
- {
- "x":45,
- "y":0
- },
- {
- "x":46,
- "y":0
- },
- {
- "x":47,
- "y":0
- },
- {
- "x":48,
- "y":0
- },
- {
- "x":49,
- "y":0
- },
- {
- "x":50,
- "y":0
- },
- {
- "x":51,
- "y":0
- },
- {
- "x":52,
- "y":0
- },
- {
- "x":53,
- "y":0
- },
- {
- "x":54,
- "y":0
- },
- {
- "x":55,
- "y":0
- },
- {
- "x":56,
- "y":0
- },
- {
- "x":57,
- "y":0
- },
- {
- "x":58,
- "y":0
- },
- {
- "x":59,
- "y":0
- },
- {
- "x":60,
- "y":0
- },
- {
- "x":61,
- "y":0
- },
- {
- "x":62,
- "y":0
- },
- {
- "x":63,
- "y":0
- },
- {
- "x":64,
- "y":0
- },
- {
- "x":65,
- "y":0
- },
- {
- "x":66,
- "y":0
- },
- {
- "x":67,
- "y":0
- },
- {
- "x":68,
- "y":0
- },
- {
- "x":69,
- "y":0
- },
- {
- "x":70,
- "y":0
- },
- {
- "x":71,
- "y":0
- },
- {
- "x":72,
- "y":0
- },
- {
- "x":73,
- "y":0
- },
- {
- "x":74,
- "y":0
- },
- {
- "x":75,
- "y":0
- },
- {
- "x":76,
- "y":0
- },
- {
- "x":77,
- "y":0
- },
- {
- "x":78,
- "y":0
- },
- {
- "x":79,
- "y":0
- },
- {
- "x":80,
- "y":0
- },
- {
- "x":81,
- "y":0
- },
- {
- "x":82,
- "y":0
- },
- {
- "x":83,
- "y":0
- },
- {
- "x":84,
- "y":0
- },
- {
- "x":85,
- "y":0
- },
- {
- "x":86,
- "y":0
- },
- {
- "x":87,
- "y":0
- },
- {
- "x":88,
- "y":0
- },
- {
- "x":89,
- "y":0
- },
- {
- "x":90,
- "y":0
- },
- {
- "x":91,
- "y":0
- },
- {
- "x":92,
- "y":0
- },
- {
- "x":93,
- "y":0
- },
- {
- "x":94,
- "y":0
- },
- {
- "x":95,
- "y":0
- },
- {
- "x":96,
- "y":0
- },
- {
- "x":97,
- "y":0
- },
- {
- "x":98,
- "y":0
- },
- {
- "x":99,
- "y":0
- },
- {
- "x":100,
- "y":0
- },
- {
- "x":101,
- "y":0
- },
- {
- "x":102,
- "y":0
- },
- {
- "x":103,
- "y":0
- },
- {
- "x":104,
- "y":0
- },
- {
- "x":105,
- "y":0
- },
- {
- "x":106,
- "y":0
- },
- {
- "x":107,
- "y":0
- },
- {
- "x":108,
- "y":0
- },
- {
- "x":109,
- "y":0
- },
- {
- "x":110,
- "y":0
- },
- {
- "x":111,
- "y":0
- },
- {
- "x":112,
- "y":0
- },
- {
- "x":113,
- "y":0
- },
- {
- "x":114,
- "y":0
- },
- {
- "x":115,
- "y":0
- },
- {
- "x":116,
- "y":0
- },
- {
- "x":117,
- "y":0
- },
- {
- "x":118,
- "y":0
- },
- {
- "x":119,
- "y":0
- },
- {
- "x":120,
- "y":0
- },
- {
- "x":121,
- "y":0
- },
- {
- "x":122,
- "y":0
- },
- {
- "x":123,
- "y":0
- },
- {
- "x":124,
- "y":0
- },
- {
- "x":125,
- "y":0
- },
- {
- "x":126,
- "y":0
- },
- {
- "x":127,
- "y":0
- },
- {
- "x":128,
- "y":0
- },
- {
- "x":129,
- "y":0
- },
- {
- "x":130,
- "y":0
- },
- {
- "x":131,
- "y":0
- },
- {
- "x":132,
- "y":0
- },
- {
- "x":133,
- "y":0
- },
- {
- "x":134,
- "y":0
- },
- {
- "x":135,
- "y":0
- },
- {
- "x":136,
- "y":0
- },
- {
- "x":137,
- "y":0
- },
- {
- "x":138,
- "y":0
- },
- {
- "x":139,
- "y":0
- },
- {
- "x":140,
- "y":0
- },
- {
- "x":141,
- "y":0
- },
- {
- "x":142,
- "y":2
- },
- {
- "x":143,
- "y":2
- },
- {
- "x":144,
- "y":2
- },
- {
- "x":145,
- "y":2
- },
- {
- "x":146,
- "y":2
- },
- {
- "x":147,
- "y":2
- },
- {
- "x":148,
- "y":2
- },
- {
- "x":149,
- "y":2
- },
- {
- "x":150,
- "y":2
- },
- {
- "x":151,
- "y":2
- },
- {
- "x":152,
- "y":2
- },
- {
- "x":153,
- "y":2
- },
- {
- "x":154,
- "y":2
- },
- {
- "x":155,
- "y":2
- },
- {
- "x":156,
- "y":2
- },
- {
- "x":157,
- "y":2
- },
- {
- "x":158,
- "y":2
- },
- {
- "x":159,
- "y":2
- },
- {
- "x":160,
- "y":2
- },
- {
- "x":161,
- "y":2
- },
- {
- "x":162,
- "y":2
- },
- {
- "x":163,
- "y":2
- },
- {
- "x":164,
- "y":2
- },
- {
- "x":165,
- "y":2
- },
- {
- "x":166,
- "y":2
- },
- {
- "x":167,
- "y":2
- },
- {
- "x":168,
- "y":2
- },
- {
- "x":169,
- "y":2
- },
- {
- "x":170,
- "y":2
- },
- {
- "x":171,
- "y":2
- },
- {
- "x":172,
- "y":2
- },
- {
- "x":173,
- "y":2
- },
- {
- "x":174,
- "y":2
- },
- {
- "x":175,
- "y":2
- },
- {
- "x":176,
- "y":2
- },
- {
- "x":177,
- "y":2
- },
- {
- "x":178,
- "y":2
- },
- {
- "x":179,
- "y":2
- },
- {
- "x":180,
- "y":2
- },
- {
- "x":181,
- "y":2
- },
- {
- "x":182,
- "y":2
- },
- {
- "x":183,
- "y":2
- },
- {
- "x":184,
- "y":2
- },
- {
- "x":185,
- "y":2
- },
- {
- "x":186,
- "y":2
- },
- {
- "x":187,
- "y":2
- },
- {
- "x":188,
- "y":2
- },
- {
- "x":189,
- "y":2
- },
- {
- "x":190,
- "y":2
- },
- {
- "x":191,
- "y":2
- },
- {
- "x":192,
- "y":2
- },
- {
- "x":193,
- "y":2
- },
- {
- "x":194,
- "y":2
- },
- {
- "x":195,
- "y":2
- },
- {
- "x":196,
- "y":2
- },
- {
- "x":197,
- "y":2
- },
- {
- "x":198,
- "y":2
- },
- {
- "x":199,
- "y":2
- },
- {
- "x":200,
- "y":2
- },
- {
- "x":201,
- "y":2
- },
- {
- "x":202,
- "y":2
- },
- {
- "x":203,
- "y":2
- },
- {
- "x":204,
- "y":2
- },
- {
- "x":205,
- "y":2
- },
- {
- "x":206,
- "y":2
- },
- {
- "x":207,
- "y":2
- },
- {
- "x":208,
- "y":2
- },
- {
- "x":209,
- "y":2
- },
- {
- "x":210,
- "y":2
- },
- {
- "x":211,
- "y":2
- },
- {
- "x":212,
- "y":2
- },
- {
- "x":213,
- "y":2
- },
- {
- "x":214,
- "y":2
- },
- {
- "x":215,
- "y":2
- },
- {
- "x":216,
- "y":2
- },
- {
- "x":217,
- "y":2
- },
- {
- "x":218,
- "y":2
- },
- {
- "x":219,
- "y":2
- },
- {
- "x":220,
- "y":2
- },
- {
- "x":221,
- "y":2
- },
- {
- "x":222,
- "y":2
- },
- {
- "x":223,
- "y":2
- },
- {
- "x":224,
- "y":2
- },
- {
- "x":225,
- "y":2
- },
- {
- "x":226,
- "y":2
- },
- {
- "x":227,
- "y":2
- },
- {
- "x":228,
- "y":2
- },
- {
- "x":229,
- "y":2
- },
- {
- "x":230,
- "y":2
- },
- {
- "x":231,
- "y":2
- },
- {
- "x":232,
- "y":2
- },
- {
- "x":233,
- "y":2
- },
- {
- "x":234,
- "y":0
- },
- {
- "x":235,
- "y":0
- },
- {
- "x":236,
- "y":0
- },
- {
- "x":237,
- "y":0
- },
- {
- "x":238,
- "y":0
- },
- {
- "x":239,
- "y":0
- },
- {
- "x":240,
- "y":0
- },
- {
- "x":241,
- "y":0
- },
- {
- "x":242,
- "y":0
- },
- {
- "x":243,
- "y":0
- },
- {
- "x":244,
- "y":0
- },
- {
- "x":245,
- "y":0
- },
- {
- "x":246,
- "y":0
- },
- {
- "x":247,
- "y":0
- },
- {
- "x":248,
- "y":0
- },
- {
- "x":249,
- "y":0
- },
- {
- "x":250,
- "y":0
- },
- {
- "x":251,
- "y":0
- },
- {
- "x":252,
- "y":0
- },
- {
- "x":253,
- "y":0
- },
- {
- "x":254,
- "y":0
- },
- {
- "x":255,
- "y":0
- },
- {
- "x":256,
- "y":0
- },
- {
- "x":257,
- "y":0
- },
- {
- "x":258,
- "y":0
- },
- {
- "x":259,
- "y":0
- },
- {
- "x":260,
- "y":0
- },
- {
- "x":261,
- "y":0
- },
- {
- "x":262,
- "y":0
- },
- {
- "x":263,
- "y":0
- },
- {
- "x":264,
- "y":0
- },
- {
- "x":265,
- "y":0
- },
- {
- "x":266,
- "y":0
- },
- {
- "x":267,
- "y":0
- },
- {
- "x":268,
- "y":0
- },
- {
- "x":269,
- "y":0
- },
- {
- "x":270,
- "y":0
- },
- {
- "x":271,
- "y":0
- },
- {
- "x":272,
- "y":0
- },
- {
- "x":273,
- "y":0
- },
- {
- "x":274,
- "y":0
- },
- {
- "x":275,
- "y":0
- },
- {
- "x":276,
- "y":0
- },
- {
- "x":277,
- "y":0
- },
- {
- "x":278,
- "y":0
- },
- {
- "x":279,
- "y":0
- },
- {
- "x":280,
- "y":0
- },
- {
- "x":281,
- "y":0
- },
- {
- "x":282,
- "y":0
- },
- {
- "x":283,
- "y":0
- },
- {
- "x":284,
- "y":0
- },
- {
- "x":285,
- "y":0
- },
- {
- "x":286,
- "y":0
- },
- {
- "x":287,
- "y":0
- },
- {
- "x":288,
- "y":0
- },
- {
- "x":289,
- "y":0
- },
- {
- "x":290,
- "y":0
- },
- {
- "x":291,
- "y":0
- },
- {
- "x":292,
- "y":0
- },
- {
- "x":293,
- "y":0
- },
- {
- "x":294,
- "y":0
- },
- {
- "x":295,
- "y":0
- },
- {
- "x":296,
- "y":0
- },
- {
- "x":297,
- "y":0
- },
- {
- "x":298,
- "y":0
- },
- {
- "x":299,
- "y":0
- },
- {
- "x":300,
- "y":0
- },
- {
- "x":301,
- "y":0
- },
- {
- "x":302,
- "y":0
- },
- {
- "x":303,
- "y":0
- },
- {
- "x":304,
- "y":0
- },
- {
- "x":305,
- "y":0
- },
- {
- "x":306,
- "y":0
- },
- {
- "x":307,
- "y":0
- },
- {
- "x":308,
- "y":0
- },
- {
- "x":309,
- "y":0
- },
- {
- "x":310,
- "y":0
- },
- {
- "x":311,
- "y":0
- },
- {
- "x":312,
- "y":0
- },
- {
- "x":313,
- "y":0
- },
- {
- "x":314,
- "y":0
- },
- {
- "x":315,
- "y":0
- },
- {
- "x":316,
- "y":0
- },
- {
- "x":317,
- "y":0
- },
- {
- "x":318,
- "y":0
- },
- {
- "x":319,
- "y":0
- },
- {
- "x":320,
- "y":0
- },
- {
- "x":321,
- "y":0
- },
- {
- "x":322,
- "y":0
- },
- {
- "x":323,
- "y":0
- },
- {
- "x":324,
- "y":0
- },
- {
- "x":325,
- "y":0
- },
- {
- "x":326,
- "y":0
- },
- {
- "x":327,
- "y":0
- },
- {
- "x":328,
- "y":0
- },
- {
- "x":329,
- "y":0
- },
- {
- "x":330,
- "y":0
- },
- {
- "x":331,
- "y":0
- },
- {
- "x":332,
- "y":0
- },
- {
- "x":333,
- "y":0
- },
- {
- "x":334,
- "y":0
- },
- {
- "x":335,
- "y":0
- },
- {
- "x":336,
- "y":0
- },
- {
- "x":337,
- "y":0
- },
- {
- "x":338,
- "y":0
- },
- {
- "x":339,
- "y":0
- },
- {
- "x":340,
- "y":0
- },
- {
- "x":341,
- "y":0
- },
- {
- "x":342,
- "y":0
- },
- {
- "x":343,
- "y":0
- },
- {
- "x":344,
- "y":0
- },
- {
- "x":345,
- "y":0
- },
- {
- "x":346,
- "y":0
- },
- {
- "x":347,
- "y":0
- },
- {
- "x":348,
- "y":0
- },
- {
- "x":349,
- "y":0
- },
- {
- "x":350,
- "y":0
- },
- {
- "x":351,
- "y":0
- },
- {
- "x":352,
- "y":0
- },
- {
- "x":353,
- "y":0
- },
- {
- "x":354,
- "y":0
- },
- {
- "x":355,
- "y":0
- },
- {
- "x":356,
- "y":0
- },
- {
- "x":357,
- "y":0
- },
- {
- "x":358,
- "y":0
- },
- {
- "x":359,
- "y":0
- },
- {
- "x":360,
- "y":0
- },
- {
- "x":361,
- "y":0
- },
- {
- "x":362,
- "y":0
- },
- {
- "x":363,
- "y":0
- },
- {
- "x":364,
- "y":0
- },
- {
- "x":365,
- "y":0
- },
- {
- "x":366,
- "y":0
- },
- {
- "x":367,
- "y":0
- },
- {
- "x":368,
- "y":0
- },
- {
- "x":369,
- "y":0
- },
- {
- "x":370,
- "y":0
- },
- {
- "x":371,
- "y":0
- },
- {
- "x":372,
- "y":0
- },
- {
- "x":373,
- "y":0
- },
- {
- "x":374,
- "y":0
- },
- {
- "x":375,
- "y":0
- },
- {
- "x":376,
- "y":0
- },
- {
- "x":377,
- "y":0
- },
- {
- "x":378,
- "y":0
- },
- {
- "x":379,
- "y":0
- },
- {
- "x":380,
- "y":0
- },
- {
- "x":381,
- "y":0
- },
- {
- "x":382,
- "y":0
- },
- {
- "x":383,
- "y":0
- },
- {
- "x":384,
- "y":0
- },
- {
- "x":385,
- "y":0
- },
- {
- "x":386,
- "y":0
- },
- {
- "x":387,
- "y":0
- },
- {
- "x":388,
- "y":0
- },
- {
- "x":389,
- "y":0
- },
- {
- "x":390,
- "y":0
- },
- {
- "x":391,
- "y":0
- },
- {
- "x":392,
- "y":0
- },
- {
- "x":393,
- "y":0
- },
- {
- "x":394,
- "y":0
- },
- {
- "x":395,
- "y":0
- },
- {
- "x":396,
- "y":0
- },
- {
- "x":397,
- "y":0
- },
- {
- "x":398,
- "y":0
- },
- {
- "x":399,
- "y":0
- },
- {
- "x":400,
- "y":0
- },
- {
- "x":401,
- "y":0
- },
- {
- "x":402,
- "y":0
- },
- {
- "x":403,
- "y":0
- },
- {
- "x":404,
- "y":0
- },
- {
- "x":405,
- "y":0
- },
- {
- "x":406,
- "y":0
- },
- {
- "x":407,
- "y":0
- },
- {
- "x":408,
- "y":0
- },
- {
- "x":409,
- "y":0
- },
- {
- "x":410,
- "y":0
- },
- {
- "x":411,
- "y":0
- },
- {
- "x":412,
- "y":0
- },
- {
- "x":413,
- "y":0
- },
- {
- "x":414,
- "y":0
- },
- {
- "x":415,
- "y":0
- },
- {
- "x":416,
- "y":0
- },
- {
- "x":417,
- "y":0
- },
- {
- "x":418,
- "y":0
- },
- {
- "x":419,
- "y":0
- },
- {
- "x":420,
- "y":0
- },
- {
- "x":421,
- "y":0
- },
- {
- "x":422,
- "y":0
- },
- {
- "x":423,
- "y":0
- },
- {
- "x":424,
- "y":0
- },
- {
- "x":425,
- "y":0
- },
- {
- "x":426,
- "y":0
- },
- {
- "x":427,
- "y":0
- },
- {
- "x":428,
- "y":0
- },
- {
- "x":429,
- "y":0
- },
- {
- "x":430,
- "y":0
- },
- {
- "x":431,
- "y":0
- },
- {
- "x":432,
- "y":0
- },
- {
- "x":433,
- "y":0
- },
- {
- "x":434,
- "y":0
- },
- {
- "x":435,
- "y":0
- },
- {
- "x":436,
- "y":0
- },
- {
- "x":437,
- "y":0
- },
- {
- "x":438,
- "y":0
- },
- {
- "x":439,
- "y":0
- },
- {
- "x":440,
- "y":0
- },
- {
- "x":441,
- "y":0
- },
- {
- "x":442,
- "y":0
- },
- {
- "x":443,
- "y":0
- },
- {
- "x":444,
- "y":0
- },
- {
- "x":445,
- "y":0
- },
- {
- "x":446,
- "y":0
- },
- {
- "x":447,
- "y":0
- },
- {
- "x":448,
- "y":0
- },
- {
- "x":449,
- "y":0
- },
- {
- "x":450,
- "y":0
- },
- {
- "x":451,
- "y":0
- },
- {
- "x":452,
- "y":0
- },
- {
- "x":453,
- "y":0
- },
- {
- "x":454,
- "y":0
- },
- {
- "x":455,
- "y":0
- },
- {
- "x":456,
- "y":0
- },
- {
- "x":457,
- "y":0
- },
- {
- "x":458,
- "y":0
- },
- {
- "x":459,
- "y":0
- },
- {
- "x":460,
- "y":0
- },
- {
- "x":461,
- "y":0
- },
- {
- "x":462,
- "y":0
- },
- {
- "x":463,
- "y":0
- },
- {
- "x":464,
- "y":0
- },
- {
- "x":465,
- "y":0
- },
- {
- "x":466,
- "y":0
- },
- {
- "x":467,
- "y":0
- },
- {
- "x":468,
- "y":0
- },
- {
- "x":469,
- "y":0
- },
- {
- "x":470,
- "y":0
- },
- {
- "x":471,
- "y":0
- },
- {
- "x":472,
- "y":0
- },
- {
- "x":473,
- "y":0
- },
- {
- "x":474,
- "y":0
- },
- {
- "x":475,
- "y":0
- },
- {
- "x":476,
- "y":0
- },
- {
- "x":477,
- "y":0
- },
- {
- "x":478,
- "y":0
- },
- {
- "x":479,
- "y":0
- },
- {
- "x":480,
- "y":0
- },
- {
- "x":481,
- "y":0
- },
- {
- "x":482,
- "y":0
- },
- {
- "x":483,
- "y":0
- },
- {
- "x":484,
- "y":0
- },
- {
- "x":485,
- "y":0
- },
- {
- "x":486,
- "y":0
- },
- {
- "x":487,
- "y":0
- },
- {
- "x":488,
- "y":0
- },
- {
- "x":489,
- "y":0
- },
- {
- "x":490,
- "y":0
- },
- {
- "x":491,
- "y":0
- },
- {
- "x":492,
- "y":0
- },
- {
- "x":493,
- "y":0
- },
- {
- "x":494,
- "y":0
- },
- {
- "x":495,
- "y":0
- },
- {
- "x":496,
- "y":0
- },
- {
- "x":497,
- "y":0
- },
- {
- "x":498,
- "y":0
- },
- {
- "x":499,
- "y":0
- }
- ],
- [
- {
- "x":0,
- "y":0
- },
- {
- "x":1,
- "y":0
- },
- {
- "x":2,
- "y":0
- },
- {
- "x":3,
- "y":0
- },
- {
- "x":4,
- "y":0
- },
- {
- "x":5,
- "y":0
- },
- {
- "x":6,
- "y":0
- },
- {
- "x":7,
- "y":0
- },
- {
- "x":8,
- "y":0
- },
- {
- "x":9,
- "y":0
- },
- {
- "x":10,
- "y":0
- },
- {
- "x":11,
- "y":0
- },
- {
- "x":12,
- "y":0
- },
- {
- "x":13,
- "y":0
- },
- {
- "x":14,
- "y":0
- },
- {
- "x":15,
- "y":0
- },
- {
- "x":16,
- "y":0
- },
- {
- "x":17,
- "y":0
- },
- {
- "x":18,
- "y":0
- },
- {
- "x":19,
- "y":0
- },
- {
- "x":20,
- "y":0
- },
- {
- "x":21,
- "y":0
- },
- {
- "x":22,
- "y":0
- },
- {
- "x":23,
- "y":0
- },
- {
- "x":24,
- "y":0
- },
- {
- "x":25,
- "y":0
- },
- {
- "x":26,
- "y":0
- },
- {
- "x":27,
- "y":0
- },
- {
- "x":28,
- "y":0
- },
- {
- "x":29,
- "y":0
- },
- {
- "x":30,
- "y":0
- },
- {
- "x":31,
- "y":0
- },
- {
- "x":32,
- "y":0
- },
- {
- "x":33,
- "y":0
- },
- {
- "x":34,
- "y":0
- },
- {
- "x":35,
- "y":0
- },
- {
- "x":36,
- "y":0
- },
- {
- "x":37,
- "y":0
- },
- {
- "x":38,
- "y":0
- },
- {
- "x":39,
- "y":0
- },
- {
- "x":40,
- "y":0
- },
- {
- "x":41,
- "y":0
- },
- {
- "x":42,
- "y":0
- },
- {
- "x":43,
- "y":0
- },
- {
- "x":44,
- "y":0
- },
- {
- "x":45,
- "y":0
- },
- {
- "x":46,
- "y":0
- },
- {
- "x":47,
- "y":0
- },
- {
- "x":48,
- "y":0
- },
- {
- "x":49,
- "y":0
- },
- {
- "x":50,
- "y":0
- },
- {
- "x":51,
- "y":0
- },
- {
- "x":52,
- "y":0
- },
- {
- "x":53,
- "y":0
- },
- {
- "x":54,
- "y":0
- },
- {
- "x":55,
- "y":0
- },
- {
- "x":56,
- "y":0
- },
- {
- "x":57,
- "y":0
- },
- {
- "x":58,
- "y":0
- },
- {
- "x":59,
- "y":0
- },
- {
- "x":60,
- "y":0
- },
- {
- "x":61,
- "y":0
- },
- {
- "x":62,
- "y":0
- },
- {
- "x":63,
- "y":0
- },
- {
- "x":64,
- "y":0
- },
- {
- "x":65,
- "y":0
- },
- {
- "x":66,
- "y":0
- },
- {
- "x":67,
- "y":0
- },
- {
- "x":68,
- "y":0
- },
- {
- "x":69,
- "y":0
- },
- {
- "x":70,
- "y":0
- },
- {
- "x":71,
- "y":0
- },
- {
- "x":72,
- "y":0
- },
- {
- "x":73,
- "y":0
- },
- {
- "x":74,
- "y":0
- },
- {
- "x":75,
- "y":0
- },
- {
- "x":76,
- "y":0
- },
- {
- "x":77,
- "y":0
- },
- {
- "x":78,
- "y":0
- },
- {
- "x":79,
- "y":0
- },
- {
- "x":80,
- "y":0
- },
- {
- "x":81,
- "y":0
- },
- {
- "x":82,
- "y":0
- },
- {
- "x":83,
- "y":0
- },
- {
- "x":84,
- "y":0
- },
- {
- "x":85,
- "y":0
- },
- {
- "x":86,
- "y":0
- },
- {
- "x":87,
- "y":0
- },
- {
- "x":88,
- "y":0
- },
- {
- "x":89,
- "y":0
- },
- {
- "x":90,
- "y":0
- },
- {
- "x":91,
- "y":0
- },
- {
- "x":92,
- "y":0
- },
- {
- "x":93,
- "y":0
- },
- {
- "x":94,
- "y":0
- },
- {
- "x":95,
- "y":0
- },
- {
- "x":96,
- "y":0
- },
- {
- "x":97,
- "y":0
- },
- {
- "x":98,
- "y":0
- },
- {
- "x":99,
- "y":0
- },
- {
- "x":100,
- "y":0
- },
- {
- "x":101,
- "y":0
- },
- {
- "x":102,
- "y":0
- },
- {
- "x":103,
- "y":0
- },
- {
- "x":104,
- "y":0
- },
- {
- "x":105,
- "y":0
- },
- {
- "x":106,
- "y":0
- },
- {
- "x":107,
- "y":0
- },
- {
- "x":108,
- "y":0
- },
- {
- "x":109,
- "y":0
- },
- {
- "x":110,
- "y":0
- },
- {
- "x":111,
- "y":0
- },
- {
- "x":112,
- "y":0
- },
- {
- "x":113,
- "y":0
- },
- {
- "x":114,
- "y":0
- },
- {
- "x":115,
- "y":0
- },
- {
- "x":116,
- "y":0
- },
- {
- "x":117,
- "y":0
- },
- {
- "x":118,
- "y":0
- },
- {
- "x":119,
- "y":0
- },
- {
- "x":120,
- "y":0
- },
- {
- "x":121,
- "y":0
- },
- {
- "x":122,
- "y":0
- },
- {
- "x":123,
- "y":0
- },
- {
- "x":124,
- "y":0
- },
- {
- "x":125,
- "y":0
- },
- {
- "x":126,
- "y":0
- },
- {
- "x":127,
- "y":0
- },
- {
- "x":128,
- "y":0
- },
- {
- "x":129,
- "y":0
- },
- {
- "x":130,
- "y":0
- },
- {
- "x":131,
- "y":0
- },
- {
- "x":132,
- "y":0
- },
- {
- "x":133,
- "y":0
- },
- {
- "x":134,
- "y":0
- },
- {
- "x":135,
- "y":0
- },
- {
- "x":136,
- "y":0
- },
- {
- "x":137,
- "y":0
- },
- {
- "x":138,
- "y":0
- },
- {
- "x":139,
- "y":0
- },
- {
- "x":140,
- "y":0
- },
- {
- "x":141,
- "y":0
- },
- {
- "x":142,
- "y":0
- },
- {
- "x":143,
- "y":0
- },
- {
- "x":144,
- "y":0
- },
- {
- "x":145,
- "y":0
- },
- {
- "x":146,
- "y":0
- },
- {
- "x":147,
- "y":0
- },
- {
- "x":148,
- "y":0
- },
- {
- "x":149,
- "y":0
- },
- {
- "x":150,
- "y":0
- },
- {
- "x":151,
- "y":0
- },
- {
- "x":152,
- "y":0
- },
- {
- "x":153,
- "y":0
- },
- {
- "x":154,
- "y":0
- },
- {
- "x":155,
- "y":0
- },
- {
- "x":156,
- "y":0
- },
- {
- "x":157,
- "y":0
- },
- {
- "x":158,
- "y":0
- },
- {
- "x":159,
- "y":0
- },
- {
- "x":160,
- "y":0
- },
- {
- "x":161,
- "y":0
- },
- {
- "x":162,
- "y":0
- },
- {
- "x":163,
- "y":0
- },
- {
- "x":164,
- "y":0
- },
- {
- "x":165,
- "y":0
- },
- {
- "x":166,
- "y":0
- },
- {
- "x":167,
- "y":0
- },
- {
- "x":168,
- "y":0
- },
- {
- "x":169,
- "y":0
- },
- {
- "x":170,
- "y":0
- },
- {
- "x":171,
- "y":0
- },
- {
- "x":172,
- "y":0
- },
- {
- "x":173,
- "y":0
- },
- {
- "x":174,
- "y":0
- },
- {
- "x":175,
- "y":0
- },
- {
- "x":176,
- "y":0
- },
- {
- "x":177,
- "y":0
- },
- {
- "x":178,
- "y":0
- },
- {
- "x":179,
- "y":0
- },
- {
- "x":180,
- "y":0
- },
- {
- "x":181,
- "y":0
- },
- {
- "x":182,
- "y":0
- },
- {
- "x":183,
- "y":0
- },
- {
- "x":184,
- "y":0
- },
- {
- "x":185,
- "y":0
- },
- {
- "x":186,
- "y":0
- },
- {
- "x":187,
- "y":0
- },
- {
- "x":188,
- "y":0
- },
- {
- "x":189,
- "y":0
- },
- {
- "x":190,
- "y":0
- },
- {
- "x":191,
- "y":0
- },
- {
- "x":192,
- "y":0
- },
- {
- "x":193,
- "y":0
- },
- {
- "x":194,
- "y":0
- },
- {
- "x":195,
- "y":0
- },
- {
- "x":196,
- "y":0
- },
- {
- "x":197,
- "y":0
- },
- {
- "x":198,
- "y":0
- },
- {
- "x":199,
- "y":0
- },
- {
- "x":200,
- "y":0
- },
- {
- "x":201,
- "y":0
- },
- {
- "x":202,
- "y":0
- },
- {
- "x":203,
- "y":0
- },
- {
- "x":204,
- "y":0
- },
- {
- "x":205,
- "y":0
- },
- {
- "x":206,
- "y":0
- },
- {
- "x":207,
- "y":0
- },
- {
- "x":208,
- "y":0
- },
- {
- "x":209,
- "y":0
- },
- {
- "x":210,
- "y":0
- },
- {
- "x":211,
- "y":0
- },
- {
- "x":212,
- "y":0
- },
- {
- "x":213,
- "y":0
- },
- {
- "x":214,
- "y":0
- },
- {
- "x":215,
- "y":0
- },
- {
- "x":216,
- "y":0
- },
- {
- "x":217,
- "y":0
- },
- {
- "x":218,
- "y":0
- },
- {
- "x":219,
- "y":0
- },
- {
- "x":220,
- "y":0
- },
- {
- "x":221,
- "y":0
- },
- {
- "x":222,
- "y":0
- },
- {
- "x":223,
- "y":0
- },
- {
- "x":224,
- "y":0
- },
- {
- "x":225,
- "y":0
- },
- {
- "x":226,
- "y":0
- },
- {
- "x":227,
- "y":0
- },
- {
- "x":228,
- "y":0
- },
- {
- "x":229,
- "y":0
- },
- {
- "x":230,
- "y":0
- },
- {
- "x":231,
- "y":0
- },
- {
- "x":232,
- "y":0
- },
- {
- "x":233,
- "y":0
- },
- {
- "x":234,
- "y":0
- },
- {
- "x":235,
- "y":0
- },
- {
- "x":236,
- "y":0
- },
- {
- "x":237,
- "y":0
- },
- {
- "x":238,
- "y":0
- },
- {
- "x":239,
- "y":0
- },
- {
- "x":240,
- "y":0
- },
- {
- "x":241,
- "y":0
- },
- {
- "x":242,
- "y":0
- },
- {
- "x":243,
- "y":0
- },
- {
- "x":244,
- "y":0
- },
- {
- "x":245,
- "y":0
- },
- {
- "x":246,
- "y":0
- },
- {
- "x":247,
- "y":0
- },
- {
- "x":248,
- "y":0
- },
- {
- "x":249,
- "y":0
- },
- {
- "x":250,
- "y":0
- },
- {
- "x":251,
- "y":0
- },
- {
- "x":252,
- "y":0
- },
- {
- "x":253,
- "y":0
- },
- {
- "x":254,
- "y":0
- },
- {
- "x":255,
- "y":0
- },
- {
- "x":256,
- "y":0
- },
- {
- "x":257,
- "y":0
- },
- {
- "x":258,
- "y":0
- },
- {
- "x":259,
- "y":0
- },
- {
- "x":260,
- "y":0
- },
- {
- "x":261,
- "y":0
- },
- {
- "x":262,
- "y":1
- },
- {
- "x":263,
- "y":1
- },
- {
- "x":264,
- "y":1
- },
- {
- "x":265,
- "y":1
- },
- {
- "x":266,
- "y":1
- },
- {
- "x":267,
- "y":1
- },
- {
- "x":268,
- "y":1
- },
- {
- "x":269,
- "y":1
- },
- {
- "x":270,
- "y":1
- },
- {
- "x":271,
- "y":1
- },
- {
- "x":272,
- "y":1
- },
- {
- "x":273,
- "y":1
- },
- {
- "x":274,
- "y":1
- },
- {
- "x":275,
- "y":1
- },
- {
- "x":276,
- "y":1
- },
- {
- "x":277,
- "y":1
- },
- {
- "x":278,
- "y":1
- },
- {
- "x":279,
- "y":1
- },
- {
- "x":280,
- "y":1
- },
- {
- "x":281,
- "y":1
- },
- {
- "x":282,
- "y":1
- },
- {
- "x":283,
- "y":1
- },
- {
- "x":284,
- "y":1
- },
- {
- "x":285,
- "y":1
- },
- {
- "x":286,
- "y":1
- },
- {
- "x":287,
- "y":1
- },
- {
- "x":288,
- "y":1
- },
- {
- "x":289,
- "y":1
- },
- {
- "x":290,
- "y":1
- },
- {
- "x":291,
- "y":1
- },
- {
- "x":292,
- "y":1
- },
- {
- "x":293,
- "y":1
- },
- {
- "x":294,
- "y":1
- },
- {
- "x":295,
- "y":1
- },
- {
- "x":296,
- "y":1
- },
- {
- "x":297,
- "y":1
- },
- {
- "x":298,
- "y":1
- },
- {
- "x":299,
- "y":1
- },
- {
- "x":300,
- "y":1
- },
- {
- "x":301,
- "y":1
- },
- {
- "x":302,
- "y":1
- },
- {
- "x":303,
- "y":1
- },
- {
- "x":304,
- "y":1
- },
- {
- "x":305,
- "y":1
- },
- {
- "x":306,
- "y":1
- },
- {
- "x":307,
- "y":1
- },
- {
- "x":308,
- "y":1
- },
- {
- "x":309,
- "y":1
- },
- {
- "x":310,
- "y":1
- },
- {
- "x":311,
- "y":1
- },
- {
- "x":312,
- "y":1
- },
- {
- "x":313,
- "y":1
- },
- {
- "x":314,
- "y":1
- },
- {
- "x":315,
- "y":1
- },
- {
- "x":316,
- "y":1
- },
- {
- "x":317,
- "y":1
- },
- {
- "x":318,
- "y":1
- },
- {
- "x":319,
- "y":1
- },
- {
- "x":320,
- "y":1
- },
- {
- "x":321,
- "y":1
- },
- {
- "x":322,
- "y":1
- },
- {
- "x":323,
- "y":1
- },
- {
- "x":324,
- "y":1
- },
- {
- "x":325,
- "y":1
- },
- {
- "x":326,
- "y":1
- },
- {
- "x":327,
- "y":1
- },
- {
- "x":328,
- "y":1
- },
- {
- "x":329,
- "y":1
- },
- {
- "x":330,
- "y":1
- },
- {
- "x":331,
- "y":1
- },
- {
- "x":332,
- "y":1
- },
- {
- "x":333,
- "y":1
- },
- {
- "x":334,
- "y":1
- },
- {
- "x":335,
- "y":1
- },
- {
- "x":336,
- "y":1
- },
- {
- "x":337,
- "y":1
- },
- {
- "x":338,
- "y":1
- },
- {
- "x":339,
- "y":1
- },
- {
- "x":340,
- "y":1
- },
- {
- "x":341,
- "y":1
- },
- {
- "x":342,
- "y":1
- },
- {
- "x":343,
- "y":1
- },
- {
- "x":344,
- "y":1
- },
- {
- "x":345,
- "y":1
- },
- {
- "x":346,
- "y":1
- },
- {
- "x":347,
- "y":1
- },
- {
- "x":348,
- "y":1
- },
- {
- "x":349,
- "y":1
- },
- {
- "x":350,
- "y":1
- },
- {
- "x":351,
- "y":1
- },
- {
- "x":352,
- "y":1
- },
- {
- "x":353,
- "y":1
- },
- {
- "x":354,
- "y":1
- },
- {
- "x":355,
- "y":1
- },
- {
- "x":356,
- "y":1
- },
- {
- "x":357,
- "y":1
- },
- {
- "x":358,
- "y":1
- },
- {
- "x":359,
- "y":1
- },
- {
- "x":360,
- "y":1
- },
- {
- "x":361,
- "y":1
- },
- {
- "x":362,
- "y":1
- },
- {
- "x":363,
- "y":1
- },
- {
- "x":364,
- "y":1
- },
- {
- "x":365,
- "y":1
- },
- {
- "x":366,
- "y":1
- },
- {
- "x":367,
- "y":1
- },
- {
- "x":368,
- "y":1
- },
- {
- "x":369,
- "y":1
- },
- {
- "x":370,
- "y":1
- },
- {
- "x":371,
- "y":1
- },
- {
- "x":372,
- "y":1
- },
- {
- "x":373,
- "y":1
- },
- {
- "x":374,
- "y":1
- },
- {
- "x":375,
- "y":0
- },
- {
- "x":376,
- "y":0
- },
- {
- "x":377,
- "y":0
- },
- {
- "x":378,
- "y":0
- },
- {
- "x":379,
- "y":0
- },
- {
- "x":380,
- "y":0
- },
- {
- "x":381,
- "y":0
- },
- {
- "x":382,
- "y":0
- },
- {
- "x":383,
- "y":0
- },
- {
- "x":384,
- "y":0
- },
- {
- "x":385,
- "y":0
- },
- {
- "x":386,
- "y":0
- },
- {
- "x":387,
- "y":0
- },
- {
- "x":388,
- "y":0
- },
- {
- "x":389,
- "y":0
- },
- {
- "x":390,
- "y":0
- },
- {
- "x":391,
- "y":0
- },
- {
- "x":392,
- "y":0
- },
- {
- "x":393,
- "y":0
- },
- {
- "x":394,
- "y":0
- },
- {
- "x":395,
- "y":0
- },
- {
- "x":396,
- "y":0
- },
- {
- "x":397,
- "y":0
- },
- {
- "x":398,
- "y":0
- },
- {
- "x":399,
- "y":0
- },
- {
- "x":400,
- "y":0
- },
- {
- "x":401,
- "y":0
- },
- {
- "x":402,
- "y":0
- },
- {
- "x":403,
- "y":0
- },
- {
- "x":404,
- "y":0
- },
- {
- "x":405,
- "y":0
- },
- {
- "x":406,
- "y":0
- },
- {
- "x":407,
- "y":0
- },
- {
- "x":408,
- "y":0
- },
- {
- "x":409,
- "y":0
- },
- {
- "x":410,
- "y":0
- },
- {
- "x":411,
- "y":0
- },
- {
- "x":412,
- "y":0
- },
- {
- "x":413,
- "y":0
- },
- {
- "x":414,
- "y":0
- },
- {
- "x":415,
- "y":0
- },
- {
- "x":416,
- "y":0
- },
- {
- "x":417,
- "y":0
- },
- {
- "x":418,
- "y":0
- },
- {
- "x":419,
- "y":0
- },
- {
- "x":420,
- "y":0
- },
- {
- "x":421,
- "y":0
- },
- {
- "x":422,
- "y":0
- },
- {
- "x":423,
- "y":0
- },
- {
- "x":424,
- "y":0
- },
- {
- "x":425,
- "y":0
- },
- {
- "x":426,
- "y":0
- },
- {
- "x":427,
- "y":0
- },
- {
- "x":428,
- "y":0
- },
- {
- "x":429,
- "y":0
- },
- {
- "x":430,
- "y":0
- },
- {
- "x":431,
- "y":0
- },
- {
- "x":432,
- "y":0
- },
- {
- "x":433,
- "y":0
- },
- {
- "x":434,
- "y":0
- },
- {
- "x":435,
- "y":0
- },
- {
- "x":436,
- "y":0
- },
- {
- "x":437,
- "y":0
- },
- {
- "x":438,
- "y":0
- },
- {
- "x":439,
- "y":0
- },
- {
- "x":440,
- "y":0
- },
- {
- "x":441,
- "y":0
- },
- {
- "x":442,
- "y":0
- },
- {
- "x":443,
- "y":0
- },
- {
- "x":444,
- "y":0
- },
- {
- "x":445,
- "y":0
- },
- {
- "x":446,
- "y":0
- },
- {
- "x":447,
- "y":0
- },
- {
- "x":448,
- "y":0
- },
- {
- "x":449,
- "y":0
- },
- {
- "x":450,
- "y":0
- },
- {
- "x":451,
- "y":0
- },
- {
- "x":452,
- "y":0
- },
- {
- "x":453,
- "y":0
- },
- {
- "x":454,
- "y":0
- },
- {
- "x":455,
- "y":0
- },
- {
- "x":456,
- "y":0
- },
- {
- "x":457,
- "y":0
- },
- {
- "x":458,
- "y":0
- },
- {
- "x":459,
- "y":0
- },
- {
- "x":460,
- "y":0
- },
- {
- "x":461,
- "y":0
- },
- {
- "x":462,
- "y":0
- },
- {
- "x":463,
- "y":0
- },
- {
- "x":464,
- "y":0
- },
- {
- "x":465,
- "y":0
- },
- {
- "x":466,
- "y":0
- },
- {
- "x":467,
- "y":0
- },
- {
- "x":468,
- "y":0
- },
- {
- "x":469,
- "y":0
- },
- {
- "x":470,
- "y":0
- },
- {
- "x":471,
- "y":0
- },
- {
- "x":472,
- "y":0
- },
- {
- "x":473,
- "y":0
- },
- {
- "x":474,
- "y":0
- },
- {
- "x":475,
- "y":0
- },
- {
- "x":476,
- "y":0
- },
- {
- "x":477,
- "y":0
- },
- {
- "x":478,
- "y":0
- },
- {
- "x":479,
- "y":0
- },
- {
- "x":480,
- "y":0
- },
- {
- "x":481,
- "y":0
- },
- {
- "x":482,
- "y":0
- },
- {
- "x":483,
- "y":0
- },
- {
- "x":484,
- "y":0
- },
- {
- "x":485,
- "y":0
- },
- {
- "x":486,
- "y":0
- },
- {
- "x":487,
- "y":0
- },
- {
- "x":488,
- "y":0
- },
- {
- "x":489,
- "y":0
- },
- {
- "x":490,
- "y":0
- },
- {
- "x":491,
- "y":0
- },
- {
- "x":492,
- "y":0
- },
- {
- "x":493,
- "y":0
- },
- {
- "x":494,
- "y":0
- },
- {
- "x":495,
- "y":0
- },
- {
- "x":496,
- "y":0
- },
- {
- "x":497,
- "y":0
- },
- {
- "x":498,
- "y":0
- },
- {
- "x":499,
- "y":0
- }
- ],
- [
- {
- "x":0,
- "y":0
- },
- {
- "x":1,
- "y":0
- },
- {
- "x":2,
- "y":0
- },
- {
- "x":3,
- "y":0
- },
- {
- "x":4,
- "y":0
- },
- {
- "x":5,
- "y":0
- },
- {
- "x":6,
- "y":0
- },
- {
- "x":7,
- "y":0
- },
- {
- "x":8,
- "y":0
- },
- {
- "x":9,
- "y":0
- },
- {
- "x":10,
- "y":0
- },
- {
- "x":11,
- "y":0
- },
- {
- "x":12,
- "y":0
- },
- {
- "x":13,
- "y":0
- },
- {
- "x":14,
- "y":0
- },
- {
- "x":15,
- "y":0
- },
- {
- "x":16,
- "y":0
- },
- {
- "x":17,
- "y":0
- },
- {
- "x":18,
- "y":0
- },
- {
- "x":19,
- "y":0
- },
- {
- "x":20,
- "y":0
- },
- {
- "x":21,
- "y":0
- },
- {
- "x":22,
- "y":0
- },
- {
- "x":23,
- "y":0
- },
- {
- "x":24,
- "y":0
- },
- {
- "x":25,
- "y":0
- },
- {
- "x":26,
- "y":0
- },
- {
- "x":27,
- "y":0
- },
- {
- "x":28,
- "y":0
- },
- {
- "x":29,
- "y":0
- },
- {
- "x":30,
- "y":0
- },
- {
- "x":31,
- "y":0
- },
- {
- "x":32,
- "y":0
- },
- {
- "x":33,
- "y":0
- },
- {
- "x":34,
- "y":0
- },
- {
- "x":35,
- "y":0
- },
- {
- "x":36,
- "y":0
- },
- {
- "x":37,
- "y":0
- },
- {
- "x":38,
- "y":0
- },
- {
- "x":39,
- "y":0
- },
- {
- "x":40,
- "y":0
- },
- {
- "x":41,
- "y":0
- },
- {
- "x":42,
- "y":0
- },
- {
- "x":43,
- "y":0
- },
- {
- "x":44,
- "y":0
- },
- {
- "x":45,
- "y":0
- },
- {
- "x":46,
- "y":0
- },
- {
- "x":47,
- "y":0
- },
- {
- "x":48,
- "y":0
- },
- {
- "x":49,
- "y":0
- },
- {
- "x":50,
- "y":0
- },
- {
- "x":51,
- "y":0
- },
- {
- "x":52,
- "y":0
- },
- {
- "x":53,
- "y":0
- },
- {
- "x":54,
- "y":0
- },
- {
- "x":55,
- "y":0
- },
- {
- "x":56,
- "y":0
- },
- {
- "x":57,
- "y":0
- },
- {
- "x":58,
- "y":0
- },
- {
- "x":59,
- "y":0
- },
- {
- "x":60,
- "y":0
- },
- {
- "x":61,
- "y":0
- },
- {
- "x":62,
- "y":0
- },
- {
- "x":63,
- "y":0
- },
- {
- "x":64,
- "y":0
- },
- {
- "x":65,
- "y":0
- },
- {
- "x":66,
- "y":0
- },
- {
- "x":67,
- "y":0
- },
- {
- "x":68,
- "y":0
- },
- {
- "x":69,
- "y":0
- },
- {
- "x":70,
- "y":0
- },
- {
- "x":71,
- "y":0
- },
- {
- "x":72,
- "y":0
- },
- {
- "x":73,
- "y":0
- },
- {
- "x":74,
- "y":0
- },
- {
- "x":75,
- "y":0
- },
- {
- "x":76,
- "y":0
- },
- {
- "x":77,
- "y":0
- },
- {
- "x":78,
- "y":0
- },
- {
- "x":79,
- "y":0
- },
- {
- "x":80,
- "y":0
- },
- {
- "x":81,
- "y":0
- },
- {
- "x":82,
- "y":0
- },
- {
- "x":83,
- "y":0
- },
- {
- "x":84,
- "y":0
- },
- {
- "x":85,
- "y":0
- },
- {
- "x":86,
- "y":0
- },
- {
- "x":87,
- "y":0
- },
- {
- "x":88,
- "y":0
- },
- {
- "x":89,
- "y":0
- },
- {
- "x":90,
- "y":0
- },
- {
- "x":91,
- "y":0
- },
- {
- "x":92,
- "y":0
- },
- {
- "x":93,
- "y":0
- },
- {
- "x":94,
- "y":0
- },
- {
- "x":95,
- "y":0
- },
- {
- "x":96,
- "y":0
- },
- {
- "x":97,
- "y":0
- },
- {
- "x":98,
- "y":0
- },
- {
- "x":99,
- "y":0
- },
- {
- "x":100,
- "y":0
- },
- {
- "x":101,
- "y":0
- },
- {
- "x":102,
- "y":0
- },
- {
- "x":103,
- "y":0
- },
- {
- "x":104,
- "y":0
- },
- {
- "x":105,
- "y":0
- },
- {
- "x":106,
- "y":0
- },
- {
- "x":107,
- "y":0
- },
- {
- "x":108,
- "y":0
- },
- {
- "x":109,
- "y":0
- },
- {
- "x":110,
- "y":0
- },
- {
- "x":111,
- "y":0
- },
- {
- "x":112,
- "y":0
- },
- {
- "x":113,
- "y":0
- },
- {
- "x":114,
- "y":0
- },
- {
- "x":115,
- "y":0
- },
- {
- "x":116,
- "y":0
- },
- {
- "x":117,
- "y":0
- },
- {
- "x":118,
- "y":0
- },
- {
- "x":119,
- "y":0
- },
- {
- "x":120,
- "y":0
- },
- {
- "x":121,
- "y":0
- },
- {
- "x":122,
- "y":0
- },
- {
- "x":123,
- "y":0
- },
- {
- "x":124,
- "y":0
- },
- {
- "x":125,
- "y":0
- },
- {
- "x":126,
- "y":0
- },
- {
- "x":127,
- "y":0
- },
- {
- "x":128,
- "y":0
- },
- {
- "x":129,
- "y":0
- },
- {
- "x":130,
- "y":0
- },
- {
- "x":131,
- "y":0
- },
- {
- "x":132,
- "y":0
- },
- {
- "x":133,
- "y":0
- },
- {
- "x":134,
- "y":0
- },
- {
- "x":135,
- "y":0
- },
- {
- "x":136,
- "y":0
- },
- {
- "x":137,
- "y":0
- },
- {
- "x":138,
- "y":0
- },
- {
- "x":139,
- "y":0
- },
- {
- "x":140,
- "y":0
- },
- {
- "x":141,
- "y":0
- },
- {
- "x":142,
- "y":0
- },
- {
- "x":143,
- "y":0
- },
- {
- "x":144,
- "y":0
- },
- {
- "x":145,
- "y":0
- },
- {
- "x":146,
- "y":0
- },
- {
- "x":147,
- "y":0
- },
- {
- "x":148,
- "y":0
- },
- {
- "x":149,
- "y":0
- },
- {
- "x":150,
- "y":0
- },
- {
- "x":151,
- "y":0
- },
- {
- "x":152,
- "y":0
- },
- {
- "x":153,
- "y":0
- },
- {
- "x":154,
- "y":0
- },
- {
- "x":155,
- "y":0
- },
- {
- "x":156,
- "y":0
- },
- {
- "x":157,
- "y":0
- },
- {
- "x":158,
- "y":0
- },
- {
- "x":159,
- "y":0
- },
- {
- "x":160,
- "y":0
- },
- {
- "x":161,
- "y":0
- },
- {
- "x":162,
- "y":0
- },
- {
- "x":163,
- "y":0
- },
- {
- "x":164,
- "y":0
- },
- {
- "x":165,
- "y":0
- },
- {
- "x":166,
- "y":0
- },
- {
- "x":167,
- "y":0
- },
- {
- "x":168,
- "y":0
- },
- {
- "x":169,
- "y":0
- },
- {
- "x":170,
- "y":0
- },
- {
- "x":171,
- "y":0
- },
- {
- "x":172,
- "y":0
- },
- {
- "x":173,
- "y":0
- },
- {
- "x":174,
- "y":0
- },
- {
- "x":175,
- "y":0
- },
- {
- "x":176,
- "y":0
- },
- {
- "x":177,
- "y":0
- },
- {
- "x":178,
- "y":0
- },
- {
- "x":179,
- "y":0
- },
- {
- "x":180,
- "y":0
- },
- {
- "x":181,
- "y":0
- },
- {
- "x":182,
- "y":0
- },
- {
- "x":183,
- "y":0
- },
- {
- "x":184,
- "y":0
- },
- {
- "x":185,
- "y":0
- },
- {
- "x":186,
- "y":0
- },
- {
- "x":187,
- "y":0
- },
- {
- "x":188,
- "y":0
- },
- {
- "x":189,
- "y":0
- },
- {
- "x":190,
- "y":0
- },
- {
- "x":191,
- "y":0
- },
- {
- "x":192,
- "y":0
- },
- {
- "x":193,
- "y":0
- },
- {
- "x":194,
- "y":0
- },
- {
- "x":195,
- "y":0
- },
- {
- "x":196,
- "y":0
- },
- {
- "x":197,
- "y":0
- },
- {
- "x":198,
- "y":0
- },
- {
- "x":199,
- "y":0
- },
- {
- "x":200,
- "y":0
- },
- {
- "x":201,
- "y":0
- },
- {
- "x":202,
- "y":0
- },
- {
- "x":203,
- "y":0
- },
- {
- "x":204,
- "y":0
- },
- {
- "x":205,
- "y":0
- },
- {
- "x":206,
- "y":0
- },
- {
- "x":207,
- "y":0
- },
- {
- "x":208,
- "y":0
- },
- {
- "x":209,
- "y":0
- },
- {
- "x":210,
- "y":0
- },
- {
- "x":211,
- "y":0
- },
- {
- "x":212,
- "y":0
- },
- {
- "x":213,
- "y":0
- },
- {
- "x":214,
- "y":0
- },
- {
- "x":215,
- "y":0
- },
- {
- "x":216,
- "y":0
- },
- {
- "x":217,
- "y":0
- },
- {
- "x":218,
- "y":0
- },
- {
- "x":219,
- "y":0
- },
- {
- "x":220,
- "y":0
- },
- {
- "x":221,
- "y":0
- },
- {
- "x":222,
- "y":0
- },
- {
- "x":223,
- "y":0
- },
- {
- "x":224,
- "y":0
- },
- {
- "x":225,
- "y":0
- },
- {
- "x":226,
- "y":0
- },
- {
- "x":227,
- "y":0
- },
- {
- "x":228,
- "y":0
- },
- {
- "x":229,
- "y":0
- },
- {
- "x":230,
- "y":0
- },
- {
- "x":231,
- "y":0
- },
- {
- "x":232,
- "y":0
- },
- {
- "x":233,
- "y":0
- },
- {
- "x":234,
- "y":0
- },
- {
- "x":235,
- "y":0
- },
- {
- "x":236,
- "y":0
- },
- {
- "x":237,
- "y":0
- },
- {
- "x":238,
- "y":0
- },
- {
- "x":239,
- "y":0
- },
- {
- "x":240,
- "y":0
- },
- {
- "x":241,
- "y":0
- },
- {
- "x":242,
- "y":0
- },
- {
- "x":243,
- "y":0
- },
- {
- "x":244,
- "y":0
- },
- {
- "x":245,
- "y":0
- },
- {
- "x":246,
- "y":0
- },
- {
- "x":247,
- "y":0
- },
- {
- "x":248,
- "y":0
- },
- {
- "x":249,
- "y":0
- },
- {
- "x":250,
- "y":0
- },
- {
- "x":251,
- "y":0
- },
- {
- "x":252,
- "y":0
- },
- {
- "x":253,
- "y":0
- },
- {
- "x":254,
- "y":0
- },
- {
- "x":255,
- "y":0
- },
- {
- "x":256,
- "y":0
- },
- {
- "x":257,
- "y":0
- },
- {
- "x":258,
- "y":0
- },
- {
- "x":259,
- "y":0
- },
- {
- "x":260,
- "y":0
- },
- {
- "x":261,
- "y":0
- },
- {
- "x":262,
- "y":0
- },
- {
- "x":263,
- "y":0
- },
- {
- "x":264,
- "y":0
- },
- {
- "x":265,
- "y":0
- },
- {
- "x":266,
- "y":0
- },
- {
- "x":267,
- "y":0
- },
- {
- "x":268,
- "y":0
- },
- {
- "x":269,
- "y":0
- },
- {
- "x":270,
- "y":0
- },
- {
- "x":271,
- "y":0
- },
- {
- "x":272,
- "y":0
- },
- {
- "x":273,
- "y":0
- },
- {
- "x":274,
- "y":0
- },
- {
- "x":275,
- "y":0
- },
- {
- "x":276,
- "y":0
- },
- {
- "x":277,
- "y":0
- },
- {
- "x":278,
- "y":0
- },
- {
- "x":279,
- "y":0
- },
- {
- "x":280,
- "y":0
- },
- {
- "x":281,
- "y":0
- },
- {
- "x":282,
- "y":0
- },
- {
- "x":283,
- "y":0
- },
- {
- "x":284,
- "y":0
- },
- {
- "x":285,
- "y":0
- },
- {
- "x":286,
- "y":0
- },
- {
- "x":287,
- "y":0
- },
- {
- "x":288,
- "y":0
- },
- {
- "x":289,
- "y":0
- },
- {
- "x":290,
- "y":0
- },
- {
- "x":291,
- "y":0
- },
- {
- "x":292,
- "y":0
- },
- {
- "x":293,
- "y":0
- },
- {
- "x":294,
- "y":0
- },
- {
- "x":295,
- "y":0
- },
- {
- "x":296,
- "y":0
- },
- {
- "x":297,
- "y":0
- },
- {
- "x":298,
- "y":0
- },
- {
- "x":299,
- "y":0
- },
- {
- "x":300,
- "y":0
- },
- {
- "x":301,
- "y":0
- },
- {
- "x":302,
- "y":0
- },
- {
- "x":303,
- "y":0
- },
- {
- "x":304,
- "y":0
- },
- {
- "x":305,
- "y":0
- },
- {
- "x":306,
- "y":0
- },
- {
- "x":307,
- "y":0
- },
- {
- "x":308,
- "y":0
- },
- {
- "x":309,
- "y":0
- },
- {
- "x":310,
- "y":0
- },
- {
- "x":311,
- "y":0
- },
- {
- "x":312,
- "y":0
- },
- {
- "x":313,
- "y":0
- },
- {
- "x":314,
- "y":0
- },
- {
- "x":315,
- "y":0
- },
- {
- "x":316,
- "y":0
- },
- {
- "x":317,
- "y":0
- },
- {
- "x":318,
- "y":0
- },
- {
- "x":319,
- "y":0
- },
- {
- "x":320,
- "y":0
- },
- {
- "x":321,
- "y":0
- },
- {
- "x":322,
- "y":0
- },
- {
- "x":323,
- "y":0
- },
- {
- "x":324,
- "y":0
- },
- {
- "x":325,
- "y":0
- },
- {
- "x":326,
- "y":0
- },
- {
- "x":327,
- "y":0
- },
- {
- "x":328,
- "y":0
- },
- {
- "x":329,
- "y":0
- },
- {
- "x":330,
- "y":0
- },
- {
- "x":331,
- "y":0
- },
- {
- "x":332,
- "y":0
- },
- {
- "x":333,
- "y":0
- },
- {
- "x":334,
- "y":0
- },
- {
- "x":335,
- "y":0
- },
- {
- "x":336,
- "y":0
- },
- {
- "x":337,
- "y":0
- },
- {
- "x":338,
- "y":0
- },
- {
- "x":339,
- "y":0
- },
- {
- "x":340,
- "y":0
- },
- {
- "x":341,
- "y":0
- },
- {
- "x":342,
- "y":0
- },
- {
- "x":343,
- "y":0
- },
- {
- "x":344,
- "y":0
- },
- {
- "x":345,
- "y":0
- },
- {
- "x":346,
- "y":0
- },
- {
- "x":347,
- "y":0
- },
- {
- "x":348,
- "y":0
- },
- {
- "x":349,
- "y":0
- },
- {
- "x":350,
- "y":0
- },
- {
- "x":351,
- "y":0
- },
- {
- "x":352,
- "y":0
- },
- {
- "x":353,
- "y":0
- },
- {
- "x":354,
- "y":0
- },
- {
- "x":355,
- "y":0
- },
- {
- "x":356,
- "y":0
- },
- {
- "x":357,
- "y":0
- },
- {
- "x":358,
- "y":0
- },
- {
- "x":359,
- "y":0
- },
- {
- "x":360,
- "y":0
- },
- {
- "x":361,
- "y":0
- },
- {
- "x":362,
- "y":0
- },
- {
- "x":363,
- "y":0
- },
- {
- "x":364,
- "y":0
- },
- {
- "x":365,
- "y":0
- },
- {
- "x":366,
- "y":0
- },
- {
- "x":367,
- "y":0
- },
- {
- "x":368,
- "y":0
- },
- {
- "x":369,
- "y":0
- },
- {
- "x":370,
- "y":0
- },
- {
- "x":371,
- "y":0
- },
- {
- "x":372,
- "y":0
- },
- {
- "x":373,
- "y":0
- },
- {
- "x":374,
- "y":0
- },
- {
- "x":375,
- "y":1
- },
- {
- "x":376,
- "y":1
- },
- {
- "x":377,
- "y":1
- },
- {
- "x":378,
- "y":1
- },
- {
- "x":379,
- "y":1
- },
- {
- "x":380,
- "y":1
- },
- {
- "x":381,
- "y":1
- },
- {
- "x":382,
- "y":1
- },
- {
- "x":383,
- "y":1
- },
- {
- "x":384,
- "y":1
- },
- {
- "x":385,
- "y":1
- },
- {
- "x":386,
- "y":1
- },
- {
- "x":387,
- "y":1
- },
- {
- "x":388,
- "y":1
- },
- {
- "x":389,
- "y":1
- },
- {
- "x":390,
- "y":1
- },
- {
- "x":391,
- "y":1
- },
- {
- "x":392,
- "y":1
- },
- {
- "x":393,
- "y":1
- },
- {
- "x":394,
- "y":1
- },
- {
- "x":395,
- "y":1
- },
- {
- "x":396,
- "y":1
- },
- {
- "x":397,
- "y":1
- },
- {
- "x":398,
- "y":1
- },
- {
- "x":399,
- "y":1
- },
- {
- "x":400,
- "y":1
- },
- {
- "x":401,
- "y":1
- },
- {
- "x":402,
- "y":1
- },
- {
- "x":403,
- "y":1
- },
- {
- "x":404,
- "y":1
- },
- {
- "x":405,
- "y":1
- },
- {
- "x":406,
- "y":1
- },
- {
- "x":407,
- "y":1
- },
- {
- "x":408,
- "y":1
- },
- {
- "x":409,
- "y":1
- },
- {
- "x":410,
- "y":1
- },
- {
- "x":411,
- "y":1
- },
- {
- "x":412,
- "y":1
- },
- {
- "x":413,
- "y":1
- },
- {
- "x":414,
- "y":0
- },
- {
- "x":415,
- "y":0
- },
- {
- "x":416,
- "y":0
- },
- {
- "x":417,
- "y":0
- },
- {
- "x":418,
- "y":0
- },
- {
- "x":419,
- "y":0
- },
- {
- "x":420,
- "y":0
- },
- {
- "x":421,
- "y":0
- },
- {
- "x":422,
- "y":0
- },
- {
- "x":423,
- "y":0
- },
- {
- "x":424,
- "y":0
- },
- {
- "x":425,
- "y":0
- },
- {
- "x":426,
- "y":0
- },
- {
- "x":427,
- "y":0
- },
- {
- "x":428,
- "y":0
- },
- {
- "x":429,
- "y":0
- },
- {
- "x":430,
- "y":0
- },
- {
- "x":431,
- "y":0
- },
- {
- "x":432,
- "y":0
- },
- {
- "x":433,
- "y":0
- },
- {
- "x":434,
- "y":0
- },
- {
- "x":435,
- "y":0
- },
- {
- "x":436,
- "y":0
- },
- {
- "x":437,
- "y":0
- },
- {
- "x":438,
- "y":0
- },
- {
- "x":439,
- "y":0
- },
- {
- "x":440,
- "y":0
- },
- {
- "x":441,
- "y":0
- },
- {
- "x":442,
- "y":0
- },
- {
- "x":443,
- "y":0
- },
- {
- "x":444,
- "y":0
- },
- {
- "x":445,
- "y":0
- },
- {
- "x":446,
- "y":0
- },
- {
- "x":447,
- "y":0
- },
- {
- "x":448,
- "y":0
- },
- {
- "x":449,
- "y":0
- },
- {
- "x":450,
- "y":0
- },
- {
- "x":451,
- "y":0
- },
- {
- "x":452,
- "y":0
- },
- {
- "x":453,
- "y":0
- },
- {
- "x":454,
- "y":0
- },
- {
- "x":455,
- "y":0
- },
- {
- "x":456,
- "y":0
- },
- {
- "x":457,
- "y":0
- },
- {
- "x":458,
- "y":0
- },
- {
- "x":459,
- "y":0
- },
- {
- "x":460,
- "y":0
- },
- {
- "x":461,
- "y":0
- },
- {
- "x":462,
- "y":0
- },
- {
- "x":463,
- "y":0
- },
- {
- "x":464,
- "y":0
- },
- {
- "x":465,
- "y":0
- },
- {
- "x":466,
- "y":0
- },
- {
- "x":467,
- "y":0
- },
- {
- "x":468,
- "y":0
- },
- {
- "x":469,
- "y":0
- },
- {
- "x":470,
- "y":0
- },
- {
- "x":471,
- "y":0
- },
- {
- "x":472,
- "y":0
- },
- {
- "x":473,
- "y":0
- },
- {
- "x":474,
- "y":0
- },
- {
- "x":475,
- "y":0
- },
- {
- "x":476,
- "y":0
- },
- {
- "x":477,
- "y":0
- },
- {
- "x":478,
- "y":0
- },
- {
- "x":479,
- "y":0
- },
- {
- "x":480,
- "y":0
- },
- {
- "x":481,
- "y":0
- },
- {
- "x":482,
- "y":0
- },
- {
- "x":483,
- "y":0
- },
- {
- "x":484,
- "y":0
- },
- {
- "x":485,
- "y":0
- },
- {
- "x":486,
- "y":0
- },
- {
- "x":487,
- "y":0
- },
- {
- "x":488,
- "y":0
- },
- {
- "x":489,
- "y":0
- },
- {
- "x":490,
- "y":0
- },
- {
- "x":491,
- "y":0
- },
- {
- "x":492,
- "y":0
- },
- {
- "x":493,
- "y":0
- },
- {
- "x":494,
- "y":0
- },
- {
- "x":495,
- "y":0
- },
- {
- "x":496,
- "y":0
- },
- {
- "x":497,
- "y":0
- },
- {
- "x":498,
- "y":0
- },
- {
- "x":499,
- "y":0
- }
- ]
-]} \ No newline at end of file
+{
+ "map": [
+ {
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "x": 1349195924,
+ "y": 0
+ },
+ {
+ "x": 1349195928,
+ "y": 0
+ },
+ {
+ "x": 1349195932,
+ "y": 0
+ },
+ {
+ "x": 1349195936,
+ "y": 0
+ },
+ {
+ "x": 1349195940,
+ "y": 0
+ },
+ {
+ "x": 1349195944,
+ "y": 0
+ },
+ {
+ "x": 1349195948,
+ "y": 0
+ },
+ {
+ "x": 1349195952,
+ "y": 0
+ },
+ {
+ "x": 1349195956,
+ "y": 0
+ },
+ {
+ "x": 1349195960,
+ "y": 0
+ },
+ {
+ "x": 1349195964,
+ "y": 0
+ },
+ {
+ "x": 1349195968,
+ "y": 0
+ },
+ {
+ "x": 1349195972,
+ "y": 0
+ },
+ {
+ "x": 1349195976,
+ "y": 0
+ },
+ {
+ "x": 1349195980,
+ "y": 0
+ },
+ {
+ "x": 1349195984,
+ "y": 0
+ },
+ {
+ "x": 1349195988,
+ "y": 0
+ },
+ {
+ "x": 1349195992,
+ "y": 0
+ },
+ {
+ "x": 1349195996,
+ "y": 0
+ },
+ {
+ "x": 1349196000,
+ "y": 0
+ },
+ {
+ "x": 1349196004,
+ "y": 0
+ },
+ {
+ "x": 1349196008,
+ "y": 0
+ },
+ {
+ "x": 1349196012,
+ "y": 0
+ },
+ {
+ "x": 1349196016,
+ "y": 0
+ },
+ {
+ "x": 1349196020,
+ "y": 0
+ },
+ {
+ "x": 1349196024,
+ "y": 1
+ },
+ {
+ "x": 1349196028,
+ "y": 1
+ },
+ {
+ "x": 1349196032,
+ "y": 1
+ },
+ {
+ "x": 1349196036,
+ "y": 0
+ },
+ {
+ "x": 1349196040,
+ "y": 0
+ },
+ {
+ "x": 1349196044,
+ "y": 0
+ },
+ {
+ "x": 1349196048,
+ "y": 0
+ },
+ {
+ "x": 1349196052,
+ "y": 0
+ },
+ {
+ "x": 1349196056,
+ "y": 0
+ },
+ {
+ "x": 1349196060,
+ "y": 0
+ },
+ {
+ "x": 1349196064,
+ "y": 0
+ },
+ {
+ "x": 1349196068,
+ "y": 0
+ },
+ {
+ "x": 1349196072,
+ "y": 0
+ },
+ {
+ "x": 1349196076,
+ "y": 0
+ },
+ {
+ "x": 1349196080,
+ "y": 0
+ },
+ {
+ "x": 1349196084,
+ "y": 0
+ },
+ {
+ "x": 1349196088,
+ "y": 0
+ },
+ {
+ "x": 1349196092,
+ "y": 0
+ },
+ {
+ "x": 1349196096,
+ "y": 0
+ },
+ {
+ "x": 1349196100,
+ "y": 0
+ },
+ {
+ "x": 1349196104,
+ "y": 0
+ },
+ {
+ "x": 1349196108,
+ "y": 0
+ },
+ {
+ "x": 1349196112,
+ "y": 0
+ },
+ {
+ "x": 1349196116,
+ "y": 0
+ },
+ {
+ "x": 1349196120,
+ "y": 0
+ },
+ {
+ "x": 1349196124,
+ "y": 0
+ },
+ {
+ "x": 1349196128,
+ "y": 0
+ },
+ {
+ "x": 1349196132,
+ "y": 0
+ },
+ {
+ "x": 1349196136,
+ "y": 0
+ },
+ {
+ "x": 1349196140,
+ "y": 0
+ },
+ {
+ "x": 1349196144,
+ "y": 0
+ },
+ {
+ "x": 1349196148,
+ "y": 0
+ },
+ {
+ "x": 1349196152,
+ "y": 0
+ },
+ {
+ "x": 1349196156,
+ "y": 0
+ },
+ {
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "shuffle": [
+ {
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "x": 1349195924,
+ "y": 0
+ },
+ {
+ "x": 1349195928,
+ "y": 0
+ },
+ {
+ "x": 1349195932,
+ "y": 0
+ },
+ {
+ "x": 1349195936,
+ "y": 0
+ },
+ {
+ "x": 1349195940,
+ "y": 0
+ },
+ {
+ "x": 1349195944,
+ "y": 0
+ },
+ {
+ "x": 1349195948,
+ "y": 0
+ },
+ {
+ "x": 1349195952,
+ "y": 0
+ },
+ {
+ "x": 1349195956,
+ "y": 0
+ },
+ {
+ "x": 1349195960,
+ "y": 0
+ },
+ {
+ "x": 1349195964,
+ "y": 0
+ },
+ {
+ "x": 1349195968,
+ "y": 0
+ },
+ {
+ "x": 1349195972,
+ "y": 0
+ },
+ {
+ "x": 1349195976,
+ "y": 0
+ },
+ {
+ "x": 1349195980,
+ "y": 0
+ },
+ {
+ "x": 1349195984,
+ "y": 0
+ },
+ {
+ "x": 1349195988,
+ "y": 0
+ },
+ {
+ "x": 1349195992,
+ "y": 0
+ },
+ {
+ "x": 1349195996,
+ "y": 0
+ },
+ {
+ "x": 1349196000,
+ "y": 0
+ },
+ {
+ "x": 1349196004,
+ "y": 0
+ },
+ {
+ "x": 1349196008,
+ "y": 0
+ },
+ {
+ "x": 1349196012,
+ "y": 0
+ },
+ {
+ "x": 1349196016,
+ "y": 0
+ },
+ {
+ "x": 1349196020,
+ "y": 0
+ },
+ {
+ "x": 1349196024,
+ "y": 0
+ },
+ {
+ "x": 1349196028,
+ "y": 0
+ },
+ {
+ "x": 1349196032,
+ "y": 1
+ },
+ {
+ "x": 1349196036,
+ "y": 2
+ },
+ {
+ "x": 1349196040,
+ "y": 3
+ },
+ {
+ "x": 1349196044,
+ "y": 3
+ },
+ {
+ "x": 1349196048,
+ "y": 2
+ },
+ {
+ "x": 1349196052,
+ "y": 2
+ },
+ {
+ "x": 1349196056,
+ "y": 2
+ },
+ {
+ "x": 1349196060,
+ "y": 2
+ },
+ {
+ "x": 1349196064,
+ "y": 3
+ },
+ {
+ "x": 1349196068,
+ "y": 3
+ },
+ {
+ "x": 1349196072,
+ "y": 2
+ },
+ {
+ "x": 1349196076,
+ "y": 2
+ },
+ {
+ "x": 1349196080,
+ "y": 2
+ },
+ {
+ "x": 1349196084,
+ "y": 2
+ },
+ {
+ "x": 1349196088,
+ "y": 3
+ },
+ {
+ "x": 1349196092,
+ "y": 2
+ },
+ {
+ "x": 1349196096,
+ "y": 2
+ },
+ {
+ "x": 1349196100,
+ "y": 2
+ },
+ {
+ "x": 1349196104,
+ "y": 3
+ },
+ {
+ "x": 1349196108,
+ "y": 2
+ },
+ {
+ "x": 1349196112,
+ "y": 3
+ },
+ {
+ "x": 1349196116,
+ "y": 2
+ },
+ {
+ "x": 1349196120,
+ "y": 3
+ },
+ {
+ "x": 1349196124,
+ "y": 3
+ },
+ {
+ "x": 1349196128,
+ "y": 2
+ },
+ {
+ "x": 1349196132,
+ "y": 3
+ },
+ {
+ "x": 1349196136,
+ "y": 2
+ },
+ {
+ "x": 1349196140,
+ "y": 2
+ },
+ {
+ "x": 1349196144,
+ "y": 1
+ },
+ {
+ "x": 1349196148,
+ "y": 1
+ },
+ {
+ "x": 1349196152,
+ "y": 0
+ },
+ {
+ "x": 1349196156,
+ "y": 0
+ },
+ {
+ "x": 1349196160,
+ "y": 0
+ }
+ ],
+ "reduce": [
+ {
+ "x": 1349195920,
+ "y": 0
+ },
+ {
+ "x": 1349195924,
+ "y": 0
+ },
+ {
+ "x": 1349195928,
+ "y": 0
+ },
+ {
+ "x": 1349195932,
+ "y": 0
+ },
+ {
+ "x": 1349195936,
+ "y": 0
+ },
+ {
+ "x": 1349195940,
+ "y": 0
+ },
+ {
+ "x": 1349195944,
+ "y": 0
+ },
+ {
+ "x": 1349195948,
+ "y": 0
+ },
+ {
+ "x": 1349195952,
+ "y": 0
+ },
+ {
+ "x": 1349195956,
+ "y": 0
+ },
+ {
+ "x": 1349195960,
+ "y": 0
+ },
+ {
+ "x": 1349195964,
+ "y": 0
+ },
+ {
+ "x": 1349195968,
+ "y": 0
+ },
+ {
+ "x": 1349195972,
+ "y": 0
+ },
+ {
+ "x": 1349195976,
+ "y": 0
+ },
+ {
+ "x": 1349195980,
+ "y": 0
+ },
+ {
+ "x": 1349195984,
+ "y": 0
+ },
+ {
+ "x": 1349195988,
+ "y": 0
+ },
+ {
+ "x": 1349195992,
+ "y": 0
+ },
+ {
+ "x": 1349195996,
+ "y": 0
+ },
+ {
+ "x": 1349196000,
+ "y": 0
+ },
+ {
+ "x": 1349196004,
+ "y": 0
+ },
+ {
+ "x": 1349196008,
+ "y": 0
+ },
+ {
+ "x": 1349196012,
+ "y": 0
+ },
+ {
+ "x": 1349196016,
+ "y": 0
+ },
+ {
+ "x": 1349196020,
+ "y": 0
+ },
+ {
+ "x": 1349196024,
+ "y": 0
+ },
+ {
+ "x": 1349196028,
+ "y": 0
+ },
+ {
+ "x": 1349196032,
+ "y": 0
+ },
+ {
+ "x": 1349196036,
+ "y": 0
+ },
+ {
+ "x": 1349196040,
+ "y": 1
+ },
+ {
+ "x": 1349196044,
+ "y": 2
+ },
+ {
+ "x": 1349196048,
+ "y": 1
+ },
+ {
+ "x": 1349196052,
+ "y": 2
+ },
+ {
+ "x": 1349196056,
+ "y": 2
+ },
+ {
+ "x": 1349196060,
+ "y": 1
+ },
+ {
+ "x": 1349196064,
+ "y": 1
+ },
+ {
+ "x": 1349196068,
+ "y": 2
+ },
+ {
+ "x": 1349196072,
+ "y": 2
+ },
+ {
+ "x": 1349196076,
+ "y": 1
+ },
+ {
+ "x": 1349196080,
+ "y": 2
+ },
+ {
+ "x": 1349196084,
+ "y": 1
+ },
+ {
+ "x": 1349196088,
+ "y": 1
+ },
+ {
+ "x": 1349196092,
+ "y": 2
+ },
+ {
+ "x": 1349196096,
+ "y": 2
+ },
+ {
+ "x": 1349196100,
+ "y": 1
+ },
+ {
+ "x": 1349196104,
+ "y": 2
+ },
+ {
+ "x": 1349196108,
+ "y": 1
+ },
+ {
+ "x": 1349196112,
+ "y": 2
+ },
+ {
+ "x": 1349196116,
+ "y": 1
+ },
+ {
+ "x": 1349196120,
+ "y": 1
+ },
+ {
+ "x": 1349196124,
+ "y": 2
+ },
+ {
+ "x": 1349196128,
+ "y": 1
+ },
+ {
+ "x": 1349196132,
+ "y": 2
+ },
+ {
+ "x": 1349196136,
+ "y": 2
+ },
+ {
+ "x": 1349196140,
+ "y": 2
+ },
+ {
+ "x": 1349196144,
+ "y": 1
+ },
+ {
+ "x": 1349196148,
+ "y": 1
+ },
+ {
+ "x": 1349196152,
+ "y": 1
+ },
+ {
+ "x": 1349196156,
+ "y": 0
+ },
+ {
+ "x": 1349196160,
+ "y": 0
+ }
+ ]
+}
diff --git a/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_start.json b/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_start.json
new file mode 100644
index 0000000000..ac9fd199d0
--- /dev/null
+++ b/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_start.json
@@ -0,0 +1,370 @@
+{
+ "href" : "http://localhost:8080/api/clusters/mycluster/services?ServiceInfo/service_name=MAPREDUCE&fields=components/host_components/*",
+ "items" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE",
+ "ServiceInfo" : {
+ "cluster_name" : "mycluster",
+ "service_name" : "MAPREDUCE"
+ },
+ "components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/MAPREDUCE_CLIENT",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "configs" : "{}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "STARTED",
+ "state" : "STARTED",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/MAPREDUCE_CLIENT",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/JOBTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "configs" : "{\"mapred-site\":\"version1\",\"global\":\"version1\",\"core-site\":\"version1\"}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "STARTED",
+ "state" : "STARTED",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "metrics" : {
+ "boottime" : 1.353113263E9,
+ "process" : {
+ "proc_total" : 542.4,
+ "proc_run" : 1.04722222222
+ },
+ "rpc" : {
+ "rpcAuthorizationSuccesses" : 0.0,
+ "SentBytes" : 355.647619048,
+ "rpcAuthorizationFailures" : 0.0,
+ "ReceivedBytes" : 1040.35238095,
+ "NumOpenConnections" : 0.0,
+ "callQueueLen" : 0.0,
+ "rpcAuthenticationSuccesses" : 0.0,
+ "RpcQueueTime_num_ops" : 3.32380952381,
+ "RpcProcessingTime_num_ops" : 3.32380952381,
+ "RpcProcessingTime_avg_time" : 0.142915649166,
+ "rpcAuthenticationFailures" : 0.0,
+ "RpcQueueTime_avg_time" : 0.0767488298738
+ },
+ "ugi" : {
+ "loginSuccess_num_ops" : 0.0,
+ "loginFailure_num_ops" : 0.0,
+ "loginSuccess_avg_time" : 0.0,
+ "loginFailure_avg_time" : 0.0
+ },
+ "mapred" : {
+ "Queue" : {
+ "maps_killed" : 0.0,
+ "reduces_killed" : 0.0,
+ "jobs_failed" : 0.0,
+ "reduces_completed" : 0.0,
+ "running_0" : 0.0,
+ "reduces_failed" : 0.0,
+ "reserved_map_slots" : 0.0,
+ "jobs_completed" : 0.0,
+ "waiting_maps" : 0.0,
+ "running_1440" : 0.0,
+ "maps_completed" : 0.0,
+ "jobs_preparing" : 0.0,
+ "jobs_submitted" : 0.0,
+ "reserved_reduce_slots" : 0.0,
+ "jobs_running" : 0.0,
+ "running_300" : 0.0,
+ "maps_launched" : 0.0,
+ "reduces_launched" : 0.0,
+ "running_60" : 0.0,
+ "waiting_reduces" : 0.0,
+ "maps_failed" : 0.0,
+ "jobs_killed" : 0.0
+ },
+ "jobtracker" : {
+ "blacklisted_maps" : 0.0,
+ "running_maps" : 0.0,
+ "jobs_failed" : 0.0,
+ "waiting_maps" : 0.0,
+ "maps_completed" : 0.0,
+ "trackers" : 1.0,
+ "jobs_submitted" : 0.0,
+ "map_slots" : 4.0,
+ "reserved_reduce_slots" : 0.0,
+ "trackers_graylisted" : 0.0,
+ "heartbeats" : 3.32380952381,
+ "jobs_running" : 0.0,
+ "blacklisted_reduces" : 0.0,
+ "maps_launched" : 0.0,
+ "occupied_map_slots" : 0.0,
+ "reduces_launched" : 0.0,
+ "jobs_killed" : 0.0,
+ "maps_failed" : 0.0,
+ "maps_killed" : 0.0,
+ "reduce_slots" : 2.0,
+ "reduces_killed" : 0.0,
+ "reduces_completed" : 0.0,
+ "jobs_completed" : 0.0,
+ "reserved_map_slots" : 0.0,
+ "trackers_decommissioned" : 0.0,
+ "reduces_failed" : 0.0,
+ "trackers_blacklisted" : 0.0,
+ "jobs_preparing" : 0.0,
+ "running_reduces" : 0.0,
+ "occupied_reduce_slots" : 0.0,
+ "waiting_reduces" : 0.0
+ }
+ },
+ "disk" : {
+ "disk_total" : 101.515,
+ "disk_free" : 93.4107777778,
+ "part_max_used" : 12.8
+ },
+ "cpu" : {
+ "cpu_speed" : 1986.0,
+ "cpu_wio" : 0.510555555556,
+ "cpu_num" : 1.0,
+ "cpu_idle" : 45.9291666667,
+ "cpu_nice" : 0.0,
+ "cpu_aidle" : 0.0,
+ "cpu_system" : 6.88277777778,
+ "cpu_user" : 46.6838888889
+ },
+ "rpcdetailed" : {
+ "getJobProfile_num_ops" : 0.0,
+ "getStagingAreaDir_num_ops" : 0.0,
+ "getProtocolVersion_avg_time" : 0.0,
+ "getBuildVersion_avg_time" : 0.0,
+ "getBuildVersion_num_ops" : 0.0,
+ "getNewJobId_avg_time" : 0.0,
+ "getQueueAdmins_num_ops" : 0.0,
+ "getSystemDir_num_ops" : 0.0,
+ "getTaskCompletionEvents_num_ops" : 0.0,
+ "getJobProfile_avg_time" : 0.0,
+ "submitJob_num_ops" : 0.0,
+ "getStagingAreaDir_avg_time" : 2.0,
+ "getNewJobId_num_ops" : 0.0,
+ "getJobCounters_num_ops" : 0.0,
+ "getTaskCompletionEvents_avg_time" : 0.111111111111,
+ "getProtocolVersion_num_ops" : 0.0,
+ "submitJob_avg_time" : 312.0,
+ "getSystemDir_avg_time" : 0.0,
+ "getJobStatus_num_ops" : 0.0,
+ "getJobCounters_avg_time" : 0.0,
+ "getQueueAdmins_avg_time" : 0.0,
+ "heartbeat_num_ops" : 3.32380952381,
+ "heartbeat_avg_time" : 0.142915649166,
+ "getJobStatus_avg_time" : 0.0
+ },
+ "load" : {
+ "load_fifteen" : 0.8845,
+ "load_one" : 0.516833333333,
+ "load_five" : 0.740888888889
+ },
+ "jvm" : {
+ "memHeapCommittedM" : 185.1875,
+ "logFatal" : 0.0,
+ "threadsBlocked" : 0.0,
+ "threadsWaiting" : 19.0,
+ "gcCount" : 0.00277777777778,
+ "logWarn" : 0.0,
+ "logError" : 0.0,
+ "memNonHeapCommittedM" : 23.75,
+ "gcTimeMillis" : 0.641666666667,
+ "memNonHeapUsedM" : 23.1303326472,
+ "logInfo" : 0.0,
+ "threadsNew" : 0.0,
+ "memHeapUsedM" : 101.890453742,
+ "threadsTerminated" : 0.0,
+ "threadsTimedWaiting" : 10.0,
+ "threadsRunnable" : 6.0
+ },
+ "network" : {
+ "pkts_out" : 0.455111111111,
+ "bytes_in" : 50.645,
+ "bytes_out" : 119.762888889,
+ "pkts_in" : 0.411222222222
+ },
+ "memory" : {
+ "mem_total" : 2054932.0,
+ "swap_free" : 4074713.26667,
+ "mem_buffers" : 13563.6333333,
+ "mem_shared" : 0.0,
+ "mem_cached" : 175195.088889,
+ "mem_free" : 117578.155556,
+ "swap_total" : 4128760.0
+ }
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/JOBTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/TASKTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "configs" : "{\"mapred-site\":\"version1\",\"global\":\"version1\",\"core-site\":\"version1\"}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "STARTED",
+ "state" : "STARTED",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "metrics" : {
+ "boottime" : 1.353113263E9,
+ "process" : {
+ "proc_total" : 542.625,
+ "proc_run" : 1.81944444444
+ },
+ "rpc" : {
+ "rpcAuthorizationSuccesses" : 7.15827882667E7,
+ "SentBytes" : 7.15827882667E7,
+ "rpcAuthorizationFailures" : 0.0,
+ "ReceivedBytes" : 7.15827882667E7,
+ "NumOpenConnections" : 0.0,
+ "callQueueLen" : 0.0,
+ "rpcAuthenticationSuccesses" : 0.0,
+ "RpcQueueTime_num_ops" : 7.15827882667E7,
+ "RpcProcessingTime_num_ops" : 7.15827882667E7,
+ "RpcProcessingTime_avg_time" : 0.151111111111,
+ "rpcAuthenticationFailures" : 0.0,
+ "RpcQueueTime_avg_time" : 0.151111111111
+ },
+ "ugi" : {
+ "loginSuccess_num_ops" : 0.0,
+ "loginFailure_num_ops" : 0.0,
+ "loginSuccess_avg_time" : 0.0,
+ "loginFailure_avg_time" : 0.0
+ },
+ "mapred" : {
+ "shuffleOutput" : {
+ "shuffle_handler_busy_percent" : 0.0
+ },
+ "tasktracker" : {
+ "reduces_running" : 0.0,
+ "maps_running" : 0.0,
+ "reduceTaskSlots" : 2.0,
+ "mapTaskSlots" : 4.0
+ }
+ },
+ "disk" : {
+ "disk_total" : 101.515,
+ "disk_free" : 93.4107777778,
+ "part_max_used" : 12.8
+ },
+ "cpu" : {
+ "cpu_speed" : 1986.0,
+ "cpu_wio" : 0.519444444444,
+ "cpu_num" : 1.0,
+ "cpu_idle" : 46.9705555556,
+ "cpu_nice" : 0.0,
+ "cpu_aidle" : 0.0,
+ "cpu_system" : 6.75972222222,
+ "cpu_user" : 45.7563888889
+ },
+ "rpcdetailed" : {
+ "getProtocolVersion_avg_time" : 0.0,
+ "getProtocolVersion_num_ops" : 4
+ },
+ "load" : {
+ "load_fifteen" : 0.882305555556,
+ "load_one" : 0.523944444444,
+ "load_five" : 0.739694444444
+ },
+ "jvm" : {
+ "memHeapCommittedM" : 30.375,
+ "logFatal" : 0.0,
+ "threadsBlocked" : 0.0,
+ "threadsWaiting" : 14.5333333333,
+ "gcCount" : 7.15827883321E7,
+ "logWarn" : 0.0,
+ "logError" : 0.0,
+ "memNonHeapCommittedM" : 23.1875,
+ "gcTimeMillis" : 7.15827883254E7,
+ "memNonHeapUsedM" : 21.7573377917,
+ "logInfo" : 0.0,
+ "threadsNew" : 0.0,
+ "memHeapUsedM" : 7.07001514861,
+ "threadsTerminated" : 0.0,
+ "threadsTimedWaiting" : 8.71666666667,
+ "threadsRunnable" : 6.26666666667
+ },
+ "network" : {
+ "pkts_out" : 0.453888888889,
+ "bytes_in" : 50.5375,
+ "bytes_out" : 119.456111111,
+ "pkts_in" : 0.410277777778
+ },
+ "memory" : {
+ "mem_total" : 2054932.0,
+ "swap_free" : 4074707.96667,
+ "mem_buffers" : 13563.6555556,
+ "mem_shared" : 0.0,
+ "mem_cached" : 175260.0,
+ "mem_free" : 115051.811111,
+ "swap_total" : 4128760.0
+ }
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/TASKTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_stop.json b/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_stop.json
new file mode 100644
index 0000000000..6d55a3c283
--- /dev/null
+++ b/ambari-web/app/assets/data/dashboard/mapreduce/mapreduce_stop.json
@@ -0,0 +1,370 @@
+{
+ "href" : "http://localhost:8080/api/clusters/mycluster/services?ServiceInfo/service_name=MAPREDUCE&fields=components/host_components/*",
+ "items" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE",
+ "ServiceInfo" : {
+ "cluster_name" : "mycluster",
+ "service_name" : "MAPREDUCE"
+ },
+ "components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/MAPREDUCE_CLIENT",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "configs" : "{}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "INSTALLED",
+ "state" : "INSTALLED",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/MAPREDUCE_CLIENT",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/JOBTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "configs" : "{\"mapred-site\":\"version1\",\"global\":\"version1\",\"core-site\":\"version1\"}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "INSTALLED",
+ "state" : "INSTALLED",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "metrics" : {
+ "boottime" : 1.353113263E9,
+ "process" : {
+ "proc_total" : 542.4,
+ "proc_run" : 1.04722222222
+ },
+ "rpc" : {
+ "rpcAuthorizationSuccesses" : 0.0,
+ "SentBytes" : 355.647619048,
+ "rpcAuthorizationFailures" : 0.0,
+ "ReceivedBytes" : 1040.35238095,
+ "NumOpenConnections" : 0.0,
+ "callQueueLen" : 0.0,
+ "rpcAuthenticationSuccesses" : 0.0,
+ "RpcQueueTime_num_ops" : 3.32380952381,
+ "RpcProcessingTime_num_ops" : 3.32380952381,
+ "RpcProcessingTime_avg_time" : 0.142915649166,
+ "rpcAuthenticationFailures" : 0.0,
+ "RpcQueueTime_avg_time" : 0.0767488298738
+ },
+ "ugi" : {
+ "loginSuccess_num_ops" : 0.0,
+ "loginFailure_num_ops" : 0.0,
+ "loginSuccess_avg_time" : 0.0,
+ "loginFailure_avg_time" : 0.0
+ },
+ "mapred" : {
+ "Queue" : {
+ "maps_killed" : 0.0,
+ "reduces_killed" : 0.0,
+ "jobs_failed" : 0.0,
+ "reduces_completed" : 0.0,
+ "running_0" : 0.0,
+ "reduces_failed" : 0.0,
+ "reserved_map_slots" : 0.0,
+ "jobs_completed" : 0.0,
+ "waiting_maps" : 0.0,
+ "running_1440" : 0.0,
+ "maps_completed" : 0.0,
+ "jobs_preparing" : 0.0,
+ "jobs_submitted" : 0.0,
+ "reserved_reduce_slots" : 0.0,
+ "jobs_running" : 0.0,
+ "running_300" : 0.0,
+ "maps_launched" : 0.0,
+ "reduces_launched" : 0.0,
+ "running_60" : 0.0,
+ "waiting_reduces" : 0.0,
+ "maps_failed" : 0.0,
+ "jobs_killed" : 0.0
+ },
+ "jobtracker" : {
+ "blacklisted_maps" : 0.0,
+ "running_maps" : 0.0,
+ "jobs_failed" : 0.0,
+ "waiting_maps" : 0.0,
+ "maps_completed" : 0.0,
+ "trackers" : 1.0,
+ "jobs_submitted" : 0.0,
+ "map_slots" : 4.0,
+ "reserved_reduce_slots" : 0.0,
+ "trackers_graylisted" : 0.0,
+ "heartbeats" : 3.32380952381,
+ "jobs_running" : 0.0,
+ "blacklisted_reduces" : 0.0,
+ "maps_launched" : 0.0,
+ "occupied_map_slots" : 0.0,
+ "reduces_launched" : 0.0,
+ "jobs_killed" : 0.0,
+ "maps_failed" : 0.0,
+ "maps_killed" : 0.0,
+ "reduce_slots" : 2.0,
+ "reduces_killed" : 0.0,
+ "reduces_completed" : 0.0,
+ "jobs_completed" : 0.0,
+ "reserved_map_slots" : 0.0,
+ "trackers_decommissioned" : 0.0,
+ "reduces_failed" : 0.0,
+ "trackers_blacklisted" : 0.0,
+ "jobs_preparing" : 0.0,
+ "running_reduces" : 0.0,
+ "occupied_reduce_slots" : 0.0,
+ "waiting_reduces" : 0.0
+ }
+ },
+ "disk" : {
+ "disk_total" : 101.515,
+ "disk_free" : 93.4107777778,
+ "part_max_used" : 12.8
+ },
+ "cpu" : {
+ "cpu_speed" : 1986.0,
+ "cpu_wio" : 0.510555555556,
+ "cpu_num" : 1.0,
+ "cpu_idle" : 45.9291666667,
+ "cpu_nice" : 0.0,
+ "cpu_aidle" : 0.0,
+ "cpu_system" : 6.88277777778,
+ "cpu_user" : 46.6838888889
+ },
+ "rpcdetailed" : {
+ "getJobProfile_num_ops" : 0.0,
+ "getStagingAreaDir_num_ops" : 0.0,
+ "getProtocolVersion_avg_time" : 0.0,
+ "getBuildVersion_avg_time" : 0.0,
+ "getBuildVersion_num_ops" : 0.0,
+ "getNewJobId_avg_time" : 0.0,
+ "getQueueAdmins_num_ops" : 0.0,
+ "getSystemDir_num_ops" : 0.0,
+ "getTaskCompletionEvents_num_ops" : 0.0,
+ "getJobProfile_avg_time" : 0.0,
+ "submitJob_num_ops" : 0.0,
+ "getStagingAreaDir_avg_time" : 2.0,
+ "getNewJobId_num_ops" : 0.0,
+ "getJobCounters_num_ops" : 0.0,
+ "getTaskCompletionEvents_avg_time" : 0.111111111111,
+ "getProtocolVersion_num_ops" : 0.0,
+ "submitJob_avg_time" : 312.0,
+ "getSystemDir_avg_time" : 0.0,
+ "getJobStatus_num_ops" : 0.0,
+ "getJobCounters_avg_time" : 0.0,
+ "getQueueAdmins_avg_time" : 0.0,
+ "heartbeat_num_ops" : 3.32380952381,
+ "heartbeat_avg_time" : 0.142915649166,
+ "getJobStatus_avg_time" : 0.0
+ },
+ "load" : {
+ "load_fifteen" : 0.8845,
+ "load_one" : 0.516833333333,
+ "load_five" : 0.740888888889
+ },
+ "jvm" : {
+ "memHeapCommittedM" : 185.1875,
+ "logFatal" : 0.0,
+ "threadsBlocked" : 0.0,
+ "threadsWaiting" : 19.0,
+ "gcCount" : 0.00277777777778,
+ "logWarn" : 0.0,
+ "logError" : 0.0,
+ "memNonHeapCommittedM" : 23.75,
+ "gcTimeMillis" : 0.641666666667,
+ "memNonHeapUsedM" : 23.1303326472,
+ "logInfo" : 0.0,
+ "threadsNew" : 0.0,
+ "memHeapUsedM" : 101.890453742,
+ "threadsTerminated" : 0.0,
+ "threadsTimedWaiting" : 10.0,
+ "threadsRunnable" : 6.0
+ },
+ "network" : {
+ "pkts_out" : 0.455111111111,
+ "bytes_in" : 50.645,
+ "bytes_out" : 119.762888889,
+ "pkts_in" : 0.411222222222
+ },
+ "memory" : {
+ "mem_total" : 2054932.0,
+ "swap_free" : 4074713.26667,
+ "mem_buffers" : 13563.6333333,
+ "mem_shared" : 0.0,
+ "mem_cached" : 175195.088889,
+ "mem_free" : 117578.155556,
+ "swap_total" : 4128760.0
+ }
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/JOBTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/TASKTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "service_name" : "MAPREDUCE"
+ },
+ "host_components" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "configs" : "{\"mapred-site\":\"version1\",\"global\":\"version1\",\"core-site\":\"version1\"}",
+ "cluster_name" : "mycluster",
+ "desired_configs" : "{}",
+ "desired_state" : "INSTALLED",
+ "state" : "INSTALLED",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ },
+ "metrics" : {
+ "boottime" : 1.353113263E9,
+ "process" : {
+ "proc_total" : 542.625,
+ "proc_run" : 1.81944444444
+ },
+ "rpc" : {
+ "rpcAuthorizationSuccesses" : 7.15827882667E7,
+ "SentBytes" : 7.15827882667E7,
+ "rpcAuthorizationFailures" : 0.0,
+ "ReceivedBytes" : 7.15827882667E7,
+ "NumOpenConnections" : 0.0,
+ "callQueueLen" : 0.0,
+ "rpcAuthenticationSuccesses" : 0.0,
+ "RpcQueueTime_num_ops" : 7.15827882667E7,
+ "RpcProcessingTime_num_ops" : 7.15827882667E7,
+ "RpcProcessingTime_avg_time" : 0.151111111111,
+ "rpcAuthenticationFailures" : 0.0,
+ "RpcQueueTime_avg_time" : 0.151111111111
+ },
+ "ugi" : {
+ "loginSuccess_num_ops" : 0.0,
+ "loginFailure_num_ops" : 0.0,
+ "loginSuccess_avg_time" : 0.0,
+ "loginFailure_avg_time" : 0.0
+ },
+ "mapred" : {
+ "shuffleOutput" : {
+ "shuffle_handler_busy_percent" : 0.0
+ },
+ "tasktracker" : {
+ "reduces_running" : 0.0,
+ "maps_running" : 0.0,
+ "reduceTaskSlots" : 2.0,
+ "mapTaskSlots" : 4.0
+ }
+ },
+ "disk" : {
+ "disk_total" : 101.515,
+ "disk_free" : 93.4107777778,
+ "part_max_used" : 12.8
+ },
+ "cpu" : {
+ "cpu_speed" : 1986.0,
+ "cpu_wio" : 0.519444444444,
+ "cpu_num" : 1.0,
+ "cpu_idle" : 46.9705555556,
+ "cpu_nice" : 0.0,
+ "cpu_aidle" : 0.0,
+ "cpu_system" : 6.75972222222,
+ "cpu_user" : 45.7563888889
+ },
+ "rpcdetailed" : {
+ "getProtocolVersion_avg_time" : 0.0,
+ "getProtocolVersion_num_ops" : 4
+ },
+ "load" : {
+ "load_fifteen" : 0.882305555556,
+ "load_one" : 0.523944444444,
+ "load_five" : 0.739694444444
+ },
+ "jvm" : {
+ "memHeapCommittedM" : 30.375,
+ "logFatal" : 0.0,
+ "threadsBlocked" : 0.0,
+ "threadsWaiting" : 14.5333333333,
+ "gcCount" : 7.15827883321E7,
+ "logWarn" : 0.0,
+ "logError" : 0.0,
+ "memNonHeapCommittedM" : 23.1875,
+ "gcTimeMillis" : 7.15827883254E7,
+ "memNonHeapUsedM" : 21.7573377917,
+ "logInfo" : 0.0,
+ "threadsNew" : 0.0,
+ "memHeapUsedM" : 7.07001514861,
+ "threadsTerminated" : 0.0,
+ "threadsTimedWaiting" : 8.71666666667,
+ "threadsRunnable" : 6.26666666667
+ },
+ "network" : {
+ "pkts_out" : 0.453888888889,
+ "bytes_in" : 50.5375,
+ "bytes_out" : 119.456111111,
+ "pkts_in" : 0.410277777778
+ },
+ "memory" : {
+ "mem_total" : 2054932.0,
+ "swap_free" : 4074707.96667,
+ "mem_buffers" : 13563.6555556,
+ "mem_shared" : 0.0,
+ "mem_cached" : 175260.0,
+ "mem_free" : 115051.811111,
+ "swap_total" : 4128760.0
+ }
+ },
+ "component" : [
+ {
+ "href" : "http://localhost:8080/api/clusters/mycluster/services/MAPREDUCE/components/TASKTRACKER",
+ "ServiceComponentInfo" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "service_name" : "MAPREDUCE"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/ambari-web/app/assets/data/hosts/hosts.json b/ambari-web/app/assets/data/hosts/hosts.json
index ef93276997..eede59c1be 100644
--- a/ambari-web/app/assets/data/hosts/hosts.json
+++ b/ambari-web/app/assets/data/hosts/hosts.json
@@ -7,7 +7,7 @@
"cpu_count" : 1,
"cluster_name" : "mycluster",
"last_registration_time" : 1352386560520,
- "rack_info" : "/default-rack",
+ "rack_info" : "/default-rack2",
"total_mem" : 3082813,
"os_arch" : "x86_64",
"host_name" : "dev1.hortonworks.com",
@@ -83,7 +83,7 @@
"cluster_name" : "mycluster",
"last_registration_time" : 1352386560520,
"rack_info" : "/default-rack",
- "total_mem" : 3082813,
+ "total_mem" : 3086813,
"os_arch" : "x86_64",
"host_name" : "dev2.hortonworks.com",
"disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
@@ -154,10 +154,10 @@
"href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev3.hortonworks.com",
"Hosts" : {
- "cpu_count" : 1,
+ "cpu_count" : 16,
"cluster_name" : "mycluster",
"last_registration_time" : 1352386560520,
- "rack_info" : "/default-rack",
+ "rack_info" : "/default-rack3",
"total_mem" : 3082813,
"os_arch" : "x86_64",
"host_name" : "dev3.hortonworks.com",
@@ -224,6 +224,666 @@
}
}
]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 5,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack8",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com2",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 2,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack1",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com3",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 1,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com4",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 3,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com5",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 1,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com6",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 2,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com7",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 3,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com8",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 2,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com9",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 3,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com10",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com",
+ "Hosts" : {
+ "cpu_count" : 4,
+ "cluster_name" : "mycluster",
+ "last_registration_time" : 1352386560520,
+ "rack_info" : "/default-rack",
+ "total_mem" : 3082813,
+ "os_arch" : "x86_64",
+ "host_name" : "dev.hortonworks.com11",
+ "disk_info" : "[{\"available\":\"47295056\",\"mountpoint\":\"/\",\"used\":\"3786948\",\"percent\":\"8%\",\"size\":\"51606140\",\"type\":\"ext4\"},{\"available\":\"1542800\",\"mountpoint\":\"/dev/shm\",\"used\":\"248\",\"percent\":\"1%\",\"size\":\"1543048\",\"type\":\"tmpfs\"},{\"available\":\"432210\",\"mountpoint\":\"/boot\",\"used\":\"38034\",\"percent\":\"9%\",\"size\":\"495844\",\"type\":\"ext4\"},{\"available\":\"44459872\",\"mountpoint\":\"/home\",\"used\":\"184220\",\"percent\":\"1%\",\"size\":\"47033288\",\"type\":\"ext4\"},{\"available\":\"902105496\",\"mountpoint\":\"/media/sf_ambari\",\"used\":\"74551908\",\"percent\":\"8%\",\"size\":\"976657404\",\"type\":\"vboxsf\"}]",
+ "last_heartbeat_time" : 1352461939047,
+ "os_type" : "centos6",
+ "ip" : "10.0.2.15"
+ },
+ "host_components" : [
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/SECONDARY_NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "SECONDARY_NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/JOBTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "JOBTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/HDFS_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "HDFS_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/TASKTRACKER",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "TASKTRACKER",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/NAMENODE",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "NAMENODE",
+ "host_name" : "dev.hortonworks.com"
+ }
+ },
+ {
+ "href" : "http://dev.hortonworks.com:8080/api/clusters/mycluster/hosts/dev.hortonworks.com/host_components/MAPREDUCE_CLIENT",
+ "HostRoles" : {
+ "cluster_name" : "mycluster",
+ "component_name" : "MAPREDUCE_CLIENT",
+ "host_name" : "dev.hortonworks.com"
+ }
+ }
+ ]
}
]
} \ No newline at end of file
diff --git a/ambari-web/app/controllers/installer.js b/ambari-web/app/controllers/installer.js
index 9daaa1a636..b51ed630c2 100644
--- a/ambari-web/app/controllers/installer.js
+++ b/ambari-web/app/controllers/installer.js
@@ -238,7 +238,8 @@ App.InstallerController = Em.Controller.extend({
var cluster = {
name: App.db.getClusterName() || "",
status: cStatus.status,
- isCompleted: cStatus.isCompleted
+ isCompleted: cStatus.isCompleted,
+ requestId: cStatus.requestId
};
this.set('content.cluster', cluster);
@@ -513,28 +514,28 @@ App.InstallerController = Em.Controller.extend({
dataNodeHosts.push({
hostName: host.hostName,
group: 'Default',
- isInstalled : false
+ isInstalled: false
});
}
if (isMrSelected && host.get('isTaskTracker')) {
taskTrackerHosts.push({
hostName: host.hostName,
group: 'Default',
- isInstalled : false
+ isInstalled: false
});
}
if (isHbSelected && host.get('isRegionServer')) {
regionServerHosts.push({
hostName: host.hostName,
group: 'Default',
- isInstalled : false
+ isInstalled: false
});
}
if (host.get('isClient')) {
clientHosts.pushObject({
hostName: host.hostName,
group: 'Default',
- isInstalled : false
+ isInstalled: false
});
}
}, this);
@@ -587,10 +588,10 @@ App.InstallerController = Em.Controller.extend({
var serviceConfigProperties = [];
stepController.get('stepConfigs').forEach(function (_content) {
_content.get('configs').forEach(function (_configProperties) {
- var displayType = _configProperties.get('displayType');
- if(displayType === 'directories' || displayType === 'directory') {
+ var displayType = _configProperties.get('displayType');
+ if (displayType === 'directories' || displayType === 'directory') {
var value = _configProperties.get('value').split(/\s+/g).join(',');
- _configProperties.set('value',value);
+ _configProperties.set('value', value);
}
var configProperty = {
id: _configProperties.get('id'),
@@ -720,9 +721,13 @@ App.InstallerController = Em.Controller.extend({
},
loadAdvancedConfigs: function () {
+ var configs = [];
App.db.getSelectedServiceNames().forEach(function (_serviceName) {
- this.loadAdvancedConfig(_serviceName);
+ var serviceComponents = this.loadAdvancedConfig(_serviceName);
+ configs = configs.concat(serviceComponents);
}, this);
+ this.set('content.advancedServiceConfig', configs);
+ App.db.setAdvancedServiceConfig(configs);
},
/**
* Generate serviceProperties save it to localdata
@@ -733,6 +738,7 @@ App.InstallerController = Em.Controller.extend({
var self = this;
var url = (App.testMode) ? '/data/wizard/stack/hdp/version01/' + serviceName + '.json' : App.apiPrefix + '/stacks/HDP/version/1.2.0/services/' + serviceName; // TODO: get this url from the stack selected by the user in Install Options page
var method = 'GET';
+ var serviceComponents;
$.ajax({
type: method,
url: url,
@@ -743,17 +749,8 @@ App.InstallerController = Em.Controller.extend({
var jsonData = jQuery.parseJSON(data);
console.log("TRACE: Step6 submit -> In success function for the loadAdvancedConfig call");
console.log("TRACE: Step6 submit -> value of the url is: " + url);
- var serviceComponents = jsonData.properties;
+ serviceComponents = jsonData.properties;
serviceComponents.setEach('serviceName', serviceName);
- var configs;
- if (App.db.getAdvancedServiceConfig()) {
- configs = App.db.getAdvancedServiceConfig();
- } else {
- configs = [];
- }
- configs = configs.concat(serviceComponents);
- self.set('content.advancedServiceConfig', configs);
- App.db.setAdvancedServiceConfig(configs);
console.log('TRACE: servicename: ' + serviceName);
},
@@ -766,6 +763,7 @@ App.InstallerController = Em.Controller.extend({
statusCode: require('data/statusCodes')
});
+ return serviceComponents;
},
/**
@@ -812,11 +810,12 @@ App.InstallerController = Em.Controller.extend({
console.log("TRACE: STep8 -> value of the url is: " + url);
console.log("TRACE: STep8 -> error code status is: " + request.status);
console.log('Step8: Error message is: ' + request.responseText);
- var clusterStatus = {
- status: 'PENDING',
- isInstallError: true,
- isCompleted: false
- };
+ var clusterStatus = {
+ status: 'PENDING',
+ isInstallError: false,
+ isCompleted: false
+ };
+
self.saveClusterStatus(clusterStatus);
},
@@ -828,12 +827,13 @@ App.InstallerController = Em.Controller.extend({
/**
* Clear all temporary data
*/
- finish: function(){
+ finish: function () {
this.setCurrentStep('1', false);
App.db.setService(undefined); //not to use this data at AddService page
App.db.setHosts(undefined);
App.db.setMasterComponentHosts(undefined);
App.db.setSlaveComponentHosts(undefined);
+ App.db.setClusterStatus(undefined);
}
});
diff --git a/ambari-web/app/controllers/main/admin/user.js b/ambari-web/app/controllers/main/admin/user.js
index 00743977f3..173a21d8bf 100644
--- a/ambari-web/app/controllers/main/admin/user.js
+++ b/ambari-web/app/controllers/main/admin/user.js
@@ -43,10 +43,10 @@ App.MainAdminUserController = Em.Controller.extend({
secondary:Em.I18n.t('no'),
onPrimary:function () {
- self.sendCommandToServer('/users/' + event.context.get("userName"),"DELETE" ,{},
- function (requestId) {
+ self.sendCommandToServer('/users/' + event.context.get("userName"), "DELETE" ,{},
+ function (success) {
- if (!requestId) {
+ if (!success) {
return;
}
@@ -68,7 +68,7 @@ App.MainAdminUserController = Em.Controller.extend({
sendCommandToServer : function(url, method, postData, callback){
var url = (App.testMode) ?
'/data/wizard/deploy/poll_1.json' : //content is the same as ours
- App.apiPrefix + '/' + url;
+ App.apiPrefix + url;
var method = App.testMode ? 'GET' : method;
@@ -79,17 +79,12 @@ App.MainAdminUserController = Em.Controller.extend({
dataType: 'json',
timeout: App.timeout,
success: function(data){
- if(data && data.Requests){
- callback(data.Requests.id);
- } else{
- callback(null);
- console.log('cannot get request id from ', data);
- }
+ callback(true);
},
error: function (request, ajaxOptions, error) {
//do something
- callback(null);
+ callback(false);
console.log('error on change component host status')
},
diff --git a/ambari-web/app/controllers/main/charts/heatmap_metrics/heatmap_metric.js b/ambari-web/app/controllers/main/charts/heatmap_metrics/heatmap_metric.js
index c219616b4a..9c904214a9 100644
--- a/ambari-web/app/controllers/main/charts/heatmap_metrics/heatmap_metric.js
+++ b/ambari-web/app/controllers/main/charts/heatmap_metrics/heatmap_metric.js
@@ -123,7 +123,7 @@ App.MainChartHeatmapMetric = Em.Object.extend({
var clusterName = App.router.get('clusterController.clusterName');
var fixedMetricName = this.get('defaultMetric');
fixedMetricName = fixedMetricName.replace(/\./g, "/");
- return App.formatUrl("/api/clusters/{clusterName}/hosts?fields={metricName}", {
+ return App.formatUrl(App.apiPrefix + "/clusters/{clusterName}/hosts?fields={metricName}", {
clusterName: App.router.get('clusterController.clusterName'),
metricName: fixedMetricName
}, "/data/cluster_metrics/cpu_1hr.json");
diff --git a/ambari-web/app/controllers/main/host/add_controller.js b/ambari-web/app/controllers/main/host/add_controller.js
index dcf8cf6a74..522c732bdb 100644
--- a/ambari-web/app/controllers/main/host/add_controller.js
+++ b/ambari-web/app/controllers/main/host/add_controller.js
@@ -41,7 +41,9 @@ App.AddHostController = Em.Controller.extend({
hostsInfo: null,
slaveComponentHosts: null,
masterComponentHosts: null,
- serviceConfigProperties: null
+ serviceConfigProperties: null,
+ advancedServiceConfig: null,
+ controllerName: 'addHostController'
}),
/**
@@ -187,52 +189,23 @@ App.AddHostController = Em.Controller.extend({
* Load clusterInfo(step1) to model
*/
loadClusterInfo: function(){
- var cStatus = App.db.getClusterStatus() || {status: "", isCompleted: false};
var cluster = {
- name: App.db.getClusterName() || "",
- status: cStatus.status,
- isCompleted: cStatus.isCompleted
+ name: App.router.getClusterName(),
+ status: "",
+ isCompleted: true
};
this.set('content.cluster', cluster);
console.log("AddHostController:loadClusterInfo: loaded data ", cluster);
},
/**
- * Save all info about claster to model
- * @param stepController Step1WizardController
- */
- saveClusterInfo: function (stepController) {
- var cluster = stepController.get('content.cluster');
- var clusterStatus = {
- status: cluster.status,
- isCompleted: cluster.isCompleted
- }
- App.db.setClusterName(cluster.name);
- App.db.setClusterStatus(clusterStatus);
-
- console.log("AddHostController:saveClusterInfo: saved data ", cluster);
-
- //probably next line is extra work - need to check it
- this.set('content.cluster', cluster);
- },
-
- /**
- * save status of the cluster. This is called from step8 and step9 to persist install and start requestId
- * @param clusterStatus object with status, isCompleted, requestId, isInstallError and isStartError field.
- */
- saveClusterStatus: function (clusterStatus) {
- this.set('content.cluster', clusterStatus);
- App.db.setClusterStatus(clusterStatus);
- },
-
- /**
* Temporary function for wizardStep9, before back-end integration
*/
setInfoForStep9: function () {
var hostInfo = App.db.getHosts();
for (var index in hostInfo) {
hostInfo[index].status = "pending";
- hostInfo[index].message = 'Waiting';
+ hostInfo[index].message = 'Information';
hostInfo[index].progress = '0';
}
App.db.setHosts(hostInfo);
@@ -374,6 +347,7 @@ App.AddHostController = Em.Controller.extend({
}
}
App.db.setHosts(hostInfo);
+ this.set('content.hostsInfo', hostInfo);
console.log('addHostController:saveInstalledHosts: save hosts ', hostInfo);
},
@@ -391,6 +365,8 @@ App.AddHostController = Em.Controller.extend({
hosts.passphrase = '';
hosts.confirmPassphrase = '';
}
+ App.db.setHosts(null);
+ App.db.setAllHostNames(null);
},
/**
@@ -467,28 +443,33 @@ App.AddHostController = Em.Controller.extend({
var clientHosts = [];
hosts.forEach(function (host) {
+
if (host.get('isDataNode')) {
dataNodeHosts.push({
hostName: host.hostName,
- group: 'Default'
+ group: 'Default',
+ isInstalled: host.get('isDataNodeInstalled')
});
}
if (isMrSelected && host.get('isTaskTracker')) {
taskTrackerHosts.push({
hostName: host.hostName,
- group: 'Default'
+ group: 'Default',
+ isInstalled: host.get('isTaskTrackerInstalled')
});
}
if (isHbSelected && host.get('isRegionServer')) {
regionServerHosts.push({
hostName: host.hostName,
- group: 'Default'
+ group: 'Default',
+ isInstalled: host.get('isRegionServerInstalled')
});
}
if (host.get('isClient')) {
clientHosts.pushObject({
hostName: host.hostName,
- group: 'Default'
+ group: 'Default',
+ isInstalled: host.get('isClientInstalled')
});
}
}, this);
@@ -520,14 +501,83 @@ App.AddHostController = Em.Controller.extend({
});
App.db.setSlaveComponentHosts(slaveComponentHosts);
+ console.log('addHostController.slaveComponentHosts: saved hosts', slaveComponentHosts);
this.set('content.slaveComponentHosts', slaveComponentHosts);
},
+ /**
+ * return slaveComponents bound to hosts
+ * @return {Array}
+ */
+ getSlaveComponentHosts: function () {
+ var components = [{
+ name : 'DATANODE',
+ service : 'HDFS'
+ },
+ {
+ name: 'TASKTRACKER',
+ service: 'MAPREDUCE'
+ },{
+ name: 'HBASE_REGIONSERVER',
+ service: 'HBASE'
+ }];
+
+ var result = [];
+ var services = App.Service.find();
+ var selectedServices = this.get('content.services').filterProperty('isSelected', true).mapProperty('serviceName');
+ for(var index=0; index < components.length; index++){
+ var comp = components[index];
+ if(!selectedServices.contains(comp.service)){
+ continue;
+ }
+
+
+ var service = services.findProperty('id', comp.service);
+ var hosts = [];
+
+ service.get('hostComponents').filterProperty('componentName', comp.name).forEach(function (host_component) {
+ hosts.push({
+ group: "Default",
+ hostName: host_component.get('host.id'),
+ isInstalled: true
+ });
+ }, this);
+
+ result.push({
+ componentName: comp.name,
+ displayName: App.format.role(comp.name),
+ hosts: hosts,
+ isInstalled: true
+ })
+ }
+
+ var clientsHosts = App.HostComponent.find().filterProperty('componentName', 'HDFS_CLIENT');
+ var hosts = [];
+
+ clientsHosts.forEach(function (host_component) {
+ hosts.push({
+ group: "Default",
+ hostName: host_component.get('host.id'),
+ isInstalled: true
+ });
+ }, this);
+
+ result.push({
+ componentName: 'CLIENT',
+ displayName: 'client',
+ hosts: hosts,
+ isInstalled: true
+ })
+ return result;
+ },
/**
* Load master component hosts data for using in required step controllers
*/
loadSlaveComponentHosts: function () {
var slaveComponentHosts = App.db.getSlaveComponentHosts();
+ if(!slaveComponentHosts){
+ slaveComponentHosts = this.getSlaveComponentHosts();
+ }
this.set("content.slaveComponentHosts", slaveComponentHosts);
console.log("AddHostController.loadSlaveComponentHosts: loaded hosts ", slaveComponentHosts);
},
@@ -542,7 +592,8 @@ App.AddHostController = Em.Controller.extend({
_content.get('configs').forEach(function (_configProperties) {
var configProperty = {
name: _configProperties.get('name'),
- value: _configProperties.get('value')
+ value: _configProperties.get('value'),
+ service: _configProperties.get('serviceName')
};
serviceConfigProperties.push(configProperty);
}, this);
@@ -578,13 +629,15 @@ App.AddHostController = Em.Controller.extend({
saveClients: function(stepController){
var clients = [];
var serviceComponents = require('data/service_components');
+ var hostComponents = App.HostComponent.find();
stepController.get('content').filterProperty('isSelected',true).forEach(function (_service) {
var client = serviceComponents.filterProperty('service_name', _service.serviceName).findProperty('isClient', true);
if (client) {
clients.pushObject({
component_name: client.component_name,
- display_name: client.display_name
+ display_name: client.display_name,
+ isInstalled: hostComponents.filterProperty('componentName', client.component_name).length > 0
});
}
}, this);
@@ -622,6 +675,55 @@ App.AddHostController = Em.Controller.extend({
}
},
+ loadAdvancedConfigs: function () {
+ App.db.getSelectedServiceNames().forEach(function (_serviceName) {
+ this.loadAdvancedConfig(_serviceName);
+ }, this);
+ },
+ /**
+ * Generate serviceProperties save it to localdata
+ * called form stepController step6WizardController
+ */
+
+ loadAdvancedConfig: function (serviceName) {
+ var self = this;
+ var url = (App.testMode) ? '/data/wizard/stack/hdp/version01/' + serviceName + '.json' : App.apiPrefix + '/stacks/HDP/version/1.2.0/services/' + serviceName; // TODO: get this url from the stack selected by the user in Install Options page
+ var method = 'GET';
+ $.ajax({
+ type: method,
+ url: url,
+ async: false,
+ dataType: 'text',
+ timeout: App.timeout,
+ success: function (data) {
+ var jsonData = jQuery.parseJSON(data);
+ console.log("TRACE: Step6 submit -> In success function for the loadAdvancedConfig call");
+ console.log("TRACE: Step6 submit -> value of the url is: " + url);
+ var serviceComponents = jsonData.properties;
+ serviceComponents.setEach('serviceName', serviceName);
+ var configs;
+ if (App.db.getAdvancedServiceConfig()) {
+ configs = App.db.getAdvancedServiceConfig();
+ } else {
+ configs = [];
+ }
+ configs = configs.concat(serviceComponents);
+ self.set('content.advancedServiceConfig', configs);
+ App.db.setAdvancedServiceConfig(configs);
+ console.log('TRACE: servicename: ' + serviceName);
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log("TRACE: STep6 submit -> In error function for the loadAdvancedConfig call");
+ console.log("TRACE: STep6 submit-> value of the url is: " + url);
+ console.log("TRACE: STep6 submit-> error code status is: " + request.status);
+ console.log('Step6 submit: Error message is: ' + request.responseText);
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ },
+
/**
* Generate clients list for selected services and save it to model
* @param stepController step8WizardController or step9WizardController
@@ -629,10 +731,11 @@ App.AddHostController = Em.Controller.extend({
installServices: function () {
var self = this;
var clusterName = this.get('content.cluster.name');
- var url = App.apiPrefix + '/clusters/' + clusterName + '/services?state=INIT';
+ var url = (App.testMode) ? '/data/wizard/deploy/poll_1.json' : App.apiPrefix + '/clusters/' + clusterName + '/services?state=INIT';
+ var method = (App.testMode) ? 'GET' : 'PUT';
var data = '{"ServiceInfo": {"state": "INSTALLED"}}';
$.ajax({
- type: 'PUT',
+ type: method,
url: url,
data: data,
async: false,
@@ -640,18 +743,21 @@ App.AddHostController = Em.Controller.extend({
timeout: App.timeout,
success: function (data) {
var jsonData = jQuery.parseJSON(data);
+ var installSartTime = new Date().getTime();
console.log("TRACE: STep8 -> In success function for the installService call");
console.log("TRACE: STep8 -> value of the url is: " + url);
if (jsonData) {
var requestId = jsonData.href.match(/.*\/(.*)$/)[1];
+
console.log('requestId is: ' + requestId);
var clusterStatus = {
status: 'PENDING',
requestId: requestId,
isInstallError: false,
- isCompleted: false
+ isCompleted: false,
+ installStartTime: installSartTime
};
- self.saveClusterStatus(clusterStatus);
+ //self.saveClusterStatus(clusterStatus);
} else {
console.log('ERROR: Error occurred in parsing JSON data');
}
@@ -667,7 +773,7 @@ App.AddHostController = Em.Controller.extend({
isInstallError: true,
isCompleted: false
};
- self.saveClusterStatus(clusterStatus);
+ //self.saveClusterStatus(clusterStatus);
},
statusCode: require('data/statusCodes')
@@ -682,6 +788,17 @@ App.AddHostController = Em.Controller.extend({
clearAllSteps: function () {
this.clearHosts();
//todo it)
+ },
+
+ /**
+ * Clear all temporary data
+ */
+ finish: function(){
+ this.setCurrentStep('1', false);
+ App.db.setService(undefined); //not to use this data at AddService page
+ App.db.setHosts(undefined);
+ App.db.setMasterComponentHosts(undefined);
+ App.db.setSlaveComponentHosts(undefined);
}
});
diff --git a/ambari-web/app/controllers/main/service/add_controller.js b/ambari-web/app/controllers/main/service/add_controller.js
index 1446a90ce5..13489c572f 100644
--- a/ambari-web/app/controllers/main/service/add_controller.js
+++ b/ambari-web/app/controllers/main/service/add_controller.js
@@ -43,7 +43,8 @@ App.AddServiceController = Em.Controller.extend({
masterComponentHosts: null,
serviceConfigProperties: null,
advancedServiceConfig: null,
- controllerName: 'addServiceController'
+ controllerName: 'addServiceController',
+ isWizard: true
}),
/**
@@ -166,16 +167,31 @@ App.AddServiceController = Em.Controller.extend({
* Load clusterInfo(step1) to model
*/
loadClusterInfo: function(){
- var cluster = {
- name: App.router.getClusterName(),
- status: "",
- isCompleted: true
- };
+ var cluster = App.db.getClusterStatus();
+ if(!cluster){
+ cluster = {
+ name: App.router.getClusterName(),
+ status: "",
+ isCompleted: false
+ };
+ App.db.setClusterStatus(cluster);
+ }
this.set('content.cluster', cluster);
console.log("AddServiceController:loadClusterInfo: loaded data ", cluster);
},
/**
+ * save status of the cluster. This is called from step8 and step9 to persist install and start requestId
+ * @param clusterStatus object with status, isCompleted, requestId, isInstallError and isStartError field.
+ */
+ saveClusterStatus: function (clusterStatus) {
+ clusterStatus.name = this.get('content.cluster.name');
+ this.set('content.cluster', clusterStatus);
+ console.log('called saveClusterStatus ' + JSON.stringify(clusterStatus));
+ App.db.setClusterStatus(clusterStatus);
+ },
+
+ /**
* Temporary function for wizardStep9, before back-end integration
*/
setInfoForStep9: function () {
@@ -441,19 +457,29 @@ App.AddServiceController = Em.Controller.extend({
var service = services.findProperty('id', comp.service);
var hosts = [];
- service.get('hostComponents').filterProperty('componentName', comp.name).forEach(function (host_component) {
+ if(!service){
+ service = services.findProperty('id', 'HDFS');
+ service.get('hostComponents').filterProperty('componentName', 'DATANODE').forEach(function (host_component) {
+ hosts.push({
+ group: "Default",
+ hostName: host_component.get('host.id'),
+ isInstalled: false
+ });
+ }, this);
+ } else {
+ service.get('hostComponents').filterProperty('componentName', comp.name).forEach(function (host_component) {
hosts.push({
group: "Default",
hostName: host_component.get('host.id'),
isInstalled: true
});
- }, this);
+ }, this);
+ }
result.push({
componentName: comp.name,
displayName: App.format.role(comp.name),
- hosts: hosts,
- isInstalled: true
+ hosts: hosts
})
}
@@ -471,8 +497,7 @@ App.AddServiceController = Em.Controller.extend({
result.push({
componentName: 'CLIENT',
displayName: 'client',
- hosts: hosts,
- isInstalled: true
+ hosts: hosts
})
return result;
@@ -658,7 +683,7 @@ App.AddServiceController = Em.Controller.extend({
isCompleted: false,
installStartTime: installSartTime
};
- //self.saveClusterStatus(clusterStatus);
+ self.saveClusterStatus(clusterStatus);
} else {
console.log('ERROR: Error occurred in parsing JSON data');
}
@@ -674,7 +699,7 @@ App.AddServiceController = Em.Controller.extend({
isInstallError: true,
isCompleted: false
};
- //self.saveClusterStatus(clusterStatus);
+ self.saveClusterStatus(clusterStatus);
},
statusCode: require('data/statusCodes')
@@ -700,6 +725,7 @@ App.AddServiceController = Em.Controller.extend({
App.db.setHosts(undefined);
App.db.setMasterComponentHosts(undefined);
App.db.setSlaveComponentHosts(undefined);
+ App.db.setClusterStatus(undefined);
}
});
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 4dbb6e0983..3194e23cef 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -23,14 +23,21 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
name: 'mainServiceInfoConfigsController',
stepConfigs: [], //contains all field properties that are viewed in this service
selectedService: null,
+ serviceConfigTags: null,
+ globalConfigs: [],
+ uiConfigs: [],
+ isApplyingChanges: false,
serviceConfigs: require('data/service_configs'),
+ configs: require('data/config_properties').configProperties,
+ configMapping: require('data/config_mapping'),
+ customConfigs: require('data/custom_configs'),
isSubmitDisabled: function () {
- return !this.stepConfigs.everyProperty('errorCount', 0);
- }.property('stepConfigs.@each.errorCount'),
+ return (!(this.stepConfigs.everyProperty('errorCount', 0)) || this.get('isApplyingChanges'));
+ }.property('stepConfigs.@each.errorCount', 'isApplyingChanges'),
- slaveComponentHosts : function(){
- if(!this.get('content')){
+ slaveComponentHosts: function () {
+ if (!this.get('content')) {
return;
}
console.log('slaveComponentHosts', App.db.getSlaveComponentHosts());
@@ -39,11 +46,13 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
clearStep: function () {
this.get('stepConfigs').clear();
+ this.get('globalConfigs').clear();
+ if (this.get('serviceConfigTags')) {
+ this.set('serviceConfigTags', null);
+ }
},
- serviceConfigProperties: function() {
- console.log('serviceConfigProperties');
- console.log(App.db.getServiceConfigProperties());
+ serviceConfigProperties: function () {
return App.db.getServiceConfigProperties();
}.property('content'),
@@ -52,34 +61,204 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
*/
loadStep: function () {
console.log("TRACE: Loading configure for service");
-
this.clearStep();
- this.renderServiceConfigs(this.serviceConfigs);
+ //STEP 1: set the present state of the service Properties. State depends on array of: unique combination of type(ex. core-site) and tag (ex. version01) derived from serviceInfo desired_state
+ this.setServciceConfigs();
+ //STEP 2: Create an array of objects defining tagnames to be polled and new tagnames to be set after submit
+ this.setServiceTagNames();
+ //STEP 3: Set globalConfigs and Get an array of serviceProperty objects
+ var serviceConfigs = this.getSitesConfigProperties();
+ //STEP 4: Remove properties mentioned in configMapping from serviceConfig
+ this.get('configMapping').forEach(function (_configs) {
- var storedServices = this.get('serviceConfigProperties');
- if (storedServices) {
- var configs = new Ember.Set();
+ }, this)
+ //STEP 5: Add the advanced configs to the serviceConfigs property
- // for all services`
- this.get('stepConfigs').forEach(function (_content) {
- //for all components
- _content.get('configs').forEach(function (_config) {
+ var advancedConfig = App.router.get('installerController').loadAdvancedConfig(this.get('content.serviceName'));
+ var service = this.get('serviceConfigs').findProperty('serviceName', this.get('content.serviceName'));
+ advancedConfig.forEach(function (_config) {
+ if (service) {
+ if (!this.get('configMapping').someProperty('name', _config.name)) {
+ if (service.configs.someProperty('name', _config.name)) {
+ service.configs.findProperty('name', _config.name).description = _config.description;
+ } else {
+ _config.id = "site property";
+ _config.category = 'Advanced';
+ _config.displayName = _config.name;
+ _config.defaultValue = _config.value;
+ if (/\${.*}/.test(_config.value) || (service.serviceName !== 'OOZIE' && service.serviceName !== 'HBASE')) {
+ _config.isRequired = false;
+ _config.value = '';
+ } else if (/^\s+$/.test(_config.value)) {
+ _config.isRequired = false;
+ }
+ _config.isVisible = true;
+ _config.displayType = 'advanced';
+ service.configs.pushObject(_config);
+ }
+ }
+ }
+ }, this);
+ this.loadCustomConfig();
- var componentVal = storedServices.findProperty('name', _config.get('name'));
- //if we have config for specified component
- if(componentVal){
+ this.renderServiceConfigs(this.get('serviceConfigs'));
- //set it
- _config.set('value', componentVal.value)
- }
+ console.log('---------------------------------------');
- }, this);
+
+ },
+
+ /**
+ * Get configuration for the *-site.xml
+ */
+ setServciceConfigs: function () {
+ var self = this;
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/services/' + this.get('content.serviceName');
+ $.ajax({
+ type: 'GET',
+ url: url,
+ async: false,
+ timeout: 10000,
+ dataType: 'text',
+ success: function (data) {
+ console.log("TRACE: In success function for the GET getServciceConfigs call");
+ console.log("TRACE: The url is: " + url);
+ var jsonData = jQuery.parseJSON(data);
+ self.set('serviceConfigTags', jQuery.parseJSON(jsonData.ServiceInfo.desired_configs));
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log("TRACE: In error function for the getServciceConfigs call");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: error code status is: " + request.status);
+
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ },
+
+ /**
+ * set tagnames for configuration of the *-site.xml
+ */
+ setServiceTagNames: function () {
+ console.log("TRACE: In setServiceTagNames function:");
+ var newServiceConfigTags = [];
+ var serviceConfigTags = this.get('serviceConfigTags');
+ var time = new Date().getMilliseconds();
+ console.log("The value of time is: " + time);
+ for (var index in serviceConfigTags) {
+ console.log("The value of serviceConfigTags[index]: " + serviceConfigTags[index]);
+ newServiceConfigTags.pushObject({
+ siteName: index,
+ tagName: serviceConfigTags[index],
+ newTagName: serviceConfigTags[index] + time
}, this);
}
+ this.set('serviceConfigTags', newServiceConfigTags);
+ },
- console.log('---------------------------------------');
- console.log(this.get('stepConfigs'));
+ /**
+ * Render a custom conf-site box for entering properties that will be written in *-site.xml files of the services
+ */
+ loadCustomConfig: function () {
+ var serviceConfig = this.get('serviceConfigs').findProperty('serviceName', this.get('content.serviceName'));
+ var customConfig = this.get('customConfigs').findProperty('serviceName', this.get('content.serviceName'));
+ serviceConfig.configs.pushObject(customConfig);
+ },
+
+ /**
+ * load the configs from the server
+ */
+ getSitesConfigProperties: function () {
+ var serviceConfigs = [];
+ var globalConfigs = [];
+ var localServiceConfigs = this.get('serviceConfigs').findProperty('serviceName', this.get('content.serviceName'));
+
+ this.get('serviceConfigTags').forEach(function (_tag) {
+ var properties = this.getSiteConfigProperties(_tag.siteName, _tag.tagName);
+ for (var index in properties) {
+ var serviceConfigObj = {
+ name: index,
+ value: properties[index],
+ defaultValue: properties[index],
+ filename: _tag.siteName + ".xml",
+ isVisible: true,
+ isRequired: true
+ };
+ if (_tag.siteName === 'global') {
+ if (localServiceConfigs.configs.someProperty('name', index)) {
+ var item = localServiceConfigs.configs.findProperty('name', index);
+ item.value = properties[index];
+ item.defaultValue = properties[index];
+ if (item.displayType === 'int') {
+ if (/\d+m$/.test(item.value)) {
+ item.value = item.value.slice(0, item.value.length - 1);
+ item.defaultValue = item.value;
+ }
+ }
+ if (item.displayType === 'checkbox') {
+ switch (item.value) {
+ case 'true' :
+ item.value = true;
+ break;
+ case 'false' :
+ item.value = false;
+ break;
+ }
+ }
+ }
+ serviceConfigObj.id = 'puppet var';
+ serviceConfigObj.serviceName = this.get('configs').someProperty('name', index) ? this.get('configs').findProperty('name', index).serviceName : null;
+ serviceConfigObj.category = this.get('configs').someProperty('name', index) ? this.get('configs').findProperty('name', index).category : null;
+ globalConfigs.pushObject(serviceConfigObj);
+ } else if (!this.get('configMapping').someProperty('name', index)) {
+ if (_tag.siteName !== localServiceConfigs.filename) {
+ serviceConfigObj.isVisible = false;
+ }
+ serviceConfigObj.id = 'site property';
+ serviceConfigObj.serviceName = this.get('content.serviceName');
+ serviceConfigObj.category = 'Advanced';
+ serviceConfigObj.displayName = index;
+ serviceConfigObj.displayType = 'advanced';
+ localServiceConfigs.configs.pushObject(serviceConfigObj);
+ }
+ serviceConfigs.pushObject(serviceConfigObj);
+ }
+ }, this);
+ this.set('globalConfigs', globalConfigs);
+ return serviceConfigs;
+ },
+
+ getSiteConfigProperties: function (sitename, tagname) {
+ var self = this;
+ var properties = {};
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/configurations/?type=' + sitename + '&tag=' + tagname;
+ $.ajax({
+ type: 'GET',
+ url: url,
+ async: false,
+ timeout: 10000,
+ dataType: 'json',
+ success: function (data) {
+ console.log("TRACE: In success function for the GET getSiteConfigProperties call");
+ console.log("TRACE: The url is: " + url);
+ properties = data.items.findProperty('tag', tagname).properties;
+
+ console.log("The value of config properties is: " + properties);
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log("TRACE: In error function for the getServciceConfigs call");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: error code status is: " + request.status);
+
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ return properties;
},
/**
@@ -89,6 +268,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
renderServiceConfigs: function (serviceConfigs) {
serviceConfigs.forEach(function (_serviceConfig) {
var serviceConfig = App.ServiceConfig.create({
+ filename: _serviceConfig.filename,
serviceName: _serviceConfig.serviceName,
displayName: _serviceConfig.displayName,
configCategories: _serviceConfig.configCategories,
@@ -118,35 +298,653 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
_componentConfig.configs.forEach(function (_serviceConfigProperty) {
var serviceConfigProperty = App.ServiceConfigProperty.create(_serviceConfigProperty);
serviceConfigProperty.serviceConfig = componentConfig;
- serviceConfigProperty.initialValue();
+ this.initialValue(serviceConfigProperty);
componentConfig.configs.pushObject(serviceConfigProperty);
serviceConfigProperty.validate();
}, this);
},
+ restartServicePopup: function (event) {
+ console.log("Enered the entry pointttt");
+ var self = this;
+ var result;
+ console.log('I am over hererererere: ' + this.get('content.healthStatus'));
+ if (this.get('isApplyingChanges') === true) {
+ return;
+ }
+ App.ModalPopup.show({
+ header: 'Restart ' + self.get('content.serviceName'),
+ primary: 'Restart',
+ onPrimary: function () {
+ self.restartService();
+ this.hide();
+ },
+ onSecondary: function () {
+ this.hide();
+ },
+ bodyClass: Ember.View.extend({
+ template: Ember.Handlebars.compile(['<p>Restart the service</p>'].join('\n'))
+ })
+ });
+ },
+
+ restartService: function () {
+ console.log("In restart servicesssss");
+ this.set('isApplyingChanges', true);
+ this.get('serviceConfigTags').forEach(function (_tag) {
+ _tag.newTagName = _tag.newTagName + new Date().getMilliseconds();
+ }, this);
+
+ //Step 1: Stop the service
+
+ if (this.stopService()) {
+ this.doPolling('stop', function () {
+ this.applyConfigurations();
+ }, function () {
+ this.failuresInStop();
+ });
+ } else {
+ this.failuresInStop();
+ }
+ },
+
+ failuresInStop: function () {
+ console.log("Step 1 faliure");
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Failed to stop the service');
+ this.set('isApplyingChanges', false);
+ },
+
+ applyConfigurations: function () {
+ if (App.testMode === true) {
+ result = true
+ } else {
+ var result = this.saveServiceConfigProperties();
+ }
+
+ if (result === false) {
+ console.log("Step2 failure");
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Failed to apply configs. Start the service again with last configurations', this.startServiceWrapper);
+ } else {
+ if (this.startService()) {
+ this.doPolling('start', function () {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Restarted the service successfully with new configurations');
+ this.set('isApplyingChanges', false);
+ }, function () {
+ // this.rollBackPopup('Configs applied but failures encountered during starting/checking service. Do you want to rollback to the last service configuration and restart the service.');
+ console.log("Configs applied but failures encountered during starting/checking service.");
+ });
+ } else {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Failed to start the service');
+ this.set('isApplyingChanges', false);
+ }
+ console.log("Error in start service API");
+ }
+ },
+
+ startServiceWrapper: function () {
+ if (this.startService()) {
+ this.doPolling('start', function () {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Started the service with the last known configuration.');
+ this.set('isApplyingChanges', false);
+ }, function () {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Started the service with the last known configuration.');
+ this.set('isApplyingChanges', false);
+ });
+ } else {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Started the service with the last known configuration.');
+ this.set('isApplyingChanges', false);
+ }
+ },
+
+
+ rollBack: function () {
+ var result;
+ //STEP 1: Apply the last known configuration
+ result = this.applyCreatedConfToService('previous');
+ //CASE 1: failure for rollback
+ if (result === false) {
+ console.log("rollback1 faliure");
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Failed to rolled back to the last known configuration');
+ } else {
+ //STEP 2: start the service
+ if (this.startService()) {
+ this.doPolling('start', function () {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Successfully rolled back to the last known configuration');
+ this.set('isApplyingChanges', false);
+ }, function () {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Rolled back to the last configuration but failed to start the service with the rolled back configuration');
+ this.set('isApplyingChanges', false);
+ });
+ } else {
+ this.msgPopup('Restart ' + this.get('content.serviceName'), 'Rolled back to the last configuration but failed to start the service with the rolled back configuration');
+ this.set('isApplyingChanges', false);
+ }
+ }
+ },
+
+ startService: function () {
+ var self = this;
+ var clusterName = App.router.getClusterName();
+ var url = App.apiPrefix + '/clusters/' + clusterName + '/services/' + this.get('content.serviceName');
+ var method = (App.testMode) ? 'GET' : 'PUT';
+ var data = '{"ServiceInfo": {"state": "STARTED"}}';
+ var result;
+ $.ajax({
+ type: method,
+ url: url,
+ data: data,
+ async: false,
+ dataType: 'text',
+ timeout: 5000,
+ success: function (data) {
+ var jsonData = jQuery.parseJSON(data);
+ console.log("TRACE: In success function for the startService call");
+ console.log("TRACE: value of the url is: " + url);
+ result = true;
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log("TRACE: In error function for the startService call");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: error code status is: " + request.status);
+
+ result = (App.testMode) ? true : false;
+
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ return result;
+ },
+
+ msgPopup: function (header, message, callback) {
+ var self = this;
+ var result;
+
+ App.ModalPopup.show({
+ header: 'Restart ' + self.get('content.serviceName'),
+ secondary: false,
+ onPrimary: function () {
+ if (callback !== undefined) {
+ callback();
+ }
+ this.hide();
+ },
+ bodyClass: Ember.View.extend({
+ template: Ember.Handlebars.compile(['<p>{{view.message}}</p>'].join('\n')),
+ message: message
+ })
+ });
+ },
+
+ rollBackPopup: function (message) {
+ var self = this;
+ var result;
+
+ App.ModalPopup.show({
+ header: 'Restart ' + self.get('content.serviceName'),
+ primary: 'Yes',
+ secondary: 'No',
+ onPrimary: function () {
+ self.rollBack();
+ this.hide();
+ },
+ bodyClass: Ember.View.extend({
+ template: Ember.Handlebars.compile(['<p>{{view.message}}</p>'].join('\n')),
+ message: message
+ })
+ });
+ },
+
+ stopService: function () {
+ var self = this;
+ var clusterName = App.router.getClusterName();
+ var url = App.apiPrefix + '/clusters/' + clusterName + '/services/' + this.get('content.serviceName');
+ var method = (App.testMode) ? 'GET' : 'PUT';
+ var data = '{"ServiceInfo": {"state": "INSTALLED"}}';
+ var result;
+ $.ajax({
+ type: method,
+ url: url,
+ data: data,
+ async: false,
+ dataType: 'text',
+ timeout: 5000,
+ success: function (data) {
+ var jsonData = jQuery.parseJSON(data);
+ console.log("TRACE: In success function for the stopService call");
+ console.log("TRACE: value of the url is: " + url);
+ result = true;
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log("TRACE: STep8 -> In error function for the stopService call");
+ console.log("TRACE: STep8 -> value of the url is: " + url);
+ console.log("TRACE: STep8 -> error code status is: " + request.status);
+ result = (App.testMode) ? true : false;
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ return result;
+ },
+
/**
* Save config properties
*/
saveServiceConfigProperties: function () {
- var serviceConfigProperties = [];
- this.get('stepConfigs').forEach(function (_content) {
- _content.get('configs').forEach(function (_configProperties) {
- var configProperty = {
- name: _configProperties.get('name'),
- value: _configProperties.get('value'),
- service: _configProperties.get('serviceName')
- };
- serviceConfigProperties.push(configProperty);
+ var result = false;
+ var configs = this.get('stepConfigs').findProperty('serviceName', this.get('content.serviceName')).get('configs');
+ this.saveGlobalConfigs(configs);
+ this.saveSiteConfigs(configs);
+ this.setCustomConfigs();
+ var result = this.createConfigurations();
+ if (result === true) {
+ result = this.applyCreatedConfToService('new');
+ }
+ console.log("The result from applyCreatdConfToService is: " + result);
+ return result;
+ },
+
+ saveGlobalConfigs: function (configs) {
+ var globalConfigs = this.get('globalConfigs');
+ configs.filterProperty('id', 'puppet var').forEach(function (_config) {
+ if (globalConfigs.someProperty('name', _config.name)) {
+ globalConfigs.findProperty('name', _config.name).value = _config.value;
+ } else {
+ globalConfigs.pushObject({
+ name: _config.name,
+ value: _config.value
+ });
+ }
+ }, this);
+ this.set('globalConfigs', globalConfigs);
+ },
+
+ saveSiteConfigs: function (configs) {
+ var storedConfigs = this.get('stepConfigs').filterProperty('id', 'site property').filterProperty('value');
+ var uiConfigs = this.loadUiSideConfigs();
+ this.set('uiConfigs', storedConfigs.concat(uiConfigs));
+ },
+
+ loadUiSideConfigs: function () {
+ var uiConfig = [];
+ var configs = this.get('configMapping').filterProperty('foreignKey', null);
+ configs.forEach(function (_config) {
+ var value = this.getGlobConfigValue(_config.templateName, _config.value);
+ uiConfig.pushObject({
+ "id": "site property",
+ "name": _config.name,
+ "value": value,
+ "filename": _config.filename
+ });
+ }, this);
+ var dependentConfig = this.get('configMapping').filterProperty('foreignKey');
+ dependentConfig.forEach(function (_config) {
+ this.setConfigValue(uiConfig, _config);
+ uiConfig.pushObject({
+ "id": "site property",
+ "name": _config.name,
+ "value": _config.value,
+ "filename": _config.filename
+ });
+ }, this);
+ return uiConfig;
+ },
+ /**
+ * Set all site property that are derived from other puppet-variable
+ */
+
+ getGlobConfigValue: function (templateName, expression) {
+ var express = expression.match(/<(.*?)>/g);
+ var value = expression;
+ if (express == null) {
+ return expression;
+ }
+ express.forEach(function (_express) {
+ //console.log("The value of template is: " + _express);
+ var index = parseInt(_express.match(/\[([\d]*)(?=\])/)[1]);
+ if (this.get('globalConfigs').someProperty('name', templateName[index])) {
+ //console.log("The name of the variable is: " + this.get('content.serviceConfigProperties').findProperty('name', templateName[index]).name);
+ var globValue = this.get('globalConfigs').findProperty('name', templateName[index]).value;
+ value = value.replace(_express, globValue);
+ } else {
+ /*
+ console.log("ERROR: The variable name is: " + templateName[index]);
+ console.log("ERROR: mapped config from configMapping file has no corresponding variable in " +
+ "content.serviceConfigProperties. Two possible reasons for the error could be: 1) The service is not selected. " +
+ "and/OR 2) The service_config metadata file has no corresponding global var for the site property variable");
+ */
+ value = null;
+ }
+ }, this);
+ return value;
+ },
+ /**
+ * Set all site property that are derived from other site-properties
+ */
+ setConfigValue: function (uiConfig, config) {
+ var fkValue = config.value.match(/<(foreignKey.*?)>/g);
+ if (fkValue) {
+ fkValue.forEach(function (_fkValue) {
+ var index = parseInt(_fkValue.match(/\[([\d]*)(?=\])/)[1]);
+ if (uiConfig.someProperty('name', config.foreignKey[index])) {
+ var globalValue = uiConfig.findProperty('name', config.foreignKey[index]).value;
+ config.value = config.value.replace(_fkValue, globalValue);
+ } else if (this.get('stepConfigs').someProperty('name', config.foreignKey[index])) {
+ var globalValue;
+ if (this.get('stepConfigs').findProperty('name', config.foreignKey[index]).value === '') {
+ globalValue = this.get('stepConfigs').findProperty('name', config.foreignKey[index]).defaultValue;
+ } else {
+ globalValue = this.get('stepConfigs').findProperty('name', config.foreignKey[index]).value;
+ }
+ config.value = config.value.replace(_fkValue, globalValue);
+ }
}, this);
+ }
+ if (fkValue = config.name.match(/<(foreignKey.*?)>/g)) {
+ fkValue.forEach(function (_fkValue) {
+ var index = parseInt(_fkValue.match(/\[([\d]*)(?=\])/)[1]);
+ if (uiConfig.someProperty('name', config.foreignKey[index])) {
+ var globalValue = uiConfig.findProperty('name', config.foreignKey[index]).value;
+ config.name = config.name.replace(_fkValue, globalValue);
+ } else if (this.get('stepConfigs').someProperty('name', config.foreignKey[index])) {
+ var globalValue;
+ if (this.get('stepConfigs').findProperty('name', config.foreignKey[index]).value === '') {
+ globalValue = this.get('stepConfigs').findProperty('name', config.foreignKey[index]).defaultValue;
+ } else {
+ globalValue = this.get('stepConfigs').findProperty('name', config.foreignKey[index]).value;
+ }
+ config.name = config.name.replace(_fkValue, globalValue);
+ }
+ }, this);
+ }
+ //For properties in the configMapping file having foreignKey and templateName properties.
+ var templateValue = config.value.match(/<(templateName.*?)>/g);
+ if (templateValue) {
+ templateValue.forEach(function (_value) {
+ var index = parseInt(_value.match(/\[([\d]*)(?=\])/)[1]);
+ if (this.get('globalConfigs').someProperty('name', config.templateName[index])) {
+ var globalValue = this.get('globalConfigs').findProperty('name', config.templateName[index]).value;
+ config.value = config.value.replace(_value, globalValue);
+ }
+ }, this);
+ }
+ },
+ createConfigurations: function () {
+ var result = true;
+ var serviceConfigTags = this.get('serviceConfigTags');
+ serviceConfigTags.forEach(function (_serviceTags) {
+ if (_serviceTags.siteName === 'global') {
+ console.log("TRACE: Inside globalssss");
+ result = this.createConfigSite(this.createGlobalSiteObj(_serviceTags.newTagName));
+ } else if (_serviceTags.siteName === 'core-site') {
+ console.log("TRACE: Inside core-site");
+ result = this.createConfigSite(this.createCoreSiteObj(_serviceTags.newTagName));
+ } else {
+ result = this.createConfigSite(this.createSiteObj(_serviceTags.siteName, _serviceTags.newTagName));
+ }
+ if (result === false) {
+ return false;
+ }
+ }, this);
+ return true;
+ },
+
+ createConfigSite: function (data) {
+ var result;
+ var realData = data;
+ console.log("Inside createConfigSite");
+ var clusterName = App.router.getClusterName();
+ var url = App.apiPrefix + '/clusters/' + clusterName + '/configurations';
+ $.ajax({
+ type: 'POST',
+ url: url,
+ data: JSON.stringify(data),
+ async: false,
+ dataType: 'text',
+ timeout: 5000,
+ success: function (data) {
+ var jsonData = jQuery.parseJSON(data);
+ result = true;
+ console.log("TRACE: In success function for the createConfigSite");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: value of the received data is: " + jsonData);
+ },
+
+ error: function (request, ajaxOptions, error) {
+ result = false;
+ console.log('TRACE: In Error ');
+ console.log("The original data was: " + JSON.stringify(realData));
+ console.log('TRACE: Error message is: ' + request.responseText);
+ console.log("TRACE: value of the url is: " + url);
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ console.log("Exiting createConfigSite");
+ console.log("Value of result is: " + result);
+ return result;
+ },
+ createGlobalSiteObj: function (tagName) {
+ var globalSiteProperties = {};
+ this.get('globalConfigs').forEach(function (_globalSiteObj) {
+ // do not pass any globalConfigs whose name ends with _host or _hosts
+ if (!/_hosts?$/.test(_globalSiteObj.name)) {
+ // append "m" to JVM memory options
+ if (/_heapsize|_newsize|_maxnewsize$/.test(_globalSiteObj.name)) {
+ _globalSiteObj.value += "m";
+ }
+ globalSiteProperties[_globalSiteObj.name] = _globalSiteObj.value;
+ //console.log("TRACE: name of the global property is: " + _globalSiteObj.name);
+ //console.log("TRACE: value of the global property is: " + _globalSiteObj.value);
+ }
+ }, this);
+ return {"type": "global", "tag": tagName, "properties": globalSiteProperties};
+ },
+
+ createCoreSiteObj: function (tagName) {
+ var coreSiteObj = this.get('uiConfigs').filterProperty('filename', 'core-site.xml');
+ var coreSiteProperties = {};
+ // hadoop.proxyuser.oozie.hosts needs to be skipped if oozie is not selected
+ var isOozieSelected = (this.get('content.serviceName') === 'OOZIE');
+ coreSiteObj.forEach(function (_coreSiteObj) {
+ if (isOozieSelected || _coreSiteObj.name != 'hadoop.proxyuser.oozie.hosts') {
+ coreSiteProperties[_coreSiteObj.name] = _coreSiteObj.value;
+ }
+ //console.log("TRACE: name of the property is: " + _coreSiteObj.name);
+ //console.log("TRACE: value of the property is: " + _coreSiteObj.value);
+ }, this);
+ return {"type": "core-site", "tag": tagName, "properties": coreSiteProperties};
+ },
+
+ createSiteObj: function (siteName, tagName) {
+ var siteObj = this.get('uiConfigs').filterProperty('filename', siteName + ".xml");
+ var siteProperties = {};
+ siteObj.forEach(function (_siteObj) {
+ siteProperties[_siteObj.name] = _siteObj.value;
+ }, this);
+ return {"type": siteName, "tag": tagName, "properties": siteProperties};
+ },
+
+ applyCreatedConfToService: function (configStatus) {
+ var result;
+ var clusterName = App.router.getClusterName();
+ var url = App.apiPrefix + '/clusters/' + clusterName + '/services/' + this.get('content.serviceName');
+ var data = this.getConfigForService(configStatus);
+ var realData = data;
+ $.ajax({
+ type: 'PUT',
+ url: url,
+ async: false,
+ dataType: 'text',
+ data: JSON.stringify(data),
+ timeout: 5000,
+ success: function (data) {
+ var jsonData = jQuery.parseJSON(data);
+ console.log("TRACE: In success function for the applyCreatedConfToService call");
+ console.log("TRACE: value of the url is: " + url);
+ result = true;
+ },
+
+ error: function (request, ajaxOptions, error) {
+ console.log('Error: In Error of apply');
+ console.log("The original data was: " + JSON.stringify(realData));
+ console.log('Error: Error message is: ' + request.responseText);
+ result = false;
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ console.log("Exiting applyCreatedConfToService");
+ console.log("Value of result is: " + result);
+ return result;
+ },
+
+ getConfigForService: function (config) {
+ var data = {config: {}};
+ this.get('serviceConfigTags').forEach(function (_serviceTag) {
+ if (config === 'new')
+ data.config[_serviceTag.siteName] = _serviceTag.newTagName;
+ else if (config = 'previous') {
+ data.config[_serviceTag.siteName] = _serviceTag.tagName;
+ }
+ }, this);
+ return data;
+ },
+
+ setCustomConfigs: function () {
+ var site = this.get('stepConfigs').filterProperty('id', 'conf-site');
+ site.forEach(function (_site) {
+ var keyValue = _site.value.split(/\n+/);
+ if (keyValue) {
+ keyValue.forEach(function (_keyValue) {
+ console.log("The value of the keyValue is: " + _keyValue.trim());
+ _keyValue = _keyValue.trim();
+ var key = _keyValue.match(/(.+)=/);
+ var value = _keyValue.match(/=(.*)/);
+ if (key) {
+ this.setSiteProperty(key[1], value[1], _site.filename);
+ }
+
+ }, this);
+ }
}, this);
+ },
+
+ /**
+ * Set property of the site variable
+ */
+ setSiteProperty: function (key, value, filename) {
+ if (this.get('uiConfigs').someProperty('name', key)) {
+ this.get('uiConfigs').findProperty('name', key).value = value;
+ } else {
+ this.get('uiConfigs').pushObject({
+ "id": "site property",
+ "name": key,
+ "value": value,
+ "filename": filename
+ });
+ }
+ },
+
+ getUrl: function (testUrl, url) {
+ return (App.testMode) ? testUrl : App.apiPrefix + '/clusters/' + App.router.getClusterName() + url;
+ },
- App.db.setServiceConfigProperties(serviceConfigProperties);
- alert('Data saved successfully');
-// this.set('content.serviceConfigProperties', serviceConfigProperties);
+ doPolling: function (desiredStatus, successCallback, errCallback) {
+ var POLL_INTERVAL = 4000;
+ var self = this;
+ var result = true;
+ var servicesUrl1;
+ if (desiredStatus === 'stop') {
+ servicesUrl1 = this.getUrl('/data/dashboard/mapreduce/mapreduce_stop.json', '/services?ServiceInfo/service_name=' + this.get('content.serviceName') + '&fields=components/host_components/*');
+ } else if (desiredStatus === 'start') {
+ servicesUrl1 = this.getUrl('/data/dashboard/mapreduce/mapreduce_start.json', '/services?ServiceInfo/service_name=' + this.get('content.serviceName') + '&fields=components/host_components/*');
+ }
+
+ App.HttpClient.get(servicesUrl1, App.servicesMapper, {
+ complete: function () {
+ var status;
+ if (result === false) {
+ return;
+ }
+ if (desiredStatus === 'stop') {
+ status = self.get('content.isStopped');
+ if (self.get('content.components').someProperty('workStatus', 'STOP_FAILED')) {
+ // if (!self.stopService()) {
+ // return;
+ //}
+ }
+ } else if (desiredStatus === 'start') {
+ status = self.get('content.isStarted');
+ if (self.get('content.components').someProperty('workStatus', 'START_FAILED')) {
+ //if (!self.startService()) {
+ // return;
+ //}
+ }
+ }
+ if (status !== true) {
+ window.setTimeout(function () {
+ self.doPolling(desiredStatus, successCallback, errCallback);
+ }, POLL_INTERVAL);
+ } else if (status === true) {
+ successCallback.apply(self);
+ }
+ },
+ error: function (jqXHR, textStatus) {
+ errCallback.apply(self);
+ result = false;
+ }
+ });
+ return result;
+ },
+
+ initialValue: function (config) {
+ switch (config.name) {
+ case 'namenode_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'NAMENODE').get('host.hostName'));
+ break;
+ case 'snamenode_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'SECONDARY_NAMENODE').get('host.hostName'));
+ break;
+ case 'jobtracker_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'JOBTRACKER').get('host.hostName'));
+ break;
+ case 'hbasemaster_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'HBASE_MASTER').get('host.hostName'));
+ break;
+ case 'hivemetastore_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'HIVE_SERVER').get('host.hostName'));
+ break;
+ case 'hive_ambari_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'HIVE_SERVER').get('host.hostName'));
+ break;
+ case 'oozieserver_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'OOZIE_SERVER').get('host.hostName'));
+ break;
+ case 'oozie_ambari_host':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'OOZIE_SERVER').get('host.hostName'));
+ break;
+ case 'zookeeperserver_hosts':
+ config.set('id', 'puppet var');
+ config.set('value', this.get('content.components').findProperty('componentName', 'ZOOKEEPER_SERVER').get('host.hostName'));
+ break;
+ }
}
+
});
+
App.MainServiceSlaveComponentGroupsController = App.SlaveComponentGroupsController.extend({
name: 'mainServiceSlaveComponentGroupsController',
contentBinding: 'App.router.mainServiceInfoConfigsController.slaveComponentHosts',
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index cfc7e2baa2..90fecfc785 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -26,7 +26,7 @@ App.MainServiceItemController = Em.Controller.extend({
* @param url
* @param data Object to send
*/
- sendCommandToServer : function(url, method,postData, callback){
+ sendCommandToServer : function(url, method, postData, callback){
var url = (App.testMode) ?
'/data/wizard/deploy/poll_1.json' : //content is the same as ours
App.apiPrefix + '/clusters/' + App.router.getClusterName() + url;
@@ -36,7 +36,7 @@ App.MainServiceItemController = Em.Controller.extend({
$.ajax({
type: method,
url: url,
- data: JSON.stringify(postData),
+ data: (postData != null) ? JSON.stringify(postData) : null,
dataType: 'json',
timeout: App.timeout,
success: function(data){
diff --git a/ambari-web/app/controllers/wizard/step10_controller.js b/ambari-web/app/controllers/wizard/step10_controller.js
index 3ad7485567..9f4c1246cd 100644
--- a/ambari-web/app/controllers/wizard/step10_controller.js
+++ b/ambari-web/app/controllers/wizard/step10_controller.js
@@ -66,7 +66,12 @@ App.WizardStep10Controller = Em.Controller.extend({
var succededHosts = hostsInfo.filterProperty('status', 'success');
var warnedHosts = hostsInfo.filterProperty('status', 'warning').concat(hostsInfo.filterProperty('status', 'failed'));
if (succededHosts.length) {
- var successStatement = succededHosts.length + ' nodes succeded completely to install and start all service components assigned to them.';
+ var successStatement;
+ if (succededHosts.length > 1) {
+ successStatement = succededHosts.length + ' nodes succeded completely to install and start all service components assigned to them.';
+ } else {
+ successStatement = succededHosts.length + ' node succeded completely to install and start all service components assigned to it.';
+ }
this.get('clusterInfo').findProperty('id', 1).get('status').pushObject(Ember.Object.create({
id: 1,
displayStatement: successStatement
@@ -281,7 +286,7 @@ App.WizardStep10Controller = Em.Controller.extend({
loadNagios: function (component) {
if (component.get('hostName')) {
- var statement = 'Ganglia Server installed on ' + component.get('hostName');
+ var statement = 'Nagios Server installed on ' + component.get('hostName');
this.get('clusterInfo').findProperty('id', 2).get('status').pushObject(Ember.Object.create({
id: 1,
displayStatement: statement
@@ -315,13 +320,15 @@ App.WizardStep10Controller = Em.Controller.extend({
}
},
- loadInstallTime: function() {
- var statement = 'Install and start of all services completed in ' + this.get('content.cluster.serviceStartTime') + ' minutes';
- this.get('clusterInfo').pushObject(Ember.Object.create({
- id: 5,
- displayStatement: statement,
- status: []
- }));
+ loadInstallTime: function () {
+ if (this.get('content.cluster.installTime')) {
+ var statement = 'Install and start of all services completed in ' + this.get('content.cluster.installTime') + ' minutes';
+ this.get('clusterInfo').pushObject(Ember.Object.create({
+ id: 5,
+ displayStatement: statement,
+ status: []
+ }));
+ }
}
diff --git a/ambari-web/app/controllers/wizard/step5_controller.js b/ambari-web/app/controllers/wizard/step5_controller.js
index 138ce2a84a..496c817ad0 100644
--- a/ambari-web/app/controllers/wizard/step5_controller.js
+++ b/ambari-web/app/controllers/wizard/step5_controller.js
@@ -64,7 +64,7 @@ App.WizardStep5Controller = Em.Controller.extend({
host_name: _host.name,
cpu: _host.cpu,
memory: _host.memory,
- host_info: "%@ ( %@GB %@cores )".fmt(_host.name, _host.memory, _host.cpu)
+ host_info: "%@ (%@, %@ cores)".fmt(_host.name, (_host.memory * 1024).bytesToSize(1, 'parseFloat'), _host.cpu)
});
this.get("hosts").pushObject(hostObj);
@@ -92,7 +92,7 @@ App.WizardStep5Controller = Em.Controller.extend({
var masterComponents = this.get('components').filterProperty('isMaster', true); //get full list from mock data
var servicesLength = services.length;
- for (var index =0; index < servicesLength; index++) {
+ for (var index = 0; index < servicesLength; index++) {
var componentInfo = masterComponents.filterProperty('service_name', services[index]);
componentInfo.forEach(function (_componentInfo) {
@@ -383,11 +383,10 @@ App.WizardStep5Controller = Em.Controller.extend({
mappedHosts.forEach(function (item) {
hostObj = self.get("hosts").findProperty("host_name", item);
console.log("Name of the host is: " + hostObj.host_name);
- hostInfo = " ( " + hostObj.get("memory") + "GB" + " " + hostObj.get("cpu") + "cores )";
mappingObject = Ember.Object.create({
host_name: item,
- hostInfo: hostInfo,
+ hostInfo: hostObj.host_info,
masterServices: self.get("selectedServicesMasters").filterProperty("selectedHost", item)
});
diff --git a/ambari-web/app/controllers/wizard/step6_controller.js b/ambari-web/app/controllers/wizard/step6_controller.js
index 41c8defab4..fbb88ff146 100644
--- a/ambari-web/app/controllers/wizard/step6_controller.js
+++ b/ambari-web/app/controllers/wizard/step6_controller.js
@@ -231,7 +231,7 @@ App.WizardStep6Controller = Em.Controller.extend({
var dataNode = hostsObj.findProperty('hostName', _dataNode.hostName);
if (dataNode) {
dataNode.set('isDataNode', true);
- dataNode.set('isDataNodeInstalled', true);
+ dataNode.set('isDataNodeInstalled', _dataNode.isInstalled);
}
});
@@ -241,7 +241,7 @@ App.WizardStep6Controller = Em.Controller.extend({
var taskTracker = hostsObj.findProperty('hostName', _taskTracker.hostName);
if (taskTracker) {
taskTracker.set('isTaskTracker', true);
- taskTracker.set('isTaskTrackerInstalled', true);
+ taskTracker.set('isTaskTrackerInstalled', _taskTracker.isInstalled);
}
});
}
@@ -252,7 +252,7 @@ App.WizardStep6Controller = Em.Controller.extend({
var regionServer = hostsObj.findProperty('hostName', _regionServer.hostName);
if (regionServer) {
regionServer.set('isRegionServer', true);
- regionServer.set('isRegionServerInstalled', true);
+ regionServer.set('isRegionServerInstalled', _regionServer.isInstalled);
}
});
}
@@ -262,7 +262,7 @@ App.WizardStep6Controller = Em.Controller.extend({
var client = hostsObj.findProperty('hostName', _client.hostName);
if (client) {
client.set('isClient', true);
- client.set('isClientInstalled', true);
+ client.set('isClientInstalled', _client.isInstalled);
}
}, this);
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index df265e931b..0ec1b54a50 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -116,6 +116,11 @@ App.WizardStep7Controller = Em.Controller.extend({
}
},
+
+
+ /**
+ * Render a custom conf-site box for entering properties that will be written in *-site.xml files of the services
+ */
loadCustomConfig: function () {
var serviceConfigs = this.get('serviceConfigs');
this.get('customConfigs').forEach(function (_config) {
@@ -134,8 +139,8 @@ App.WizardStep7Controller = Em.Controller.extend({
*/
renderServiceConfigs: function (serviceConfigs) {
serviceConfigs.forEach(function (_serviceConfig) {
+
var serviceConfig = App.ServiceConfig.create({
- id: _serviceConfig.id,
filename: _serviceConfig.filename,
serviceName: _serviceConfig.serviceName,
displayName: _serviceConfig.displayName,
@@ -154,6 +159,21 @@ App.WizardStep7Controller = Em.Controller.extend({
}
}, this);
+ var miscConfigs = this.get('stepConfigs').findProperty('serviceName', 'MISC').configs;
+ var showProxyGroup = this.get('selectedServiceNames').contains('HIVE') ||
+ this.get('selectedServiceNames').contains('HCATALOG') ||
+ this.get('selectedServiceNames').contains('OOZIE');
+ miscConfigs.findProperty('name', 'proxyuser_group').set('isVisible', showProxyGroup);
+ miscConfigs.findProperty('name', 'hbase_user').set('isVisible', this.get('selectedServiceNames').contains('HBASE'));
+ miscConfigs.findProperty('name', 'mapred_user').set('isVisible', this.get('selectedServiceNames').contains('MAPREDUCE'));
+ miscConfigs.findProperty('name', 'hive_user').set('isVisible', this.get('selectedServiceNames').contains('HIVE'));
+ miscConfigs.findProperty('name', 'hcat_user').set('isVisible', this.get('selectedServiceNames').contains('HCATALOG'));
+ miscConfigs.findProperty('name', 'templeton_user').set('isVisible', this.get('selectedServiceNames').contains('HCATALOG'));
+ miscConfigs.findProperty('name', 'oozie_user').set('isVisible', this.get('selectedServiceNames').contains('OOZIE'));
+ miscConfigs.findProperty('name', 'pig_user').set('isVisible', this.get('selectedServiceNames').contains('PIG'));
+ miscConfigs.findProperty('name', 'sqoop_user').set('isVisible', this.get('selectedServiceNames').contains('SQOOP'));
+ miscConfigs.findProperty('name', 'zk_user').set('isVisible', this.get('selectedServiceNames').contains('ZOOKEEPER'));
+
this.set('selectedService', this.get('stepConfigs').objectAt(0));
},
@@ -167,7 +187,6 @@ App.WizardStep7Controller = Em.Controller.extend({
var serviceConfigProperty = App.ServiceConfigProperty.create(_serviceConfigProperty);
serviceConfigProperty.serviceConfig = componentConfig;
serviceConfigProperty.initialValue();
-
componentConfig.configs.pushObject(serviceConfigProperty);
serviceConfigProperty.validate();
}, this);
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index be03044696..a57977423b 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -293,6 +293,7 @@ App.WizardStep8Controller = Em.Controller.extend({
break;
case 'GANGLIA':
this.loadGanglia(serviceObj);
+ break;
case 'HCATALOG':
break;
default:
@@ -615,7 +616,7 @@ App.WizardStep8Controller = Em.Controller.extend({
createCluster: function () {
- if (this.get('content.cluster.isCompleted')){
+ if (this.get('content.isWizard')){
return false;
}
@@ -829,7 +830,7 @@ App.WizardStep8Controller = Em.Controller.extend({
createConfigurations: function () {
var selectedServices = this.get('selectedServices');
- if (!this.get('content.cluster.isCompleted')){
+ if (!this.get('content.isWizard')){
this.createConfigSite(this.createGlobalSiteObj());
this.createConfigSite(this.createCoreSiteObj());
this.createConfigSite(this.createHdfsSiteObj('HDFS'));
diff --git a/ambari-web/app/controllers/wizard/step9_controller.js b/ambari-web/app/controllers/wizard/step9_controller.js
index 712597c055..214edf93e8 100644
--- a/ambari-web/app/controllers/wizard/step9_controller.js
+++ b/ambari-web/app/controllers/wizard/step9_controller.js
@@ -77,11 +77,14 @@ App.WizardStep9Controller = Em.Controller.extend({
},
loadHosts: function () {
- var hostInfo = [];
- hostInfo = App.db.getHosts();
+ var hostInfo = this.get('content.hostsInfo');
+
var hosts = new Ember.Set();
for (var index in hostInfo) {
- hosts.add(hostInfo[index]);
+ var obj = Em.Object.create(hostInfo[index]);
+ obj.tasks = [];
+ obj.logTasks = [];
+ hosts.add(obj);
console.log("TRACE: host name is: " + hostInfo[index].name);
}
return hosts;
@@ -433,7 +436,6 @@ App.WizardStep9Controller = Em.Controller.extend({
// This is done at HostRole level.
setLogTasksStatePerHost: function (tasksPerHost, host) {
- var tasks = [];
console.log('In step9 setTasksStatePerHost function.');
tasksPerHost.forEach(function (_task) {
console.log('In step9 _taskPerHost function.');
@@ -491,7 +493,7 @@ App.WizardStep9Controller = Em.Controller.extend({
getUrl: function () {
var clusterName = this.get('content.cluster.name');
- var requestId = App.db.getClusterStatus().requestId;
+ var requestId = this.get('content.cluster.requestId');
var url = App.apiPrefix + '/clusters/' + clusterName + '/requests/' + requestId + '?fields=tasks/*';
console.log("URL for step9 is: " + url);
return url;
diff --git a/ambari-web/app/data/config_mapping.js b/ambari-web/app/data/config_mapping.js
index cf9f44505b..77e1bb437a 100644
--- a/ambari-web/app/data/config_mapping.js
+++ b/ambari-web/app/data/config_mapping.js
@@ -102,13 +102,6 @@ module.exports = [
"filename": "hdfs-site.xml"
},
{
- "name": "dfs.webhdfs.enabled",
- "templateName": ["dfs_webhdfs_enabled"],
- "foreignKey": null,
- "value": "<templateName[0]>",
- "filename": "hdfs-site.xml"
- },
- {
"name": "dfs.datanode.failed.volumes.tolerated",
"templateName": ["dfs_datanode_failed_volume_tolerated"],
"foreignKey": null,
diff --git a/ambari-web/app/data/config_properties.js b/ambari-web/app/data/config_properties.js
index 80c427bb15..724cb840e2 100644
--- a/ambari-web/app/data/config_properties.js
+++ b/ambari-web/app/data/config_properties.js
@@ -609,7 +609,7 @@ module.exports =
{
"id": "puppet var",
"name": "proxyuser_group",
- "displayName": "Proxy group for Hive, Templeton and Oozie.",
+ "displayName": "Proxy group for Hive, Templeton, and Oozie",
"description": "",
"defaultValue": "users",
"isReconfigurable": false,
@@ -648,8 +648,8 @@ module.exports =
{
"id": "puppet var",
"name": "dfs_replication",
- "displayName": "Include hosts",
- "description": "Include entered hosts",
+ "displayName": "Block replication",
+ "description": "Default block replication.",
"displayType": "int",
"defaultValue": "3",
"isReconfigurable": false,
diff --git a/ambari-web/app/initialize.js b/ambari-web/app/initialize.js
index e812d85858..4839f96802 100644
--- a/ambari-web/app/initialize.js
+++ b/ambari-web/app/initialize.js
@@ -22,7 +22,7 @@ window.App = require('app');
App.testMode = false;
App.skipBootstrap = false;
App.alwaysGoToInstaller = false;
-App.apiPrefix = '/api';
+App.apiPrefix = '/api/v1';
// default AJAX timeout
App.timeout = 20000;
diff --git a/ambari-web/app/mappers/hosts_mapper.js b/ambari-web/app/mappers/hosts_mapper.js
index 4a294e1f44..aa59a35511 100644
--- a/ambari-web/app/mappers/hosts_mapper.js
+++ b/ambari-web/app/mappers/hosts_mapper.js
@@ -28,6 +28,7 @@ App.hostsMapper = App.QuickDataMapper.create({
components: {
item : 'HostRoles.component_name'
},
+ rack: 'Hosts.rack_info',
host_components_key: 'host_components',
host_components_type: 'array',
host_components: {
diff --git a/ambari-web/app/mappers/jobs_mapper.js b/ambari-web/app/mappers/jobs_mapper.js
index 90fd035a10..afd2908b74 100644
--- a/ambari-web/app/mappers/jobs_mapper.js
+++ b/ambari-web/app/mappers/jobs_mapper.js
@@ -57,7 +57,9 @@ App.jobsMapper = App.QuickDataMapper.create({
App.jobTimeLineMapper = App.QuickDataMapper.create({
config:{
- jobTimeLine:'items'
+ map:'map',
+ shuffle:'shuffle',
+ reduce:'reduce'
},
map:function (json) {
var job = this.get('model'); // @model App.MainAppsItemBarView
@@ -71,7 +73,12 @@ App.jobTimeLineMapper = App.QuickDataMapper.create({
App.jobTasksMapper = App.QuickDataMapper.create({
config:{
- jobTaskView:'items'
+ mapNodeLocal:'mapNodeLocal',
+ mapRackLocal:'mapRackLocal',
+ mapOffSwitch:'mapOffSwitch',
+ reduceOffSwitch:'reduceOffSwitch',
+ submitTime:'submitTime',
+ finishTime:'finishTime'
},
map:function (json) {
var job = this.get('model'); // @model App.MainAppsItemBarView
diff --git a/ambari-web/app/mappers/services_mapper.js b/ambari-web/app/mappers/services_mapper.js
index 0440adce5f..80faa35681 100644
--- a/ambari-web/app/mappers/services_mapper.js
+++ b/ambari-web/app/mappers/services_mapper.js
@@ -25,6 +25,7 @@ App.servicesMapper = App.QuickDataMapper.create({
'OOZIE',
'GANGLIA',
'NAGIOS',
+ 'ZOOKEEPER',
'PIG',
'SQOOP'
],
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 7d6a1ef85a..2e5c826e36 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -340,7 +340,10 @@ Em.I18n.translations = {
'dashboard.services.hbase.masterStarted':'Master Started',
'dashboard.services.hbase.masterActivated':'Master Activated',
-
+ 'dashboard.services.configs.popup.stopService.header':'Stop service',
+ 'dashboard.services.configs.popup.stopService.body' : 'Service needs to be stopped for reconfiguration',
+ 'dashboard.services.configs.popup.restartService.header' : 'Restart service',
+ 'dashboard.services.configs.popup.restartService.body' : 'Service needs to be restarted for reconfiguration',
'timeRange.presets.1hour':'1h',
'timeRange.presets.12hour':'12h',
'timeRange.presets.1day':'1d',
diff --git a/ambari-web/app/models/component.js b/ambari-web/app/models/component.js
index 4b785af654..245d4c3c9d 100644
--- a/ambari-web/app/models/component.js
+++ b/ambari-web/app/models/component.js
@@ -62,6 +62,8 @@ App.Component.Status = {
starting: "STARTING",
stopped: "INSTALLED",
stopping: "STOPPING",
+ stop_failed: "STOP_FAILED",
+ start_failed: "START_FAILED",
getKeyName:function(value){
switch(value){
@@ -73,6 +75,10 @@ App.Component.Status = {
return 'installed';
case this.stopping:
return 'stopping';
+ case this.stop_failed:
+ return 'stop_failed';
+ case this.start_failed:
+ return 'start_failed';
}
return 'none';
}
diff --git a/ambari-web/app/models/host.js b/ambari-web/app/models/host.js
index eb9d4c2812..c86d75fe02 100644
--- a/ambari-web/app/models/host.js
+++ b/ambari-web/app/models/host.js
@@ -31,6 +31,7 @@ App.Host = DS.Model.extend({
loadAvg: DS.attr('string'),
osArch: DS.attr('string'),
ip: DS.attr('string'),
+ rack: DS.attr('string'),
healthStatus: DS.attr('string'),
cpuUsage: DS.attr('number'),
memoryUsage: DS.attr('number'),
diff --git a/ambari-web/app/models/hosts.js b/ambari-web/app/models/hosts.js
index 9a493d96a3..19cccf5e38 100644
--- a/ambari-web/app/models/hosts.js
+++ b/ambari-web/app/models/hosts.js
@@ -21,8 +21,8 @@ var App = require('app');
App.HostInfo = Ember.Object.extend({
elementId: 'host',
name: '',
- cpu: '2',
- memory: '2',
+ cpu: 2,
+ memory: 4000000000,
message: 'Information',
barColor: 'progress-info',
isChecked: true,
diff --git a/ambari-web/app/models/service.js b/ambari-web/app/models/service.js
index af8669c69b..3660d8be6e 100644
--- a/ambari-web/app/models/service.js
+++ b/ambari-web/app/models/service.js
@@ -29,20 +29,31 @@ App.Service = DS.Model.extend({
quickLinks: DS.hasMany('App.QuickLinks'),
components: DS.hasMany('App.Component'),
hostComponents: DS.hasMany('App.HostComponent'),
- isRunning: function(){
- return (this.get('healthStatus') == 'green' | this.get('healthStatus') == 'green-blinking');
+ isRunning: function () {
+ return (this.get('healthStatus') == 'green' || this.get('healthStatus') == 'green-blinking');
}.property('healthStatus'),
- healthStatus: function(){
+ healthStatus: function () {
var components = this.get('components').filterProperty('isMaster', true);
- if (components.everyProperty('workStatus', App.Component.Status.started)){
+ if (components.everyProperty('workStatus', App.Component.Status.started)) {
return 'green';
- } else if(components.someProperty('workStatus', App.Component.Status.stopped)){
- return 'red';
- } else if(components.someProperty('workStatus', App.Component.Status.starting)){
+ } else if (components.someProperty('workStatus', App.Component.Status.starting)) {
return 'green-blinking';
+ } else if (components.someProperty('workStatus', App.Component.Status.stopped)) {
+ return 'red';
+ } else {
+ return 'red-blinking';
}
- return 'red-blinking';
+ }.property('components.@each.workStatus'),
+
+ isStopped: function () {
+ var components = this.get('components');
+ return components.everyProperty('workStatus', App.Component.Status.stopped);
+ }.property('components.@each.workStatus'),
+
+ isStarted: function () {
+ var components = this.get('components').filterProperty('isMaster', true);
+ return components.everyProperty('workStatus', App.Component.Status.started);
}.property('components.@each.workStatus'),
displayName: function () {
@@ -80,8 +91,8 @@ App.Service.Health = {
starting: "STARTING",
stopping: "STOPPING",
- getKeyName:function(value){
- switch(value){
+ getKeyName: function (value) {
+ switch (value) {
case this.live:
return 'live';
case this.dead:
diff --git a/ambari-web/app/routes/add_host_routes.js b/ambari-web/app/routes/add_host_routes.js
index bbf1a7b17f..4402eb4d44 100644
--- a/ambari-web/app/routes/add_host_routes.js
+++ b/ambari-web/app/routes/add_host_routes.js
@@ -34,26 +34,6 @@ module.exports = Em.Route.extend({
router.get('mainController').connectOutlet('addHost');
},
- step0: Em.Route.extend({
- route: '/step0',
- connectOutlets: function (router) {
- console.log('in addHost.step0:connectOutlets');
- var controller = router.get('addHostController');
- controller.setCurrentStep('0', false);
- controller.loadAllPriorSteps();
- controller.connectOutlet('wizardStep1', controller.get('content'));
- },
-
- next: function (router) {
- var addHostController = router.get('addHostController');
- var wizardStep1Controller = router.get('wizardStep1Controller');
-
- addHostController.saveClusterInfo(wizardStep1Controller);
-
- router.transitionTo('step1');
- }
- }),
-
step1: Em.Route.extend({
route: '/step1',
connectOutlets: function (router) {
@@ -235,7 +215,6 @@ module.exports = Em.Route.extend({
next: function (router) {
var addHostController = router.get('addHostController');
var wizardStep9Controller = router.get('wizardStep9Controller');
- addHostController.saveClusterInfo(wizardStep9Controller);
addHostController.saveInstalledHosts(wizardStep9Controller);
router.transitionTo('step9');
}
@@ -254,7 +233,7 @@ module.exports = Em.Route.extend({
complete: function (router, context) {
if (true) { // this function will be moved to installerController where it will validate
var addHostController = router.get('addHostController');
- addHostController.setCurrentStep('1', false);
+ addHostController.finish();
router.transitionTo('hosts');
} else {
console.log('cluster installation failure');
diff --git a/ambari-web/app/routes/add_service_routes.js b/ambari-web/app/routes/add_service_routes.js
index 3386a96c7b..0823fe0a7d 100644
--- a/ambari-web/app/routes/add_service_routes.js
+++ b/ambari-web/app/routes/add_service_routes.js
@@ -154,7 +154,7 @@ module.exports = Em.Route.extend({
},
back: Em.Router.transitionTo('step5'),
retry: function(router,context) {
- var addServiceController = router.get('addSrviceController');
+ var addServiceController = router.get('addServiceController');
var wizardStep9Controller = router.get('wizardStep9Controller');
if (!wizardStep9Controller.get('isSubmitDisabled')) {
addServiceController.installServices();
@@ -165,7 +165,6 @@ module.exports = Em.Route.extend({
next: function (router) {
var addServiceController = router.get('addServiceController');
var wizardStep9Controller = router.get('wizardStep9Controller');
- //addServiceController.saveClusterInfo(wizardStep9Controller);
addServiceController.saveInstalledHosts(wizardStep9Controller);
router.transitionTo('step7');
}
diff --git a/ambari-web/app/routes/installer.js b/ambari-web/app/routes/installer.js
index cc2666c122..96cbdc3ee6 100644
--- a/ambari-web/app/routes/installer.js
+++ b/ambari-web/app/routes/installer.js
@@ -279,7 +279,6 @@ module.exports = Em.Route.extend({
next: function (router) {
var installerController = router.get('installerController');
var wizardStep9Controller = router.get('wizardStep9Controller');
- // installerController.saveClusterInfo(wizardStep9Controller);
installerController.saveInstalledHosts(wizardStep9Controller);
router.transitionTo('step10');
}
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 55d3697a9e..7ffe6d6b09 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -843,9 +843,12 @@ a:focus {
}
}
.table {
- margin-bottom: 0;
+ //margin-bottom: 0;
thead {
- background: #EDF5FC;
+ //background: #EDF5FC;
+ }
+ th {
+ border-top: none;
}
th, td {
width: 82px;
@@ -883,7 +886,68 @@ a:focus {
}
}
}
+ .sorting_asc { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAHgAAAMBAQAAAAAAAAAAAAAAAAAFCAYKAQACAQUAAAAAAAAAAAAAAAAABQMCBAYHCBAAAQUAAQMEAwAAAAAAAAAAAwECBAUGABESByExIghBMxQRAAIBAwMDAwUAAAAAAAAAAAECAwAEBRESBiExUUHhB2GBIhMU/9oADAMBAAIRAxEAPwDvA8k+Qc54sxGj32qlNi0ucrjTj/JqGlmROyJXQ2u/bOsZTmBExPd70/HXmQcW41lOX5+145h0L391KEHhR3Z28Ii6sx9AKgubiO1gaeU6Io19h9TUg/S/7eP+wia3NbBIFbuqiyn3VTCjIMArHHTJarEDGGiNU8vOKVsc7/VxBuGR3yV683X86/Cq/GpssrhP2S8emiSKRm1JS5VfyLH0WfQug7KwZR0CilWHy39++ObQTgkgeV9ux+xq9uc6U8pLfZzP6mClZpKWrvq1DilJAt4Mewh/0hRyBOsaUMoVKLvXtVU6t6+nL/HZTJYi4/rxU81tdbSu+N2Rtp7jcpB0OnUa9aoeOOVdsgDL4I1pFS+NPHmcsQ2+fw+UpLWOwwwWNVQ1kCaIcgaiONkmLGEZrDDXtcnXo5PfjC+5VybKWrWWSyF5cWbEEpJNI6kqdQSrMRqD1B9KjS2t423xoqt5AArb8QVPRwoo4UUcKK//2Q==) no-repeat 85% 50%; }
+ .sorting_desc { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAIEAAAIDAQAAAAAAAAAAAAAAAAAGBwgJCgEBAAIDAQAAAAAAAAAAAAAAAAMFBAYHCBAAAAUDAwMFAAAAAAAAAAAAAQIDBAUABgcSNTYRFQgTZFUWZhEAAAQEAggGAwAAAAAAAAAAAAECAxEhBAYSMjFBYRMzFDQFUZFSYmMHJFRk/9oADAMBAAIRAxEAPwDv4oAKACgCKc1tMmusb3Eph6cSgsgx7fucEZxGRks2llGIGVWgVm8q1dt0+6ogKaapSgdNbQPXTqAdwsN602bopk3vTnUW24rduwccbU2S5E8Sm1JM92czSZwNOKUYDFrCqTp1corDUFMpEcYap+Ipb4P5O8n81y9xXXlG50yY+thR3AEivqFvRDmduvSUrhuLtrFNXqCFvJm1LAQ5RMuchB6gBy13f7+tP6lsOipuz2jSGdy1ZJeNzmXnEtU+pWFTikmbxyTEjgglKKZpMU3ZanudYtTtSr8dMoYSKKvKMte0aUV5YGxgoASbD2iQ4Tyi6uB7Rvz/AHD9R8r7/wBWr64uta6/pKfq+JwUZP5/1/hwCFjIeTMrLo0np93q2xDtVCJh/9k=) no-repeat 85% 50%; }
+ .sorting { background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAEwATAwERAAIRAQMRAf/EAGgAAAIDAQAAAAAAAAAAAAAAAAUHAAYICgEBAQAAAAAAAAAAAAAAAAAAAAEQAAEEAQIFAgcAAAAAAAAAAAECAwQFABEGIRI0NQcTFDFBMmNUZRYRAQEBAQAAAAAAAAAAAAAAAAABEUH/2gAMAwEAAhEDEQA/AO93cd/XbXpLC9tHQ1Dr46nljUBby/gzGZB+p+Q6QhA+ZOApfDnllW/ha1tv6Ee7iyH5kRlvlbTIqHndWkNJ0HO7XFQbWeJUkpUeOpySrZh65UUnyFUW1ztaexRmIbaPyzoLE6vg2UWW9GC1e0XHnsSGEqfQohCwApK9OIGuAjfBP9VuG0m39vGqINVUe4r2xF21TVsuXZOI9N9lMmLBYkttQ21auBKhqtSUngCMkW5xqjKiYASh6SR2Tulr2HpOvf6j9p+V9/mwDeB//9k=) no-repeat 85% 50%; }
+
+ a.paginate_disabled_next, a.paginate_disabled_previous {
+ color: gray;
+ &:hover {
+ color: gray;
+ text-decoration: none;
+ }
+ }
+
+ a.paginate_enabled_next, a.paginate_enabled_previous {
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
+ div.view-wrapper {
+ float: left;
+ }
+
+ a.ui-icon-circle-close {
+ float: right;
+ opacity: 0.2;
+ padding: 1px;
+ position: relative;
+ &:hover {
+ opacity: 0.7;
+ }
+ }
+ .notActive {
+ a.ui-icon-circle-close {
+ visibility: hidden;
+ }
+ }
+ }
+
+ .page-bar {
+ border: 1px solid silver;
+ text-align:right;
+ div {
+ display: inline-block;
+ margin:0 10px;
+ }
+ .dataTables_length {
+ label {
+ display:inline;
+ }
+ select {
+ margin-bottom: 4px;
+ margin-top: 4px;
+ width:70px;
+ }
+ }
+ .dataTables_paginate {
+ a {
+ padding:0 5px;
+ }
+ }
}
+
.open-group > .dropdown-menu {
display: block;
}
diff --git a/ambari-web/app/templates/main/background_operations_popup.hbs b/ambari-web/app/templates/main/background_operations_popup.hbs
index 73afd7d276..3330538344 100644
--- a/ambari-web/app/templates/main/background_operations_popup.hbs
+++ b/ambari-web/app/templates/main/background_operations_popup.hbs
@@ -20,15 +20,16 @@
{{#view App.MainBackgroundOperation contentBinding="operation"}}
<div>
<a {{action showOperationLog target="view"}} href="#">
- {{#if view.isOpenShowLog}}Hide{{else}}Show{{/if}} info about {{operation.command}} {{operation.role}} on {{operation.host_name}}
+ <i {{bindAttr class="view.iconClass"}}></i>
+ {{#if view.isOpen}}Hide{{else}}Show{{/if}} info about {{operation.command}} {{operation.role}} on {{operation.host_name}}
</a>
- {{#if view.isOpenShowLog}}
+ {{#if view.isOpen}}
<h5>exitcode:</h5>
<pre class="stderr">{{operation.exit_code}}</pre>
<h5>stderr:</h5>
- <pre class="stderr">{{operation.stderr}}</pre>
+ <pre class="stderr">{{highlight operation.stderr [err;fail]}}</pre>
<h5>stdout:</h5>
- <pre class="stdout">{{operation.stdout}}</pre>
+ <pre class="stdout">{{highlight operation.stdout [err;fail]}}</pre>
{{/if}}
</div>
{{/view}}
diff --git a/ambari-web/app/templates/main/host.hbs b/ambari-web/app/templates/main/host.hbs
index 5a8bd70998..19266edd95 100644
--- a/ambari-web/app/templates/main/host.hbs
+++ b/ambari-web/app/templates/main/host.hbs
@@ -16,7 +16,7 @@
* limitations under the License.
}}
-<div id="hosts" class="box">
+<div id="hosts">
<div class="box-header">
<div class="button-section">
<button class="btn btn-inverse add-host-button" {{action addHost}}>
@@ -25,27 +25,24 @@
</button>
</div>
</div>
- <table class="table table-bordered table-striped">
+ <table class="datatable table table-bordered table-striped" id="hosts-table">
<thead>
<tr>
- <th class="name">
- <div class="host-name-pos">
- <a class="filter-label" href="#" {{action sortByName target="controller" }}>Name
- {{#if controller.isSort}}
- <i class="icon-arrow-up"{{bindAttr class="controller.sortClass"}}></i>
- {{/if}}
- </a>
-
- {{view Ember.TextField class="host-name-search" placeholder="search" valueBinding="view.filterByName"}}
- </div>
-
- </th>
+ <th>Name</th>
<th>Rack</th>
<th>CPU</th>
<th>RAM</th>
<th>Disk Usage</th>
<th>Load Avg</th>
- <th>
+ <th>Components</th>
+ </tr>
+ <th class="notActive"><div class="view-wrapper">{{view view.nameFilterView viewName="nameFilterViewInstance"}}</div> <a href="#" {{action "clearFilterButtonClick" target="view"}} id="view_nameFilterViewInstance" class="ui-icon ui-icon-circle-close ui-name"></a></th>
+ <th class="notActive"><div class="view-wrapper">{{view view.rackFilterView viewName="rackFilterViewInstance"}}</div> <a href="#" {{action "clearFilterButtonClick" target="view"}} id="view_rackFilterViewInstance" class="ui-icon ui-icon-circle-close ui-rack"></a></th>
+ <th class="notActive"><div class="view-wrapper">{{view view.cpuFilterView viewName="cpuFilterViewInstance"}}</div> <a href="#" {{action "clearFilterButtonClick" target="view"}} id="view_cpuFilterViewInstance" class="ui-icon ui-icon-circle-close ui-cpu"></a></th>
+ <th class="notActive"><div class="view-wrapper">{{view view.ramFilterView viewName="ramFilterViewInstance"}}</div> <a href="#" {{action "clearFilterButtonClick" target="view"}} id="view_ramFilterViewInstance" class="ui-icon ui-icon-circle-close ui-ram"></a></th>
+ <th></th>
+ <th></th>
+ <th><input id="components_filter" type="hidden" />
<div {{bindAttr class="view.btnGroupClass"}} >
<button class="btn btn-info single-btn-group" {{action "clickFilterButton" target="view"}}>
Components
@@ -104,11 +101,11 @@
{{#each host in controller}}
{{#view view.HostView contentBinding="host"}}
<tr>
- <td class="name">
+ <td>
<span {{bindAttr class="host.healthClass"}}></span>
<a href="#" {{action "showDetails" host}}>{{unbound host.hostName}}</a>
</td>
- <td>{{host.cluster.clusterName}}</td>
+ <td>{{host.rack}}</td>
<td>{{host.cpu}}</td>
<td>{{host.memoryFormatted}}</td>
<td>
@@ -125,26 +122,4 @@
{{/each}}
</tbody>
</table>
- <div class="box-footer">
- <hr/>
- <div class="footer-pagination">
- <ul class="nav nav-pills">
- <li class="disabled">Show: </li>
- <li class="dropdown">
- {{view Em.Select contentBinding="pageSizeRange"
- selectionBinding="pageSize"
- optionValuePath="this"}}
- </li>
- <li class="disabled">{{startPosition}}-{{rangeStop}} of {{total}}</li>
- <li class="disabled page-listing">
- {{#if hasPrevious}}
- <a href="#" {{action showPreviousPage target="controller"}}>previous</a>
- {{/if}}
- {{#if hasNext}}
- <a href="#" {{action showNextPage target="controller"}}>next</a>
- {{/if}}
- </li>
- </ul>
- </div>
- </div>
</div>
diff --git a/ambari-web/app/templates/main/service/info/configs.hbs b/ambari-web/app/templates/main/service/info/configs.hbs
index 9715d6cddb..6b314d49d1 100644
--- a/ambari-web/app/templates/main/service/info/configs.hbs
+++ b/ambari-web/app/templates/main/service/info/configs.hbs
@@ -216,6 +216,6 @@
<p class="pull-right">
<!--<input class="btn btn-primary" type="button" value="Save and apply changes" {{!bindAttr disabled="isSubmitDisabled"}} />-->
<a class="btn btn-primary" {{bindAttr disabled="isSubmitDisabled"}}
- {{action saveServiceConfigProperties target="controller"}}>Save and apply changes</a>
+ {{action restartServicePopup target="controller"}}>Save and apply changes</a>
</p>
</div> \ No newline at end of file
diff --git a/ambari-web/app/templates/wizard/step5.hbs b/ambari-web/app/templates/wizard/step5.hbs
index 2610b2239f..b2da152a5a 100644
--- a/ambari-web/app/templates/wizard/step5.hbs
+++ b/ambari-web/app/templates/wizard/step5.hbs
@@ -57,7 +57,7 @@
<div class="host-assignments">
{{#each masterHostMapping}}
<div class="mapping-box round-corners well">
- <div class="hostString"><span><strong>{{host_name}}</strong></span><span>{{hostInfo}}</span></div>
+ <div class="hostString"><span>{{hostInfo}}</span></div>
{{#each masterServices}}
<span class="assignedService round-corners">{{display_name}}</span>
{{/each}}
diff --git a/ambari-web/app/utils/data_table.js b/ambari-web/app/utils/data_table.js
index bf761f68d3..bf107352b6 100644
--- a/ambari-web/app/utils/data_table.js
+++ b/ambari-web/app/utils/data_table.js
@@ -17,6 +17,20 @@
*/
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
+
+ "num-html-pre": function(date_string) {
+ date_string = $(date_string).text();
+ return parseInt(date_string, 10);
+ },
+
+ "num-html-asc": function (a, b) {
+ return a - b;
+ },
+
+ "num-html-desc": function (a, b) {
+ return b - a;
+ },
+
// @see utils/date.js
"ambari-date-pre": function (date_string) {
date_string = $(date_string).text(); // strip Ember script tags
@@ -141,17 +155,19 @@ jQuery.extend($.fn.dataTableExt.afnFiltering.push(
function (oSettings, aData, iDataIndex) {
var inputFilters = [
{iColumn: '0', elementId: 'star_filter', type: 'star'},
+ {iColumn: '2', elementId: 'cpu_filter', type: 'number'},
{iColumn: '4', elementId: 'user_filter', type: 'multiple'},
{iColumn: '5', elementId: 'jobs_filter', type: 'number' },
- {iColumn: '6', elementId: 'input_filter', type: 'bandwidth' },
- {iColumn: '7', elementId: 'output_filter', type: 'bandwidth' },
+ {iColumn: '3', elementId: 'ram_filter', type: 'ambari-bandwidth' },
+ {iColumn: '6', elementId: 'input_filter', type: 'ambari-bandwidth' },
+ {iColumn: '7', elementId: 'output_filter', type: 'ambari-bandwidth' },
{iColumn: '8', elementId: 'duration_filter', type: 'time' },
- {iColumn: '9', elementId: 'rundate_filter', type: 'date' }
+ //{iColumn: '9', elementId: 'rundate_filter', type: 'ambari-date' }
];
var match = true;
- for (i = 0; i < inputFilters.length; i++) {
+ for (var i = 0; i < inputFilters.length; i++) {
switch (inputFilters[i].type) {
- case 'date':
+ case 'ambari-date':
if (jQuery('#' + inputFilters[i].elementId).val() !== 'Any' && match) {
dateFilter(jQuery('#' + inputFilters[i].elementId).val(), aData[inputFilters[i].iColumn]);
}
@@ -171,7 +187,7 @@ jQuery.extend($.fn.dataTableExt.afnFiltering.push(
timeFilter(jQuery('#' + inputFilters[i].elementId).val(), aData[inputFilters[i].iColumn]);
}
break;
- case 'bandwidth':
+ case 'ambari-bandwidth':
if (jQuery('#' + inputFilters[i].elementId).val() && match) {
bandwidthFilter(jQuery('#' + inputFilters[i].elementId).val(), aData[inputFilters[i].iColumn]);
}
@@ -230,6 +246,7 @@ jQuery.extend($.fn.dataTableExt.afnFiltering.push(
}
function bandwidthFilter(rangeExp, rowValue) {
+ rowValue = $(rowValue).text();
var compareChar = rangeExp.charAt(0);
var compareScale = rangeExp.charAt(rangeExp.length - 1);
var compareValue = isNaN(parseFloat(compareScale)) ? parseFloat(rangeExp.substr(1, rangeExp.length - 2)) : parseFloat(rangeExp.substr(1, rangeExp.length - 1));
diff --git a/ambari-web/app/utils/graph.js b/ambari-web/app/utils/graph.js
index 3dab1eca7d..41a526a380 100644
--- a/ambari-web/app/utils/graph.js
+++ b/ambari-web/app/utils/graph.js
@@ -18,11 +18,13 @@
module.exports = {
- drawJobTimeLine:function (json_str, w, h, element, legend_id, timeline_id) {
- var json = $.parseJSON(json_str);
- console.log('json', json);
- if (!json) {
- return new Error("unable to load data");
+ drawJobTimeLine:function (map, shuffle, reduce, w, h, element, legend_id, timeline_id) {
+ var map = $.parseJSON(map);
+ var shuffle = $.parseJSON(shuffle);
+ var reduce = $.parseJSON(reduce);
+ if (!map || !shuffle || !reduce) {
+ console.warn('drawJobTimeLine');
+ return;
}
var graph = new Rickshaw.Graph({
@@ -33,17 +35,17 @@ module.exports = {
stroke:true,
series:[
{
- data:json[0],
+ data:map,
color:'green',
name:'maps'
},
{
- data:json[1],
+ data:shuffle,
color:'lightblue',
name:'shuffles'
},
{
- data:json[2],
+ data:reduce,
color:'steelblue',
name:'reduces'
}
@@ -97,10 +99,15 @@ module.exports = {
element:document.getElementById(timeline_id)
});
},
- drawJobTasks:function (json_str, w, h, element, legend_id, timeline_id) {
- var json = $.parseJSON(json_str);
- if (!json) {
- return new Error("unable to load data");
+ drawJobTasks:function (mapNodeLocal, mapRackLocal, mapOffSwitch, reduceOffSwitch, w, h, element, legend_id, timeline_id) {
+ var mapNodeLocal = $.parseJSON(mapNodeLocal);
+ var mapRackLocal = $.parseJSON(mapRackLocal);
+ var mapOffSwitch = $.parseJSON(mapOffSwitch);
+ var reduceOffSwitch = $.parseJSON(reduceOffSwitch);
+ console.log(mapNodeLocal, mapRackLocal, mapOffSwitch, reduceOffSwitch);
+ if (!mapNodeLocal || !mapRackLocal || !mapOffSwitch || !reduceOffSwitch) {
+ console.warn('drawJobTasks');
+ return;
}
var graph = new Rickshaw.Graph({
@@ -111,22 +118,22 @@ module.exports = {
stroke:true,
series:[
{
- data:json[0],
+ data:mapNodeLocal,
color:'green',
name:'node_local_map'
},
{
- data:json[1],
+ data:mapRackLocal,
color:'lightblue',
name:'rack_local_map'
},
{
- data:json[2],
+ data:mapOffSwitch,
color:'brown',
name:'off_switch_map'
},
{
- data:json[3],
+ data:reduceOffSwitch,
color:'red',
name:'reduce'
}
@@ -157,20 +164,20 @@ module.exports = {
var xAxis = new Rickshaw.Graph.Axis.Time({
graph:graph,
- ticksTreatment:ticksTreatment,
+ ticksTreatment:ticksTreatment
});
xAxis.render();
var yAxis = new Rickshaw.Graph.Axis.Y({
graph:graph,
- ticksTreatment:ticksTreatment,
+ ticksTreatment:ticksTreatment
});
yAxis.render();
var hoverDetail = new Rickshaw.Graph.HoverDetail({
graph:graph,
xFormatter:function (x) {
- return (x - json[4].submitTime) / 1000 + 's'
+ return (x - json.submitTime) + 's'
},
yFormatter:function (y) {
return y / 1000 + 's'
@@ -186,7 +193,6 @@ module.exports = {
graph:graph,
element:document.getElementById(timeline_id)
});
- annotator.add(1337970759432, 'Lost tasktracker');
graph.update();
}
}
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index 14b6e5d8b0..a809aec679 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -25,7 +25,7 @@ String.prototype.capitalize = function () {
}
Em.CoreObject.reopen({
- t: function (key, attrs) {
+ t:function (key, attrs) {
return Em.I18n.t(key, attrs)
}
});
@@ -38,6 +38,27 @@ Handlebars.registerHelper('warn', function (variable) {
console.warn(variable);
});
+Handlebars.registerHelper('highlight', function (variable, words) {
+ words = words.split(";");
+
+// var self = this;
+// if (highlightTemplate == undefined) {
+ var highlightTemplate = "<b>{0}</b>";
+// }
+
+ words.forEach(function (word) {
+ var searchRegExp = new RegExp("\\b" + word + "\\b", "gi");
+ variable = variable.replace(searchRegExp, function (found) {
+ return highlightTemplate.format(found);
+ });
+ });
+
+ return new Handlebars.SafeString(variable);
+})
+/**
+ * Replace {i} with argument. where i is number of argument to replace with
+ * @return {String}
+ */
String.prototype.format = function () {
var args = arguments;
return this.replace(/{(\d+)}/g, function (match, number) {
@@ -45,6 +66,22 @@ String.prototype.format = function () {
});
};
+String.prototype.highlight = function (words, highlightTemplate) {
+ var self = this;
+ if (highlightTemplate == undefined) {
+ var highlightTemplate = "<b>{0}</b>";
+ }
+
+ words.forEach(function (word) {
+ var searchRegExp = new RegExp("\\b" + word + "\\b", "gi");
+ self = self.replace(searchRegExp, function (found) {
+ return highlightTemplate.format(found);
+ });
+ });
+
+ return self;
+};
+
/**
* Convert byte size to other metrics.
* @param {Number} precision Number to adjust precision of return value. Default is 0.
@@ -120,10 +157,10 @@ App.formatUrl = function (urlTemplate, substitutes, testUrl) {
if (!App.testMode) {
var toSeconds = Math.round(new Date().getTime() / 1000);
var allSubstitutes = {
- toSeconds: toSeconds,
- fromSeconds: toSeconds - 3600, // 1 hour back
- stepSeconds: 15, // 15 seconds
- hostName: App.test_hostname
+ toSeconds:toSeconds,
+ fromSeconds:toSeconds - 3600, // 1 hour back
+ stepSeconds:15, // 15 seconds
+ hostName:App.test_hostname
};
jQuery.extend(allSubstitutes, substitutes);
for (key in allSubstitutes) {
@@ -141,15 +178,15 @@ App.formatUrl = function (urlTemplate, substitutes, testUrl) {
* Certain variables can have JSON in string
* format, or in JSON format itself.
*/
-App.parseJSON = function(value){
- if(typeof value == "string"){
+App.parseJSON = function (value) {
+ if (typeof value == "string") {
return jQuery.parseJSON(value);
}
return value;
};
App.format = {
- role: function (role) {
+ role:function (role) {
switch (role) {
case 'ZOOKEEPER_SERVER':
return 'ZooKeeper Server';
@@ -255,7 +292,7 @@ App.format = {
* TIMEDOUT - Host did not respond in time
* ABORTED - Operation was abandoned
*/
- taskStatus: function (_taskStatus) {
+ taskStatus:function (_taskStatus) {
return _taskStatus.replace('_', ' ').toLowerCase();
}
}; \ No newline at end of file
diff --git a/ambari-web/app/views/main.js b/ambari-web/app/views/main.js
index 50d5e74de5..231a8fa44a 100644
--- a/ambari-web/app/views/main.js
+++ b/ambari-web/app/views/main.js
@@ -20,32 +20,52 @@
var App = require('app');
App.MainView = Em.View.extend({
- templateName: require('templates/main')
+ templateName:require('templates/main')
});
App.MainBackgroundOperation = Em.View.extend({
- content: null,
- classNames: ['background-operations'],
- classNameBindings: ['isOpen'],
- isOpen: false,
- logDetails: null,
- isOpenShowLog: false,
- iconClass: function(){
+ content:null,
+ classNames:['background-operations'],
+ classNameBindings:['isOpen'],
+ isOpen:false,
+ iconClass:function () {
return this.get('isOpen') ? 'icon-minus' : 'icon-plus';
}.property('isOpen'),
- openDetails: function(){
+ showOperationLog:function () {
this.set('isOpen', !this.get('isOpen'))
- },
- showOperationLog:function(){
var operation = this.get('content');
var self = this;
if (!this.get('isOpenShowLog') && !this.get('logDetails')) {
- jQuery.getJSON('data/hosts/background_operations/logs/task' +operation.taskId + '.json',
+
+ jQuery.getJSON('data/hosts/background_operations/logs/task' + operation.taskId + '.json',
function (data) {
+ var fields = ['stdout', 'stderror'];
+ if (data) {
+ fields.forEach(function (fieldName) {
+ if (data.fieldName) {
+ data.fieldName = data.fieldName.highlight(["fail", "err"]);
+ }
+ });
+ }
+
+ if (App.testMode) {
+ var stdError = "Donec quis error tincidunt dolor. word Proin vel fail dignissim metus. In hac err habitasse platea dictumst. Err Mauris error tortor dui, commodo vitae failure placerat ut, venenatis nec err dolor. failure Lorem ipsum dolor sit amet, fail err consectetur fail adipiscing elit. Error Vivamus vel velit ipsum, id laoreet velit. Nullam vel err augue a tortor mattis semper fail, in nec neque.";
+ stdError = stdError.highlight(["err", "fail"]);
+ data.stderror = stdError;
+ }
+
self.set('logDetails', data);
}
);
}
- this.set('isOpenShowLog', !this.get('isOpenShowLog'))
+
+ if (App.testMode) {
+ var stdError = "Donec quis error tincidunt dolor. word Proin vel fail dignissim metus. In hac err habitasse platea dictumst. Err Mauris error tortor dui, commodo vitae failure placerat ut, venenatis nec err dolor. failure Lorem ipsum dolor sit amet, fail err consectetur fail adipiscing elit. Error Vivamus vel velit ipsum, id laoreet velit. Nullam vel err augue a tortor mattis semper fail, in nec neque.";
+ stdError = stdError.highlight(["err", "fail"]);
+ var data = {stderror:stdError};
+ self.set('logDetails', data);
+ }
+
+ this.set('isOpenShowLog', !this.get('isOpenShowLog'));
}
}); \ No newline at end of file
diff --git a/ambari-web/app/views/main/admin/user/create.js b/ambari-web/app/views/main/admin/user/create.js
index e20ad73298..12ec4230ae 100644
--- a/ambari-web/app/views/main/admin/user/create.js
+++ b/ambari-web/app/views/main/admin/user/create.js
@@ -26,20 +26,20 @@ App.MainAdminUserCreateView = Em.View.extend({
var form = this.get("userForm");
if(form.isValid()) {
if(form.getValues().admin === "" || form.getValues().admin == true) {
- form.getField("roles").set("value","admin");
+ form.getField("roles").set("value","admin,user");
form.getField("admin").set("value","true");
} else{
form.getField("roles").set("value","user");
}
- parent_controller.sendCommandToServer('users/' + form.getValues().userName, "POST" , {
+ parent_controller.sendCommandToServer('/users/' + form.getValues().userName, "POST" , {
Users: {
password: form.getValues().password,
roles: form.getValues().roles
}
- }, function (requestId) {
+ }, function (success) {
- if (!requestId) {
+ if (!success) {
return;
}
diff --git a/ambari-web/app/views/main/admin/user/edit.js b/ambari-web/app/views/main/admin/user/edit.js
index ec4a168c27..b07c81bb26 100644
--- a/ambari-web/app/views/main/admin/user/edit.js
+++ b/ambari-web/app/views/main/admin/user/edit.js
@@ -27,7 +27,7 @@ App.MainAdminUserEditView = Em.View.extend({
if(form.isValid()) {
var Users={};
if(form.getValues().admin === "" || form.getValues().admin == true) {
- form.getField("roles").set("value","admin");
+ form.getField("roles").set("value","admin,user");
form.getField("admin").set("value","true");
} else{
form.getField("roles").set("value","user");
@@ -40,11 +40,11 @@ App.MainAdminUserEditView = Em.View.extend({
Users.old_password=form.getValues().old_password;
}
- parent_controller.sendCommandToServer('users/' + form.getValues().userName, "PUT" , {
+ parent_controller.sendCommandToServer('/users/' + form.getValues().userName, "PUT" , {
Users:Users
- }, function (requestId) {
+ }, function (success) {
- if (!requestId) {
+ if (!success) {
return;
}
diff --git a/ambari-web/app/views/main/apps/item/bar_view.js b/ambari-web/app/views/main/apps/item/bar_view.js
index c5f1d7d26e..343d63d77f 100644
--- a/ambari-web/app/views/main/apps/item/bar_view.js
+++ b/ambari-web/app/views/main/apps/item/bar_view.js
@@ -63,31 +63,47 @@ App.MainAppsItemBarView = Em.View.extend({
}.observes('activeJob'),
- jobTimeLine:false,
- jobTaskView:false,
+ map:false,
+ shuffle:false,
+ reduce:false,
+
+ mapNodeLocal:false,
+ mapRackLocal:false,
+ mapOffSwitch:false,
+ reduceOffSwitch:false,
+ submitTime:false,
+ finishTime:false,
updateTimeLine:function () {
- var url = App.testMode ? '/data/apps/jobs/timeline.json' : "urlTBD" + this.get('activeJob').get('jobName');
+ var url = App.testMode ? '/data/apps/jobs/timeline.json' : App.apiPrefix + "/jobhistory/task?jobId=" + this.get('activeJob').get('id') +
+ "&width=" + this.get('width');
var mapper = App.jobTimeLineMapper;
mapper.set('model', this);
App.HttpClient.get(url, mapper);
}.observes('getChartData'),
updateTasksView:function () {
- var url = App.testMode ? '/data/apps/jobs/taskview.json' : "urlTBD" + this.get('activeJob').get('jobName');
+ var url = App.testMode ? '/data/apps/jobs/taskview.json' : App.apiPrefix + "/jobhistory/tasklocality?jobId=" + this.get('activeJob').get('id');
var mapper = App.jobTasksMapper;
mapper.set('model', this);
App.HttpClient.get(url, mapper);
}.observes('getChartData'),
drawJobTimeline:function () {
- var timeline = JSON.stringify(this.get('jobTimeLine'));
- graph.drawJobTimeLine(timeline, this.get('width'), this.get('height'), '#chart', 'legend', 'timeline1');
- }.observes('jobTimeLine'),
+ var map = JSON.stringify(this.get('map'));
+ var shuffle = JSON.stringify(this.get('shuffle'));
+ var reduce = JSON.stringify(this.get('reduce'));
+ $('#chart, #legend, #timeline1').html('');
+ graph.drawJobTimeLine(map, shuffle, reduce, this.get('width'), this.get('height'), '#chart', 'legend', 'timeline1');
+ }.observes('map', 'shuffle', 'reduce'),
drawJobTasks:function () {
- var taskview = JSON.stringify(this.get('jobTaskView'));
- graph.drawJobTasks(taskview, this.get('width'), this.get('height'), '#job_tasks', 'tasks_legend', 'timeline2');
- }.observes('jobTaskView')
+ var mapNodeLocal = JSON.stringify(this.get('mapNodeLocal'));
+ var mapRackLocal = JSON.stringify(this.get('mapRackLocal'));
+ var mapOffSwitch = JSON.stringify(this.get('mapOffSwitch'));
+ var reduceOffSwitch = JSON.stringify(this.get('reduceOffSwitch'));
+ $('#job_tasks, #tasks_legend, #timeline2').html('');
+ graph.drawJobTasks(mapNodeLocal, mapRackLocal, mapOffSwitch, reduceOffSwitch, this.get('width'), this.get('height'), '#job_tasks', 'tasks_legend', 'timeline2');
+ }.observes('mapNodeLocal', 'mapRackLocal', 'mapOffSwitch', 'reduceOffSwitch')
-}); \ No newline at end of file
+});
diff --git a/ambari-web/app/views/main/apps/item/dag_view.js b/ambari-web/app/views/main/apps/item/dag_view.js
index 680034bb04..e8fb43fb24 100644
--- a/ambari-web/app/views/main/apps/item/dag_view.js
+++ b/ambari-web/app/views/main/apps/item/dag_view.js
@@ -98,8 +98,6 @@ App.MainAppsItemDagView = Em.View.extend({
// Redraw table
innerTable.fnDraw(false);
innerTable.fnSettings().oFeatures.bFilter = false;
-
- console.log(innerTable.fnSettings());
var dagSchema = this.get('controller.content.workflowContext');
var jobs = this.get('jobs');
var graph = new DagViewer(false, 'dag_viewer')
diff --git a/ambari-web/app/views/main/host.js b/ambari-web/app/views/main/host.js
index e68e70be8c..e6590f7bd9 100644
--- a/ambari-web/app/views/main/host.js
+++ b/ambari-web/app/views/main/host.js
@@ -17,6 +17,7 @@
*/
var App = require('app');
+require('utils/data_table');
App.MainHostView = Em.View.extend({
templateName:require('templates/main/host'),
@@ -28,7 +29,7 @@ App.MainHostView = Em.View.extend({
return App.router.get('mainHostController.content');
}.property('App.router.mainHostController.content'),
componentsIds:[1, 2, 3, 4, 5, 6, 7, 8],
-
+ oTable: null,
isFilterOpen:false,
// isApplyDisabled:function () {
@@ -68,6 +69,33 @@ App.MainHostView = Em.View.extend({
}.observes('slaveComponentsChecked'),
didInsertElement:function () {
+ var oTable = $('#hosts-table').dataTable({
+ "sDom": '<"search-bar"f><"clear">rt<"page-bar"lip><"clear">',
+ "oLanguage": {
+ "sSearch": "Search:",
+ "sLengthMenu": "Show: _MENU_",
+ "sInfo": "_START_ - _END_ of _TOTAL_ (_TOTAL_ total)",
+ "sInfoEmpty": "0 - _END_ of _TOTAL_ (_TOTAL_ total)",
+ "sInfoFiltered": "",
+ "oPaginate":{
+ "sPrevious": "<i class='icon-arrow-left'></i>",
+ "sNext": "<i class='icon-arrow-right'></i>"
+ }
+ },
+ "bSortCellsTop": true,
+ "iDisplayLength": 10,
+ "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
+ "aoColumns":[
+ { "sType":"html" },
+ { "sType":"html" },
+ { "sType":"num-html" },
+ { "sType":"ambari-bandwidth" },
+ { "sType":"string" },
+ { "sType":"string" },
+ { "sType":"string", "bSortable": false }
+ ]
+ });
+ this.set('oTable', oTable);
this.set('allComponentsChecked', true); // select all components (checkboxes) on start.
},
@@ -111,7 +139,8 @@ App.MainHostView = Em.View.extend({
}.property('content.components.@each'),
usageStyle:function () {
- return "width:" + this.get('content.diskUsage') + "%";
+ //return "width:" + this.get('content.diskUsage') + "%";
+ return "width:" + (25+Math.random()*50) + "%"; // Just for tests purposes
}.property('content.diskUsage')
// HostCheckboxView:Em.Checkbox.extend({
@@ -152,5 +181,101 @@ App.MainHostView = Em.View.extend({
var selectedHostsIds = App.router.get('mainHostController.selectedHostsIds');
var rack = App.router.get('mainHostController.selectedRack');
return (selectedHostsIds.length && rack && rack.constructor == 'App.Cluster') ? false : "disabled";
- }.property('App.router.mainHostController.selectedHostsIds', 'App.router.mainHostController.selectedRack')
+ }.property('App.router.mainHostController.selectedHostsIds', 'App.router.mainHostController.selectedRack'),
+
+ nameFilterView: Em.TextField.extend({
+ classNames:['input-medium'],
+ type:'text',
+ placeholder: 'Any Name',
+ filtering:function(){
+ if (this.get('value') == '') {
+ this.$().closest('th').addClass('notActive');
+ }
+ else {
+ this.$().closest('th').removeClass('notActive');
+ }
+ this.get('parentView').get('applyFilter')(this.get('parentView'), 0, this.get('value'));
+ }.observes('value')
+ }),
+
+ rackFilterView: Em.TextField.extend({
+ classNames:['input-medium'],
+ type:'text',
+ placeholder: 'Any Name',
+ filtering:function(){
+ if (this.get('value') == '') {
+ this.$().closest('th').addClass('notActive');
+ }
+ else {
+ this.$().closest('th').removeClass('notActive');
+ }
+ this.get('parentView').get('applyFilter')(this.get('parentView'), 1, this.get('value'));
+ }.observes('value')
+ }),
+ /**
+ * Filter-field for cpu
+ */
+ cpuFilterView: Em.TextField.extend({
+ classNames:['input-mini'],
+ type:'text',
+ placeholder: 'Any ',
+ elementId:'cpu_filter',
+ filtering:function(){
+ if (this.get('value') == '') {
+ this.$().closest('th').addClass('notActive');
+ }
+ else {
+ this.$().closest('th').removeClass('notActive');
+ }
+ this.get('parentView').get('applyFilter')(this.get('parentView'), 2);
+ }.observes('value')
+ }),
+ /**
+ * Filter-field for RAM
+ */
+ ramFilterView: Em.TextField.extend({
+ classNames:['input-mini'],
+ type:'text',
+ placeholder: 'Any ',
+ elementId: 'ram_filter',
+ filtering:function(){
+ if (this.get('value') == '') {
+ this.$().closest('th').addClass('notActive');
+ }
+ else {
+ this.$().closest('th').removeClass('notActive');
+ }
+ this.get('parentView').get('applyFilter')(this.get('parentView'), 3);
+ }.observes('value')
+ }),
+ /**
+ * Clear selected filter
+ * @param event
+ */
+ clearFilterButtonClick: function(event) {
+ var viewName = event.target.id.replace('view_', '');
+ var elementId = this.get(viewName).get('elementId');
+ if(this.get(viewName).get('tagName') === 'input') {
+ this.get(viewName).set('value', '');
+ }
+ if(this.get(viewName).get('tagName') === 'select') {
+ this.get(viewName).set('value', 'Any');
+ this.get(viewName).change();
+ }
+ if(this.get(viewName).get('multiple')) {
+ this.get(viewName).get('clearFilter')(this.get(viewName));
+ }
+ },
+ /**
+ * apply each filter to dataTable
+ *
+ * @param {parentView}
+ * @param {iColumn} number of column by which filter
+ * @param {value}
+ */
+ applyFilter:function(parentView, iColumn, value) {
+ value = (value) ? value : '';
+ parentView.get('oTable').fnFilter(value, iColumn);
+ }
+
}); \ No newline at end of file
diff --git a/ambari-web/app/views/wizard/controls_view.js b/ambari-web/app/views/wizard/controls_view.js
index 8c0208257c..3650f00005 100644
--- a/ambari-web/app/views/wizard/controls_view.js
+++ b/ambari-web/app/views/wizard/controls_view.js
@@ -28,7 +28,7 @@ App.ServiceConfigPopoverSupport = Ember.Mixin.create({
* Config object. It will instance of App.ServiceConfigProperty
*/
serviceConfig: null,
-
+ placeholderBinding: 'serviceConfig.defaultValue',
isPopoverEnabled: true,
didInsertElement: function () {
@@ -252,6 +252,7 @@ App.ServiceConfigMultipleHostsDisplay = Ember.Mixin.create(App.ServiceConfigHost
console.log('controller', this.get('controller').name); //should be slaveComponentGroupsController
if(!this.get('value')){
// debugger;
+ return true;
}
return this.get('value').length === 0;
}.property('value'),