]> Zhao Yanbai Git Server - acecode.git/commitdiff
...
authorAce <Ace@Aces-MacBook-Pro.local>
Fri, 16 Oct 2015 08:36:08 +0000 (16:36 +0800)
committerAce <Ace@Aces-MacBook-Pro.local>
Fri, 16 Oct 2015 08:36:08 +0000 (16:36 +0800)
15 files changed:
documents/MySQLInjection.md
learn/doc/github [new file with mode: 0644]
learn/doc/mac_bash_profile [new file with mode: 0644]
learn/doc/tmux.conf
learn/doc/vimrc
learn/map/china.html [new file with mode: 0755]
learn/map/d3.js [new file with mode: 0755]
learn/map/d3.min.js [new file with mode: 0644]
learn/map/datamaps.china.min.js [new file with mode: 0755]
learn/map/datamaps.world.min.js [new file with mode: 0755]
learn/map/topojson.min.js [new file with mode: 0644]
learn/map/world.html [new file with mode: 0755]
learn/markdown/macdown_help.md [new file with mode: 0644]
learn/markdown/mou.md [new file with mode: 0644]
learn/other/Mine.cc

index ed0f1531ac9a0310b29e737f1c4edf3e0726df5e..8f0125d660ca6e7ec710637d9693972ebc7d9c46 100644 (file)
@@ -127,5 +127,4 @@ else {
 ```
 本代码的特点是不会在网页上输出任何字段值。
 ###2.注入思路
-由于程序代码并不在网页上显示任何字段,因此我们如果想要得到数据库的一些信息得另外想办法。有一个方法是利用程序执行SQL时产生的错误会显示到网页上这一点,将要显示的信息嵌入错误信息里。对于MySQL利用的模板代码为```select count(*), CONCAT(CURRENT_USER(), FLOOR(RAND(0)*2)) x from information_schema.tables group by x;```会得到类似```ERROR 1062 (23000): Duplicate entry 'root@localhost1' for key 'group_key'```的错误提示。
-
+由于程序代码并不在网页上显示任何字段,因此我们如果想要得到数据库的一些信息得另外想办法。有一个方法是利用程序执行SQL时产生的错误会显示到网页上这一点,将要显示的信息嵌入错误信息里。对于MySQL利用的模板代码为```select count(*), CONCAT(CURRENT_USER(), FLOOR(RAND(0)*2)) x from information_schema.tables group by x;```会得到类似```ERROR 1062 (23000): Duplicate entry 'root@localhost1' for key 'group_key'```的错误提示。
\ No newline at end of file
diff --git a/learn/doc/github b/learn/doc/github
new file mode 100644 (file)
index 0000000..95ceb35
--- /dev/null
@@ -0,0 +1,5 @@
+https://github.com/Audi-1/sqli-labs.git
+https://github.com/mbostock/d3.git
+https://github.com/markmarkoh/datamaps.git
+https://github.com/chfw/datamaps-china-examples.git
+https://github.com/sqlmapproject/sqlmap.git
diff --git a/learn/doc/mac_bash_profile b/learn/doc/mac_bash_profile
new file mode 100644 (file)
index 0000000..b9820f2
--- /dev/null
@@ -0,0 +1,8 @@
+export PATH=/usr/local/sbin:$PATH
+export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"
+export PATH=/Users/Ace/sys/bin:$PATH
+export PS1="\W\$ "
+alias ll='ls -lGh'
+alias ls='ls -Gh'
+alias rm='rm -rf'
+
index 0fe0b34fdff54c6ece3362598ee236a3dbaf6805..859f8e5392c6545f120375855dfd3dcbc0e09fc1 100644 (file)
@@ -4,6 +4,7 @@ set -g pane-active-border-fg green
 set -g pane-border-fg white
 set -g default-command /bin/bash
 set -g base-index 1
+set -g status-utf8 on
 
 # navigate panes with hjkl
 bind h select-pane -L
index a48126aef5a5f991b7379ef47afe44e79d37d47b..b20201aab1fcb8c95319f668e7b3930f28853cff 100644 (file)
@@ -72,7 +72,7 @@ set tabstop=4     " TAB的宽度
 set shiftwidth=4
 set expandtab     " TAB用空格代替,否则可用 set noexpandtab
 set cursorline
-hi CursorLine ctermbg=lightcyan cterm=BOLD
+"hi CursorLine ctermbg=lightcyan cterm=BOLD
 "set cursorcolumn
 "hi CursorColumn ctermbg=lightgreen cterm=BOLD
 set viminfo='1000,<500
diff --git a/learn/map/china.html b/learn/map/china.html
new file mode 100755 (executable)
index 0000000..909982a
--- /dev/null
@@ -0,0 +1,19 @@
+<html>\r
+<head>\r
+<script src="d3.min.js"></script>\r
+<script src="topojson.min.js"></script>\r
+<script src="datamaps.china.min.js"></script>\r
+\r
+</head>\r
+\r
+<body>\r
+\r
+<div id="basic" style="position: relative; width: 1200px; height: 1000px;"></div>\r
+<script>\r
+var basic = new Datamap({\r
+  element: document.getElementById("basic"),\r
+  scope:'china'\r
+});\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/learn/map/d3.js b/learn/map/d3.js
new file mode 100755 (executable)
index 0000000..e4d8664
--- /dev/null
@@ -0,0 +1,9503 @@
+!function() {
+  var d3 = {
+    version: "3.5.6"
+  };
+  var d3_arraySlice = [].slice, d3_array = function(list) {
+    return d3_arraySlice.call(list);
+  };
+  var d3_document = this.document;
+  function d3_documentElement(node) {
+    return node && (node.ownerDocument || node.document || node).documentElement;
+  }
+  function d3_window(node) {
+    return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
+  }
+  if (d3_document) {
+    try {
+      d3_array(d3_document.documentElement.childNodes)[0].nodeType;
+    } catch (e) {
+      d3_array = function(list) {
+        var i = list.length, array = new Array(i);
+        while (i--) array[i] = list[i];
+        return array;
+      };
+    }
+  }
+  if (!Date.now) Date.now = function() {
+    return +new Date();
+  };
+  if (d3_document) {
+    try {
+      d3_document.createElement("DIV").style.setProperty("opacity", 0, "");
+    } catch (error) {
+      var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
+      d3_element_prototype.setAttribute = function(name, value) {
+        d3_element_setAttribute.call(this, name, value + "");
+      };
+      d3_element_prototype.setAttributeNS = function(space, local, value) {
+        d3_element_setAttributeNS.call(this, space, local, value + "");
+      };
+      d3_style_prototype.setProperty = function(name, value, priority) {
+        d3_style_setProperty.call(this, name, value + "", priority);
+      };
+    }
+  }
+  d3.ascending = d3_ascending;
+  function d3_ascending(a, b) {
+    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+  }
+  d3.descending = function(a, b) {
+    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+  };
+  d3.min = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+    }
+    return a;
+  };
+  d3.max = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+    }
+    return a;
+  };
+  d3.extent = function(array, f) {
+    var i = -1, n = array.length, a, b, c;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = c = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = c = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    }
+    return [ a, c ];
+  };
+  function d3_number(x) {
+    return x === null ? NaN : +x;
+  }
+  function d3_numeric(x) {
+    return !isNaN(x);
+  }
+  d3.sum = function(array, f) {
+    var s = 0, n = array.length, a, i = -1;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = +array[i])) s += a;
+    } else {
+      while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
+    }
+    return s;
+  };
+  d3.mean = function(array, f) {
+    var s = 0, n = array.length, a, i = -1, j = n;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
+    } else {
+      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
+    }
+    if (j) return s / j;
+  };
+  d3.quantile = function(values, p) {
+    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
+    return e ? v + e * (values[h] - v) : v;
+  };
+  d3.median = function(array, f) {
+    var numbers = [], n = array.length, a, i = -1;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
+    } else {
+      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
+    }
+    if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
+  };
+  d3.variance = function(array, f) {
+    var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;
+    if (arguments.length === 1) {
+      while (++i < n) {
+        if (d3_numeric(a = d3_number(array[i]))) {
+          d = a - m;
+          m += d / ++j;
+          s += d * (a - m);
+        }
+      }
+    } else {
+      while (++i < n) {
+        if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
+          d = a - m;
+          m += d / ++j;
+          s += d * (a - m);
+        }
+      }
+    }
+    if (j > 1) return s / (j - 1);
+  };
+  d3.deviation = function() {
+    var v = d3.variance.apply(this, arguments);
+    return v ? Math.sqrt(v) : v;
+  };
+  function d3_bisector(compare) {
+    return {
+      left: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
+        }
+        return lo;
+      },
+      right: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
+        }
+        return lo;
+      }
+    };
+  }
+  var d3_bisect = d3_bisector(d3_ascending);
+  d3.bisectLeft = d3_bisect.left;
+  d3.bisect = d3.bisectRight = d3_bisect.right;
+  d3.bisector = function(f) {
+    return d3_bisector(f.length === 1 ? function(d, x) {
+      return d3_ascending(f(d), x);
+    } : f);
+  };
+  d3.shuffle = function(array, i0, i1) {
+    if ((m = arguments.length) < 3) {
+      i1 = array.length;
+      if (m < 2) i0 = 0;
+    }
+    var m = i1 - i0, t, i;
+    while (m) {
+      i = Math.random() * m-- | 0;
+      t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
+    }
+    return array;
+  };
+  d3.permute = function(array, indexes) {
+    var i = indexes.length, permutes = new Array(i);
+    while (i--) permutes[i] = array[indexes[i]];
+    return permutes;
+  };
+  d3.pairs = function(array) {
+    var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
+    while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];
+    return pairs;
+  };
+  d3.zip = function() {
+    if (!(n = arguments.length)) return [];
+    for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
+      for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
+        zip[j] = arguments[j][i];
+      }
+    }
+    return zips;
+  };
+  function d3_zipLength(d) {
+    return d.length;
+  }
+  d3.transpose = function(matrix) {
+    return d3.zip.apply(d3, matrix);
+  };
+  d3.keys = function(map) {
+    var keys = [];
+    for (var key in map) keys.push(key);
+    return keys;
+  };
+  d3.values = function(map) {
+    var values = [];
+    for (var key in map) values.push(map[key]);
+    return values;
+  };
+  d3.entries = function(map) {
+    var entries = [];
+    for (var key in map) entries.push({
+      key: key,
+      value: map[key]
+    });
+    return entries;
+  };
+  d3.merge = function(arrays) {
+    var n = arrays.length, m, i = -1, j = 0, merged, array;
+    while (++i < n) j += arrays[i].length;
+    merged = new Array(j);
+    while (--n >= 0) {
+      array = arrays[n];
+      m = array.length;
+      while (--m >= 0) {
+        merged[--j] = array[m];
+      }
+    }
+    return merged;
+  };
+  var abs = Math.abs;
+  d3.range = function(start, stop, step) {
+    if (arguments.length < 3) {
+      step = 1;
+      if (arguments.length < 2) {
+        stop = start;
+        start = 0;
+      }
+    }
+    if ((stop - start) / step === Infinity) throw new Error("infinite range");
+    var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;
+    start *= k, stop *= k, step *= k;
+    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
+    return range;
+  };
+  function d3_range_integerScale(x) {
+    var k = 1;
+    while (x * k % 1) k *= 10;
+    return k;
+  }
+  function d3_class(ctor, properties) {
+    for (var key in properties) {
+      Object.defineProperty(ctor.prototype, key, {
+        value: properties[key],
+        enumerable: false
+      });
+    }
+  }
+  d3.map = function(object, f) {
+    var map = new d3_Map();
+    if (object instanceof d3_Map) {
+      object.forEach(function(key, value) {
+        map.set(key, value);
+      });
+    } else if (Array.isArray(object)) {
+      var i = -1, n = object.length, o;
+      if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);
+    } else {
+      for (var key in object) map.set(key, object[key]);
+    }
+    return map;
+  };
+  function d3_Map() {
+    this._ = Object.create(null);
+  }
+  var d3_map_proto = "__proto__", d3_map_zero = "\x00";
+  d3_class(d3_Map, {
+    has: d3_map_has,
+    get: function(key) {
+      return this._[d3_map_escape(key)];
+    },
+    set: function(key, value) {
+      return this._[d3_map_escape(key)] = value;
+    },
+    remove: d3_map_remove,
+    keys: d3_map_keys,
+    values: function() {
+      var values = [];
+      for (var key in this._) values.push(this._[key]);
+      return values;
+    },
+    entries: function() {
+      var entries = [];
+      for (var key in this._) entries.push({
+        key: d3_map_unescape(key),
+        value: this._[key]
+      });
+      return entries;
+    },
+    size: d3_map_size,
+    empty: d3_map_empty,
+    forEach: function(f) {
+      for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
+    }
+  });
+  function d3_map_escape(key) {
+    return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
+  }
+  function d3_map_unescape(key) {
+    return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
+  }
+  function d3_map_has(key) {
+    return d3_map_escape(key) in this._;
+  }
+  function d3_map_remove(key) {
+    return (key = d3_map_escape(key)) in this._ && delete this._[key];
+  }
+  function d3_map_keys() {
+    var keys = [];
+    for (var key in this._) keys.push(d3_map_unescape(key));
+    return keys;
+  }
+  function d3_map_size() {
+    var size = 0;
+    for (var key in this._) ++size;
+    return size;
+  }
+  function d3_map_empty() {
+    for (var key in this._) return false;
+    return true;
+  }
+  d3.nest = function() {
+    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
+    function map(mapType, array, depth) {
+      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
+      var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
+      while (++i < n) {
+        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
+          values.push(object);
+        } else {
+          valuesByKey.set(keyValue, [ object ]);
+        }
+      }
+      if (mapType) {
+        object = mapType();
+        setter = function(keyValue, values) {
+          object.set(keyValue, map(mapType, values, depth));
+        };
+      } else {
+        object = {};
+        setter = function(keyValue, values) {
+          object[keyValue] = map(mapType, values, depth);
+        };
+      }
+      valuesByKey.forEach(setter);
+      return object;
+    }
+    function entries(map, depth) {
+      if (depth >= keys.length) return map;
+      var array = [], sortKey = sortKeys[depth++];
+      map.forEach(function(key, keyMap) {
+        array.push({
+          key: key,
+          values: entries(keyMap, depth)
+        });
+      });
+      return sortKey ? array.sort(function(a, b) {
+        return sortKey(a.key, b.key);
+      }) : array;
+    }
+    nest.map = function(array, mapType) {
+      return map(mapType, array, 0);
+    };
+    nest.entries = function(array) {
+      return entries(map(d3.map, array, 0), 0);
+    };
+    nest.key = function(d) {
+      keys.push(d);
+      return nest;
+    };
+    nest.sortKeys = function(order) {
+      sortKeys[keys.length - 1] = order;
+      return nest;
+    };
+    nest.sortValues = function(order) {
+      sortValues = order;
+      return nest;
+    };
+    nest.rollup = function(f) {
+      rollup = f;
+      return nest;
+    };
+    return nest;
+  };
+  d3.set = function(array) {
+    var set = new d3_Set();
+    if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
+    return set;
+  };
+  function d3_Set() {
+    this._ = Object.create(null);
+  }
+  d3_class(d3_Set, {
+    has: d3_map_has,
+    add: function(key) {
+      this._[d3_map_escape(key += "")] = true;
+      return key;
+    },
+    remove: d3_map_remove,
+    values: d3_map_keys,
+    size: d3_map_size,
+    empty: d3_map_empty,
+    forEach: function(f) {
+      for (var key in this._) f.call(this, d3_map_unescape(key));
+    }
+  });
+  d3.behavior = {};
+  function d3_identity(d) {
+    return d;
+  }
+  d3.rebind = function(target, source) {
+    var i = 1, n = arguments.length, method;
+    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
+    return target;
+  };
+  function d3_rebind(target, source, method) {
+    return function() {
+      var value = method.apply(source, arguments);
+      return value === source ? target : value;
+    };
+  }
+  function d3_vendorSymbol(object, name) {
+    if (name in object) return name;
+    name = name.charAt(0).toUpperCase() + name.slice(1);
+    for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
+      var prefixName = d3_vendorPrefixes[i] + name;
+      if (prefixName in object) return prefixName;
+    }
+  }
+  var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ];
+  function d3_noop() {}
+  d3.dispatch = function() {
+    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    return dispatch;
+  };
+  function d3_dispatch() {}
+  d3_dispatch.prototype.on = function(type, listener) {
+    var i = type.indexOf("."), name = "";
+    if (i >= 0) {
+      name = type.slice(i + 1);
+      type = type.slice(0, i);
+    }
+    if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
+    if (arguments.length === 2) {
+      if (listener == null) for (type in this) {
+        if (this.hasOwnProperty(type)) this[type].on(name, null);
+      }
+      return this;
+    }
+  };
+  function d3_dispatch_event(dispatch) {
+    var listeners = [], listenerByName = new d3_Map();
+    function event() {
+      var z = listeners, i = -1, n = z.length, l;
+      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
+      return dispatch;
+    }
+    event.on = function(name, listener) {
+      var l = listenerByName.get(name), i;
+      if (arguments.length < 2) return l && l.on;
+      if (l) {
+        l.on = null;
+        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+        listenerByName.remove(name);
+      }
+      if (listener) listeners.push(listenerByName.set(name, {
+        on: listener
+      }));
+      return dispatch;
+    };
+    return event;
+  }
+  d3.event = null;
+  function d3_eventPreventDefault() {
+    d3.event.preventDefault();
+  }
+  function d3_eventSource() {
+    var e = d3.event, s;
+    while (s = e.sourceEvent) e = s;
+    return e;
+  }
+  function d3_eventDispatch(target) {
+    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    dispatch.of = function(thiz, argumentz) {
+      return function(e1) {
+        try {
+          var e0 = e1.sourceEvent = d3.event;
+          e1.target = target;
+          d3.event = e1;
+          dispatch[e1.type].apply(thiz, argumentz);
+        } finally {
+          d3.event = e0;
+        }
+      };
+    };
+    return dispatch;
+  }
+  d3.requote = function(s) {
+    return s.replace(d3_requote_re, "\\$&");
+  };
+  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+  var d3_subclass = {}.__proto__ ? function(object, prototype) {
+    object.__proto__ = prototype;
+  } : function(object, prototype) {
+    for (var property in prototype) object[property] = prototype[property];
+  };
+  function d3_selection(groups) {
+    d3_subclass(groups, d3_selectionPrototype);
+    return groups;
+  }
+  var d3_select = function(s, n) {
+    return n.querySelector(s);
+  }, d3_selectAll = function(s, n) {
+    return n.querySelectorAll(s);
+  }, d3_selectMatches = function(n, s) {
+    var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
+    d3_selectMatches = function(n, s) {
+      return d3_selectMatcher.call(n, s);
+    };
+    return d3_selectMatches(n, s);
+  };
+  if (typeof Sizzle === "function") {
+    d3_select = function(s, n) {
+      return Sizzle(s, n)[0] || null;
+    };
+    d3_selectAll = Sizzle;
+    d3_selectMatches = Sizzle.matchesSelector;
+  }
+  d3.selection = function() {
+    return d3.select(d3_document.documentElement);
+  };
+  var d3_selectionPrototype = d3.selection.prototype = [];
+  d3_selectionPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, group, node;
+    selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(subnode = selector.call(node, node.__data__, i, j));
+          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selector(selector) {
+    return typeof selector === "function" ? selector : function() {
+      return d3_select(selector, this);
+    };
+  }
+  d3_selectionPrototype.selectAll = function(selector) {
+    var subgroups = [], subgroup, node;
+    selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
+          subgroup.parentNode = node;
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selectorAll(selector) {
+    return typeof selector === "function" ? selector : function() {
+      return d3_selectAll(selector, this);
+    };
+  }
+  var d3_nsPrefix = {
+    svg: "http://www.w3.org/2000/svg",
+    xhtml: "http://www.w3.org/1999/xhtml",
+    xlink: "http://www.w3.org/1999/xlink",
+    xml: "http://www.w3.org/XML/1998/namespace",
+    xmlns: "http://www.w3.org/2000/xmlns/"
+  };
+  d3.ns = {
+    prefix: d3_nsPrefix,
+    qualify: function(name) {
+      var i = name.indexOf(":"), prefix = name;
+      if (i >= 0) {
+        prefix = name.slice(0, i);
+        name = name.slice(i + 1);
+      }
+      return d3_nsPrefix.hasOwnProperty(prefix) ? {
+        space: d3_nsPrefix[prefix],
+        local: name
+      } : name;
+    }
+  };
+  d3_selectionPrototype.attr = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node();
+        name = d3.ns.qualify(name);
+        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
+      }
+      for (value in name) this.each(d3_selection_attr(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_attr(name, value));
+  };
+  function d3_selection_attr(name, value) {
+    name = d3.ns.qualify(name);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    function attrConstant() {
+      this.setAttribute(name, value);
+    }
+    function attrConstantNS() {
+      this.setAttributeNS(name.space, name.local, value);
+    }
+    function attrFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
+    }
+    function attrFunctionNS() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
+    }
+    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
+  }
+  function d3_collapse(s) {
+    return s.trim().replace(/\s+/g, " ");
+  }
+  d3_selectionPrototype.classed = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;
+        if (value = node.classList) {
+          while (++i < n) if (!value.contains(name[i])) return false;
+        } else {
+          value = node.getAttribute("class");
+          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
+        }
+        return true;
+      }
+      for (value in name) this.each(d3_selection_classed(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_classed(name, value));
+  };
+  function d3_selection_classedRe(name) {
+    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
+  }
+  function d3_selection_classes(name) {
+    return (name + "").trim().split(/^|\s+/);
+  }
+  function d3_selection_classed(name, value) {
+    name = d3_selection_classes(name).map(d3_selection_classedName);
+    var n = name.length;
+    function classedConstant() {
+      var i = -1;
+      while (++i < n) name[i](this, value);
+    }
+    function classedFunction() {
+      var i = -1, x = value.apply(this, arguments);
+      while (++i < n) name[i](this, x);
+    }
+    return typeof value === "function" ? classedFunction : classedConstant;
+  }
+  function d3_selection_classedName(name) {
+    var re = d3_selection_classedRe(name);
+    return function(node, value) {
+      if (c = node.classList) return value ? c.add(name) : c.remove(name);
+      var c = node.getAttribute("class") || "";
+      if (value) {
+        re.lastIndex = 0;
+        if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
+      } else {
+        node.setAttribute("class", d3_collapse(c.replace(re, " ")));
+      }
+    };
+  }
+  d3_selectionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
+        return this;
+      }
+      if (n < 2) {
+        var node = this.node();
+        return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
+      }
+      priority = "";
+    }
+    return this.each(d3_selection_style(name, value, priority));
+  };
+  function d3_selection_style(name, value, priority) {
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    function styleConstant() {
+      this.style.setProperty(name, value, priority);
+    }
+    function styleFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
+    }
+    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
+  }
+  d3_selectionPrototype.property = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") return this.node()[name];
+      for (value in name) this.each(d3_selection_property(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_property(name, value));
+  };
+  function d3_selection_property(name, value) {
+    function propertyNull() {
+      delete this[name];
+    }
+    function propertyConstant() {
+      this[name] = value;
+    }
+    function propertyFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) delete this[name]; else this[name] = x;
+    }
+    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
+  }
+  d3_selectionPrototype.text = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.textContent = v == null ? "" : v;
+    } : value == null ? function() {
+      this.textContent = "";
+    } : function() {
+      this.textContent = value;
+    }) : this.node().textContent;
+  };
+  d3_selectionPrototype.html = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.innerHTML = v == null ? "" : v;
+    } : value == null ? function() {
+      this.innerHTML = "";
+    } : function() {
+      this.innerHTML = value;
+    }) : this.node().innerHTML;
+  };
+  d3_selectionPrototype.append = function(name) {
+    name = d3_selection_creator(name);
+    return this.select(function() {
+      return this.appendChild(name.apply(this, arguments));
+    });
+  };
+  function d3_selection_creator(name) {
+    function create() {
+      var document = this.ownerDocument, namespace = this.namespaceURI;
+      return namespace ? document.createElementNS(namespace, name) : document.createElement(name);
+    }
+    function createNS() {
+      return this.ownerDocument.createElementNS(name.space, name.local);
+    }
+    return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;
+  }
+  d3_selectionPrototype.insert = function(name, before) {
+    name = d3_selection_creator(name);
+    before = d3_selection_selector(before);
+    return this.select(function() {
+      return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
+    });
+  };
+  d3_selectionPrototype.remove = function() {
+    return this.each(d3_selectionRemove);
+  };
+  function d3_selectionRemove() {
+    var parent = this.parentNode;
+    if (parent) parent.removeChild(this);
+  }
+  d3_selectionPrototype.data = function(value, key) {
+    var i = -1, n = this.length, group, node;
+    if (!arguments.length) {
+      value = new Array(n = (group = this[0]).length);
+      while (++i < n) {
+        if (node = group[i]) {
+          value[i] = node.__data__;
+        }
+      }
+      return value;
+    }
+    function bind(group, groupData) {
+      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
+      if (key) {
+        var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;
+        for (i = -1; ++i < n; ) {
+          if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) {
+            exitNodes[i] = node;
+          } else {
+            nodeByKeyValue.set(keyValue, node);
+          }
+          keyValues[i] = keyValue;
+        }
+        for (i = -1; ++i < m; ) {
+          if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          } else if (node !== true) {
+            updateNodes[i] = node;
+            node.__data__ = nodeData;
+          }
+          nodeByKeyValue.set(keyValue, true);
+        }
+        for (i = -1; ++i < n; ) {
+          if (nodeByKeyValue.get(keyValues[i]) !== true) {
+            exitNodes[i] = group[i];
+          }
+        }
+      } else {
+        for (i = -1; ++i < n0; ) {
+          node = group[i];
+          nodeData = groupData[i];
+          if (node) {
+            node.__data__ = nodeData;
+            updateNodes[i] = node;
+          } else {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          }
+        }
+        for (;i < m; ++i) {
+          enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        }
+        for (;i < n; ++i) {
+          exitNodes[i] = group[i];
+        }
+      }
+      enterNodes.update = updateNodes;
+      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
+      enter.push(enterNodes);
+      update.push(updateNodes);
+      exit.push(exitNodes);
+    }
+    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
+    if (typeof value === "function") {
+      while (++i < n) {
+        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
+      }
+    } else {
+      while (++i < n) {
+        bind(group = this[i], value);
+      }
+    }
+    update.enter = function() {
+      return enter;
+    };
+    update.exit = function() {
+      return exit;
+    };
+    return update;
+  };
+  function d3_selection_dataNode(data) {
+    return {
+      __data__: data
+    };
+  }
+  d3_selectionPrototype.datum = function(value) {
+    return arguments.length ? this.property("__data__", value) : this.property("__data__");
+  };
+  d3_selectionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_filter(selector) {
+    return function() {
+      return d3_selectMatches(this, selector);
+    };
+  }
+  d3_selectionPrototype.order = function() {
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
+        if (node = group[i]) {
+          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
+          next = node;
+        }
+      }
+    }
+    return this;
+  };
+  d3_selectionPrototype.sort = function(comparator) {
+    comparator = d3_selection_sortComparator.apply(this, arguments);
+    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
+    return this.order();
+  };
+  function d3_selection_sortComparator(comparator) {
+    if (!arguments.length) comparator = d3_ascending;
+    return function(a, b) {
+      return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
+    };
+  }
+  d3_selectionPrototype.each = function(callback) {
+    return d3_selection_each(this, function(node, i, j) {
+      callback.call(node, node.__data__, i, j);
+    });
+  };
+  function d3_selection_each(groups, callback) {
+    for (var j = 0, m = groups.length; j < m; j++) {
+      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
+        if (node = group[i]) callback(node, i, j);
+      }
+    }
+    return groups;
+  }
+  d3_selectionPrototype.call = function(callback) {
+    var args = d3_array(arguments);
+    callback.apply(args[0] = this, args);
+    return this;
+  };
+  d3_selectionPrototype.empty = function() {
+    return !this.node();
+  };
+  d3_selectionPrototype.node = function() {
+    for (var j = 0, m = this.length; j < m; j++) {
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        var node = group[i];
+        if (node) return node;
+      }
+    }
+    return null;
+  };
+  d3_selectionPrototype.size = function() {
+    var n = 0;
+    d3_selection_each(this, function() {
+      ++n;
+    });
+    return n;
+  };
+  function d3_selection_enter(selection) {
+    d3_subclass(selection, d3_selection_enterPrototype);
+    return selection;
+  }
+  var d3_selection_enterPrototype = [];
+  d3.selection.enter = d3_selection_enter;
+  d3.selection.enter.prototype = d3_selection_enterPrototype;
+  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+  d3_selection_enterPrototype.call = d3_selectionPrototype.call;
+  d3_selection_enterPrototype.size = d3_selectionPrototype.size;
+  d3_selection_enterPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, upgroup, group, node;
+    for (var j = -1, m = this.length; ++j < m; ) {
+      upgroup = (group = this[j]).update;
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = group.parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));
+          subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  d3_selection_enterPrototype.insert = function(name, before) {
+    if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);
+    return d3_selectionPrototype.insert.call(this, name, before);
+  };
+  function d3_selection_enterInsertBefore(enter) {
+    var i0, j0;
+    return function(d, i, j) {
+      var group = enter[j].update, n = group.length, node;
+      if (j != j0) j0 = j, i0 = 0;
+      if (i >= i0) i0 = i + 1;
+      while (!(node = group[i0]) && ++i0 < n) ;
+      return node;
+    };
+  }
+  d3.select = function(node) {
+    var group;
+    if (typeof node === "string") {
+      group = [ d3_select(node, d3_document) ];
+      group.parentNode = d3_document.documentElement;
+    } else {
+      group = [ node ];
+      group.parentNode = d3_documentElement(node);
+    }
+    return d3_selection([ group ]);
+  };
+  d3.selectAll = function(nodes) {
+    var group;
+    if (typeof nodes === "string") {
+      group = d3_array(d3_selectAll(nodes, d3_document));
+      group.parentNode = d3_document.documentElement;
+    } else {
+      group = nodes;
+      group.parentNode = null;
+    }
+    return d3_selection([ group ]);
+  };
+  d3_selectionPrototype.on = function(type, listener, capture) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof type !== "string") {
+        if (n < 2) listener = false;
+        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
+        return this;
+      }
+      if (n < 2) return (n = this.node()["__on" + type]) && n._;
+      capture = false;
+    }
+    return this.each(d3_selection_on(type, listener, capture));
+  };
+  function d3_selection_on(type, listener, capture) {
+    var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
+    if (i > 0) type = type.slice(0, i);
+    var filter = d3_selection_onFilters.get(type);
+    if (filter) type = filter, wrap = d3_selection_onFilter;
+    function onRemove() {
+      var l = this[name];
+      if (l) {
+        this.removeEventListener(type, l, l.$);
+        delete this[name];
+      }
+    }
+    function onAdd() {
+      var l = wrap(listener, d3_array(arguments));
+      onRemove.call(this);
+      this.addEventListener(type, this[name] = l, l.$ = capture);
+      l._ = listener;
+    }
+    function removeAll() {
+      var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
+      for (var name in this) {
+        if (match = name.match(re)) {
+          var l = this[name];
+          this.removeEventListener(match[1], l, l.$);
+          delete this[name];
+        }
+      }
+    }
+    return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
+  }
+  var d3_selection_onFilters = d3.map({
+    mouseenter: "mouseover",
+    mouseleave: "mouseout"
+  });
+  if (d3_document) {
+    d3_selection_onFilters.forEach(function(k) {
+      if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
+    });
+  }
+  function d3_selection_onListener(listener, argumentz) {
+    return function(e) {
+      var o = d3.event;
+      d3.event = e;
+      argumentz[0] = this.__data__;
+      try {
+        listener.apply(this, argumentz);
+      } finally {
+        d3.event = o;
+      }
+    };
+  }
+  function d3_selection_onFilter(listener, argumentz) {
+    var l = d3_selection_onListener(listener, argumentz);
+    return function(e) {
+      var target = this, related = e.relatedTarget;
+      if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
+        l.call(target, e);
+      }
+    };
+  }
+  var d3_event_dragSelect, d3_event_dragId = 0;
+  function d3_event_dragSuppress(node) {
+    var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
+    if (d3_event_dragSelect == null) {
+      d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect");
+    }
+    if (d3_event_dragSelect) {
+      var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];
+      style[d3_event_dragSelect] = "none";
+    }
+    return function(suppressClick) {
+      w.on(name, null);
+      if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
+      if (suppressClick) {
+        var off = function() {
+          w.on(click, null);
+        };
+        w.on(click, function() {
+          d3_eventPreventDefault();
+          off();
+        }, true);
+        setTimeout(off, 0);
+      }
+    };
+  }
+  d3.mouse = function(container) {
+    return d3_mousePoint(container, d3_eventSource());
+  };
+  var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
+  function d3_mousePoint(container, e) {
+    if (e.changedTouches) e = e.changedTouches[0];
+    var svg = container.ownerSVGElement || container;
+    if (svg.createSVGPoint) {
+      var point = svg.createSVGPoint();
+      if (d3_mouse_bug44083 < 0) {
+        var window = d3_window(container);
+        if (window.scrollX || window.scrollY) {
+          svg = d3.select("body").append("svg").style({
+            position: "absolute",
+            top: 0,
+            left: 0,
+            margin: 0,
+            padding: 0,
+            border: "none"
+          }, "important");
+          var ctm = svg[0][0].getScreenCTM();
+          d3_mouse_bug44083 = !(ctm.f || ctm.e);
+          svg.remove();
+        }
+      }
+      if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, 
+      point.y = e.clientY;
+      point = point.matrixTransform(container.getScreenCTM().inverse());
+      return [ point.x, point.y ];
+    }
+    var rect = container.getBoundingClientRect();
+    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
+  }
+  d3.touch = function(container, touches, identifier) {
+    if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
+    if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
+      if ((touch = touches[i]).identifier === identifier) {
+        return d3_mousePoint(container, touch);
+      }
+    }
+  };
+  d3.behavior.drag = function() {
+    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend");
+    function drag() {
+      this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
+    }
+    function dragstart(id, position, subject, move, end) {
+      return function() {
+        var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);
+        if (origin) {
+          dragOffset = origin.apply(that, arguments);
+          dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
+        } else {
+          dragOffset = [ 0, 0 ];
+        }
+        dispatch({
+          type: "dragstart"
+        });
+        function moved() {
+          var position1 = position(parent, dragId), dx, dy;
+          if (!position1) return;
+          dx = position1[0] - position0[0];
+          dy = position1[1] - position0[1];
+          dragged |= dx | dy;
+          position0 = position1;
+          dispatch({
+            type: "drag",
+            x: position1[0] + dragOffset[0],
+            y: position1[1] + dragOffset[1],
+            dx: dx,
+            dy: dy
+          });
+        }
+        function ended() {
+          if (!position(parent, dragId)) return;
+          dragSubject.on(move + dragName, null).on(end + dragName, null);
+          dragRestore(dragged && d3.event.target === target);
+          dispatch({
+            type: "dragend"
+          });
+        }
+      };
+    }
+    drag.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return drag;
+    };
+    return d3.rebind(drag, event, "on");
+  };
+  function d3_behavior_dragTouchId() {
+    return d3.event.changedTouches[0].identifier;
+  }
+  d3.touches = function(container, touches) {
+    if (arguments.length < 2) touches = d3_eventSource().touches;
+    return touches ? d3_array(touches).map(function(touch) {
+      var point = d3_mousePoint(container, touch);
+      point.identifier = touch.identifier;
+      return point;
+    }) : [];
+  };
+  var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
+  function d3_sgn(x) {
+    return x > 0 ? 1 : x < 0 ? -1 : 0;
+  }
+  function d3_cross2d(a, b, c) {
+    return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
+  }
+  function d3_acos(x) {
+    return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
+  }
+  function d3_asin(x) {
+    return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
+  }
+  function d3_sinh(x) {
+    return ((x = Math.exp(x)) - 1 / x) / 2;
+  }
+  function d3_cosh(x) {
+    return ((x = Math.exp(x)) + 1 / x) / 2;
+  }
+  function d3_tanh(x) {
+    return ((x = Math.exp(2 * x)) - 1) / (x + 1);
+  }
+  function d3_haversin(x) {
+    return (x = Math.sin(x / 2)) * x;
+  }
+  var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;
+  d3.interpolateZoom = function(p0, p1) {
+    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2];
+    var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ;
+    function interpolate(t) {
+      var s = t * S;
+      if (dr) {
+        var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
+        return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];
+      }
+      return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ];
+    }
+    interpolate.duration = S * 1e3;
+    return interpolate;
+  };
+  d3.behavior.zoom = function() {
+    var view = {
+      x: 0,
+      y: 0,
+      k: 1
+    }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
+    if (!d3_behavior_zoomWheel) {
+      d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
+        return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
+      }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
+        return d3.event.wheelDelta;
+      }, "mousewheel") : (d3_behavior_zoomDelta = function() {
+        return -d3.event.detail;
+      }, "MozMousePixelScroll");
+    }
+    function zoom(g) {
+      g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
+    }
+    zoom.event = function(g) {
+      g.each(function() {
+        var dispatch = event.of(this, arguments), view1 = view;
+        if (d3_transitionInheritId) {
+          d3.select(this).transition().each("start.zoom", function() {
+            view = this.__chart__ || {
+              x: 0,
+              y: 0,
+              k: 1
+            };
+            zoomstarted(dispatch);
+          }).tween("zoom:zoom", function() {
+            var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
+            return function(t) {
+              var l = i(t), k = dx / l[2];
+              this.__chart__ = view = {
+                x: cx - l[0] * k,
+                y: cy - l[1] * k,
+                k: k
+              };
+              zoomed(dispatch);
+            };
+          }).each("interrupt.zoom", function() {
+            zoomended(dispatch);
+          }).each("end.zoom", function() {
+            zoomended(dispatch);
+          });
+        } else {
+          this.__chart__ = view;
+          zoomstarted(dispatch);
+          zoomed(dispatch);
+          zoomended(dispatch);
+        }
+      });
+    };
+    zoom.translate = function(_) {
+      if (!arguments.length) return [ view.x, view.y ];
+      view = {
+        x: +_[0],
+        y: +_[1],
+        k: view.k
+      };
+      rescale();
+      return zoom;
+    };
+    zoom.scale = function(_) {
+      if (!arguments.length) return view.k;
+      view = {
+        x: view.x,
+        y: view.y,
+        k: +_
+      };
+      rescale();
+      return zoom;
+    };
+    zoom.scaleExtent = function(_) {
+      if (!arguments.length) return scaleExtent;
+      scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.center = function(_) {
+      if (!arguments.length) return center;
+      center = _ && [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.size = function(_) {
+      if (!arguments.length) return size;
+      size = _ && [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.duration = function(_) {
+      if (!arguments.length) return duration;
+      duration = +_;
+      return zoom;
+    };
+    zoom.x = function(z) {
+      if (!arguments.length) return x1;
+      x1 = z;
+      x0 = z.copy();
+      view = {
+        x: 0,
+        y: 0,
+        k: 1
+      };
+      return zoom;
+    };
+    zoom.y = function(z) {
+      if (!arguments.length) return y1;
+      y1 = z;
+      y0 = z.copy();
+      view = {
+        x: 0,
+        y: 0,
+        k: 1
+      };
+      return zoom;
+    };
+    function location(p) {
+      return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];
+    }
+    function point(l) {
+      return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];
+    }
+    function scaleTo(s) {
+      view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
+    }
+    function translateTo(p, l) {
+      l = point(l);
+      view.x += p[0] - l[0];
+      view.y += p[1] - l[1];
+    }
+    function zoomTo(that, p, l, k) {
+      that.__chart__ = {
+        x: view.x,
+        y: view.y,
+        k: view.k
+      };
+      scaleTo(Math.pow(2, k));
+      translateTo(center0 = p, l);
+      that = d3.select(that);
+      if (duration > 0) that = that.transition().duration(duration);
+      that.call(zoom.event);
+    }
+    function rescale() {
+      if (x1) x1.domain(x0.range().map(function(x) {
+        return (x - view.x) / view.k;
+      }).map(x0.invert));
+      if (y1) y1.domain(y0.range().map(function(y) {
+        return (y - view.y) / view.k;
+      }).map(y0.invert));
+    }
+    function zoomstarted(dispatch) {
+      if (!zooming++) dispatch({
+        type: "zoomstart"
+      });
+    }
+    function zoomed(dispatch) {
+      rescale();
+      dispatch({
+        type: "zoom",
+        scale: view.k,
+        translate: [ view.x, view.y ]
+      });
+    }
+    function zoomended(dispatch) {
+      if (!--zooming) dispatch({
+        type: "zoomend"
+      }), center0 = null;
+    }
+    function mousedowned() {
+      var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);
+      d3_selection_interrupt.call(that);
+      zoomstarted(dispatch);
+      function moved() {
+        dragged = 1;
+        translateTo(d3.mouse(that), location0);
+        zoomed(dispatch);
+      }
+      function ended() {
+        subject.on(mousemove, null).on(mouseup, null);
+        dragRestore(dragged && d3.event.target === target);
+        zoomended(dispatch);
+      }
+    }
+    function touchstarted() {
+      var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);
+      started();
+      zoomstarted(dispatch);
+      subject.on(mousedown, null).on(touchstart, started);
+      function relocate() {
+        var touches = d3.touches(that);
+        scale0 = view.k;
+        touches.forEach(function(t) {
+          if (t.identifier in locations0) locations0[t.identifier] = location(t);
+        });
+        return touches;
+      }
+      function started() {
+        var target = d3.event.target;
+        d3.select(target).on(touchmove, moved).on(touchend, ended);
+        targets.push(target);
+        var changed = d3.event.changedTouches;
+        for (var i = 0, n = changed.length; i < n; ++i) {
+          locations0[changed[i].identifier] = null;
+        }
+        var touches = relocate(), now = Date.now();
+        if (touches.length === 1) {
+          if (now - touchtime < 500) {
+            var p = touches[0];
+            zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
+            d3_eventPreventDefault();
+          }
+          touchtime = now;
+        } else if (touches.length > 1) {
+          var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];
+          distance0 = dx * dx + dy * dy;
+        }
+      }
+      function moved() {
+        var touches = d3.touches(that), p0, l0, p1, l1;
+        d3_selection_interrupt.call(that);
+        for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
+          p1 = touches[i];
+          if (l1 = locations0[p1.identifier]) {
+            if (l0) break;
+            p0 = p1, l0 = l1;
+          }
+        }
+        if (l1) {
+          var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);
+          p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
+          l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
+          scaleTo(scale1 * scale0);
+        }
+        touchtime = null;
+        translateTo(p0, l0);
+        zoomed(dispatch);
+      }
+      function ended() {
+        if (d3.event.touches.length) {
+          var changed = d3.event.changedTouches;
+          for (var i = 0, n = changed.length; i < n; ++i) {
+            delete locations0[changed[i].identifier];
+          }
+          for (var identifier in locations0) {
+            return void relocate();
+          }
+        }
+        d3.selectAll(targets).on(zoomName, null);
+        subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
+        dragRestore();
+        zoomended(dispatch);
+      }
+    }
+    function mousewheeled() {
+      var dispatch = event.of(this, arguments);
+      if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), 
+      translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);
+      mousewheelTimer = setTimeout(function() {
+        mousewheelTimer = null;
+        zoomended(dispatch);
+      }, 50);
+      d3_eventPreventDefault();
+      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
+      translateTo(center0, translate0);
+      zoomed(dispatch);
+    }
+    function dblclicked() {
+      var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;
+      zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
+    }
+    return d3.rebind(zoom, event, "on");
+  };
+  var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;
+  d3.color = d3_color;
+  function d3_color() {}
+  d3_color.prototype.toString = function() {
+    return this.rgb() + "";
+  };
+  d3.hsl = d3_hsl;
+  function d3_hsl(h, s, l) {
+    return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
+  }
+  var d3_hslPrototype = d3_hsl.prototype = new d3_color();
+  d3_hslPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_hsl(this.h, this.s, this.l / k);
+  };
+  d3_hslPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_hsl(this.h, this.s, k * this.l);
+  };
+  d3_hslPrototype.rgb = function() {
+    return d3_hsl_rgb(this.h, this.s, this.l);
+  };
+  function d3_hsl_rgb(h, s, l) {
+    var m1, m2;
+    h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
+    s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
+    l = l < 0 ? 0 : l > 1 ? 1 : l;
+    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+    m1 = 2 * l - m2;
+    function v(h) {
+      if (h > 360) h -= 360; else if (h < 0) h += 360;
+      if (h < 60) return m1 + (m2 - m1) * h / 60;
+      if (h < 180) return m2;
+      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+      return m1;
+    }
+    function vv(h) {
+      return Math.round(v(h) * 255);
+    }
+    return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+  }
+  d3.hcl = d3_hcl;
+  function d3_hcl(h, c, l) {
+    return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
+  }
+  var d3_hclPrototype = d3_hcl.prototype = new d3_color();
+  d3_hclPrototype.brighter = function(k) {
+    return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.darker = function(k) {
+    return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.rgb = function() {
+    return d3_hcl_lab(this.h, this.c, this.l).rgb();
+  };
+  function d3_hcl_lab(h, c, l) {
+    if (isNaN(h)) h = 0;
+    if (isNaN(c)) c = 0;
+    return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
+  }
+  d3.lab = d3_lab;
+  function d3_lab(l, a, b) {
+    return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
+  }
+  var d3_lab_K = 18;
+  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
+  var d3_labPrototype = d3_lab.prototype = new d3_color();
+  d3_labPrototype.brighter = function(k) {
+    return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.darker = function(k) {
+    return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.rgb = function() {
+    return d3_lab_rgb(this.l, this.a, this.b);
+  };
+  function d3_lab_rgb(l, a, b) {
+    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
+    x = d3_lab_xyz(x) * d3_lab_X;
+    y = d3_lab_xyz(y) * d3_lab_Y;
+    z = d3_lab_xyz(z) * d3_lab_Z;
+    return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
+  }
+  function d3_lab_hcl(l, a, b) {
+    return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
+  }
+  function d3_lab_xyz(x) {
+    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
+  }
+  function d3_xyz_lab(x) {
+    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
+  }
+  function d3_xyz_rgb(r) {
+    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
+  }
+  d3.rgb = d3_rgb;
+  function d3_rgb(r, g, b) {
+    return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
+  }
+  function d3_rgbNumber(value) {
+    return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
+  }
+  function d3_rgbString(value) {
+    return d3_rgbNumber(value) + "";
+  }
+  var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
+  d3_rgbPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    var r = this.r, g = this.g, b = this.b, i = 30;
+    if (!r && !g && !b) return new d3_rgb(i, i, i);
+    if (r && r < i) r = i;
+    if (g && g < i) g = i;
+    if (b && b < i) b = i;
+    return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
+  };
+  d3_rgbPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_rgb(k * this.r, k * this.g, k * this.b);
+  };
+  d3_rgbPrototype.hsl = function() {
+    return d3_rgb_hsl(this.r, this.g, this.b);
+  };
+  d3_rgbPrototype.toString = function() {
+    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+  };
+  function d3_rgb_hex(v) {
+    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
+  }
+  function d3_rgb_parse(format, rgb, hsl) {
+    var r = 0, g = 0, b = 0, m1, m2, color;
+    m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase());
+    if (m1) {
+      m2 = m1[2].split(",");
+      switch (m1[1]) {
+       case "hsl":
+        {
+          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
+        }
+
+       case "rgb":
+        {
+          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
+        }
+      }
+    }
+    if (color = d3_rgb_names.get(format)) {
+      return rgb(color.r, color.g, color.b);
+    }
+    if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
+      if (format.length === 4) {
+        r = (color & 3840) >> 4;
+        r = r >> 4 | r;
+        g = color & 240;
+        g = g >> 4 | g;
+        b = color & 15;
+        b = b << 4 | b;
+      } else if (format.length === 7) {
+        r = (color & 16711680) >> 16;
+        g = (color & 65280) >> 8;
+        b = color & 255;
+      }
+    }
+    return rgb(r, g, b);
+  }
+  function d3_rgb_hsl(r, g, b) {
+    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
+    if (d) {
+      s = l < .5 ? d / (max + min) : d / (2 - max - min);
+      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
+      h *= 60;
+    } else {
+      h = NaN;
+      s = l > 0 && l < 1 ? 0 : h;
+    }
+    return new d3_hsl(h, s, l);
+  }
+  function d3_rgb_lab(r, g, b) {
+    r = d3_rgb_xyz(r);
+    g = d3_rgb_xyz(g);
+    b = d3_rgb_xyz(b);
+    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
+    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
+  }
+  function d3_rgb_xyz(r) {
+    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
+  }
+  function d3_rgb_parseNumber(c) {
+    var f = parseFloat(c);
+    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+  }
+  var d3_rgb_names = d3.map({
+    aliceblue: 15792383,
+    antiquewhite: 16444375,
+    aqua: 65535,
+    aquamarine: 8388564,
+    azure: 15794175,
+    beige: 16119260,
+    bisque: 16770244,
+    black: 0,
+    blanchedalmond: 16772045,
+    blue: 255,
+    blueviolet: 9055202,
+    brown: 10824234,
+    burlywood: 14596231,
+    cadetblue: 6266528,
+    chartreuse: 8388352,
+    chocolate: 13789470,
+    coral: 16744272,
+    cornflowerblue: 6591981,
+    cornsilk: 16775388,
+    crimson: 14423100,
+    cyan: 65535,
+    darkblue: 139,
+    darkcyan: 35723,
+    darkgoldenrod: 12092939,
+    darkgray: 11119017,
+    darkgreen: 25600,
+    darkgrey: 11119017,
+    darkkhaki: 12433259,
+    darkmagenta: 9109643,
+    darkolivegreen: 5597999,
+    darkorange: 16747520,
+    darkorchid: 10040012,
+    darkred: 9109504,
+    darksalmon: 15308410,
+    darkseagreen: 9419919,
+    darkslateblue: 4734347,
+    darkslategray: 3100495,
+    darkslategrey: 3100495,
+    darkturquoise: 52945,
+    darkviolet: 9699539,
+    deeppink: 16716947,
+    deepskyblue: 49151,
+    dimgray: 6908265,
+    dimgrey: 6908265,
+    dodgerblue: 2003199,
+    firebrick: 11674146,
+    floralwhite: 16775920,
+    forestgreen: 2263842,
+    fuchsia: 16711935,
+    gainsboro: 14474460,
+    ghostwhite: 16316671,
+    gold: 16766720,
+    goldenrod: 14329120,
+    gray: 8421504,
+    green: 32768,
+    greenyellow: 11403055,
+    grey: 8421504,
+    honeydew: 15794160,
+    hotpink: 16738740,
+    indianred: 13458524,
+    indigo: 4915330,
+    ivory: 16777200,
+    khaki: 15787660,
+    lavender: 15132410,
+    lavenderblush: 16773365,
+    lawngreen: 8190976,
+    lemonchiffon: 16775885,
+    lightblue: 11393254,
+    lightcoral: 15761536,
+    lightcyan: 14745599,
+    lightgoldenrodyellow: 16448210,
+    lightgray: 13882323,
+    lightgreen: 9498256,
+    lightgrey: 13882323,
+    lightpink: 16758465,
+    lightsalmon: 16752762,
+    lightseagreen: 2142890,
+    lightskyblue: 8900346,
+    lightslategray: 7833753,
+    lightslategrey: 7833753,
+    lightsteelblue: 11584734,
+    lightyellow: 16777184,
+    lime: 65280,
+    limegreen: 3329330,
+    linen: 16445670,
+    magenta: 16711935,
+    maroon: 8388608,
+    mediumaquamarine: 6737322,
+    mediumblue: 205,
+    mediumorchid: 12211667,
+    mediumpurple: 9662683,
+    mediumseagreen: 3978097,
+    mediumslateblue: 8087790,
+    mediumspringgreen: 64154,
+    mediumturquoise: 4772300,
+    mediumvioletred: 13047173,
+    midnightblue: 1644912,
+    mintcream: 16121850,
+    mistyrose: 16770273,
+    moccasin: 16770229,
+    navajowhite: 16768685,
+    navy: 128,
+    oldlace: 16643558,
+    olive: 8421376,
+    olivedrab: 7048739,
+    orange: 16753920,
+    orangered: 16729344,
+    orchid: 14315734,
+    palegoldenrod: 15657130,
+    palegreen: 10025880,
+    paleturquoise: 11529966,
+    palevioletred: 14381203,
+    papayawhip: 16773077,
+    peachpuff: 16767673,
+    peru: 13468991,
+    pink: 16761035,
+    plum: 14524637,
+    powderblue: 11591910,
+    purple: 8388736,
+    rebeccapurple: 6697881,
+    red: 16711680,
+    rosybrown: 12357519,
+    royalblue: 4286945,
+    saddlebrown: 9127187,
+    salmon: 16416882,
+    sandybrown: 16032864,
+    seagreen: 3050327,
+    seashell: 16774638,
+    sienna: 10506797,
+    silver: 12632256,
+    skyblue: 8900331,
+    slateblue: 6970061,
+    slategray: 7372944,
+    slategrey: 7372944,
+    snow: 16775930,
+    springgreen: 65407,
+    steelblue: 4620980,
+    tan: 13808780,
+    teal: 32896,
+    thistle: 14204888,
+    tomato: 16737095,
+    turquoise: 4251856,
+    violet: 15631086,
+    wheat: 16113331,
+    white: 16777215,
+    whitesmoke: 16119285,
+    yellow: 16776960,
+    yellowgreen: 10145074
+  });
+  d3_rgb_names.forEach(function(key, value) {
+    d3_rgb_names.set(key, d3_rgbNumber(value));
+  });
+  function d3_functor(v) {
+    return typeof v === "function" ? v : function() {
+      return v;
+    };
+  }
+  d3.functor = d3_functor;
+  d3.xhr = d3_xhrType(d3_identity);
+  function d3_xhrType(response) {
+    return function(url, mimeType, callback) {
+      if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, 
+      mimeType = null;
+      return d3_xhr(url, mimeType, response, callback);
+    };
+  }
+  function d3_xhr(url, mimeType, response, callback) {
+    var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null;
+    if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest();
+    "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
+      request.readyState > 3 && respond();
+    };
+    function respond() {
+      var status = request.status, result;
+      if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
+        try {
+          result = response.call(xhr, request);
+        } catch (e) {
+          dispatch.error.call(xhr, e);
+          return;
+        }
+        dispatch.load.call(xhr, result);
+      } else {
+        dispatch.error.call(xhr, request);
+      }
+    }
+    request.onprogress = function(event) {
+      var o = d3.event;
+      d3.event = event;
+      try {
+        dispatch.progress.call(xhr, request);
+      } finally {
+        d3.event = o;
+      }
+    };
+    xhr.header = function(name, value) {
+      name = (name + "").toLowerCase();
+      if (arguments.length < 2) return headers[name];
+      if (value == null) delete headers[name]; else headers[name] = value + "";
+      return xhr;
+    };
+    xhr.mimeType = function(value) {
+      if (!arguments.length) return mimeType;
+      mimeType = value == null ? null : value + "";
+      return xhr;
+    };
+    xhr.responseType = function(value) {
+      if (!arguments.length) return responseType;
+      responseType = value;
+      return xhr;
+    };
+    xhr.response = function(value) {
+      response = value;
+      return xhr;
+    };
+    [ "get", "post" ].forEach(function(method) {
+      xhr[method] = function() {
+        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
+      };
+    });
+    xhr.send = function(method, data, callback) {
+      if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
+      request.open(method, url, true);
+      if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
+      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
+      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
+      if (responseType != null) request.responseType = responseType;
+      if (callback != null) xhr.on("error", callback).on("load", function(request) {
+        callback(null, request);
+      });
+      dispatch.beforesend.call(xhr, request);
+      request.send(data == null ? null : data);
+      return xhr;
+    };
+    xhr.abort = function() {
+      request.abort();
+      return xhr;
+    };
+    d3.rebind(xhr, dispatch, "on");
+    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
+  }
+  function d3_xhr_fixCallback(callback) {
+    return callback.length === 1 ? function(error, request) {
+      callback(error == null ? request : null);
+    } : callback;
+  }
+  function d3_xhrHasResponse(request) {
+    var type = request.responseType;
+    return type && type !== "text" ? request.response : request.responseText;
+  }
+  d3.dsv = function(delimiter, mimeType) {
+    var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
+    function dsv(url, row, callback) {
+      if (arguments.length < 3) callback = row, row = null;
+      var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);
+      xhr.row = function(_) {
+        return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
+      };
+      return xhr;
+    }
+    function response(request) {
+      return dsv.parse(request.responseText);
+    }
+    function typedResponse(f) {
+      return function(request) {
+        return dsv.parse(request.responseText, f);
+      };
+    }
+    dsv.parse = function(text, f) {
+      var o;
+      return dsv.parseRows(text, function(row, i) {
+        if (o) return o(row, i - 1);
+        var a = new Function("d", "return {" + row.map(function(name, i) {
+          return JSON.stringify(name) + ": d[" + i + "]";
+        }).join(",") + "}");
+        o = f ? function(row, i) {
+          return f(a(row), i);
+        } : a;
+      });
+    };
+    dsv.parseRows = function(text, f) {
+      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
+      function token() {
+        if (I >= N) return EOF;
+        if (eol) return eol = false, EOL;
+        var j = I;
+        if (text.charCodeAt(j) === 34) {
+          var i = j;
+          while (i++ < N) {
+            if (text.charCodeAt(i) === 34) {
+              if (text.charCodeAt(i + 1) !== 34) break;
+              ++i;
+            }
+          }
+          I = i + 2;
+          var c = text.charCodeAt(i + 1);
+          if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(i + 2) === 10) ++I;
+          } else if (c === 10) {
+            eol = true;
+          }
+          return text.slice(j + 1, i).replace(/""/g, '"');
+        }
+        while (I < N) {
+          var c = text.charCodeAt(I++), k = 1;
+          if (c === 10) eol = true; else if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(I) === 10) ++I, ++k;
+          } else if (c !== delimiterCode) continue;
+          return text.slice(j, I - k);
+        }
+        return text.slice(j);
+      }
+      while ((t = token()) !== EOF) {
+        var a = [];
+        while (t !== EOL && t !== EOF) {
+          a.push(t);
+          t = token();
+        }
+        if (f && (a = f(a, n++)) == null) continue;
+        rows.push(a);
+      }
+      return rows;
+    };
+    dsv.format = function(rows) {
+      if (Array.isArray(rows[0])) return dsv.formatRows(rows);
+      var fieldSet = new d3_Set(), fields = [];
+      rows.forEach(function(row) {
+        for (var field in row) {
+          if (!fieldSet.has(field)) {
+            fields.push(fieldSet.add(field));
+          }
+        }
+      });
+      return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
+        return fields.map(function(field) {
+          return formatValue(row[field]);
+        }).join(delimiter);
+      })).join("\n");
+    };
+    dsv.formatRows = function(rows) {
+      return rows.map(formatRow).join("\n");
+    };
+    function formatRow(row) {
+      return row.map(formatValue).join(delimiter);
+    }
+    function formatValue(text) {
+      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
+    }
+    return dsv;
+  };
+  d3.csv = d3.dsv(",", "text/csv");
+  d3.tsv = d3.dsv("    ", "text/tab-separated-values");
+  var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) {
+    setTimeout(callback, 17);
+  };
+  d3.timer = function(callback, delay, then) {
+    var n = arguments.length;
+    if (n < 2) delay = 0;
+    if (n < 3) then = Date.now();
+    var time = then + delay, timer = {
+      c: callback,
+      t: time,
+      f: false,
+      n: null
+    };
+    if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;
+    d3_timer_queueTail = timer;
+    if (!d3_timer_interval) {
+      d3_timer_timeout = clearTimeout(d3_timer_timeout);
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+  };
+  function d3_timer_step() {
+    var now = d3_timer_mark(), delay = d3_timer_sweep() - now;
+    if (delay > 24) {
+      if (isFinite(delay)) {
+        clearTimeout(d3_timer_timeout);
+        d3_timer_timeout = setTimeout(d3_timer_step, delay);
+      }
+      d3_timer_interval = 0;
+    } else {
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+  }
+  d3.timer.flush = function() {
+    d3_timer_mark();
+    d3_timer_sweep();
+  };
+  function d3_timer_mark() {
+    var now = Date.now();
+    d3_timer_active = d3_timer_queueHead;
+    while (d3_timer_active) {
+      if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t);
+      d3_timer_active = d3_timer_active.n;
+    }
+    return now;
+  }
+  function d3_timer_sweep() {
+    var t0, t1 = d3_timer_queueHead, time = Infinity;
+    while (t1) {
+      if (t1.f) {
+        t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
+      } else {
+        if (t1.t < time) time = t1.t;
+        t1 = (t0 = t1).n;
+      }
+    }
+    d3_timer_queueTail = t0;
+    return time;
+  }
+  function d3_format_precision(x, p) {
+    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
+  }
+  d3.round = function(x, n) {
+    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
+  };
+  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
+  d3.formatPrefix = function(value, precision) {
+    var i = 0;
+    if (value) {
+      if (value < 0) value *= -1;
+      if (precision) value = d3.round(value, d3_format_precision(value, precision));
+      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+      i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
+    }
+    return d3_formatPrefixes[8 + i / 3];
+  };
+  function d3_formatPrefix(d, i) {
+    var k = Math.pow(10, abs(8 - i) * 3);
+    return {
+      scale: i > 8 ? function(d) {
+        return d / k;
+      } : function(d) {
+        return d * k;
+      },
+      symbol: d
+    };
+  }
+  function d3_locale_numberFormat(locale) {
+    var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {
+      var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;
+      while (i > 0 && g > 0) {
+        if (length + g + 1 > width) g = Math.max(1, width - length);
+        t.push(value.substring(i -= g, i + g));
+        if ((length += g + 1) > width) break;
+        g = locale_grouping[j = (j + 1) % locale_grouping.length];
+      }
+      return t.reverse().join(locale_thousands);
+    } : d3_identity;
+    return function(specifier) {
+      var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true;
+      if (precision) precision = +precision.substring(1);
+      if (zfill || fill === "0" && align === "=") {
+        zfill = fill = "0";
+        align = "=";
+      }
+      switch (type) {
+       case "n":
+        comma = true;
+        type = "g";
+        break;
+
+       case "%":
+        scale = 100;
+        suffix = "%";
+        type = "f";
+        break;
+
+       case "p":
+        scale = 100;
+        suffix = "%";
+        type = "r";
+        break;
+
+       case "b":
+       case "o":
+       case "x":
+       case "X":
+        if (symbol === "#") prefix = "0" + type.toLowerCase();
+
+       case "c":
+        exponent = false;
+
+       case "d":
+        integer = true;
+        precision = 0;
+        break;
+
+       case "s":
+        scale = -1;
+        type = "r";
+        break;
+      }
+      if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1];
+      if (type == "r" && !precision) type = "g";
+      if (precision != null) {
+        if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
+      }
+      type = d3_format_types.get(type) || d3_format_typeDefault;
+      var zcomma = zfill && comma;
+      return function(value) {
+        var fullSuffix = suffix;
+        if (integer && value % 1) return "";
+        var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign;
+        if (scale < 0) {
+          var unit = d3.formatPrefix(value, precision);
+          value = unit.scale(value);
+          fullSuffix = unit.symbol + suffix;
+        } else {
+          value *= scale;
+        }
+        value = type(value, precision);
+        var i = value.lastIndexOf("."), before, after;
+        if (i < 0) {
+          var j = exponent ? value.lastIndexOf("e") : -1;
+          if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j);
+        } else {
+          before = value.substring(0, i);
+          after = locale_decimal + value.substring(i + 1);
+        }
+        if (!zfill && comma) before = formatGroup(before, Infinity);
+        var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
+        if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);
+        negative += prefix;
+        value = before + after;
+        return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;
+      };
+    };
+  }
+  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
+  var d3_format_types = d3.map({
+    b: function(x) {
+      return x.toString(2);
+    },
+    c: function(x) {
+      return String.fromCharCode(x);
+    },
+    o: function(x) {
+      return x.toString(8);
+    },
+    x: function(x) {
+      return x.toString(16);
+    },
+    X: function(x) {
+      return x.toString(16).toUpperCase();
+    },
+    g: function(x, p) {
+      return x.toPrecision(p);
+    },
+    e: function(x, p) {
+      return x.toExponential(p);
+    },
+    f: function(x, p) {
+      return x.toFixed(p);
+    },
+    r: function(x, p) {
+      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
+    }
+  });
+  function d3_format_typeDefault(x) {
+    return x + "";
+  }
+  var d3_time = d3.time = {}, d3_date = Date;
+  function d3_date_utc() {
+    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
+  }
+  d3_date_utc.prototype = {
+    getDate: function() {
+      return this._.getUTCDate();
+    },
+    getDay: function() {
+      return this._.getUTCDay();
+    },
+    getFullYear: function() {
+      return this._.getUTCFullYear();
+    },
+    getHours: function() {
+      return this._.getUTCHours();
+    },
+    getMilliseconds: function() {
+      return this._.getUTCMilliseconds();
+    },
+    getMinutes: function() {
+      return this._.getUTCMinutes();
+    },
+    getMonth: function() {
+      return this._.getUTCMonth();
+    },
+    getSeconds: function() {
+      return this._.getUTCSeconds();
+    },
+    getTime: function() {
+      return this._.getTime();
+    },
+    getTimezoneOffset: function() {
+      return 0;
+    },
+    valueOf: function() {
+      return this._.valueOf();
+    },
+    setDate: function() {
+      d3_time_prototype.setUTCDate.apply(this._, arguments);
+    },
+    setDay: function() {
+      d3_time_prototype.setUTCDay.apply(this._, arguments);
+    },
+    setFullYear: function() {
+      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
+    },
+    setHours: function() {
+      d3_time_prototype.setUTCHours.apply(this._, arguments);
+    },
+    setMilliseconds: function() {
+      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
+    },
+    setMinutes: function() {
+      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
+    },
+    setMonth: function() {
+      d3_time_prototype.setUTCMonth.apply(this._, arguments);
+    },
+    setSeconds: function() {
+      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
+    },
+    setTime: function() {
+      d3_time_prototype.setTime.apply(this._, arguments);
+    }
+  };
+  var d3_time_prototype = Date.prototype;
+  function d3_time_interval(local, step, number) {
+    function round(date) {
+      var d0 = local(date), d1 = offset(d0, 1);
+      return date - d0 < d1 - date ? d0 : d1;
+    }
+    function ceil(date) {
+      step(date = local(new d3_date(date - 1)), 1);
+      return date;
+    }
+    function offset(date, k) {
+      step(date = new d3_date(+date), k);
+      return date;
+    }
+    function range(t0, t1, dt) {
+      var time = ceil(t0), times = [];
+      if (dt > 1) {
+        while (time < t1) {
+          if (!(number(time) % dt)) times.push(new Date(+time));
+          step(time, 1);
+        }
+      } else {
+        while (time < t1) times.push(new Date(+time)), step(time, 1);
+      }
+      return times;
+    }
+    function range_utc(t0, t1, dt) {
+      try {
+        d3_date = d3_date_utc;
+        var utc = new d3_date_utc();
+        utc._ = t0;
+        return range(utc, t1, dt);
+      } finally {
+        d3_date = Date;
+      }
+    }
+    local.floor = local;
+    local.round = round;
+    local.ceil = ceil;
+    local.offset = offset;
+    local.range = range;
+    var utc = local.utc = d3_time_interval_utc(local);
+    utc.floor = utc;
+    utc.round = d3_time_interval_utc(round);
+    utc.ceil = d3_time_interval_utc(ceil);
+    utc.offset = d3_time_interval_utc(offset);
+    utc.range = range_utc;
+    return local;
+  }
+  function d3_time_interval_utc(method) {
+    return function(date, k) {
+      try {
+        d3_date = d3_date_utc;
+        var utc = new d3_date_utc();
+        utc._ = date;
+        return method(utc, k)._;
+      } finally {
+        d3_date = Date;
+      }
+    };
+  }
+  d3_time.year = d3_time_interval(function(date) {
+    date = d3_time.day(date);
+    date.setMonth(0, 1);
+    return date;
+  }, function(date, offset) {
+    date.setFullYear(date.getFullYear() + offset);
+  }, function(date) {
+    return date.getFullYear();
+  });
+  d3_time.years = d3_time.year.range;
+  d3_time.years.utc = d3_time.year.utc.range;
+  d3_time.day = d3_time_interval(function(date) {
+    var day = new d3_date(2e3, 0);
+    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
+    return day;
+  }, function(date, offset) {
+    date.setDate(date.getDate() + offset);
+  }, function(date) {
+    return date.getDate() - 1;
+  });
+  d3_time.days = d3_time.day.range;
+  d3_time.days.utc = d3_time.day.utc.range;
+  d3_time.dayOfYear = function(date) {
+    var year = d3_time.year(date);
+    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
+  };
+  [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) {
+    i = 7 - i;
+    var interval = d3_time[day] = d3_time_interval(function(date) {
+      (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
+      return date;
+    }, function(date, offset) {
+      date.setDate(date.getDate() + Math.floor(offset) * 7);
+    }, function(date) {
+      var day = d3_time.year(date).getDay();
+      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
+    });
+    d3_time[day + "s"] = interval.range;
+    d3_time[day + "s"].utc = interval.utc.range;
+    d3_time[day + "OfYear"] = function(date) {
+      var day = d3_time.year(date).getDay();
+      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);
+    };
+  });
+  d3_time.week = d3_time.sunday;
+  d3_time.weeks = d3_time.sunday.range;
+  d3_time.weeks.utc = d3_time.sunday.utc.range;
+  d3_time.weekOfYear = d3_time.sundayOfYear;
+  function d3_locale_timeFormat(locale) {
+    var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;
+    function d3_time_format(template) {
+      var n = template.length;
+      function format(date) {
+        var string = [], i = -1, j = 0, c, p, f;
+        while (++i < n) {
+          if (template.charCodeAt(i) === 37) {
+            string.push(template.slice(j, i));
+            if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
+            if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
+            string.push(c);
+            j = i + 1;
+          }
+        }
+        string.push(template.slice(j, i));
+        return string.join("");
+      }
+      format.parse = function(string) {
+        var d = {
+          y: 1900,
+          m: 0,
+          d: 1,
+          H: 0,
+          M: 0,
+          S: 0,
+          L: 0,
+          Z: null
+        }, i = d3_time_parse(d, template, string, 0);
+        if (i != string.length) return null;
+        if ("p" in d) d.H = d.H % 12 + d.p * 12;
+        var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();
+        if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) {
+          date.setFullYear(d.y, 0, 1);
+          date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);
+        } else date.setFullYear(d.y, d.m, d.d);
+        date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);
+        return localZ ? date._ : date;
+      };
+      format.toString = function() {
+        return template;
+      };
+      return format;
+    }
+    function d3_time_parse(date, template, string, j) {
+      var c, p, t, i = 0, n = template.length, m = string.length;
+      while (i < n) {
+        if (j >= m) return -1;
+        c = template.charCodeAt(i++);
+        if (c === 37) {
+          t = template.charAt(i++);
+          p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];
+          if (!p || (j = p(date, string, j)) < 0) return -1;
+        } else if (c != string.charCodeAt(j++)) {
+          return -1;
+        }
+      }
+      return j;
+    }
+    d3_time_format.utc = function(template) {
+      var local = d3_time_format(template);
+      function format(date) {
+        try {
+          d3_date = d3_date_utc;
+          var utc = new d3_date();
+          utc._ = date;
+          return local(utc);
+        } finally {
+          d3_date = Date;
+        }
+      }
+      format.parse = function(string) {
+        try {
+          d3_date = d3_date_utc;
+          var date = local.parse(string);
+          return date && date._;
+        } finally {
+          d3_date = Date;
+        }
+      };
+      format.toString = local.toString;
+      return format;
+    };
+    d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;
+    var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);
+    locale_periods.forEach(function(p, i) {
+      d3_time_periodLookup.set(p.toLowerCase(), i);
+    });
+    var d3_time_formats = {
+      a: function(d) {
+        return locale_shortDays[d.getDay()];
+      },
+      A: function(d) {
+        return locale_days[d.getDay()];
+      },
+      b: function(d) {
+        return locale_shortMonths[d.getMonth()];
+      },
+      B: function(d) {
+        return locale_months[d.getMonth()];
+      },
+      c: d3_time_format(locale_dateTime),
+      d: function(d, p) {
+        return d3_time_formatPad(d.getDate(), p, 2);
+      },
+      e: function(d, p) {
+        return d3_time_formatPad(d.getDate(), p, 2);
+      },
+      H: function(d, p) {
+        return d3_time_formatPad(d.getHours(), p, 2);
+      },
+      I: function(d, p) {
+        return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
+      },
+      j: function(d, p) {
+        return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);
+      },
+      L: function(d, p) {
+        return d3_time_formatPad(d.getMilliseconds(), p, 3);
+      },
+      m: function(d, p) {
+        return d3_time_formatPad(d.getMonth() + 1, p, 2);
+      },
+      M: function(d, p) {
+        return d3_time_formatPad(d.getMinutes(), p, 2);
+      },
+      p: function(d) {
+        return locale_periods[+(d.getHours() >= 12)];
+      },
+      S: function(d, p) {
+        return d3_time_formatPad(d.getSeconds(), p, 2);
+      },
+      U: function(d, p) {
+        return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);
+      },
+      w: function(d) {
+        return d.getDay();
+      },
+      W: function(d, p) {
+        return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);
+      },
+      x: d3_time_format(locale_date),
+      X: d3_time_format(locale_time),
+      y: function(d, p) {
+        return d3_time_formatPad(d.getFullYear() % 100, p, 2);
+      },
+      Y: function(d, p) {
+        return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
+      },
+      Z: d3_time_zone,
+      "%": function() {
+        return "%";
+      }
+    };
+    var d3_time_parsers = {
+      a: d3_time_parseWeekdayAbbrev,
+      A: d3_time_parseWeekday,
+      b: d3_time_parseMonthAbbrev,
+      B: d3_time_parseMonth,
+      c: d3_time_parseLocaleFull,
+      d: d3_time_parseDay,
+      e: d3_time_parseDay,
+      H: d3_time_parseHour24,
+      I: d3_time_parseHour24,
+      j: d3_time_parseDayOfYear,
+      L: d3_time_parseMilliseconds,
+      m: d3_time_parseMonthNumber,
+      M: d3_time_parseMinutes,
+      p: d3_time_parseAmPm,
+      S: d3_time_parseSeconds,
+      U: d3_time_parseWeekNumberSunday,
+      w: d3_time_parseWeekdayNumber,
+      W: d3_time_parseWeekNumberMonday,
+      x: d3_time_parseLocaleDate,
+      X: d3_time_parseLocaleTime,
+      y: d3_time_parseYear,
+      Y: d3_time_parseFullYear,
+      Z: d3_time_parseZone,
+      "%": d3_time_parseLiteralPercent
+    };
+    function d3_time_parseWeekdayAbbrev(date, string, i) {
+      d3_time_dayAbbrevRe.lastIndex = 0;
+      var n = d3_time_dayAbbrevRe.exec(string.slice(i));
+      return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseWeekday(date, string, i) {
+      d3_time_dayRe.lastIndex = 0;
+      var n = d3_time_dayRe.exec(string.slice(i));
+      return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseMonthAbbrev(date, string, i) {
+      d3_time_monthAbbrevRe.lastIndex = 0;
+      var n = d3_time_monthAbbrevRe.exec(string.slice(i));
+      return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseMonth(date, string, i) {
+      d3_time_monthRe.lastIndex = 0;
+      var n = d3_time_monthRe.exec(string.slice(i));
+      return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseLocaleFull(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
+    }
+    function d3_time_parseLocaleDate(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
+    }
+    function d3_time_parseLocaleTime(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
+    }
+    function d3_time_parseAmPm(date, string, i) {
+      var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());
+      return n == null ? -1 : (date.p = n, i);
+    }
+    return d3_time_format;
+  }
+  var d3_time_formatPads = {
+    "-": "",
+    _: " ",
+    "0": "0"
+  }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/;
+  function d3_time_formatPad(value, fill, width) {
+    var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length;
+    return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
+  }
+  function d3_time_formatRe(names) {
+    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
+  }
+  function d3_time_formatLookup(names) {
+    var map = new d3_Map(), i = -1, n = names.length;
+    while (++i < n) map.set(names[i].toLowerCase(), i);
+    return map;
+  }
+  function d3_time_parseWeekdayNumber(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 1));
+    return n ? (date.w = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseWeekNumberSunday(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i));
+    return n ? (date.U = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseWeekNumberMonday(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i));
+    return n ? (date.W = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseFullYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 4));
+    return n ? (date.y = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
+  }
+  function d3_time_parseZone(date, string, i) {
+    return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, 
+    i + 5) : -1;
+  }
+  function d3_time_expandYear(d) {
+    return d + (d > 68 ? 1900 : 2e3);
+  }
+  function d3_time_parseMonthNumber(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.m = n[0] - 1, i + n[0].length) : -1;
+  }
+  function d3_time_parseDay(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.d = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseDayOfYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
+    return n ? (date.j = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseHour24(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.H = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseMinutes(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.M = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseSeconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.S = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseMilliseconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
+    return n ? (date.L = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_zone(d) {
+    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60;
+    return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
+  }
+  function d3_time_parseLiteralPercent(date, string, i) {
+    d3_time_percentRe.lastIndex = 0;
+    var n = d3_time_percentRe.exec(string.slice(i, i + 1));
+    return n ? i + n[0].length : -1;
+  }
+  function d3_time_formatMulti(formats) {
+    var n = formats.length, i = -1;
+    while (++i < n) formats[i][0] = this(formats[i][0]);
+    return function(date) {
+      var i = 0, f = formats[i];
+      while (!f[1](date)) f = formats[++i];
+      return f[0](date);
+    };
+  }
+  d3.locale = function(locale) {
+    return {
+      numberFormat: d3_locale_numberFormat(locale),
+      timeFormat: d3_locale_timeFormat(locale)
+    };
+  };
+  var d3_locale_enUS = d3.locale({
+    decimal: ".",
+    thousands: ",",
+    grouping: [ 3 ],
+    currency: [ "$", "" ],
+    dateTime: "%a %b %e %X %Y",
+    date: "%m/%d/%Y",
+    time: "%H:%M:%S",
+    periods: [ "AM", "PM" ],
+    days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ],
+    shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ],
+    months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ],
+    shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
+  });
+  d3.format = d3_locale_enUS.numberFormat;
+  d3.geo = {};
+  function d3_adder() {}
+  d3_adder.prototype = {
+    s: 0,
+    t: 0,
+    add: function(y) {
+      d3_adderSum(y, this.t, d3_adderTemp);
+      d3_adderSum(d3_adderTemp.s, this.s, this);
+      if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;
+    },
+    reset: function() {
+      this.s = this.t = 0;
+    },
+    valueOf: function() {
+      return this.s;
+    }
+  };
+  var d3_adderTemp = new d3_adder();
+  function d3_adderSum(a, b, o) {
+    var x = o.s = a + b, bv = x - a, av = x - bv;
+    o.t = a - av + (b - bv);
+  }
+  d3.geo.stream = function(object, listener) {
+    if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
+      d3_geo_streamObjectType[object.type](object, listener);
+    } else {
+      d3_geo_streamGeometry(object, listener);
+    }
+  };
+  function d3_geo_streamGeometry(geometry, listener) {
+    if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
+      d3_geo_streamGeometryType[geometry.type](geometry, listener);
+    }
+  }
+  var d3_geo_streamObjectType = {
+    Feature: function(feature, listener) {
+      d3_geo_streamGeometry(feature.geometry, listener);
+    },
+    FeatureCollection: function(object, listener) {
+      var features = object.features, i = -1, n = features.length;
+      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
+    }
+  };
+  var d3_geo_streamGeometryType = {
+    Sphere: function(object, listener) {
+      listener.sphere();
+    },
+    Point: function(object, listener) {
+      object = object.coordinates;
+      listener.point(object[0], object[1], object[2]);
+    },
+    MultiPoint: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
+    },
+    LineString: function(object, listener) {
+      d3_geo_streamLine(object.coordinates, listener, 0);
+    },
+    MultiLineString: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
+    },
+    Polygon: function(object, listener) {
+      d3_geo_streamPolygon(object.coordinates, listener);
+    },
+    MultiPolygon: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
+    },
+    GeometryCollection: function(object, listener) {
+      var geometries = object.geometries, i = -1, n = geometries.length;
+      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
+    }
+  };
+  function d3_geo_streamLine(coordinates, listener, closed) {
+    var i = -1, n = coordinates.length - closed, coordinate;
+    listener.lineStart();
+    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
+    listener.lineEnd();
+  }
+  function d3_geo_streamPolygon(coordinates, listener) {
+    var i = -1, n = coordinates.length;
+    listener.polygonStart();
+    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
+    listener.polygonEnd();
+  }
+  d3.geo.area = function(object) {
+    d3_geo_areaSum = 0;
+    d3.geo.stream(object, d3_geo_area);
+    return d3_geo_areaSum;
+  };
+  var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();
+  var d3_geo_area = {
+    sphere: function() {
+      d3_geo_areaSum += 4 * π;
+    },
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_areaRingSum.reset();
+      d3_geo_area.lineStart = d3_geo_areaRingStart;
+    },
+    polygonEnd: function() {
+      var area = 2 * d3_geo_areaRingSum;
+      d3_geo_areaSum += area < 0 ? 4 * π + area : area;
+      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
+    }
+  };
+  function d3_geo_areaRingStart() {
+    var λ00, φ00, λ0, cosφ0, sinφ0;
+    d3_geo_area.point = function(λ, φ) {
+      d3_geo_area.point = nextPoint;
+      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), 
+      sinφ0 = Math.sin(φ);
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      φ = φ * d3_radians / 2 + π / 4;
+      var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);
+      d3_geo_areaRingSum.add(Math.atan2(v, u));
+      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
+    }
+    d3_geo_area.lineEnd = function() {
+      nextPoint(λ00, φ00);
+    };
+  }
+  function d3_geo_cartesian(spherical) {
+    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
+    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
+  }
+  function d3_geo_cartesianDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+  }
+  function d3_geo_cartesianCross(a, b) {
+    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
+  }
+  function d3_geo_cartesianAdd(a, b) {
+    a[0] += b[0];
+    a[1] += b[1];
+    a[2] += b[2];
+  }
+  function d3_geo_cartesianScale(vector, k) {
+    return [ vector[0] * k, vector[1] * k, vector[2] * k ];
+  }
+  function d3_geo_cartesianNormalize(d) {
+    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
+    d[0] /= l;
+    d[1] /= l;
+    d[2] /= l;
+  }
+  function d3_geo_spherical(cartesian) {
+    return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];
+  }
+  function d3_geo_sphericalEqual(a, b) {
+    return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
+  }
+  d3.geo.bounds = function() {
+    var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;
+    var bound = {
+      point: point,
+      lineStart: lineStart,
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        bound.point = ringPoint;
+        bound.lineStart = ringStart;
+        bound.lineEnd = ringEnd;
+        dλSum = 0;
+        d3_geo_area.polygonStart();
+      },
+      polygonEnd: function() {
+        d3_geo_area.polygonEnd();
+        bound.point = point;
+        bound.lineStart = lineStart;
+        bound.lineEnd = lineEnd;
+        if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;
+        range[0] = λ0, range[1] = λ1;
+      }
+    };
+    function point(λ, φ) {
+      ranges.push(range = [ λ0 = λ, λ1 = λ ]);
+      if (φ < φ0) φ0 = φ;
+      if (φ > φ1) φ1 = φ;
+    }
+    function linePoint(λ, φ) {
+      var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);
+      if (p0) {
+        var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);
+        d3_geo_cartesianNormalize(inflection);
+        inflection = d3_geo_spherical(inflection);
+        var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;
+        if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
+          var φi = inflection[1] * d3_degrees;
+          if (φi > φ1) φ1 = φi;
+        } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
+          var φi = -inflection[1] * d3_degrees;
+          if (φi < φ0) φ0 = φi;
+        } else {
+          if (φ < φ0) φ0 = φ;
+          if (φ > φ1) φ1 = φ;
+        }
+        if (antimeridian) {
+          if (λ < λ_) {
+            if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
+          } else {
+            if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
+          }
+        } else {
+          if (λ1 >= λ0) {
+            if (λ < λ0) λ0 = λ;
+            if (λ > λ1) λ1 = λ;
+          } else {
+            if (λ > λ_) {
+              if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
+            } else {
+              if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
+            }
+          }
+        }
+      } else {
+        point(λ, φ);
+      }
+      p0 = p, λ_ = λ;
+    }
+    function lineStart() {
+      bound.point = linePoint;
+    }
+    function lineEnd() {
+      range[0] = λ0, range[1] = λ1;
+      bound.point = point;
+      p0 = null;
+    }
+    function ringPoint(λ, φ) {
+      if (p0) {
+        var dλ = λ - λ_;
+        dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
+      } else λ__ = λ, φ__ = φ;
+      d3_geo_area.point(λ, φ);
+      linePoint(λ, φ);
+    }
+    function ringStart() {
+      d3_geo_area.lineStart();
+    }
+    function ringEnd() {
+      ringPoint(λ__, φ__);
+      d3_geo_area.lineEnd();
+      if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
+      range[0] = λ0, range[1] = λ1;
+      p0 = null;
+    }
+    function angle(λ0, λ1) {
+      return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;
+    }
+    function compareRanges(a, b) {
+      return a[0] - b[0];
+    }
+    function withinRange(x, range) {
+      return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
+    }
+    return function(feature) {
+      φ1 = λ1 = -(λ0 = φ0 = Infinity);
+      ranges = [];
+      d3.geo.stream(feature, bound);
+      var n = ranges.length;
+      if (n) {
+        ranges.sort(compareRanges);
+        for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {
+          b = ranges[i];
+          if (withinRange(b[0], a) || withinRange(b[1], a)) {
+            if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
+            if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
+          } else {
+            merged.push(a = b);
+          }
+        }
+        var best = -Infinity, dλ;
+        for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
+          b = merged[i];
+          if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
+        }
+      }
+      ranges = range = null;
+      return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];
+    };
+  }();
+  d3.geo.centroid = function(object) {
+    d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
+    d3.geo.stream(object, d3_geo_centroid);
+    var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;
+    if (m < ε2) {
+      x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;
+      if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;
+      m = x * x + y * y + z * z;
+      if (m < ε2) return [ NaN, NaN ];
+    }
+    return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];
+  };
+  var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;
+  var d3_geo_centroid = {
+    sphere: d3_noop,
+    point: d3_geo_centroidPoint,
+    lineStart: d3_geo_centroidLineStart,
+    lineEnd: d3_geo_centroidLineEnd,
+    polygonStart: function() {
+      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
+    }
+  };
+  function d3_geo_centroidPoint(λ, φ) {
+    λ *= d3_radians;
+    var cosφ = Math.cos(φ *= d3_radians);
+    d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));
+  }
+  function d3_geo_centroidPointXYZ(x, y, z) {
+    ++d3_geo_centroidW0;
+    d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;
+    d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;
+    d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;
+  }
+  function d3_geo_centroidLineStart() {
+    var x0, y0, z0;
+    d3_geo_centroid.point = function(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians);
+      x0 = cosφ * Math.cos(λ);
+      y0 = cosφ * Math.sin(λ);
+      z0 = Math.sin(φ);
+      d3_geo_centroid.point = nextPoint;
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
+      d3_geo_centroidW1 += w;
+      d3_geo_centroidX1 += w * (x0 + (x0 = x));
+      d3_geo_centroidY1 += w * (y0 + (y0 = y));
+      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    }
+  }
+  function d3_geo_centroidLineEnd() {
+    d3_geo_centroid.point = d3_geo_centroidPoint;
+  }
+  function d3_geo_centroidRingStart() {
+    var λ00, φ00, x0, y0, z0;
+    d3_geo_centroid.point = function(λ, φ) {
+      λ00 = λ, φ00 = φ;
+      d3_geo_centroid.point = nextPoint;
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians);
+      x0 = cosφ * Math.cos(λ);
+      y0 = cosφ * Math.sin(λ);
+      z0 = Math.sin(φ);
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    };
+    d3_geo_centroid.lineEnd = function() {
+      nextPoint(λ00, φ00);
+      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
+      d3_geo_centroid.point = d3_geo_centroidPoint;
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);
+      d3_geo_centroidX2 += v * cx;
+      d3_geo_centroidY2 += v * cy;
+      d3_geo_centroidZ2 += v * cz;
+      d3_geo_centroidW1 += w;
+      d3_geo_centroidX1 += w * (x0 + (x0 = x));
+      d3_geo_centroidY1 += w * (y0 + (y0 = y));
+      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    }
+  }
+  function d3_geo_compose(a, b) {
+    function compose(x, y) {
+      return x = a(x, y), b(x[0], x[1]);
+    }
+    if (a.invert && b.invert) compose.invert = function(x, y) {
+      return x = b.invert(x, y), x && a.invert(x[0], x[1]);
+    };
+    return compose;
+  }
+  function d3_true() {
+    return true;
+  }
+  function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
+    var subject = [], clip = [];
+    segments.forEach(function(segment) {
+      if ((n = segment.length - 1) <= 0) return;
+      var n, p0 = segment[0], p1 = segment[n];
+      if (d3_geo_sphericalEqual(p0, p1)) {
+        listener.lineStart();
+        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
+        listener.lineEnd();
+        return;
+      }
+      var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
+      a.o = b;
+      subject.push(a);
+      clip.push(b);
+      a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
+      b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
+      a.o = b;
+      subject.push(a);
+      clip.push(b);
+    });
+    clip.sort(compare);
+    d3_geo_clipPolygonLinkCircular(subject);
+    d3_geo_clipPolygonLinkCircular(clip);
+    if (!subject.length) return;
+    for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
+      clip[i].e = entry = !entry;
+    }
+    var start = subject[0], points, point;
+    while (1) {
+      var current = start, isSubject = true;
+      while (current.v) if ((current = current.n) === start) return;
+      points = current.z;
+      listener.lineStart();
+      do {
+        current.v = current.o.v = true;
+        if (current.e) {
+          if (isSubject) {
+            for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.x, current.n.x, 1, listener);
+          }
+          current = current.n;
+        } else {
+          if (isSubject) {
+            points = current.p.z;
+            for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.x, current.p.x, -1, listener);
+          }
+          current = current.p;
+        }
+        current = current.o;
+        points = current.z;
+        isSubject = !isSubject;
+      } while (!current.v);
+      listener.lineEnd();
+    }
+  }
+  function d3_geo_clipPolygonLinkCircular(array) {
+    if (!(n = array.length)) return;
+    var n, i = 0, a = array[0], b;
+    while (++i < n) {
+      a.n = b = array[i];
+      b.p = a;
+      a = b;
+    }
+    a.n = b = array[0];
+    b.p = a;
+  }
+  function d3_geo_clipPolygonIntersection(point, points, other, entry) {
+    this.x = point;
+    this.z = points;
+    this.o = other;
+    this.e = entry;
+    this.v = false;
+    this.n = this.p = null;
+  }
+  function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
+    return function(rotate, listener) {
+      var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
+      var clip = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          clip.point = pointRing;
+          clip.lineStart = ringStart;
+          clip.lineEnd = ringEnd;
+          segments = [];
+          polygon = [];
+        },
+        polygonEnd: function() {
+          clip.point = point;
+          clip.lineStart = lineStart;
+          clip.lineEnd = lineEnd;
+          segments = d3.merge(segments);
+          var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
+          if (segments.length) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
+          } else if (clipStartInside) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            listener.lineStart();
+            interpolate(null, null, 1, listener);
+            listener.lineEnd();
+          }
+          if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
+          segments = polygon = null;
+        },
+        sphere: function() {
+          listener.polygonStart();
+          listener.lineStart();
+          interpolate(null, null, 1, listener);
+          listener.lineEnd();
+          listener.polygonEnd();
+        }
+      };
+      function point(λ, φ) {
+        var point = rotate(λ, φ);
+        if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
+      }
+      function pointLine(λ, φ) {
+        var point = rotate(λ, φ);
+        line.point(point[0], point[1]);
+      }
+      function lineStart() {
+        clip.point = pointLine;
+        line.lineStart();
+      }
+      function lineEnd() {
+        clip.point = point;
+        line.lineEnd();
+      }
+      var segments;
+      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
+      function pointRing(λ, φ) {
+        ring.push([ λ, φ ]);
+        var point = rotate(λ, φ);
+        ringListener.point(point[0], point[1]);
+      }
+      function ringStart() {
+        ringListener.lineStart();
+        ring = [];
+      }
+      function ringEnd() {
+        pointRing(ring[0][0], ring[0][1]);
+        ringListener.lineEnd();
+        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
+        ring.pop();
+        polygon.push(ring);
+        ring = null;
+        if (!n) return;
+        if (clean & 1) {
+          segment = ringSegments[0];
+          var n = segment.length - 1, i = -1, point;
+          if (n > 0) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            listener.lineStart();
+            while (++i < n) listener.point((point = segment[i])[0], point[1]);
+            listener.lineEnd();
+          }
+          return;
+        }
+        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
+        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
+      }
+      return clip;
+    };
+  }
+  function d3_geo_clipSegmentLength1(segment) {
+    return segment.length > 1;
+  }
+  function d3_geo_clipBufferListener() {
+    var lines = [], line;
+    return {
+      lineStart: function() {
+        lines.push(line = []);
+      },
+      point: function(λ, φ) {
+        line.push([ λ, φ ]);
+      },
+      lineEnd: d3_noop,
+      buffer: function() {
+        var buffer = lines;
+        lines = [];
+        line = null;
+        return buffer;
+      },
+      rejoin: function() {
+        if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
+      }
+    };
+  }
+  function d3_geo_clipSort(a, b) {
+    return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
+  }
+  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);
+  function d3_geo_clipAntimeridianLine(listener) {
+    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
+    return {
+      lineStart: function() {
+        listener.lineStart();
+        clean = 1;
+      },
+      point: function(λ1, φ1) {
+        var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);
+        if (abs(dλ - π) < ε) {
+          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          listener.point(λ1, φ0);
+          clean = 0;
+        } else if (sλ0 !== sλ1 && dλ >= π) {
+          if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
+          if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
+          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          clean = 0;
+        }
+        listener.point(λ0 = λ1, φ0 = φ1);
+        sλ0 = sλ1;
+      },
+      lineEnd: function() {
+        listener.lineEnd();
+        λ0 = φ0 = NaN;
+      },
+      clean: function() {
+        return 2 - clean;
+      }
+    };
+  }
+  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
+    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
+    return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
+  }
+  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
+    var φ;
+    if (from == null) {
+      φ = direction * halfπ;
+      listener.point(-π, φ);
+      listener.point(0, φ);
+      listener.point(π, φ);
+      listener.point(π, 0);
+      listener.point(π, -φ);
+      listener.point(0, -φ);
+      listener.point(-π, -φ);
+      listener.point(-π, 0);
+      listener.point(-π, φ);
+    } else if (abs(from[0] - to[0]) > ε) {
+      var s = from[0] < to[0] ? π : -π;
+      φ = direction * s / 2;
+      listener.point(-s, φ);
+      listener.point(0, φ);
+      listener.point(s, φ);
+    } else {
+      listener.point(to[0], to[1]);
+    }
+  }
+  function d3_geo_pointInPolygon(point, polygon) {
+    var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
+    d3_geo_areaRingSum.reset();
+    for (var i = 0, n = polygon.length; i < n; ++i) {
+      var ring = polygon[i], m = ring.length;
+      if (!m) continue;
+      var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
+      while (true) {
+        if (j === m) j = 0;
+        point = ring[j];
+        var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;
+        d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
+        polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
+        if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
+          var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
+          d3_geo_cartesianNormalize(arc);
+          var intersection = d3_geo_cartesianCross(meridianNormal, arc);
+          d3_geo_cartesianNormalize(intersection);
+          var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
+          if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
+            winding += antimeridian ^ dλ >= 0 ? 1 : -1;
+          }
+        }
+        if (!j++) break;
+        λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
+      }
+    }
+    return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1;
+  }
+  function d3_geo_clipCircle(radius) {
+    var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
+    return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);
+    function visible(λ, φ) {
+      return Math.cos(λ) * Math.cos(φ) > cr;
+    }
+    function clipLine(listener) {
+      var point0, c0, v0, v00, clean;
+      return {
+        lineStart: function() {
+          v00 = v0 = false;
+          clean = 1;
+        },
+        point: function(λ, φ) {
+          var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
+          if (!point0 && (v00 = v0 = v)) listener.lineStart();
+          if (v !== v0) {
+            point2 = intersect(point0, point1);
+            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
+              point1[0] += ε;
+              point1[1] += ε;
+              v = visible(point1[0], point1[1]);
+            }
+          }
+          if (v !== v0) {
+            clean = 0;
+            if (v) {
+              listener.lineStart();
+              point2 = intersect(point1, point0);
+              listener.point(point2[0], point2[1]);
+            } else {
+              point2 = intersect(point0, point1);
+              listener.point(point2[0], point2[1]);
+              listener.lineEnd();
+            }
+            point0 = point2;
+          } else if (notHemisphere && point0 && smallRadius ^ v) {
+            var t;
+            if (!(c & c0) && (t = intersect(point1, point0, true))) {
+              clean = 0;
+              if (smallRadius) {
+                listener.lineStart();
+                listener.point(t[0][0], t[0][1]);
+                listener.point(t[1][0], t[1][1]);
+                listener.lineEnd();
+              } else {
+                listener.point(t[1][0], t[1][1]);
+                listener.lineEnd();
+                listener.lineStart();
+                listener.point(t[0][0], t[0][1]);
+              }
+            }
+          }
+          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
+            listener.point(point1[0], point1[1]);
+          }
+          point0 = point1, v0 = v, c0 = c;
+        },
+        lineEnd: function() {
+          if (v0) listener.lineEnd();
+          point0 = null;
+        },
+        clean: function() {
+          return clean | (v00 && v0) << 1;
+        }
+      };
+    }
+    function intersect(a, b, two) {
+      var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
+      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
+      if (!determinant) return !two && a;
+      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
+      d3_geo_cartesianAdd(A, B);
+      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
+      if (t2 < 0) return;
+      var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
+      d3_geo_cartesianAdd(q, A);
+      q = d3_geo_spherical(q);
+      if (!two) return q;
+      var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
+      if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
+      var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;
+      if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
+      if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
+        var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
+        d3_geo_cartesianAdd(q1, A);
+        return [ q, d3_geo_spherical(q1) ];
+      }
+    }
+    function code(λ, φ) {
+      var r = smallRadius ? radius : π - radius, code = 0;
+      if (λ < -r) code |= 1; else if (λ > r) code |= 2;
+      if (φ < -r) code |= 4; else if (φ > r) code |= 8;
+      return code;
+    }
+  }
+  function d3_geom_clipLine(x0, y0, x1, y1) {
+    return function(line) {
+      var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;
+      r = x0 - ax;
+      if (!dx && r > 0) return;
+      r /= dx;
+      if (dx < 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      } else if (dx > 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      }
+      r = x1 - ax;
+      if (!dx && r < 0) return;
+      r /= dx;
+      if (dx < 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      } else if (dx > 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      }
+      r = y0 - ay;
+      if (!dy && r > 0) return;
+      r /= dy;
+      if (dy < 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      } else if (dy > 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      }
+      r = y1 - ay;
+      if (!dy && r < 0) return;
+      r /= dy;
+      if (dy < 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      } else if (dy > 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      }
+      if (t0 > 0) line.a = {
+        x: ax + t0 * dx,
+        y: ay + t0 * dy
+      };
+      if (t1 < 1) line.b = {
+        x: ax + t1 * dx,
+        y: ay + t1 * dy
+      };
+      return line;
+    };
+  }
+  var d3_geo_clipExtentMAX = 1e9;
+  d3.geo.clipExtent = function() {
+    var x0, y0, x1, y1, stream, clip, clipExtent = {
+      stream: function(output) {
+        if (stream) stream.valid = false;
+        stream = clip(output);
+        stream.valid = true;
+        return stream;
+      },
+      extent: function(_) {
+        if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
+        clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
+        if (stream) stream.valid = false, stream = null;
+        return clipExtent;
+      }
+    };
+    return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);
+  };
+  function d3_geo_clipExtent(x0, y0, x1, y1) {
+    return function(listener) {
+      var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;
+      var clip = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          listener = bufferListener;
+          segments = [];
+          polygon = [];
+          clean = true;
+        },
+        polygonEnd: function() {
+          listener = listener_;
+          segments = d3.merge(segments);
+          var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;
+          if (inside || visible) {
+            listener.polygonStart();
+            if (inside) {
+              listener.lineStart();
+              interpolate(null, null, 1, listener);
+              listener.lineEnd();
+            }
+            if (visible) {
+              d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
+            }
+            listener.polygonEnd();
+          }
+          segments = polygon = ring = null;
+        }
+      };
+      function insidePolygon(p) {
+        var wn = 0, n = polygon.length, y = p[1];
+        for (var i = 0; i < n; ++i) {
+          for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {
+            b = v[j];
+            if (a[1] <= y) {
+              if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;
+            } else {
+              if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;
+            }
+            a = b;
+          }
+        }
+        return wn !== 0;
+      }
+      function interpolate(from, to, direction, listener) {
+        var a = 0, a1 = 0;
+        if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
+          do {
+            listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
+          } while ((a = (a + direction + 4) % 4) !== a1);
+        } else {
+          listener.point(to[0], to[1]);
+        }
+      }
+      function pointVisible(x, y) {
+        return x0 <= x && x <= x1 && y0 <= y && y <= y1;
+      }
+      function point(x, y) {
+        if (pointVisible(x, y)) listener.point(x, y);
+      }
+      var x__, y__, v__, x_, y_, v_, first, clean;
+      function lineStart() {
+        clip.point = linePoint;
+        if (polygon) polygon.push(ring = []);
+        first = true;
+        v_ = false;
+        x_ = y_ = NaN;
+      }
+      function lineEnd() {
+        if (segments) {
+          linePoint(x__, y__);
+          if (v__ && v_) bufferListener.rejoin();
+          segments.push(bufferListener.buffer());
+        }
+        clip.point = point;
+        if (v_) listener.lineEnd();
+      }
+      function linePoint(x, y) {
+        x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
+        y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
+        var v = pointVisible(x, y);
+        if (polygon) ring.push([ x, y ]);
+        if (first) {
+          x__ = x, y__ = y, v__ = v;
+          first = false;
+          if (v) {
+            listener.lineStart();
+            listener.point(x, y);
+          }
+        } else {
+          if (v && v_) listener.point(x, y); else {
+            var l = {
+              a: {
+                x: x_,
+                y: y_
+              },
+              b: {
+                x: x,
+                y: y
+              }
+            };
+            if (clipLine(l)) {
+              if (!v_) {
+                listener.lineStart();
+                listener.point(l.a.x, l.a.y);
+              }
+              listener.point(l.b.x, l.b.y);
+              if (!v) listener.lineEnd();
+              clean = false;
+            } else if (v) {
+              listener.lineStart();
+              listener.point(x, y);
+              clean = false;
+            }
+          }
+        }
+        x_ = x, y_ = y, v_ = v;
+      }
+      return clip;
+    };
+    function corner(p, direction) {
+      return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
+    }
+    function compare(a, b) {
+      return comparePoints(a.x, b.x);
+    }
+    function comparePoints(a, b) {
+      var ca = corner(a, 1), cb = corner(b, 1);
+      return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
+    }
+  }
+  function d3_geo_conic(projectAt) {
+    var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
+    p.parallels = function(_) {
+      if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
+      return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
+    };
+    return p;
+  }
+  function d3_geo_conicEqualArea(φ0, φ1) {
+    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
+    function forward(λ, φ) {
+      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
+      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = ρ0 - y;
+      return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
+    };
+    return forward;
+  }
+  (d3.geo.conicEqualArea = function() {
+    return d3_geo_conic(d3_geo_conicEqualArea);
+  }).raw = d3_geo_conicEqualArea;
+  d3.geo.albers = function() {
+    return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);
+  };
+  d3.geo.albersUsa = function() {
+    var lower48 = d3.geo.albers();
+    var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);
+    var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);
+    var point, pointStream = {
+      point: function(x, y) {
+        point = [ x, y ];
+      }
+    }, lower48Point, alaskaPoint, hawaiiPoint;
+    function albersUsa(coordinates) {
+      var x = coordinates[0], y = coordinates[1];
+      point = null;
+      (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
+      return point;
+    }
+    albersUsa.invert = function(coordinates) {
+      var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;
+      return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);
+    };
+    albersUsa.stream = function(stream) {
+      var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);
+      return {
+        point: function(x, y) {
+          lower48Stream.point(x, y);
+          alaskaStream.point(x, y);
+          hawaiiStream.point(x, y);
+        },
+        sphere: function() {
+          lower48Stream.sphere();
+          alaskaStream.sphere();
+          hawaiiStream.sphere();
+        },
+        lineStart: function() {
+          lower48Stream.lineStart();
+          alaskaStream.lineStart();
+          hawaiiStream.lineStart();
+        },
+        lineEnd: function() {
+          lower48Stream.lineEnd();
+          alaskaStream.lineEnd();
+          hawaiiStream.lineEnd();
+        },
+        polygonStart: function() {
+          lower48Stream.polygonStart();
+          alaskaStream.polygonStart();
+          hawaiiStream.polygonStart();
+        },
+        polygonEnd: function() {
+          lower48Stream.polygonEnd();
+          alaskaStream.polygonEnd();
+          hawaiiStream.polygonEnd();
+        }
+      };
+    };
+    albersUsa.precision = function(_) {
+      if (!arguments.length) return lower48.precision();
+      lower48.precision(_);
+      alaska.precision(_);
+      hawaii.precision(_);
+      return albersUsa;
+    };
+    albersUsa.scale = function(_) {
+      if (!arguments.length) return lower48.scale();
+      lower48.scale(_);
+      alaska.scale(_ * .35);
+      hawaii.scale(_);
+      return albersUsa.translate(lower48.translate());
+    };
+    albersUsa.translate = function(_) {
+      if (!arguments.length) return lower48.translate();
+      var k = lower48.scale(), x = +_[0], y = +_[1];
+      lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;
+      alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
+      hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
+      return albersUsa;
+    };
+    return albersUsa.scale(1070);
+  };
+  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_pathAreaPolygon = 0;
+      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
+      d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
+    }
+  };
+  function d3_geo_pathAreaRingStart() {
+    var x00, y00, x0, y0;
+    d3_geo_pathArea.point = function(x, y) {
+      d3_geo_pathArea.point = nextPoint;
+      x00 = x0 = x, y00 = y0 = y;
+    };
+    function nextPoint(x, y) {
+      d3_geo_pathAreaPolygon += y0 * x - x0 * y;
+      x0 = x, y0 = y;
+    }
+    d3_geo_pathArea.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;
+  var d3_geo_pathBounds = {
+    point: d3_geo_pathBoundsPoint,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: d3_noop,
+    polygonEnd: d3_noop
+  };
+  function d3_geo_pathBoundsPoint(x, y) {
+    if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
+    if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
+    if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
+    if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
+  }
+  function d3_geo_pathBuffer() {
+    var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointCircle = d3_geo_pathBufferCircle(_);
+        return stream;
+      },
+      result: function() {
+        if (buffer.length) {
+          var result = buffer.join("");
+          buffer = [];
+          return result;
+        }
+      }
+    };
+    function point(x, y) {
+      buffer.push("M", x, ",", y, pointCircle);
+    }
+    function pointLineStart(x, y) {
+      buffer.push("M", x, ",", y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      buffer.push("L", x, ",", y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      buffer.push("Z");
+    }
+    return stream;
+  }
+  function d3_geo_pathBufferCircle(radius) {
+    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
+  }
+  var d3_geo_pathCentroid = {
+    point: d3_geo_pathCentroidPoint,
+    lineStart: d3_geo_pathCentroidLineStart,
+    lineEnd: d3_geo_pathCentroidLineEnd,
+    polygonStart: function() {
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
+      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
+    }
+  };
+  function d3_geo_pathCentroidPoint(x, y) {
+    d3_geo_centroidX0 += x;
+    d3_geo_centroidY0 += y;
+    ++d3_geo_centroidZ0;
+  }
+  function d3_geo_pathCentroidLineStart() {
+    var x0, y0;
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    };
+    function nextPoint(x, y) {
+      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
+      d3_geo_centroidX1 += z * (x0 + x) / 2;
+      d3_geo_centroidY1 += z * (y0 + y) / 2;
+      d3_geo_centroidZ1 += z;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    }
+  }
+  function d3_geo_pathCentroidLineEnd() {
+    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+  }
+  function d3_geo_pathCentroidRingStart() {
+    var x00, y00, x0, y0;
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);
+    };
+    function nextPoint(x, y) {
+      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
+      d3_geo_centroidX1 += z * (x0 + x) / 2;
+      d3_geo_centroidY1 += z * (y0 + y) / 2;
+      d3_geo_centroidZ1 += z;
+      z = y0 * x - x0 * y;
+      d3_geo_centroidX2 += z * (x0 + x);
+      d3_geo_centroidY2 += z * (y0 + y);
+      d3_geo_centroidZ2 += z * 3;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    }
+    d3_geo_pathCentroid.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  function d3_geo_pathContext(context) {
+    var pointRadius = 4.5;
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointRadius = _;
+        return stream;
+      },
+      result: d3_noop
+    };
+    function point(x, y) {
+      context.moveTo(x + pointRadius, y);
+      context.arc(x, y, pointRadius, 0, τ);
+    }
+    function pointLineStart(x, y) {
+      context.moveTo(x, y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      context.lineTo(x, y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      context.closePath();
+    }
+    return stream;
+  }
+  function d3_geo_resample(project) {
+    var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;
+    function resample(stream) {
+      return (maxDepth ? resampleRecursive : resampleNone)(stream);
+    }
+    function resampleNone(stream) {
+      return d3_geo_transformPoint(stream, function(x, y) {
+        x = project(x, y);
+        stream.point(x[0], x[1]);
+      });
+    }
+    function resampleRecursive(stream) {
+      var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;
+      var resample = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          stream.polygonStart();
+          resample.lineStart = ringStart;
+        },
+        polygonEnd: function() {
+          stream.polygonEnd();
+          resample.lineStart = lineStart;
+        }
+      };
+      function point(x, y) {
+        x = project(x, y);
+        stream.point(x[0], x[1]);
+      }
+      function lineStart() {
+        x0 = NaN;
+        resample.point = linePoint;
+        stream.lineStart();
+      }
+      function linePoint(λ, φ) {
+        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
+        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
+        stream.point(x0, y0);
+      }
+      function lineEnd() {
+        resample.point = point;
+        stream.lineEnd();
+      }
+      function ringStart() {
+        lineStart();
+        resample.point = ringPoint;
+        resample.lineEnd = ringEnd;
+      }
+      function ringPoint(λ, φ) {
+        linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
+        resample.point = linePoint;
+      }
+      function ringEnd() {
+        resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
+        resample.lineEnd = lineEnd;
+        lineEnd();
+      }
+      return resample;
+    }
+    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
+      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
+      if (d2 > 4 * δ2 && depth--) {
+        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
+        if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {
+          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
+          stream.point(x2, y2);
+          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
+        }
+      }
+    }
+    resample.precision = function(_) {
+      if (!arguments.length) return Math.sqrt(δ2);
+      maxDepth = (δ2 = _ * _) > 0 && 16;
+      return resample;
+    };
+    return resample;
+  }
+  d3.geo.path = function() {
+    var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;
+    function path(object) {
+      if (object) {
+        if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
+        if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);
+        d3.geo.stream(object, cacheStream);
+      }
+      return contextStream.result();
+    }
+    path.area = function(object) {
+      d3_geo_pathAreaSum = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathArea));
+      return d3_geo_pathAreaSum;
+    };
+    path.centroid = function(object) {
+      d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
+      return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];
+    };
+    path.bounds = function(object) {
+      d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
+      d3.geo.stream(object, projectStream(d3_geo_pathBounds));
+      return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];
+    };
+    path.projection = function(_) {
+      if (!arguments.length) return projection;
+      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
+      return reset();
+    };
+    path.context = function(_) {
+      if (!arguments.length) return context;
+      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
+      if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
+      return reset();
+    };
+    path.pointRadius = function(_) {
+      if (!arguments.length) return pointRadius;
+      pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
+      return path;
+    };
+    function reset() {
+      cacheStream = null;
+      return path;
+    }
+    return path.projection(d3.geo.albersUsa()).context(null);
+  };
+  function d3_geo_pathProjectStream(project) {
+    var resample = d3_geo_resample(function(x, y) {
+      return project([ x * d3_degrees, y * d3_degrees ]);
+    });
+    return function(stream) {
+      return d3_geo_projectionRadians(resample(stream));
+    };
+  }
+  d3.geo.transform = function(methods) {
+    return {
+      stream: function(stream) {
+        var transform = new d3_geo_transform(stream);
+        for (var k in methods) transform[k] = methods[k];
+        return transform;
+      }
+    };
+  };
+  function d3_geo_transform(stream) {
+    this.stream = stream;
+  }
+  d3_geo_transform.prototype = {
+    point: function(x, y) {
+      this.stream.point(x, y);
+    },
+    sphere: function() {
+      this.stream.sphere();
+    },
+    lineStart: function() {
+      this.stream.lineStart();
+    },
+    lineEnd: function() {
+      this.stream.lineEnd();
+    },
+    polygonStart: function() {
+      this.stream.polygonStart();
+    },
+    polygonEnd: function() {
+      this.stream.polygonEnd();
+    }
+  };
+  function d3_geo_transformPoint(stream, point) {
+    return {
+      point: point,
+      sphere: function() {
+        stream.sphere();
+      },
+      lineStart: function() {
+        stream.lineStart();
+      },
+      lineEnd: function() {
+        stream.lineEnd();
+      },
+      polygonStart: function() {
+        stream.polygonStart();
+      },
+      polygonEnd: function() {
+        stream.polygonEnd();
+      }
+    };
+  }
+  d3.geo.projection = d3_geo_projection;
+  d3.geo.projectionMutator = d3_geo_projectionMutator;
+  function d3_geo_projection(project) {
+    return d3_geo_projectionMutator(function() {
+      return project;
+    })();
+  }
+  function d3_geo_projectionMutator(projectAt) {
+    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
+      x = project(x, y);
+      return [ x[0] * k + δx, δy - x[1] * k ];
+    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;
+    function projection(point) {
+      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
+      return [ point[0] * k + δx, δy - point[1] * k ];
+    }
+    function invert(point) {
+      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
+      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
+    }
+    projection.stream = function(output) {
+      if (stream) stream.valid = false;
+      stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
+      stream.valid = true;
+      return stream;
+    };
+    projection.clipAngle = function(_) {
+      if (!arguments.length) return clipAngle;
+      preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
+      return invalidate();
+    };
+    projection.clipExtent = function(_) {
+      if (!arguments.length) return clipExtent;
+      clipExtent = _;
+      postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
+      return invalidate();
+    };
+    projection.scale = function(_) {
+      if (!arguments.length) return k;
+      k = +_;
+      return reset();
+    };
+    projection.translate = function(_) {
+      if (!arguments.length) return [ x, y ];
+      x = +_[0];
+      y = +_[1];
+      return reset();
+    };
+    projection.center = function(_) {
+      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
+      λ = _[0] % 360 * d3_radians;
+      φ = _[1] % 360 * d3_radians;
+      return reset();
+    };
+    projection.rotate = function(_) {
+      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
+      δλ = _[0] % 360 * d3_radians;
+      δφ = _[1] % 360 * d3_radians;
+      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
+      return reset();
+    };
+    d3.rebind(projection, projectResample, "precision");
+    function reset() {
+      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
+      var center = project(λ, φ);
+      δx = x - center[0] * k;
+      δy = y + center[1] * k;
+      return invalidate();
+    }
+    function invalidate() {
+      if (stream) stream.valid = false, stream = null;
+      return projection;
+    }
+    return function() {
+      project = projectAt.apply(this, arguments);
+      projection.invert = project.invert && invert;
+      return reset();
+    };
+  }
+  function d3_geo_projectionRadians(stream) {
+    return d3_geo_transformPoint(stream, function(x, y) {
+      stream.point(x * d3_radians, y * d3_radians);
+    });
+  }
+  function d3_geo_equirectangular(λ, φ) {
+    return [ λ, φ ];
+  }
+  (d3.geo.equirectangular = function() {
+    return d3_geo_projection(d3_geo_equirectangular);
+  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
+  d3.geo.rotation = function(rotate) {
+    rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
+    function forward(coordinates) {
+      coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
+      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
+    }
+    forward.invert = function(coordinates) {
+      coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
+      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
+    };
+    return forward;
+  };
+  function d3_geo_identityRotation(λ, φ) {
+    return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
+  }
+  d3_geo_identityRotation.invert = d3_geo_equirectangular;
+  function d3_geo_rotation(δλ, δφ, δγ) {
+    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;
+  }
+  function d3_geo_forwardRotationλ(δλ) {
+    return function(λ, φ) {
+      return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
+    };
+  }
+  function d3_geo_rotationλ(δλ) {
+    var rotation = d3_geo_forwardRotationλ(δλ);
+    rotation.invert = d3_geo_forwardRotationλ(-δλ);
+    return rotation;
+  }
+  function d3_geo_rotationφγ(δφ, δγ) {
+    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
+    function rotation(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
+      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];
+    }
+    rotation.invert = function(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
+      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];
+    };
+    return rotation;
+  }
+  d3.geo.circle = function() {
+    var origin = [ 0, 0 ], angle, precision = 6, interpolate;
+    function circle() {
+      var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
+      interpolate(null, null, 1, {
+        point: function(x, y) {
+          ring.push(x = rotate(x, y));
+          x[0] *= d3_degrees, x[1] *= d3_degrees;
+        }
+      });
+      return {
+        type: "Polygon",
+        coordinates: [ ring ]
+      };
+    }
+    circle.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return circle;
+    };
+    circle.angle = function(x) {
+      if (!arguments.length) return angle;
+      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
+      return circle;
+    };
+    circle.precision = function(_) {
+      if (!arguments.length) return precision;
+      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
+      return circle;
+    };
+    return circle.angle(90);
+  };
+  function d3_geo_circleInterpolate(radius, precision) {
+    var cr = Math.cos(radius), sr = Math.sin(radius);
+    return function(from, to, direction, listener) {
+      var step = direction * precision;
+      if (from != null) {
+        from = d3_geo_circleAngle(cr, from);
+        to = d3_geo_circleAngle(cr, to);
+        if (direction > 0 ? from < to : from > to) from += direction * τ;
+      } else {
+        from = radius + direction * τ;
+        to = radius - .5 * step;
+      }
+      for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
+        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
+      }
+    };
+  }
+  function d3_geo_circleAngle(cr, point) {
+    var a = d3_geo_cartesian(point);
+    a[0] -= cr;
+    d3_geo_cartesianNormalize(a);
+    var angle = d3_acos(-a[1]);
+    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
+  }
+  d3.geo.distance = function(a, b) {
+    var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
+    return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
+  };
+  d3.geo.graticule = function() {
+    var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
+    function graticule() {
+      return {
+        type: "MultiLineString",
+        coordinates: lines()
+      };
+    }
+    function lines() {
+      return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
+        return abs(x % DX) > ε;
+      }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
+        return abs(y % DY) > ε;
+      }).map(y));
+    }
+    graticule.lines = function() {
+      return lines().map(function(coordinates) {
+        return {
+          type: "LineString",
+          coordinates: coordinates
+        };
+      });
+    };
+    graticule.outline = function() {
+      return {
+        type: "Polygon",
+        coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
+      };
+    };
+    graticule.extent = function(_) {
+      if (!arguments.length) return graticule.minorExtent();
+      return graticule.majorExtent(_).minorExtent(_);
+    };
+    graticule.majorExtent = function(_) {
+      if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
+      X0 = +_[0][0], X1 = +_[1][0];
+      Y0 = +_[0][1], Y1 = +_[1][1];
+      if (X0 > X1) _ = X0, X0 = X1, X1 = _;
+      if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
+      return graticule.precision(precision);
+    };
+    graticule.minorExtent = function(_) {
+      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
+      x0 = +_[0][0], x1 = +_[1][0];
+      y0 = +_[0][1], y1 = +_[1][1];
+      if (x0 > x1) _ = x0, x0 = x1, x1 = _;
+      if (y0 > y1) _ = y0, y0 = y1, y1 = _;
+      return graticule.precision(precision);
+    };
+    graticule.step = function(_) {
+      if (!arguments.length) return graticule.minorStep();
+      return graticule.majorStep(_).minorStep(_);
+    };
+    graticule.majorStep = function(_) {
+      if (!arguments.length) return [ DX, DY ];
+      DX = +_[0], DY = +_[1];
+      return graticule;
+    };
+    graticule.minorStep = function(_) {
+      if (!arguments.length) return [ dx, dy ];
+      dx = +_[0], dy = +_[1];
+      return graticule;
+    };
+    graticule.precision = function(_) {
+      if (!arguments.length) return precision;
+      precision = +_;
+      x = d3_geo_graticuleX(y0, y1, 90);
+      y = d3_geo_graticuleY(x0, x1, precision);
+      X = d3_geo_graticuleX(Y0, Y1, 90);
+      Y = d3_geo_graticuleY(X0, X1, precision);
+      return graticule;
+    };
+    return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
+  };
+  function d3_geo_graticuleX(y0, y1, dy) {
+    var y = d3.range(y0, y1 - ε, dy).concat(y1);
+    return function(x) {
+      return y.map(function(y) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_geo_graticuleY(x0, x1, dx) {
+    var x = d3.range(x0, x1 - ε, dx).concat(x1);
+    return function(y) {
+      return x.map(function(x) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_source(d) {
+    return d.source;
+  }
+  function d3_target(d) {
+    return d.target;
+  }
+  d3.geo.greatArc = function() {
+    var source = d3_source, source_, target = d3_target, target_;
+    function greatArc() {
+      return {
+        type: "LineString",
+        coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
+      };
+    }
+    greatArc.distance = function() {
+      return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
+    };
+    greatArc.source = function(_) {
+      if (!arguments.length) return source;
+      source = _, source_ = typeof _ === "function" ? null : _;
+      return greatArc;
+    };
+    greatArc.target = function(_) {
+      if (!arguments.length) return target;
+      target = _, target_ = typeof _ === "function" ? null : _;
+      return greatArc;
+    };
+    greatArc.precision = function() {
+      return arguments.length ? greatArc : 0;
+    };
+    return greatArc;
+  };
+  d3.geo.interpolate = function(source, target) {
+    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
+  };
+  function d3_geo_interpolate(x0, y0, x1, y1) {
+    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
+    var interpolate = d ? function(t) {
+      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
+      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
+    } : function() {
+      return [ x0 * d3_degrees, y0 * d3_degrees ];
+    };
+    interpolate.distance = d;
+    return interpolate;
+  }
+  d3.geo.length = function(object) {
+    d3_geo_lengthSum = 0;
+    d3.geo.stream(object, d3_geo_length);
+    return d3_geo_lengthSum;
+  };
+  var d3_geo_lengthSum;
+  var d3_geo_length = {
+    sphere: d3_noop,
+    point: d3_noop,
+    lineStart: d3_geo_lengthLineStart,
+    lineEnd: d3_noop,
+    polygonStart: d3_noop,
+    polygonEnd: d3_noop
+  };
+  function d3_geo_lengthLineStart() {
+    var λ0, sinφ0, cosφ0;
+    d3_geo_length.point = function(λ, φ) {
+      λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
+      d3_geo_length.point = nextPoint;
+    };
+    d3_geo_length.lineEnd = function() {
+      d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
+    };
+    function nextPoint(λ, φ) {
+      var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
+      d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
+      λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
+    }
+  }
+  function d3_geo_azimuthal(scale, angle) {
+    function azimuthal(λ, φ) {
+      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
+      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
+    }
+    azimuthal.invert = function(x, y) {
+      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
+      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
+    };
+    return azimuthal;
+  }
+  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
+    return Math.sqrt(2 / (1 + cosλcosφ));
+  }, function(ρ) {
+    return 2 * Math.asin(ρ / 2);
+  });
+  (d3.geo.azimuthalEqualArea = function() {
+    return d3_geo_projection(d3_geo_azimuthalEqualArea);
+  }).raw = d3_geo_azimuthalEqualArea;
+  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
+    var c = Math.acos(cosλcosφ);
+    return c && c / Math.sin(c);
+  }, d3_identity);
+  (d3.geo.azimuthalEquidistant = function() {
+    return d3_geo_projection(d3_geo_azimuthalEquidistant);
+  }).raw = d3_geo_azimuthalEquidistant;
+  function d3_geo_conicConformal(φ0, φ1) {
+    var cosφ0 = Math.cos(φ0), t = function(φ) {
+      return Math.tan(π / 4 + φ / 2);
+    }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
+    if (!n) return d3_geo_mercator;
+    function forward(λ, φ) {
+      if (F > 0) {
+        if (φ < -halfπ + ε) φ = -halfπ + ε;
+      } else {
+        if (φ > halfπ - ε) φ = halfπ - ε;
+      }
+      var ρ = F / Math.pow(t(φ), n);
+      return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
+      return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];
+    };
+    return forward;
+  }
+  (d3.geo.conicConformal = function() {
+    return d3_geo_conic(d3_geo_conicConformal);
+  }).raw = d3_geo_conicConformal;
+  function d3_geo_conicEquidistant(φ0, φ1) {
+    var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
+    if (abs(n) < ε) return d3_geo_equirectangular;
+    function forward(λ, φ) {
+      var ρ = G - φ;
+      return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = G - y;
+      return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
+    };
+    return forward;
+  }
+  (d3.geo.conicEquidistant = function() {
+    return d3_geo_conic(d3_geo_conicEquidistant);
+  }).raw = d3_geo_conicEquidistant;
+  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / cosλcosφ;
+  }, Math.atan);
+  (d3.geo.gnomonic = function() {
+    return d3_geo_projection(d3_geo_gnomonic);
+  }).raw = d3_geo_gnomonic;
+  function d3_geo_mercator(λ, φ) {
+    return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
+  }
+  d3_geo_mercator.invert = function(x, y) {
+    return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];
+  };
+  function d3_geo_mercatorProjection(project) {
+    var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
+    m.scale = function() {
+      var v = scale.apply(m, arguments);
+      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
+    };
+    m.translate = function() {
+      var v = translate.apply(m, arguments);
+      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
+    };
+    m.clipExtent = function(_) {
+      var v = clipExtent.apply(m, arguments);
+      if (v === m) {
+        if (clipAuto = _ == null) {
+          var k = π * scale(), t = translate();
+          clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
+        }
+      } else if (clipAuto) {
+        v = null;
+      }
+      return v;
+    };
+    return m.clipExtent(null);
+  }
+  (d3.geo.mercator = function() {
+    return d3_geo_mercatorProjection(d3_geo_mercator);
+  }).raw = d3_geo_mercator;
+  var d3_geo_orthographic = d3_geo_azimuthal(function() {
+    return 1;
+  }, Math.asin);
+  (d3.geo.orthographic = function() {
+    return d3_geo_projection(d3_geo_orthographic);
+  }).raw = d3_geo_orthographic;
+  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / (1 + cosλcosφ);
+  }, function(ρ) {
+    return 2 * Math.atan(ρ);
+  });
+  (d3.geo.stereographic = function() {
+    return d3_geo_projection(d3_geo_stereographic);
+  }).raw = d3_geo_stereographic;
+  function d3_geo_transverseMercator(λ, φ) {
+    return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];
+  }
+  d3_geo_transverseMercator.invert = function(x, y) {
+    return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];
+  };
+  (d3.geo.transverseMercator = function() {
+    var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
+    projection.center = function(_) {
+      return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
+    };
+    projection.rotate = function(_) {
+      return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), 
+      [ _[0], _[1], _[2] - 90 ]);
+    };
+    return rotate([ 0, 0, 90 ]);
+  }).raw = d3_geo_transverseMercator;
+  d3.geom = {};
+  function d3_geom_pointX(d) {
+    return d[0];
+  }
+  function d3_geom_pointY(d) {
+    return d[1];
+  }
+  d3.geom.hull = function(vertices) {
+    var x = d3_geom_pointX, y = d3_geom_pointY;
+    if (arguments.length) return hull(vertices);
+    function hull(data) {
+      if (data.length < 3) return [];
+      var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];
+      for (i = 0; i < n; i++) {
+        points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);
+      }
+      points.sort(d3_geom_hullOrder);
+      for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);
+      var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);
+      var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];
+      for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);
+      for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);
+      return polygon;
+    }
+    hull.x = function(_) {
+      return arguments.length ? (x = _, hull) : x;
+    };
+    hull.y = function(_) {
+      return arguments.length ? (y = _, hull) : y;
+    };
+    return hull;
+  };
+  function d3_geom_hullUpper(points) {
+    var n = points.length, hull = [ 0, 1 ], hs = 2;
+    for (var i = 2; i < n; i++) {
+      while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;
+      hull[hs++] = i;
+    }
+    return hull.slice(0, hs);
+  }
+  function d3_geom_hullOrder(a, b) {
+    return a[0] - b[0] || a[1] - b[1];
+  }
+  d3.geom.polygon = function(coordinates) {
+    d3_subclass(coordinates, d3_geom_polygonPrototype);
+    return coordinates;
+  };
+  var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];
+  d3_geom_polygonPrototype.area = function() {
+    var i = -1, n = this.length, a, b = this[n - 1], area = 0;
+    while (++i < n) {
+      a = b;
+      b = this[i];
+      area += a[1] * b[0] - a[0] * b[1];
+    }
+    return area * .5;
+  };
+  d3_geom_polygonPrototype.centroid = function(k) {
+    var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;
+    if (!arguments.length) k = -1 / (6 * this.area());
+    while (++i < n) {
+      a = b;
+      b = this[i];
+      c = a[0] * b[1] - b[0] * a[1];
+      x += (a[0] + b[0]) * c;
+      y += (a[1] + b[1]) * c;
+    }
+    return [ x * k, y * k ];
+  };
+  d3_geom_polygonPrototype.clip = function(subject) {
+    var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;
+    while (++i < n) {
+      input = subject.slice();
+      subject.length = 0;
+      b = this[i];
+      c = input[(m = input.length - closed) - 1];
+      j = -1;
+      while (++j < m) {
+        d = input[j];
+        if (d3_geom_polygonInside(d, a, b)) {
+          if (!d3_geom_polygonInside(c, a, b)) {
+            subject.push(d3_geom_polygonIntersect(c, d, a, b));
+          }
+          subject.push(d);
+        } else if (d3_geom_polygonInside(c, a, b)) {
+          subject.push(d3_geom_polygonIntersect(c, d, a, b));
+        }
+        c = d;
+      }
+      if (closed) subject.push(subject[0]);
+      a = b;
+    }
+    return subject;
+  };
+  function d3_geom_polygonInside(p, a, b) {
+    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
+  }
+  function d3_geom_polygonIntersect(c, d, a, b) {
+    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
+    return [ x1 + ua * x21, y1 + ua * y21 ];
+  }
+  function d3_geom_polygonClosed(coordinates) {
+    var a = coordinates[0], b = coordinates[coordinates.length - 1];
+    return !(a[0] - b[0] || a[1] - b[1]);
+  }
+  var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];
+  function d3_geom_voronoiBeach() {
+    d3_geom_voronoiRedBlackNode(this);
+    this.edge = this.site = this.circle = null;
+  }
+  function d3_geom_voronoiCreateBeach(site) {
+    var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();
+    beach.site = site;
+    return beach;
+  }
+  function d3_geom_voronoiDetachBeach(beach) {
+    d3_geom_voronoiDetachCircle(beach);
+    d3_geom_voronoiBeaches.remove(beach);
+    d3_geom_voronoiBeachPool.push(beach);
+    d3_geom_voronoiRedBlackNode(beach);
+  }
+  function d3_geom_voronoiRemoveBeach(beach) {
+    var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {
+      x: x,
+      y: y
+    }, previous = beach.P, next = beach.N, disappearing = [ beach ];
+    d3_geom_voronoiDetachBeach(beach);
+    var lArc = previous;
+    while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {
+      previous = lArc.P;
+      disappearing.unshift(lArc);
+      d3_geom_voronoiDetachBeach(lArc);
+      lArc = previous;
+    }
+    disappearing.unshift(lArc);
+    d3_geom_voronoiDetachCircle(lArc);
+    var rArc = next;
+    while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {
+      next = rArc.N;
+      disappearing.push(rArc);
+      d3_geom_voronoiDetachBeach(rArc);
+      rArc = next;
+    }
+    disappearing.push(rArc);
+    d3_geom_voronoiDetachCircle(rArc);
+    var nArcs = disappearing.length, iArc;
+    for (iArc = 1; iArc < nArcs; ++iArc) {
+      rArc = disappearing[iArc];
+      lArc = disappearing[iArc - 1];
+      d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);
+    }
+    lArc = disappearing[0];
+    rArc = disappearing[nArcs - 1];
+    rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);
+    d3_geom_voronoiAttachCircle(lArc);
+    d3_geom_voronoiAttachCircle(rArc);
+  }
+  function d3_geom_voronoiAddBeach(site) {
+    var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;
+    while (node) {
+      dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;
+      if (dxl > ε) node = node.L; else {
+        dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);
+        if (dxr > ε) {
+          if (!node.R) {
+            lArc = node;
+            break;
+          }
+          node = node.R;
+        } else {
+          if (dxl > -ε) {
+            lArc = node.P;
+            rArc = node;
+          } else if (dxr > -ε) {
+            lArc = node;
+            rArc = node.N;
+          } else {
+            lArc = rArc = node;
+          }
+          break;
+        }
+      }
+    }
+    var newArc = d3_geom_voronoiCreateBeach(site);
+    d3_geom_voronoiBeaches.insert(lArc, newArc);
+    if (!lArc && !rArc) return;
+    if (lArc === rArc) {
+      d3_geom_voronoiDetachCircle(lArc);
+      rArc = d3_geom_voronoiCreateBeach(lArc.site);
+      d3_geom_voronoiBeaches.insert(newArc, rArc);
+      newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
+      d3_geom_voronoiAttachCircle(lArc);
+      d3_geom_voronoiAttachCircle(rArc);
+      return;
+    }
+    if (!rArc) {
+      newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
+      return;
+    }
+    d3_geom_voronoiDetachCircle(lArc);
+    d3_geom_voronoiDetachCircle(rArc);
+    var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {
+      x: (cy * hb - by * hc) / d + ax,
+      y: (bx * hc - cx * hb) / d + ay
+    };
+    d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);
+    newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);
+    rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);
+    d3_geom_voronoiAttachCircle(lArc);
+    d3_geom_voronoiAttachCircle(rArc);
+  }
+  function d3_geom_voronoiLeftBreakPoint(arc, directrix) {
+    var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;
+    if (!pby2) return rfocx;
+    var lArc = arc.P;
+    if (!lArc) return -Infinity;
+    site = lArc.site;
+    var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;
+    if (!plby2) return lfocx;
+    var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;
+    if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
+    return (rfocx + lfocx) / 2;
+  }
+  function d3_geom_voronoiRightBreakPoint(arc, directrix) {
+    var rArc = arc.N;
+    if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);
+    var site = arc.site;
+    return site.y === directrix ? site.x : Infinity;
+  }
+  function d3_geom_voronoiCell(site) {
+    this.site = site;
+    this.edges = [];
+  }
+  d3_geom_voronoiCell.prototype.prepare = function() {
+    var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;
+    while (iHalfEdge--) {
+      edge = halfEdges[iHalfEdge].edge;
+      if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);
+    }
+    halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);
+    return halfEdges.length;
+  };
+  function d3_geom_voronoiCloseCells(extent) {
+    var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;
+    while (iCell--) {
+      cell = cells[iCell];
+      if (!cell || !cell.prepare()) continue;
+      halfEdges = cell.edges;
+      nHalfEdges = halfEdges.length;
+      iHalfEdge = 0;
+      while (iHalfEdge < nHalfEdges) {
+        end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;
+        start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;
+        if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {
+          halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {
+            x: x0,
+            y: abs(x2 - x0) < ε ? y2 : y1
+          } : abs(y3 - y1) < ε && x1 - x3 > ε ? {
+            x: abs(y2 - y1) < ε ? x2 : x1,
+            y: y1
+          } : abs(x3 - x1) < ε && y3 - y0 > ε ? {
+            x: x1,
+            y: abs(x2 - x1) < ε ? y2 : y0
+          } : abs(y3 - y0) < ε && x3 - x0 > ε ? {
+            x: abs(y2 - y0) < ε ? x2 : x0,
+            y: y0
+          } : null), cell.site, null));
+          ++nHalfEdges;
+        }
+      }
+    }
+  }
+  function d3_geom_voronoiHalfEdgeOrder(a, b) {
+    return b.angle - a.angle;
+  }
+  function d3_geom_voronoiCircle() {
+    d3_geom_voronoiRedBlackNode(this);
+    this.x = this.y = this.arc = this.site = this.cy = null;
+  }
+  function d3_geom_voronoiAttachCircle(arc) {
+    var lArc = arc.P, rArc = arc.N;
+    if (!lArc || !rArc) return;
+    var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;
+    if (lSite === rSite) return;
+    var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;
+    var d = 2 * (ax * cy - ay * cx);
+    if (d >= -ε2) return;
+    var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;
+    var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();
+    circle.arc = arc;
+    circle.site = cSite;
+    circle.x = x + bx;
+    circle.y = cy + Math.sqrt(x * x + y * y);
+    circle.cy = cy;
+    arc.circle = circle;
+    var before = null, node = d3_geom_voronoiCircles._;
+    while (node) {
+      if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {
+        if (node.L) node = node.L; else {
+          before = node.P;
+          break;
+        }
+      } else {
+        if (node.R) node = node.R; else {
+          before = node;
+          break;
+        }
+      }
+    }
+    d3_geom_voronoiCircles.insert(before, circle);
+    if (!before) d3_geom_voronoiFirstCircle = circle;
+  }
+  function d3_geom_voronoiDetachCircle(arc) {
+    var circle = arc.circle;
+    if (circle) {
+      if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;
+      d3_geom_voronoiCircles.remove(circle);
+      d3_geom_voronoiCirclePool.push(circle);
+      d3_geom_voronoiRedBlackNode(circle);
+      arc.circle = null;
+    }
+  }
+  function d3_geom_voronoiClipEdges(extent) {
+    var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;
+    while (i--) {
+      e = edges[i];
+      if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {
+        e.a = e.b = null;
+        edges.splice(i, 1);
+      }
+    }
+  }
+  function d3_geom_voronoiConnectEdge(edge, extent) {
+    var vb = edge.b;
+    if (vb) return true;
+    var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;
+    if (ry === ly) {
+      if (fx < x0 || fx >= x1) return;
+      if (lx > rx) {
+        if (!va) va = {
+          x: fx,
+          y: y0
+        }; else if (va.y >= y1) return;
+        vb = {
+          x: fx,
+          y: y1
+        };
+      } else {
+        if (!va) va = {
+          x: fx,
+          y: y1
+        }; else if (va.y < y0) return;
+        vb = {
+          x: fx,
+          y: y0
+        };
+      }
+    } else {
+      fm = (lx - rx) / (ry - ly);
+      fb = fy - fm * fx;
+      if (fm < -1 || fm > 1) {
+        if (lx > rx) {
+          if (!va) va = {
+            x: (y0 - fb) / fm,
+            y: y0
+          }; else if (va.y >= y1) return;
+          vb = {
+            x: (y1 - fb) / fm,
+            y: y1
+          };
+        } else {
+          if (!va) va = {
+            x: (y1 - fb) / fm,
+            y: y1
+          }; else if (va.y < y0) return;
+          vb = {
+            x: (y0 - fb) / fm,
+            y: y0
+          };
+        }
+      } else {
+        if (ly < ry) {
+          if (!va) va = {
+            x: x0,
+            y: fm * x0 + fb
+          }; else if (va.x >= x1) return;
+          vb = {
+            x: x1,
+            y: fm * x1 + fb
+          };
+        } else {
+          if (!va) va = {
+            x: x1,
+            y: fm * x1 + fb
+          }; else if (va.x < x0) return;
+          vb = {
+            x: x0,
+            y: fm * x0 + fb
+          };
+        }
+      }
+    }
+    edge.a = va;
+    edge.b = vb;
+    return true;
+  }
+  function d3_geom_voronoiEdge(lSite, rSite) {
+    this.l = lSite;
+    this.r = rSite;
+    this.a = this.b = null;
+  }
+  function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {
+    var edge = new d3_geom_voronoiEdge(lSite, rSite);
+    d3_geom_voronoiEdges.push(edge);
+    if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);
+    if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);
+    d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));
+    d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));
+    return edge;
+  }
+  function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {
+    var edge = new d3_geom_voronoiEdge(lSite, null);
+    edge.a = va;
+    edge.b = vb;
+    d3_geom_voronoiEdges.push(edge);
+    return edge;
+  }
+  function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {
+    if (!edge.a && !edge.b) {
+      edge.a = vertex;
+      edge.l = lSite;
+      edge.r = rSite;
+    } else if (edge.l === rSite) {
+      edge.b = vertex;
+    } else {
+      edge.a = vertex;
+    }
+  }
+  function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {
+    var va = edge.a, vb = edge.b;
+    this.edge = edge;
+    this.site = lSite;
+    this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);
+  }
+  d3_geom_voronoiHalfEdge.prototype = {
+    start: function() {
+      return this.edge.l === this.site ? this.edge.a : this.edge.b;
+    },
+    end: function() {
+      return this.edge.l === this.site ? this.edge.b : this.edge.a;
+    }
+  };
+  function d3_geom_voronoiRedBlackTree() {
+    this._ = null;
+  }
+  function d3_geom_voronoiRedBlackNode(node) {
+    node.U = node.C = node.L = node.R = node.P = node.N = null;
+  }
+  d3_geom_voronoiRedBlackTree.prototype = {
+    insert: function(after, node) {
+      var parent, grandpa, uncle;
+      if (after) {
+        node.P = after;
+        node.N = after.N;
+        if (after.N) after.N.P = node;
+        after.N = node;
+        if (after.R) {
+          after = after.R;
+          while (after.L) after = after.L;
+          after.L = node;
+        } else {
+          after.R = node;
+        }
+        parent = after;
+      } else if (this._) {
+        after = d3_geom_voronoiRedBlackFirst(this._);
+        node.P = null;
+        node.N = after;
+        after.P = after.L = node;
+        parent = after;
+      } else {
+        node.P = node.N = null;
+        this._ = node;
+        parent = null;
+      }
+      node.L = node.R = null;
+      node.U = parent;
+      node.C = true;
+      after = node;
+      while (parent && parent.C) {
+        grandpa = parent.U;
+        if (parent === grandpa.L) {
+          uncle = grandpa.R;
+          if (uncle && uncle.C) {
+            parent.C = uncle.C = false;
+            grandpa.C = true;
+            after = grandpa;
+          } else {
+            if (after === parent.R) {
+              d3_geom_voronoiRedBlackRotateLeft(this, parent);
+              after = parent;
+              parent = after.U;
+            }
+            parent.C = false;
+            grandpa.C = true;
+            d3_geom_voronoiRedBlackRotateRight(this, grandpa);
+          }
+        } else {
+          uncle = grandpa.L;
+          if (uncle && uncle.C) {
+            parent.C = uncle.C = false;
+            grandpa.C = true;
+            after = grandpa;
+          } else {
+            if (after === parent.L) {
+              d3_geom_voronoiRedBlackRotateRight(this, parent);
+              after = parent;
+              parent = after.U;
+            }
+            parent.C = false;
+            grandpa.C = true;
+            d3_geom_voronoiRedBlackRotateLeft(this, grandpa);
+          }
+        }
+        parent = after.U;
+      }
+      this._.C = false;
+    },
+    remove: function(node) {
+      if (node.N) node.N.P = node.P;
+      if (node.P) node.P.N = node.N;
+      node.N = node.P = null;
+      var parent = node.U, sibling, left = node.L, right = node.R, next, red;
+      if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);
+      if (parent) {
+        if (parent.L === node) parent.L = next; else parent.R = next;
+      } else {
+        this._ = next;
+      }
+      if (left && right) {
+        red = next.C;
+        next.C = node.C;
+        next.L = left;
+        left.U = next;
+        if (next !== right) {
+          parent = next.U;
+          next.U = node.U;
+          node = next.R;
+          parent.L = node;
+          next.R = right;
+          right.U = next;
+        } else {
+          next.U = parent;
+          parent = next;
+          node = next.R;
+        }
+      } else {
+        red = node.C;
+        node = next;
+      }
+      if (node) node.U = parent;
+      if (red) return;
+      if (node && node.C) {
+        node.C = false;
+        return;
+      }
+      do {
+        if (node === this._) break;
+        if (node === parent.L) {
+          sibling = parent.R;
+          if (sibling.C) {
+            sibling.C = false;
+            parent.C = true;
+            d3_geom_voronoiRedBlackRotateLeft(this, parent);
+            sibling = parent.R;
+          }
+          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
+            if (!sibling.R || !sibling.R.C) {
+              sibling.L.C = false;
+              sibling.C = true;
+              d3_geom_voronoiRedBlackRotateRight(this, sibling);
+              sibling = parent.R;
+            }
+            sibling.C = parent.C;
+            parent.C = sibling.R.C = false;
+            d3_geom_voronoiRedBlackRotateLeft(this, parent);
+            node = this._;
+            break;
+          }
+        } else {
+          sibling = parent.L;
+          if (sibling.C) {
+            sibling.C = false;
+            parent.C = true;
+            d3_geom_voronoiRedBlackRotateRight(this, parent);
+            sibling = parent.L;
+          }
+          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
+            if (!sibling.L || !sibling.L.C) {
+              sibling.R.C = false;
+              sibling.C = true;
+              d3_geom_voronoiRedBlackRotateLeft(this, sibling);
+              sibling = parent.L;
+            }
+            sibling.C = parent.C;
+            parent.C = sibling.L.C = false;
+            d3_geom_voronoiRedBlackRotateRight(this, parent);
+            node = this._;
+            break;
+          }
+        }
+        sibling.C = true;
+        node = parent;
+        parent = parent.U;
+      } while (!node.C);
+      if (node) node.C = false;
+    }
+  };
+  function d3_geom_voronoiRedBlackRotateLeft(tree, node) {
+    var p = node, q = node.R, parent = p.U;
+    if (parent) {
+      if (parent.L === p) parent.L = q; else parent.R = q;
+    } else {
+      tree._ = q;
+    }
+    q.U = parent;
+    p.U = q;
+    p.R = q.L;
+    if (p.R) p.R.U = p;
+    q.L = p;
+  }
+  function d3_geom_voronoiRedBlackRotateRight(tree, node) {
+    var p = node, q = node.L, parent = p.U;
+    if (parent) {
+      if (parent.L === p) parent.L = q; else parent.R = q;
+    } else {
+      tree._ = q;
+    }
+    q.U = parent;
+    p.U = q;
+    p.L = q.R;
+    if (p.L) p.L.U = p;
+    q.R = p;
+  }
+  function d3_geom_voronoiRedBlackFirst(node) {
+    while (node.L) node = node.L;
+    return node;
+  }
+  function d3_geom_voronoi(sites, bbox) {
+    var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;
+    d3_geom_voronoiEdges = [];
+    d3_geom_voronoiCells = new Array(sites.length);
+    d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();
+    d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();
+    while (true) {
+      circle = d3_geom_voronoiFirstCircle;
+      if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {
+        if (site.x !== x0 || site.y !== y0) {
+          d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);
+          d3_geom_voronoiAddBeach(site);
+          x0 = site.x, y0 = site.y;
+        }
+        site = sites.pop();
+      } else if (circle) {
+        d3_geom_voronoiRemoveBeach(circle.arc);
+      } else {
+        break;
+      }
+    }
+    if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);
+    var diagram = {
+      cells: d3_geom_voronoiCells,
+      edges: d3_geom_voronoiEdges
+    };
+    d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;
+    return diagram;
+  }
+  function d3_geom_voronoiVertexOrder(a, b) {
+    return b.y - a.y || b.x - a.x;
+  }
+  d3.geom.voronoi = function(points) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;
+    if (points) return voronoi(points);
+    function voronoi(data) {
+      var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];
+      d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {
+        var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {
+          var s = e.start();
+          return [ s.x, s.y ];
+        }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];
+        polygon.point = data[i];
+      });
+      return polygons;
+    }
+    function sites(data) {
+      return data.map(function(d, i) {
+        return {
+          x: Math.round(fx(d, i) / ε) * ε,
+          y: Math.round(fy(d, i) / ε) * ε,
+          i: i
+        };
+      });
+    }
+    voronoi.links = function(data) {
+      return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {
+        return edge.l && edge.r;
+      }).map(function(edge) {
+        return {
+          source: data[edge.l.i],
+          target: data[edge.r.i]
+        };
+      });
+    };
+    voronoi.triangles = function(data) {
+      var triangles = [];
+      d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {
+        var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;
+        while (++j < m) {
+          e0 = e1;
+          s0 = s1;
+          e1 = edges[j].edge;
+          s1 = e1.l === site ? e1.r : e1.l;
+          if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {
+            triangles.push([ data[i], data[s0.i], data[s1.i] ]);
+          }
+        }
+      });
+      return triangles;
+    };
+    voronoi.x = function(_) {
+      return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;
+    };
+    voronoi.y = function(_) {
+      return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;
+    };
+    voronoi.clipExtent = function(_) {
+      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;
+      clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;
+      return voronoi;
+    };
+    voronoi.size = function(_) {
+      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];
+      return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);
+    };
+    return voronoi;
+  };
+  var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];
+  function d3_geom_voronoiTriangleArea(a, b, c) {
+    return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);
+  }
+  d3.geom.delaunay = function(vertices) {
+    return d3.geom.voronoi().triangles(vertices);
+  };
+  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, compat;
+    if (compat = arguments.length) {
+      x = d3_geom_quadtreeCompatX;
+      y = d3_geom_quadtreeCompatY;
+      if (compat === 3) {
+        y2 = y1;
+        x2 = x1;
+        y1 = x1 = 0;
+      }
+      return quadtree(points);
+    }
+    function quadtree(data) {
+      var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
+      if (x1 != null) {
+        x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
+      } else {
+        x2_ = y2_ = -(x1_ = y1_ = Infinity);
+        xs = [], ys = [];
+        n = data.length;
+        if (compat) for (i = 0; i < n; ++i) {
+          d = data[i];
+          if (d.x < x1_) x1_ = d.x;
+          if (d.y < y1_) y1_ = d.y;
+          if (d.x > x2_) x2_ = d.x;
+          if (d.y > y2_) y2_ = d.y;
+          xs.push(d.x);
+          ys.push(d.y);
+        } else for (i = 0; i < n; ++i) {
+          var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
+          if (x_ < x1_) x1_ = x_;
+          if (y_ < y1_) y1_ = y_;
+          if (x_ > x2_) x2_ = x_;
+          if (y_ > y2_) y2_ = y_;
+          xs.push(x_);
+          ys.push(y_);
+        }
+      }
+      var dx = x2_ - x1_, dy = y2_ - y1_;
+      if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
+      function insert(n, d, x, y, x1, y1, x2, y2) {
+        if (isNaN(x) || isNaN(y)) return;
+        if (n.leaf) {
+          var nx = n.x, ny = n.y;
+          if (nx != null) {
+            if (abs(nx - x) + abs(ny - y) < .01) {
+              insertChild(n, d, x, y, x1, y1, x2, y2);
+            } else {
+              var nPoint = n.point;
+              n.x = n.y = n.point = null;
+              insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
+              insertChild(n, d, x, y, x1, y1, x2, y2);
+            }
+          } else {
+            n.x = x, n.y = y, n.point = d;
+          }
+        } else {
+          insertChild(n, d, x, y, x1, y1, x2, y2);
+        }
+      }
+      function insertChild(n, d, x, y, x1, y1, x2, y2) {
+        var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;
+        n.leaf = false;
+        n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
+        if (right) x1 = xm; else x2 = xm;
+        if (below) y1 = ym; else y2 = ym;
+        insert(n, d, x, y, x1, y1, x2, y2);
+      }
+      var root = d3_geom_quadtreeNode();
+      root.add = function(d) {
+        insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
+      };
+      root.visit = function(f) {
+        d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
+      };
+      root.find = function(point) {
+        return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);
+      };
+      i = -1;
+      if (x1 == null) {
+        while (++i < n) {
+          insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
+        }
+        --i;
+      } else data.forEach(root.add);
+      xs = ys = data = d = null;
+      return root;
+    }
+    quadtree.x = function(_) {
+      return arguments.length ? (x = _, quadtree) : x;
+    };
+    quadtree.y = function(_) {
+      return arguments.length ? (y = _, quadtree) : y;
+    };
+    quadtree.extent = function(_) {
+      if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];
+      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], 
+      y2 = +_[1][1];
+      return quadtree;
+    };
+    quadtree.size = function(_) {
+      if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];
+      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];
+      return quadtree;
+    };
+    return quadtree;
+  };
+  function d3_geom_quadtreeCompatX(d) {
+    return d.x;
+  }
+  function d3_geom_quadtreeCompatY(d) {
+    return d.y;
+  }
+  function d3_geom_quadtreeNode() {
+    return {
+      leaf: true,
+      nodes: [],
+      point: null,
+      x: null,
+      y: null
+    };
+  }
+  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
+    if (!f(node, x1, y1, x2, y2)) {
+      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
+      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
+      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
+      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
+      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
+    }
+  }
+  function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
+    var minDistance2 = Infinity, closestPoint;
+    (function find(node, x1, y1, x2, y2) {
+      if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
+      if (point = node.point) {
+        var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
+        if (distance2 < minDistance2) {
+          var distance = Math.sqrt(minDistance2 = distance2);
+          x0 = x - distance, y0 = y - distance;
+          x3 = x + distance, y3 = y + distance;
+          closestPoint = point;
+        }
+      }
+      var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;
+      for (var i = below << 1 | right, j = i + 4; i < j; ++i) {
+        if (node = children[i & 3]) switch (i & 3) {
+         case 0:
+          find(node, x1, y1, xm, ym);
+          break;
+
+         case 1:
+          find(node, xm, y1, x2, ym);
+          break;
+
+         case 2:
+          find(node, x1, ym, xm, y2);
+          break;
+
+         case 3:
+          find(node, xm, ym, x2, y2);
+          break;
+        }
+      }
+    })(root, x0, y0, x3, y3);
+    return closestPoint;
+  }
+  d3.interpolateRgb = d3_interpolateRgb;
+  function d3_interpolateRgb(a, b) {
+    a = d3.rgb(a);
+    b = d3.rgb(b);
+    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
+    return function(t) {
+      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
+    };
+  }
+  d3.interpolateObject = d3_interpolateObject;
+  function d3_interpolateObject(a, b) {
+    var i = {}, c = {}, k;
+    for (k in a) {
+      if (k in b) {
+        i[k] = d3_interpolate(a[k], b[k]);
+      } else {
+        c[k] = a[k];
+      }
+    }
+    for (k in b) {
+      if (!(k in a)) {
+        c[k] = b[k];
+      }
+    }
+    return function(t) {
+      for (k in i) c[k] = i[k](t);
+      return c;
+    };
+  }
+  d3.interpolateNumber = d3_interpolateNumber;
+  function d3_interpolateNumber(a, b) {
+    a = +a, b = +b;
+    return function(t) {
+      return a * (1 - t) + b * t;
+    };
+  }
+  d3.interpolateString = d3_interpolateString;
+  function d3_interpolateString(a, b) {
+    var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
+    a = a + "", b = b + "";
+    while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
+      if ((bs = bm.index) > bi) {
+        bs = b.slice(bi, bs);
+        if (s[i]) s[i] += bs; else s[++i] = bs;
+      }
+      if ((am = am[0]) === (bm = bm[0])) {
+        if (s[i]) s[i] += bm; else s[++i] = bm;
+      } else {
+        s[++i] = null;
+        q.push({
+          i: i,
+          x: d3_interpolateNumber(am, bm)
+        });
+      }
+      bi = d3_interpolate_numberB.lastIndex;
+    }
+    if (bi < b.length) {
+      bs = b.slice(bi);
+      if (s[i]) s[i] += bs; else s[++i] = bs;
+    }
+    return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
+      return b(t) + "";
+    }) : function() {
+      return b;
+    } : (b = q.length, function(t) {
+      for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    });
+  }
+  var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
+  d3.interpolate = d3_interpolate;
+  function d3_interpolate(a, b) {
+    var i = d3.interpolators.length, f;
+    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
+    return f;
+  }
+  d3.interpolators = [ function(a, b) {
+    var t = typeof b;
+    return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
+  } ];
+  d3.interpolateArray = d3_interpolateArray;
+  function d3_interpolateArray(a, b) {
+    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
+    for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
+    for (;i < na; ++i) c[i] = a[i];
+    for (;i < nb; ++i) c[i] = b[i];
+    return function(t) {
+      for (i = 0; i < n0; ++i) c[i] = x[i](t);
+      return c;
+    };
+  }
+  var d3_ease_default = function() {
+    return d3_identity;
+  };
+  var d3_ease = d3.map({
+    linear: d3_ease_default,
+    poly: d3_ease_poly,
+    quad: function() {
+      return d3_ease_quad;
+    },
+    cubic: function() {
+      return d3_ease_cubic;
+    },
+    sin: function() {
+      return d3_ease_sin;
+    },
+    exp: function() {
+      return d3_ease_exp;
+    },
+    circle: function() {
+      return d3_ease_circle;
+    },
+    elastic: d3_ease_elastic,
+    back: d3_ease_back,
+    bounce: function() {
+      return d3_ease_bounce;
+    }
+  });
+  var d3_ease_mode = d3.map({
+    "in": d3_identity,
+    out: d3_ease_reverse,
+    "in-out": d3_ease_reflect,
+    "out-in": function(f) {
+      return d3_ease_reflect(d3_ease_reverse(f));
+    }
+  });
+  d3.ease = function(name) {
+    var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in";
+    t = d3_ease.get(t) || d3_ease_default;
+    m = d3_ease_mode.get(m) || d3_identity;
+    return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
+  };
+  function d3_ease_clamp(f) {
+    return function(t) {
+      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+    };
+  }
+  function d3_ease_reverse(f) {
+    return function(t) {
+      return 1 - f(1 - t);
+    };
+  }
+  function d3_ease_reflect(f) {
+    return function(t) {
+      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
+    };
+  }
+  function d3_ease_quad(t) {
+    return t * t;
+  }
+  function d3_ease_cubic(t) {
+    return t * t * t;
+  }
+  function d3_ease_cubicInOut(t) {
+    if (t <= 0) return 0;
+    if (t >= 1) return 1;
+    var t2 = t * t, t3 = t2 * t;
+    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
+  }
+  function d3_ease_poly(e) {
+    return function(t) {
+      return Math.pow(t, e);
+    };
+  }
+  function d3_ease_sin(t) {
+    return 1 - Math.cos(t * halfπ);
+  }
+  function d3_ease_exp(t) {
+    return Math.pow(2, 10 * (t - 1));
+  }
+  function d3_ease_circle(t) {
+    return 1 - Math.sqrt(1 - t * t);
+  }
+  function d3_ease_elastic(a, p) {
+    var s;
+    if (arguments.length < 2) p = .45;
+    if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;
+    return function(t) {
+      return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
+    };
+  }
+  function d3_ease_back(s) {
+    if (!s) s = 1.70158;
+    return function(t) {
+      return t * t * ((s + 1) * t - s);
+    };
+  }
+  function d3_ease_bounce(t) {
+    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+  }
+  d3.interpolateHcl = d3_interpolateHcl;
+  function d3_interpolateHcl(a, b) {
+    a = d3.hcl(a);
+    b = d3.hcl(b);
+    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
+    if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
+    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
+    return function(t) {
+      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
+    };
+  }
+  d3.interpolateHsl = d3_interpolateHsl;
+  function d3_interpolateHsl(a, b) {
+    a = d3.hsl(a);
+    b = d3.hsl(b);
+    var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
+    if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
+    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
+    return function(t) {
+      return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + "";
+    };
+  }
+  d3.interpolateLab = d3_interpolateLab;
+  function d3_interpolateLab(a, b) {
+    a = d3.lab(a);
+    b = d3.lab(b);
+    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
+    return function(t) {
+      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
+    };
+  }
+  d3.interpolateRound = d3_interpolateRound;
+  function d3_interpolateRound(a, b) {
+    b -= a;
+    return function(t) {
+      return Math.round(a + b * t);
+    };
+  }
+  d3.transform = function(string) {
+    var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
+    return (d3.transform = function(string) {
+      if (string != null) {
+        g.setAttribute("transform", string);
+        var t = g.transform.baseVal.consolidate();
+      }
+      return new d3_transform(t ? t.matrix : d3_transformIdentity);
+    })(string);
+  };
+  function d3_transform(m) {
+    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
+    if (r0[0] * r1[1] < r1[0] * r0[1]) {
+      r0[0] *= -1;
+      r0[1] *= -1;
+      kx *= -1;
+      kz *= -1;
+    }
+    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
+    this.translate = [ m.e, m.f ];
+    this.scale = [ kx, ky ];
+    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
+  }
+  d3_transform.prototype.toString = function() {
+    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
+  };
+  function d3_transformDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1];
+  }
+  function d3_transformNormalize(a) {
+    var k = Math.sqrt(d3_transformDot(a, a));
+    if (k) {
+      a[0] /= k;
+      a[1] /= k;
+    }
+    return k;
+  }
+  function d3_transformCombine(a, b, k) {
+    a[0] += k * b[0];
+    a[1] += k * b[1];
+    return a;
+  }
+  var d3_transformIdentity = {
+    a: 1,
+    b: 0,
+    c: 0,
+    d: 1,
+    e: 0,
+    f: 0
+  };
+  d3.interpolateTransform = d3_interpolateTransform;
+  function d3_interpolateTransform(a, b) {
+    var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
+    if (ta[0] != tb[0] || ta[1] != tb[1]) {
+      s.push("translate(", null, ",", null, ")");
+      q.push({
+        i: 1,
+        x: d3_interpolateNumber(ta[0], tb[0])
+      }, {
+        i: 3,
+        x: d3_interpolateNumber(ta[1], tb[1])
+      });
+    } else if (tb[0] || tb[1]) {
+      s.push("translate(" + tb + ")");
+    } else {
+      s.push("");
+    }
+    if (ra != rb) {
+      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
+      q.push({
+        i: s.push(s.pop() + "rotate(", null, ")") - 2,
+        x: d3_interpolateNumber(ra, rb)
+      });
+    } else if (rb) {
+      s.push(s.pop() + "rotate(" + rb + ")");
+    }
+    if (wa != wb) {
+      q.push({
+        i: s.push(s.pop() + "skewX(", null, ")") - 2,
+        x: d3_interpolateNumber(wa, wb)
+      });
+    } else if (wb) {
+      s.push(s.pop() + "skewX(" + wb + ")");
+    }
+    if (ka[0] != kb[0] || ka[1] != kb[1]) {
+      n = s.push(s.pop() + "scale(", null, ",", null, ")");
+      q.push({
+        i: n - 4,
+        x: d3_interpolateNumber(ka[0], kb[0])
+      }, {
+        i: n - 2,
+        x: d3_interpolateNumber(ka[1], kb[1])
+      });
+    } else if (kb[0] != 1 || kb[1] != 1) {
+      s.push(s.pop() + "scale(" + kb + ")");
+    }
+    n = q.length;
+    return function(t) {
+      var i = -1, o;
+      while (++i < n) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    };
+  }
+  function d3_uninterpolateNumber(a, b) {
+    b = (b -= a = +a) || 1 / b;
+    return function(x) {
+      return (x - a) / b;
+    };
+  }
+  function d3_uninterpolateClamp(a, b) {
+    b = (b -= a = +a) || 1 / b;
+    return function(x) {
+      return Math.max(0, Math.min(1, (x - a) / b));
+    };
+  }
+  d3.layout = {};
+  d3.layout.bundle = function() {
+    return function(links) {
+      var paths = [], i = -1, n = links.length;
+      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
+      return paths;
+    };
+  };
+  function d3_layout_bundlePath(link) {
+    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
+    while (start !== lca) {
+      start = start.parent;
+      points.push(start);
+    }
+    var k = points.length;
+    while (end !== lca) {
+      points.splice(k, 0, end);
+      end = end.parent;
+    }
+    return points;
+  }
+  function d3_layout_bundleAncestors(node) {
+    var ancestors = [], parent = node.parent;
+    while (parent != null) {
+      ancestors.push(node);
+      node = parent;
+      parent = parent.parent;
+    }
+    ancestors.push(node);
+    return ancestors;
+  }
+  function d3_layout_bundleLeastCommonAncestor(a, b) {
+    if (a === b) return a;
+    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
+    while (aNode === bNode) {
+      sharedNode = aNode;
+      aNode = aNodes.pop();
+      bNode = bNodes.pop();
+    }
+    return sharedNode;
+  }
+  d3.layout.chord = function() {
+    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
+    function relayout() {
+      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
+      chords = [];
+      groups = [];
+      k = 0, i = -1;
+      while (++i < n) {
+        x = 0, j = -1;
+        while (++j < n) {
+          x += matrix[i][j];
+        }
+        groupSums.push(x);
+        subgroupIndex.push(d3.range(n));
+        k += x;
+      }
+      if (sortGroups) {
+        groupIndex.sort(function(a, b) {
+          return sortGroups(groupSums[a], groupSums[b]);
+        });
+      }
+      if (sortSubgroups) {
+        subgroupIndex.forEach(function(d, i) {
+          d.sort(function(a, b) {
+            return sortSubgroups(matrix[i][a], matrix[i][b]);
+          });
+        });
+      }
+      k = (τ - padding * n) / k;
+      x = 0, i = -1;
+      while (++i < n) {
+        x0 = x, j = -1;
+        while (++j < n) {
+          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
+          subgroups[di + "-" + dj] = {
+            index: di,
+            subindex: dj,
+            startAngle: a0,
+            endAngle: a1,
+            value: v
+          };
+        }
+        groups[di] = {
+          index: di,
+          startAngle: x0,
+          endAngle: x,
+          value: (x - x0) / k
+        };
+        x += padding;
+      }
+      i = -1;
+      while (++i < n) {
+        j = i - 1;
+        while (++j < n) {
+          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
+          if (source.value || target.value) {
+            chords.push(source.value < target.value ? {
+              source: target,
+              target: source
+            } : {
+              source: source,
+              target: target
+            });
+          }
+        }
+      }
+      if (sortChords) resort();
+    }
+    function resort() {
+      chords.sort(function(a, b) {
+        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
+      });
+    }
+    chord.matrix = function(x) {
+      if (!arguments.length) return matrix;
+      n = (matrix = x) && matrix.length;
+      chords = groups = null;
+      return chord;
+    };
+    chord.padding = function(x) {
+      if (!arguments.length) return padding;
+      padding = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortGroups = function(x) {
+      if (!arguments.length) return sortGroups;
+      sortGroups = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortSubgroups = function(x) {
+      if (!arguments.length) return sortSubgroups;
+      sortSubgroups = x;
+      chords = null;
+      return chord;
+    };
+    chord.sortChords = function(x) {
+      if (!arguments.length) return sortChords;
+      sortChords = x;
+      if (chords) resort();
+      return chord;
+    };
+    chord.chords = function() {
+      if (!chords) relayout();
+      return chords;
+    };
+    chord.groups = function() {
+      if (!groups) relayout();
+      return groups;
+    };
+    return chord;
+  };
+  d3.layout.force = function() {
+    var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
+    function repulse(node) {
+      return function(quad, x1, _, x2) {
+        if (quad.point !== node) {
+          var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;
+          if (dw * dw / theta2 < dn) {
+            if (dn < chargeDistance2) {
+              var k = quad.charge / dn;
+              node.px -= dx * k;
+              node.py -= dy * k;
+            }
+            return true;
+          }
+          if (quad.point && dn && dn < chargeDistance2) {
+            var k = quad.pointCharge / dn;
+            node.px -= dx * k;
+            node.py -= dy * k;
+          }
+        }
+        return !quad.charge;
+      };
+    }
+    force.tick = function() {
+      if ((alpha *= .99) < .005) {
+        event.end({
+          type: "end",
+          alpha: alpha = 0
+        });
+        return true;
+      }
+      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        s = o.source;
+        t = o.target;
+        x = t.x - s.x;
+        y = t.y - s.y;
+        if (l = x * x + y * y) {
+          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
+          x *= l;
+          y *= l;
+          t.x -= x * (k = s.weight / (t.weight + s.weight));
+          t.y -= y * k;
+          s.x += x * (k = 1 - k);
+          s.y += y * k;
+        }
+      }
+      if (k = alpha * gravity) {
+        x = size[0] / 2;
+        y = size[1] / 2;
+        i = -1;
+        if (k) while (++i < n) {
+          o = nodes[i];
+          o.x += (x - o.x) * k;
+          o.y += (y - o.y) * k;
+        }
+      }
+      if (charge) {
+        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
+        i = -1;
+        while (++i < n) {
+          if (!(o = nodes[i]).fixed) {
+            q.visit(repulse(o));
+          }
+        }
+      }
+      i = -1;
+      while (++i < n) {
+        o = nodes[i];
+        if (o.fixed) {
+          o.x = o.px;
+          o.y = o.py;
+        } else {
+          o.x -= (o.px - (o.px = o.x)) * friction;
+          o.y -= (o.py - (o.py = o.y)) * friction;
+        }
+      }
+      event.tick({
+        type: "tick",
+        alpha: alpha
+      });
+    };
+    force.nodes = function(x) {
+      if (!arguments.length) return nodes;
+      nodes = x;
+      return force;
+    };
+    force.links = function(x) {
+      if (!arguments.length) return links;
+      links = x;
+      return force;
+    };
+    force.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return force;
+    };
+    force.linkDistance = function(x) {
+      if (!arguments.length) return linkDistance;
+      linkDistance = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.distance = force.linkDistance;
+    force.linkStrength = function(x) {
+      if (!arguments.length) return linkStrength;
+      linkStrength = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.friction = function(x) {
+      if (!arguments.length) return friction;
+      friction = +x;
+      return force;
+    };
+    force.charge = function(x) {
+      if (!arguments.length) return charge;
+      charge = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.chargeDistance = function(x) {
+      if (!arguments.length) return Math.sqrt(chargeDistance2);
+      chargeDistance2 = x * x;
+      return force;
+    };
+    force.gravity = function(x) {
+      if (!arguments.length) return gravity;
+      gravity = +x;
+      return force;
+    };
+    force.theta = function(x) {
+      if (!arguments.length) return Math.sqrt(theta2);
+      theta2 = x * x;
+      return force;
+    };
+    force.alpha = function(x) {
+      if (!arguments.length) return alpha;
+      x = +x;
+      if (alpha) {
+        if (x > 0) alpha = x; else alpha = 0;
+      } else if (x > 0) {
+        event.start({
+          type: "start",
+          alpha: alpha = x
+        });
+        d3.timer(force.tick);
+      }
+      return force;
+    };
+    force.start = function() {
+      var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
+      for (i = 0; i < n; ++i) {
+        (o = nodes[i]).index = i;
+        o.weight = 0;
+      }
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        if (typeof o.source == "number") o.source = nodes[o.source];
+        if (typeof o.target == "number") o.target = nodes[o.target];
+        ++o.source.weight;
+        ++o.target.weight;
+      }
+      for (i = 0; i < n; ++i) {
+        o = nodes[i];
+        if (isNaN(o.x)) o.x = position("x", w);
+        if (isNaN(o.y)) o.y = position("y", h);
+        if (isNaN(o.px)) o.px = o.x;
+        if (isNaN(o.py)) o.py = o.y;
+      }
+      distances = [];
+      if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
+      strengths = [];
+      if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
+      charges = [];
+      if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
+      function position(dimension, size) {
+        if (!neighbors) {
+          neighbors = new Array(n);
+          for (j = 0; j < n; ++j) {
+            neighbors[j] = [];
+          }
+          for (j = 0; j < m; ++j) {
+            var o = links[j];
+            neighbors[o.source.index].push(o.target);
+            neighbors[o.target.index].push(o.source);
+          }
+        }
+        var candidates = neighbors[i], j = -1, l = candidates.length, x;
+        while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;
+        return Math.random() * size;
+      }
+      return force.resume();
+    };
+    force.resume = function() {
+      return force.alpha(.1);
+    };
+    force.stop = function() {
+      return force.alpha(0);
+    };
+    force.drag = function() {
+      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
+      if (!arguments.length) return drag;
+      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
+    };
+    function dragmove(d) {
+      d.px = d3.event.x, d.py = d3.event.y;
+      force.resume();
+    }
+    return d3.rebind(force, event, "on");
+  };
+  function d3_layout_forceDragstart(d) {
+    d.fixed |= 2;
+  }
+  function d3_layout_forceDragend(d) {
+    d.fixed &= ~6;
+  }
+  function d3_layout_forceMouseover(d) {
+    d.fixed |= 4;
+    d.px = d.x, d.py = d.y;
+  }
+  function d3_layout_forceMouseout(d) {
+    d.fixed &= ~4;
+  }
+  function d3_layout_forceAccumulate(quad, alpha, charges) {
+    var cx = 0, cy = 0;
+    quad.charge = 0;
+    if (!quad.leaf) {
+      var nodes = quad.nodes, n = nodes.length, i = -1, c;
+      while (++i < n) {
+        c = nodes[i];
+        if (c == null) continue;
+        d3_layout_forceAccumulate(c, alpha, charges);
+        quad.charge += c.charge;
+        cx += c.charge * c.cx;
+        cy += c.charge * c.cy;
+      }
+    }
+    if (quad.point) {
+      if (!quad.leaf) {
+        quad.point.x += Math.random() - .5;
+        quad.point.y += Math.random() - .5;
+      }
+      var k = alpha * charges[quad.point.index];
+      quad.charge += quad.pointCharge = k;
+      cx += k * quad.point.x;
+      cy += k * quad.point.y;
+    }
+    quad.cx = cx / quad.charge;
+    quad.cy = cy / quad.charge;
+  }
+  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
+  d3.layout.hierarchy = function() {
+    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
+    function hierarchy(root) {
+      var stack = [ root ], nodes = [], node;
+      root.depth = 0;
+      while ((node = stack.pop()) != null) {
+        nodes.push(node);
+        if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
+          var n, childs, child;
+          while (--n >= 0) {
+            stack.push(child = childs[n]);
+            child.parent = node;
+            child.depth = node.depth + 1;
+          }
+          if (value) node.value = 0;
+          node.children = childs;
+        } else {
+          if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
+          delete node.children;
+        }
+      }
+      d3_layout_hierarchyVisitAfter(root, function(node) {
+        var childs, parent;
+        if (sort && (childs = node.children)) childs.sort(sort);
+        if (value && (parent = node.parent)) parent.value += node.value;
+      });
+      return nodes;
+    }
+    hierarchy.sort = function(x) {
+      if (!arguments.length) return sort;
+      sort = x;
+      return hierarchy;
+    };
+    hierarchy.children = function(x) {
+      if (!arguments.length) return children;
+      children = x;
+      return hierarchy;
+    };
+    hierarchy.value = function(x) {
+      if (!arguments.length) return value;
+      value = x;
+      return hierarchy;
+    };
+    hierarchy.revalue = function(root) {
+      if (value) {
+        d3_layout_hierarchyVisitBefore(root, function(node) {
+          if (node.children) node.value = 0;
+        });
+        d3_layout_hierarchyVisitAfter(root, function(node) {
+          var parent;
+          if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
+          if (parent = node.parent) parent.value += node.value;
+        });
+      }
+      return root;
+    };
+    return hierarchy;
+  };
+  function d3_layout_hierarchyRebind(object, hierarchy) {
+    d3.rebind(object, hierarchy, "sort", "children", "value");
+    object.nodes = object;
+    object.links = d3_layout_hierarchyLinks;
+    return object;
+  }
+  function d3_layout_hierarchyVisitBefore(node, callback) {
+    var nodes = [ node ];
+    while ((node = nodes.pop()) != null) {
+      callback(node);
+      if ((children = node.children) && (n = children.length)) {
+        var n, children;
+        while (--n >= 0) nodes.push(children[n]);
+      }
+    }
+  }
+  function d3_layout_hierarchyVisitAfter(node, callback) {
+    var nodes = [ node ], nodes2 = [];
+    while ((node = nodes.pop()) != null) {
+      nodes2.push(node);
+      if ((children = node.children) && (n = children.length)) {
+        var i = -1, n, children;
+        while (++i < n) nodes.push(children[i]);
+      }
+    }
+    while ((node = nodes2.pop()) != null) {
+      callback(node);
+    }
+  }
+  function d3_layout_hierarchyChildren(d) {
+    return d.children;
+  }
+  function d3_layout_hierarchyValue(d) {
+    return d.value;
+  }
+  function d3_layout_hierarchySort(a, b) {
+    return b.value - a.value;
+  }
+  function d3_layout_hierarchyLinks(nodes) {
+    return d3.merge(nodes.map(function(parent) {
+      return (parent.children || []).map(function(child) {
+        return {
+          source: parent,
+          target: child
+        };
+      });
+    }));
+  }
+  d3.layout.partition = function() {
+    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
+    function position(node, x, dx, dy) {
+      var children = node.children;
+      node.x = x;
+      node.y = node.depth * dy;
+      node.dx = dx;
+      node.dy = dy;
+      if (children && (n = children.length)) {
+        var i = -1, n, c, d;
+        dx = node.value ? dx / node.value : 0;
+        while (++i < n) {
+          position(c = children[i], x, d = c.value * dx, dy);
+          x += d;
+        }
+      }
+    }
+    function depth(node) {
+      var children = node.children, d = 0;
+      if (children && (n = children.length)) {
+        var i = -1, n;
+        while (++i < n) d = Math.max(d, depth(children[i]));
+      }
+      return 1 + d;
+    }
+    function partition(d, i) {
+      var nodes = hierarchy.call(this, d, i);
+      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
+      return nodes;
+    }
+    partition.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return partition;
+    };
+    return d3_layout_hierarchyRebind(partition, hierarchy);
+  };
+  d3.layout.pie = function() {
+    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;
+    function pie(data) {
+      var n = data.length, values = data.map(function(d, i) {
+        return +value.call(pie, d, i);
+      }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - n * pa) / d3.sum(values), index = d3.range(n), arcs = [], v;
+      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
+        return values[j] - values[i];
+      } : function(i, j) {
+        return sort(data[i], data[j]);
+      });
+      index.forEach(function(i) {
+        arcs[i] = {
+          data: data[i],
+          value: v = values[i],
+          startAngle: a,
+          endAngle: a += v * k + pa,
+          padAngle: p
+        };
+      });
+      return arcs;
+    }
+    pie.value = function(_) {
+      if (!arguments.length) return value;
+      value = _;
+      return pie;
+    };
+    pie.sort = function(_) {
+      if (!arguments.length) return sort;
+      sort = _;
+      return pie;
+    };
+    pie.startAngle = function(_) {
+      if (!arguments.length) return startAngle;
+      startAngle = _;
+      return pie;
+    };
+    pie.endAngle = function(_) {
+      if (!arguments.length) return endAngle;
+      endAngle = _;
+      return pie;
+    };
+    pie.padAngle = function(_) {
+      if (!arguments.length) return padAngle;
+      padAngle = _;
+      return pie;
+    };
+    return pie;
+  };
+  var d3_layout_pieSortByValue = {};
+  d3.layout.stack = function() {
+    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
+    function stack(data, index) {
+      if (!(n = data.length)) return data;
+      var series = data.map(function(d, i) {
+        return values.call(stack, d, i);
+      });
+      var points = series.map(function(d) {
+        return d.map(function(v, i) {
+          return [ x.call(stack, v, i), y.call(stack, v, i) ];
+        });
+      });
+      var orders = order.call(stack, points, index);
+      series = d3.permute(series, orders);
+      points = d3.permute(points, orders);
+      var offsets = offset.call(stack, points, index);
+      var m = series[0].length, n, i, j, o;
+      for (j = 0; j < m; ++j) {
+        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
+        for (i = 1; i < n; ++i) {
+          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
+        }
+      }
+      return data;
+    }
+    stack.values = function(x) {
+      if (!arguments.length) return values;
+      values = x;
+      return stack;
+    };
+    stack.order = function(x) {
+      if (!arguments.length) return order;
+      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
+      return stack;
+    };
+    stack.offset = function(x) {
+      if (!arguments.length) return offset;
+      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
+      return stack;
+    };
+    stack.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      return stack;
+    };
+    stack.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      return stack;
+    };
+    stack.out = function(z) {
+      if (!arguments.length) return out;
+      out = z;
+      return stack;
+    };
+    return stack;
+  };
+  function d3_layout_stackX(d) {
+    return d.x;
+  }
+  function d3_layout_stackY(d) {
+    return d.y;
+  }
+  function d3_layout_stackOut(d, y0, y) {
+    d.y0 = y0;
+    d.y = y;
+  }
+  var d3_layout_stackOrders = d3.map({
+    "inside-out": function(data) {
+      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
+        return max[a] - max[b];
+      }), top = 0, bottom = 0, tops = [], bottoms = [];
+      for (i = 0; i < n; ++i) {
+        j = index[i];
+        if (top < bottom) {
+          top += sums[j];
+          tops.push(j);
+        } else {
+          bottom += sums[j];
+          bottoms.push(j);
+        }
+      }
+      return bottoms.reverse().concat(tops);
+    },
+    reverse: function(data) {
+      return d3.range(data.length).reverse();
+    },
+    "default": d3_layout_stackOrderDefault
+  });
+  var d3_layout_stackOffsets = d3.map({
+    silhouette: function(data) {
+      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o > max) max = o;
+        sums.push(o);
+      }
+      for (j = 0; j < m; ++j) {
+        y0[j] = (max - sums[j]) / 2;
+      }
+      return y0;
+    },
+    wiggle: function(data) {
+      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
+      y0[0] = o = o0 = 0;
+      for (j = 1; j < m; ++j) {
+        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
+        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
+          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
+            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
+          }
+          s2 += s3 * data[i][j][1];
+        }
+        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
+        if (o < o0) o0 = o;
+      }
+      for (j = 0; j < m; ++j) y0[j] -= o0;
+      return y0;
+    },
+    expand: function(data) {
+      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
+      }
+      for (j = 0; j < m; ++j) y0[j] = 0;
+      return y0;
+    },
+    zero: d3_layout_stackOffsetZero
+  });
+  function d3_layout_stackOrderDefault(data) {
+    return d3.range(data.length);
+  }
+  function d3_layout_stackOffsetZero(data) {
+    var j = -1, m = data[0].length, y0 = [];
+    while (++j < m) y0[j] = 0;
+    return y0;
+  }
+  function d3_layout_stackMaxIndex(array) {
+    var i = 1, j = 0, v = array[0][1], k, n = array.length;
+    for (;i < n; ++i) {
+      if ((k = array[i][1]) > v) {
+        j = i;
+        v = k;
+      }
+    }
+    return j;
+  }
+  function d3_layout_stackReduceSum(d) {
+    return d.reduce(d3_layout_stackSum, 0);
+  }
+  function d3_layout_stackSum(p, d) {
+    return p + d[1];
+  }
+  d3.layout.histogram = function() {
+    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
+    function histogram(data, i) {
+      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
+      while (++i < m) {
+        bin = bins[i] = [];
+        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
+        bin.y = 0;
+      }
+      if (m > 0) {
+        i = -1;
+        while (++i < n) {
+          x = values[i];
+          if (x >= range[0] && x <= range[1]) {
+            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
+            bin.y += k;
+            bin.push(data[i]);
+          }
+        }
+      }
+      return bins;
+    }
+    histogram.value = function(x) {
+      if (!arguments.length) return valuer;
+      valuer = x;
+      return histogram;
+    };
+    histogram.range = function(x) {
+      if (!arguments.length) return ranger;
+      ranger = d3_functor(x);
+      return histogram;
+    };
+    histogram.bins = function(x) {
+      if (!arguments.length) return binner;
+      binner = typeof x === "number" ? function(range) {
+        return d3_layout_histogramBinFixed(range, x);
+      } : d3_functor(x);
+      return histogram;
+    };
+    histogram.frequency = function(x) {
+      if (!arguments.length) return frequency;
+      frequency = !!x;
+      return histogram;
+    };
+    return histogram;
+  };
+  function d3_layout_histogramBinSturges(range, values) {
+    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
+  }
+  function d3_layout_histogramBinFixed(range, n) {
+    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
+    while (++x <= n) f[x] = m * x + b;
+    return f;
+  }
+  function d3_layout_histogramRange(values) {
+    return [ d3.min(values), d3.max(values) ];
+  }
+  d3.layout.pack = function() {
+    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
+    function pack(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() {
+        return radius;
+      };
+      root.x = root.y = 0;
+      d3_layout_hierarchyVisitAfter(root, function(d) {
+        d.r = +r(d.value);
+      });
+      d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
+      if (padding) {
+        var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
+        d3_layout_hierarchyVisitAfter(root, function(d) {
+          d.r += dr;
+        });
+        d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
+        d3_layout_hierarchyVisitAfter(root, function(d) {
+          d.r -= dr;
+        });
+      }
+      d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));
+      return nodes;
+    }
+    pack.size = function(_) {
+      if (!arguments.length) return size;
+      size = _;
+      return pack;
+    };
+    pack.radius = function(_) {
+      if (!arguments.length) return radius;
+      radius = _ == null || typeof _ === "function" ? _ : +_;
+      return pack;
+    };
+    pack.padding = function(_) {
+      if (!arguments.length) return padding;
+      padding = +_;
+      return pack;
+    };
+    return d3_layout_hierarchyRebind(pack, hierarchy);
+  };
+  function d3_layout_packSort(a, b) {
+    return a.value - b.value;
+  }
+  function d3_layout_packInsert(a, b) {
+    var c = a._pack_next;
+    a._pack_next = b;
+    b._pack_prev = a;
+    b._pack_next = c;
+    c._pack_prev = b;
+  }
+  function d3_layout_packSplice(a, b) {
+    a._pack_next = b;
+    b._pack_prev = a;
+  }
+  function d3_layout_packIntersects(a, b) {
+    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
+    return .999 * dr * dr > dx * dx + dy * dy;
+  }
+  function d3_layout_packSiblings(node) {
+    if (!(nodes = node.children) || !(n = nodes.length)) return;
+    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
+    function bound(node) {
+      xMin = Math.min(node.x - node.r, xMin);
+      xMax = Math.max(node.x + node.r, xMax);
+      yMin = Math.min(node.y - node.r, yMin);
+      yMax = Math.max(node.y + node.r, yMax);
+    }
+    nodes.forEach(d3_layout_packLink);
+    a = nodes[0];
+    a.x = -a.r;
+    a.y = 0;
+    bound(a);
+    if (n > 1) {
+      b = nodes[1];
+      b.x = b.r;
+      b.y = 0;
+      bound(b);
+      if (n > 2) {
+        c = nodes[2];
+        d3_layout_packPlace(a, b, c);
+        bound(c);
+        d3_layout_packInsert(a, c);
+        a._pack_prev = c;
+        d3_layout_packInsert(c, b);
+        b = a._pack_next;
+        for (i = 3; i < n; i++) {
+          d3_layout_packPlace(a, b, c = nodes[i]);
+          var isect = 0, s1 = 1, s2 = 1;
+          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
+            if (d3_layout_packIntersects(j, c)) {
+              isect = 1;
+              break;
+            }
+          }
+          if (isect == 1) {
+            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
+              if (d3_layout_packIntersects(k, c)) {
+                break;
+              }
+            }
+          }
+          if (isect) {
+            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
+            i--;
+          } else {
+            d3_layout_packInsert(a, c);
+            b = c;
+            bound(c);
+          }
+        }
+      }
+    }
+    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
+    for (i = 0; i < n; i++) {
+      c = nodes[i];
+      c.x -= cx;
+      c.y -= cy;
+      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
+    }
+    node.r = cr;
+    nodes.forEach(d3_layout_packUnlink);
+  }
+  function d3_layout_packLink(node) {
+    node._pack_next = node._pack_prev = node;
+  }
+  function d3_layout_packUnlink(node) {
+    delete node._pack_next;
+    delete node._pack_prev;
+  }
+  function d3_layout_packTransform(node, x, y, k) {
+    var children = node.children;
+    node.x = x += k * node.x;
+    node.y = y += k * node.y;
+    node.r *= k;
+    if (children) {
+      var i = -1, n = children.length;
+      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
+    }
+  }
+  function d3_layout_packPlace(a, b, c) {
+    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
+    if (db && (dx || dy)) {
+      var da = b.r + c.r, dc = dx * dx + dy * dy;
+      da *= da;
+      db *= db;
+      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
+      c.x = a.x + x * dx + y * dy;
+      c.y = a.y + x * dy - y * dx;
+    } else {
+      c.x = a.x + db;
+      c.y = a.y;
+    }
+  }
+  d3.layout.tree = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
+    function tree(d, i) {
+      var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
+      d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
+      d3_layout_hierarchyVisitBefore(root1, secondWalk);
+      if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
+        var left = root0, right = root0, bottom = root0;
+        d3_layout_hierarchyVisitBefore(root0, function(node) {
+          if (node.x < left.x) left = node;
+          if (node.x > right.x) right = node;
+          if (node.depth > bottom.depth) bottom = node;
+        });
+        var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
+        d3_layout_hierarchyVisitBefore(root0, function(node) {
+          node.x = (node.x + tx) * kx;
+          node.y = node.depth * ky;
+        });
+      }
+      return nodes;
+    }
+    function wrapTree(root0) {
+      var root1 = {
+        A: null,
+        children: [ root0 ]
+      }, queue = [ root1 ], node1;
+      while ((node1 = queue.pop()) != null) {
+        for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
+          queue.push((children[i] = child = {
+            _: children[i],
+            parent: node1,
+            children: (child = children[i].children) && child.slice() || [],
+            A: null,
+            a: null,
+            z: 0,
+            m: 0,
+            c: 0,
+            s: 0,
+            t: null,
+            i: i
+          }).a = child);
+        }
+      }
+      return root1.children[0];
+    }
+    function firstWalk(v) {
+      var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
+      if (children.length) {
+        d3_layout_treeShift(v);
+        var midpoint = (children[0].z + children[children.length - 1].z) / 2;
+        if (w) {
+          v.z = w.z + separation(v._, w._);
+          v.m = v.z - midpoint;
+        } else {
+          v.z = midpoint;
+        }
+      } else if (w) {
+        v.z = w.z + separation(v._, w._);
+      }
+      v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
+    }
+    function secondWalk(v) {
+      v._.x = v.z + v.parent.m;
+      v.m += v.parent.m;
+    }
+    function apportion(v, w, ancestor) {
+      if (w) {
+        var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
+        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
+          vom = d3_layout_treeLeft(vom);
+          vop = d3_layout_treeRight(vop);
+          vop.a = v;
+          shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
+          if (shift > 0) {
+            d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
+            sip += shift;
+            sop += shift;
+          }
+          sim += vim.m;
+          sip += vip.m;
+          som += vom.m;
+          sop += vop.m;
+        }
+        if (vim && !d3_layout_treeRight(vop)) {
+          vop.t = vim;
+          vop.m += sim - sop;
+        }
+        if (vip && !d3_layout_treeLeft(vom)) {
+          vom.t = vip;
+          vom.m += sip - som;
+          ancestor = v;
+        }
+      }
+      return ancestor;
+    }
+    function sizeNode(node) {
+      node.x *= size[0];
+      node.y = node.depth * size[1];
+    }
+    tree.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return tree;
+    };
+    tree.size = function(x) {
+      if (!arguments.length) return nodeSize ? null : size;
+      nodeSize = (size = x) == null ? sizeNode : null;
+      return tree;
+    };
+    tree.nodeSize = function(x) {
+      if (!arguments.length) return nodeSize ? size : null;
+      nodeSize = (size = x) == null ? null : sizeNode;
+      return tree;
+    };
+    return d3_layout_hierarchyRebind(tree, hierarchy);
+  };
+  function d3_layout_treeSeparation(a, b) {
+    return a.parent == b.parent ? 1 : 2;
+  }
+  function d3_layout_treeLeft(v) {
+    var children = v.children;
+    return children.length ? children[0] : v.t;
+  }
+  function d3_layout_treeRight(v) {
+    var children = v.children, n;
+    return (n = children.length) ? children[n - 1] : v.t;
+  }
+  function d3_layout_treeMove(wm, wp, shift) {
+    var change = shift / (wp.i - wm.i);
+    wp.c -= change;
+    wp.s += shift;
+    wm.c += change;
+    wp.z += shift;
+    wp.m += shift;
+  }
+  function d3_layout_treeShift(v) {
+    var shift = 0, change = 0, children = v.children, i = children.length, w;
+    while (--i >= 0) {
+      w = children[i];
+      w.z += shift;
+      w.m += shift;
+      shift += w.s + (change += w.c);
+    }
+  }
+  function d3_layout_treeAncestor(vim, v, ancestor) {
+    return vim.a.parent === v.parent ? vim.a : ancestor;
+  }
+  d3.layout.cluster = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
+    function cluster(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
+      d3_layout_hierarchyVisitAfter(root, function(node) {
+        var children = node.children;
+        if (children && children.length) {
+          node.x = d3_layout_clusterX(children);
+          node.y = d3_layout_clusterY(children);
+        } else {
+          node.x = previousNode ? x += separation(node, previousNode) : 0;
+          node.y = 0;
+          previousNode = node;
+        }
+      });
+      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
+      d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
+        node.x = (node.x - root.x) * size[0];
+        node.y = (root.y - node.y) * size[1];
+      } : function(node) {
+        node.x = (node.x - x0) / (x1 - x0) * size[0];
+        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
+      });
+      return nodes;
+    }
+    cluster.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return cluster;
+    };
+    cluster.size = function(x) {
+      if (!arguments.length) return nodeSize ? null : size;
+      nodeSize = (size = x) == null;
+      return cluster;
+    };
+    cluster.nodeSize = function(x) {
+      if (!arguments.length) return nodeSize ? size : null;
+      nodeSize = (size = x) != null;
+      return cluster;
+    };
+    return d3_layout_hierarchyRebind(cluster, hierarchy);
+  };
+  function d3_layout_clusterY(children) {
+    return 1 + d3.max(children, function(child) {
+      return child.y;
+    });
+  }
+  function d3_layout_clusterX(children) {
+    return children.reduce(function(x, child) {
+      return x + child.x;
+    }, 0) / children.length;
+  }
+  function d3_layout_clusterLeft(node) {
+    var children = node.children;
+    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
+  }
+  function d3_layout_clusterRight(node) {
+    var children = node.children, n;
+    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
+  }
+  d3.layout.treemap = function() {
+    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
+    function scale(children, k) {
+      var i = -1, n = children.length, child, area;
+      while (++i < n) {
+        area = (child = children[i]).value * (k < 0 ? 0 : k);
+        child.area = isNaN(area) || area <= 0 ? 0 : area;
+      }
+    }
+    function squarify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while ((n = remaining.length) > 0) {
+          row.push(child = remaining[n - 1]);
+          row.area += child.area;
+          if (mode !== "squarify" || (score = worst(row, u)) <= best) {
+            remaining.pop();
+            best = score;
+          } else {
+            row.area -= row.pop().area;
+            position(row, u, rect, false);
+            u = Math.min(rect.dx, rect.dy);
+            row.length = row.area = 0;
+            best = Infinity;
+          }
+        }
+        if (row.length) {
+          position(row, u, rect, true);
+          row.length = row.area = 0;
+        }
+        children.forEach(squarify);
+      }
+    }
+    function stickify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), remaining = children.slice(), child, row = [];
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while (child = remaining.pop()) {
+          row.push(child);
+          row.area += child.area;
+          if (child.z != null) {
+            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
+            row.length = row.area = 0;
+          }
+        }
+        children.forEach(stickify);
+      }
+    }
+    function worst(row, u) {
+      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
+      while (++i < n) {
+        if (!(r = row[i].area)) continue;
+        if (r < rmin) rmin = r;
+        if (r > rmax) rmax = r;
+      }
+      s *= s;
+      u *= u;
+      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
+    }
+    function position(row, u, rect, flush) {
+      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
+      if (u == rect.dx) {
+        if (flush || v > rect.dy) v = rect.dy;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dy = v;
+          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
+        }
+        o.z = true;
+        o.dx += rect.x + rect.dx - x;
+        rect.y += v;
+        rect.dy -= v;
+      } else {
+        if (flush || v > rect.dx) v = rect.dx;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dx = v;
+          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
+        }
+        o.z = false;
+        o.dy += rect.y + rect.dy - y;
+        rect.x += v;
+        rect.dx -= v;
+      }
+    }
+    function treemap(d) {
+      var nodes = stickies || hierarchy(d), root = nodes[0];
+      root.x = 0;
+      root.y = 0;
+      root.dx = size[0];
+      root.dy = size[1];
+      if (stickies) hierarchy.revalue(root);
+      scale([ root ], root.dx * root.dy / root.value);
+      (stickies ? stickify : squarify)(root);
+      if (sticky) stickies = nodes;
+      return nodes;
+    }
+    treemap.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return treemap;
+    };
+    treemap.padding = function(x) {
+      if (!arguments.length) return padding;
+      function padFunction(node) {
+        var p = x.call(treemap, node, node.depth);
+        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
+      }
+      function padConstant(node) {
+        return d3_layout_treemapPad(node, x);
+      }
+      var type;
+      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], 
+      padConstant) : padConstant;
+      return treemap;
+    };
+    treemap.round = function(x) {
+      if (!arguments.length) return round != Number;
+      round = x ? Math.round : Number;
+      return treemap;
+    };
+    treemap.sticky = function(x) {
+      if (!arguments.length) return sticky;
+      sticky = x;
+      stickies = null;
+      return treemap;
+    };
+    treemap.ratio = function(x) {
+      if (!arguments.length) return ratio;
+      ratio = x;
+      return treemap;
+    };
+    treemap.mode = function(x) {
+      if (!arguments.length) return mode;
+      mode = x + "";
+      return treemap;
+    };
+    return d3_layout_hierarchyRebind(treemap, hierarchy);
+  };
+  function d3_layout_treemapPadNull(node) {
+    return {
+      x: node.x,
+      y: node.y,
+      dx: node.dx,
+      dy: node.dy
+    };
+  }
+  function d3_layout_treemapPad(node, padding) {
+    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
+    if (dx < 0) {
+      x += dx / 2;
+      dx = 0;
+    }
+    if (dy < 0) {
+      y += dy / 2;
+      dy = 0;
+    }
+    return {
+      x: x,
+      y: y,
+      dx: dx,
+      dy: dy
+    };
+  }
+  d3.random = {
+    normal: function(µ, σ) {
+      var n = arguments.length;
+      if (n < 2) σ = 1;
+      if (n < 1) µ = 0;
+      return function() {
+        var x, y, r;
+        do {
+          x = Math.random() * 2 - 1;
+          y = Math.random() * 2 - 1;
+          r = x * x + y * y;
+        } while (!r || r > 1);
+        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
+      };
+    },
+    logNormal: function() {
+      var random = d3.random.normal.apply(d3, arguments);
+      return function() {
+        return Math.exp(random());
+      };
+    },
+    bates: function(m) {
+      var random = d3.random.irwinHall(m);
+      return function() {
+        return random() / m;
+      };
+    },
+    irwinHall: function(m) {
+      return function() {
+        for (var s = 0, j = 0; j < m; j++) s += Math.random();
+        return s;
+      };
+    }
+  };
+  d3.scale = {};
+  function d3_scaleExtent(domain) {
+    var start = domain[0], stop = domain[domain.length - 1];
+    return start < stop ? [ start, stop ] : [ stop, start ];
+  }
+  function d3_scaleRange(scale) {
+    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
+  }
+  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
+    return function(x) {
+      return i(u(x));
+    };
+  }
+  function d3_scale_nice(domain, nice) {
+    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
+    if (x1 < x0) {
+      dx = i0, i0 = i1, i1 = dx;
+      dx = x0, x0 = x1, x1 = dx;
+    }
+    domain[i0] = nice.floor(x0);
+    domain[i1] = nice.ceil(x1);
+    return domain;
+  }
+  function d3_scale_niceStep(step) {
+    return step ? {
+      floor: function(x) {
+        return Math.floor(x / step) * step;
+      },
+      ceil: function(x) {
+        return Math.ceil(x / step) * step;
+      }
+    } : d3_scale_niceIdentity;
+  }
+  var d3_scale_niceIdentity = {
+    floor: d3_identity,
+    ceil: d3_identity
+  };
+  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
+    if (domain[k] < domain[0]) {
+      domain = domain.slice().reverse();
+      range = range.slice().reverse();
+    }
+    while (++j <= k) {
+      u.push(uninterpolate(domain[j - 1], domain[j]));
+      i.push(interpolate(range[j - 1], range[j]));
+    }
+    return function(x) {
+      var j = d3.bisect(domain, x, 1, k) - 1;
+      return i[j](u[j](x));
+    };
+  }
+  d3.scale.linear = function() {
+    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
+  };
+  function d3_scale_linear(domain, range, interpolate, clamp) {
+    var output, input;
+    function rescale() {
+      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+      output = linear(domain, range, uninterpolate, interpolate);
+      input = linear(range, domain, uninterpolate, d3_interpolate);
+      return scale;
+    }
+    function scale(x) {
+      return output(x);
+    }
+    scale.invert = function(y) {
+      return input(y);
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(Number);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.rangeRound = function(x) {
+      return scale.range(x).interpolate(d3_interpolateRound);
+    };
+    scale.clamp = function(x) {
+      if (!arguments.length) return clamp;
+      clamp = x;
+      return rescale();
+    };
+    scale.interpolate = function(x) {
+      if (!arguments.length) return interpolate;
+      interpolate = x;
+      return rescale();
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    scale.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    scale.nice = function(m) {
+      d3_scale_linearNice(domain, m);
+      return rescale();
+    };
+    scale.copy = function() {
+      return d3_scale_linear(domain, range, interpolate, clamp);
+    };
+    return rescale();
+  }
+  function d3_scale_linearRebind(scale, linear) {
+    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+  }
+  function d3_scale_linearNice(domain, m) {
+    return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
+  }
+  function d3_scale_linearTickRange(domain, m) {
+    if (m == null) m = 10;
+    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
+    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
+    extent[0] = Math.ceil(extent[0] / step) * step;
+    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
+    extent[2] = step;
+    return extent;
+  }
+  function d3_scale_linearTicks(domain, m) {
+    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+  }
+  function d3_scale_linearTickFormat(domain, m, format) {
+    var range = d3_scale_linearTickRange(domain, m);
+    if (format) {
+      var match = d3_format_re.exec(format);
+      match.shift();
+      if (match[8] === "s") {
+        var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
+        if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
+        match[8] = "f";
+        format = d3.format(match.join(""));
+        return function(d) {
+          return format(prefix.scale(d)) + prefix.symbol;
+        };
+      }
+      if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
+      format = match.join("");
+    } else {
+      format = ",." + d3_scale_linearPrecision(range[2]) + "f";
+    }
+    return d3.format(format);
+  }
+  var d3_scale_linearFormatSignificant = {
+    s: 1,
+    g: 1,
+    p: 1,
+    r: 1,
+    e: 1
+  };
+  function d3_scale_linearPrecision(value) {
+    return -Math.floor(Math.log(value) / Math.LN10 + .01);
+  }
+  function d3_scale_linearFormatPrecision(type, range) {
+    var p = d3_scale_linearPrecision(range[2]);
+    return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
+  }
+  d3.scale.log = function() {
+    return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
+  };
+  function d3_scale_log(linear, base, positive, domain) {
+    function log(x) {
+      return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);
+    }
+    function pow(x) {
+      return positive ? Math.pow(base, x) : -Math.pow(base, -x);
+    }
+    function scale(x) {
+      return linear(log(x));
+    }
+    scale.invert = function(x) {
+      return pow(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      positive = x[0] >= 0;
+      linear.domain((domain = x.map(Number)).map(log));
+      return scale;
+    };
+    scale.base = function(_) {
+      if (!arguments.length) return base;
+      base = +_;
+      linear.domain(domain.map(log));
+      return scale;
+    };
+    scale.nice = function() {
+      var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
+      linear.domain(niced);
+      domain = niced.map(pow);
+      return scale;
+    };
+    scale.ticks = function() {
+      var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
+      if (isFinite(j - i)) {
+        if (positive) {
+          for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
+          ticks.push(pow(i));
+        } else {
+          ticks.push(pow(i));
+          for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);
+        }
+        for (i = 0; ticks[i] < u; i++) {}
+        for (j = ticks.length; ticks[j - 1] > v; j--) {}
+        ticks = ticks.slice(i, j);
+      }
+      return ticks;
+    };
+    scale.tickFormat = function(n, format) {
+      if (!arguments.length) return d3_scale_logFormat;
+      if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
+      var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, 
+      Math.floor), e;
+      return function(d) {
+        return d / pow(f(log(d) + e)) <= k ? format(d) : "";
+      };
+    };
+    scale.copy = function() {
+      return d3_scale_log(linear.copy(), base, positive, domain);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = {
+    floor: function(x) {
+      return -Math.ceil(-x);
+    },
+    ceil: function(x) {
+      return -Math.floor(-x);
+    }
+  };
+  d3.scale.pow = function() {
+    return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);
+  };
+  function d3_scale_pow(linear, exponent, domain) {
+    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
+    function scale(x) {
+      return linear(powp(x));
+    }
+    scale.invert = function(x) {
+      return powb(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      linear.domain((domain = x.map(Number)).map(powp));
+      return scale;
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    scale.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    scale.nice = function(m) {
+      return scale.domain(d3_scale_linearNice(domain, m));
+    };
+    scale.exponent = function(x) {
+      if (!arguments.length) return exponent;
+      powp = d3_scale_powPow(exponent = x);
+      powb = d3_scale_powPow(1 / exponent);
+      linear.domain(domain.map(powp));
+      return scale;
+    };
+    scale.copy = function() {
+      return d3_scale_pow(linear.copy(), exponent, domain);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  function d3_scale_powPow(e) {
+    return function(x) {
+      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+    };
+  }
+  d3.scale.sqrt = function() {
+    return d3.scale.pow().exponent(.5);
+  };
+  d3.scale.ordinal = function() {
+    return d3_scale_ordinal([], {
+      t: "range",
+      a: [ [] ]
+    });
+  };
+  function d3_scale_ordinal(domain, ranger) {
+    var index, range, rangeBand;
+    function scale(x) {
+      return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
+    }
+    function steps(start, step) {
+      return d3.range(domain.length).map(function(i) {
+        return start + step * i;
+      });
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = [];
+      index = new d3_Map();
+      var i = -1, n = x.length, xi;
+      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
+      return scale[ranger.t].apply(scale, ranger.a);
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      rangeBand = 0;
+      ranger = {
+        t: "range",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangePoints = function(x, padding) {
+      if (arguments.length < 2) padding = 0;
+      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, 
+      0) : (stop - start) / (domain.length - 1 + padding);
+      range = steps(start + step * padding / 2, step);
+      rangeBand = 0;
+      ranger = {
+        t: "rangePoints",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeRoundPoints = function(x, padding) {
+      if (arguments.length < 2) padding = 0;
+      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), 
+      0) : (stop - start) / (domain.length - 1 + padding) | 0;
+      range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);
+      rangeBand = 0;
+      ranger = {
+        t: "rangeRoundPoints",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
+      range = steps(start + step * outerPadding, step);
+      if (reverse) range.reverse();
+      rangeBand = step * (1 - padding);
+      ranger = {
+        t: "rangeBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeRoundBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));
+      range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
+      if (reverse) range.reverse();
+      rangeBand = Math.round(step * (1 - padding));
+      ranger = {
+        t: "rangeRoundBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBand = function() {
+      return rangeBand;
+    };
+    scale.rangeExtent = function() {
+      return d3_scaleExtent(ranger.a[0]);
+    };
+    scale.copy = function() {
+      return d3_scale_ordinal(domain, ranger);
+    };
+    return scale.domain(domain);
+  }
+  d3.scale.category10 = function() {
+    return d3.scale.ordinal().range(d3_category10);
+  };
+  d3.scale.category20 = function() {
+    return d3.scale.ordinal().range(d3_category20);
+  };
+  d3.scale.category20b = function() {
+    return d3.scale.ordinal().range(d3_category20b);
+  };
+  d3.scale.category20c = function() {
+    return d3.scale.ordinal().range(d3_category20c);
+  };
+  var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);
+  var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);
+  var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);
+  var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);
+  d3.scale.quantile = function() {
+    return d3_scale_quantile([], []);
+  };
+  function d3_scale_quantile(domain, range) {
+    var thresholds;
+    function rescale() {
+      var k = 0, q = range.length;
+      thresholds = [];
+      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+      return scale;
+    }
+    function scale(x) {
+      if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.quantiles = function() {
+      return thresholds;
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];
+    };
+    scale.copy = function() {
+      return d3_scale_quantile(domain, range);
+    };
+    return rescale();
+  }
+  d3.scale.quantize = function() {
+    return d3_scale_quantize(0, 1, [ 0, 1 ]);
+  };
+  function d3_scale_quantize(x0, x1, range) {
+    var kx, i;
+    function scale(x) {
+      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+    }
+    function rescale() {
+      kx = range.length / (x1 - x0);
+      i = range.length - 1;
+      return scale;
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return [ x0, x1 ];
+      x0 = +x[0];
+      x1 = +x[x.length - 1];
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      y = y < 0 ? NaN : y / kx + x0;
+      return [ y, y + 1 / kx ];
+    };
+    scale.copy = function() {
+      return d3_scale_quantize(x0, x1, range);
+    };
+    return rescale();
+  }
+  d3.scale.threshold = function() {
+    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
+  };
+  function d3_scale_threshold(domain, range) {
+    function scale(x) {
+      if (x <= x) return range[d3.bisect(domain, x)];
+    }
+    scale.domain = function(_) {
+      if (!arguments.length) return domain;
+      domain = _;
+      return scale;
+    };
+    scale.range = function(_) {
+      if (!arguments.length) return range;
+      range = _;
+      return scale;
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      return [ domain[y - 1], domain[y] ];
+    };
+    scale.copy = function() {
+      return d3_scale_threshold(domain, range);
+    };
+    return scale;
+  }
+  d3.scale.identity = function() {
+    return d3_scale_identity([ 0, 1 ]);
+  };
+  function d3_scale_identity(domain) {
+    function identity(x) {
+      return +x;
+    }
+    identity.invert = identity;
+    identity.domain = identity.range = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(identity);
+      return identity;
+    };
+    identity.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    identity.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    identity.copy = function() {
+      return d3_scale_identity(domain);
+    };
+    return identity;
+  }
+  d3.svg = {};
+  function d3_zero() {
+    return 0;
+  }
+  d3.svg.arc = function() {
+    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;
+    function arc() {
+      var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;
+      if (r1 < r0) rc = r1, r1 = r0, r0 = rc;
+      if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z";
+      var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];
+      if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {
+        rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);
+        if (!cw) p1 *= -1;
+        if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));
+        if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));
+      }
+      if (r1) {
+        x0 = r1 * Math.cos(a0 + p1);
+        y0 = r1 * Math.sin(a0 + p1);
+        x1 = r1 * Math.cos(a1 - p1);
+        y1 = r1 * Math.sin(a1 - p1);
+        var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
+        if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
+          var h1 = (a0 + a1) / 2;
+          x0 = r1 * Math.cos(h1);
+          y0 = r1 * Math.sin(h1);
+          x1 = y1 = null;
+        }
+      } else {
+        x0 = y0 = 0;
+      }
+      if (r0) {
+        x2 = r0 * Math.cos(a1 - p0);
+        y2 = r0 * Math.sin(a1 - p0);
+        x3 = r0 * Math.cos(a0 + p0);
+        y3 = r0 * Math.sin(a0 + p0);
+        var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
+        if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
+          var h0 = (a0 + a1) / 2;
+          x2 = r0 * Math.cos(h0);
+          y2 = r0 * Math.sin(h0);
+          x3 = y3 = null;
+        }
+      } else {
+        x2 = y2 = 0;
+      }
+      if ((rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {
+        cr = r0 < r1 ^ cw ? 0 : 1;
+        var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
+        if (x1 != null) {
+          var rc1 = Math.min(rc, (r1 - lc) / (kc + 1)), t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);
+          if (rc === rc1) {
+            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]);
+          } else {
+            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]);
+          }
+        } else {
+          path.push("M", x0, ",", y0);
+        }
+        if (x3 != null) {
+          var rc0 = Math.min(rc, (r0 - lc) / (kc - 1)), t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);
+          if (rc === rc0) {
+            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
+          } else {
+            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
+          }
+        } else {
+          path.push("L", x2, ",", y2);
+        }
+      } else {
+        path.push("M", x0, ",", y0);
+        if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
+        path.push("L", x2, ",", y2);
+        if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
+      }
+      path.push("Z");
+      return path.join("");
+    }
+    function circleSegment(r1, cw) {
+      return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1;
+    }
+    arc.innerRadius = function(v) {
+      if (!arguments.length) return innerRadius;
+      innerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.outerRadius = function(v) {
+      if (!arguments.length) return outerRadius;
+      outerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.cornerRadius = function(v) {
+      if (!arguments.length) return cornerRadius;
+      cornerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.padRadius = function(v) {
+      if (!arguments.length) return padRadius;
+      padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);
+      return arc;
+    };
+    arc.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return arc;
+    };
+    arc.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return arc;
+    };
+    arc.padAngle = function(v) {
+      if (!arguments.length) return padAngle;
+      padAngle = d3_functor(v);
+      return arc;
+    };
+    arc.centroid = function() {
+      var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;
+      return [ Math.cos(a) * r, Math.sin(a) * r ];
+    };
+    return arc;
+  };
+  var d3_svg_arcAuto = "auto";
+  function d3_svg_arcInnerRadius(d) {
+    return d.innerRadius;
+  }
+  function d3_svg_arcOuterRadius(d) {
+    return d.outerRadius;
+  }
+  function d3_svg_arcStartAngle(d) {
+    return d.startAngle;
+  }
+  function d3_svg_arcEndAngle(d) {
+    return d.endAngle;
+  }
+  function d3_svg_arcPadAngle(d) {
+    return d && d.padAngle;
+  }
+  function d3_svg_arcSweep(x0, y0, x1, y1) {
+    return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;
+  }
+  function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
+    var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(r * r * d2 - D * D), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;
+    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
+    return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];
+  }
+  function d3_svg_line(projection) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
+    function line(data) {
+      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
+      function segment() {
+        segments.push("M", interpolate(projection(points), tension));
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
+        } else if (points.length) {
+          segment();
+          points = [];
+        }
+      }
+      if (points.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    line.x = function(_) {
+      if (!arguments.length) return x;
+      x = _;
+      return line;
+    };
+    line.y = function(_) {
+      if (!arguments.length) return y;
+      y = _;
+      return line;
+    };
+    line.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return line;
+    };
+    line.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      return line;
+    };
+    line.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return line;
+    };
+    return line;
+  }
+  d3.svg.line = function() {
+    return d3_svg_line(d3_identity);
+  };
+  var d3_svg_lineInterpolators = d3.map({
+    linear: d3_svg_lineLinear,
+    "linear-closed": d3_svg_lineLinearClosed,
+    step: d3_svg_lineStep,
+    "step-before": d3_svg_lineStepBefore,
+    "step-after": d3_svg_lineStepAfter,
+    basis: d3_svg_lineBasis,
+    "basis-open": d3_svg_lineBasisOpen,
+    "basis-closed": d3_svg_lineBasisClosed,
+    bundle: d3_svg_lineBundle,
+    cardinal: d3_svg_lineCardinal,
+    "cardinal-open": d3_svg_lineCardinalOpen,
+    "cardinal-closed": d3_svg_lineCardinalClosed,
+    monotone: d3_svg_lineMonotone
+  });
+  d3_svg_lineInterpolators.forEach(function(key, value) {
+    value.key = key;
+    value.closed = /-closed$/.test(key);
+  });
+  function d3_svg_lineLinear(points) {
+    return points.join("L");
+  }
+  function d3_svg_lineLinearClosed(points) {
+    return d3_svg_lineLinear(points) + "Z";
+  }
+  function d3_svg_lineStep(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]);
+    if (n > 1) path.push("H", p[0]);
+    return path.join("");
+  }
+  function d3_svg_lineStepBefore(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+    return path.join("");
+  }
+  function d3_svg_lineStepAfter(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+    return path.join("");
+  }
+  function d3_svg_lineCardinalOpen(points, tension) {
+    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineCardinalClosed(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), 
+    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
+  }
+  function d3_svg_lineCardinal(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineHermite(points, tangents) {
+    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
+      return d3_svg_lineLinear(points);
+    }
+    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
+    if (quad) {
+      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
+      p0 = points[1];
+      pi = 2;
+    }
+    if (tangents.length > 1) {
+      t = tangents[1];
+      p = points[pi];
+      pi++;
+      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      for (var i = 2; i < tangents.length; i++, pi++) {
+        p = points[pi];
+        t = tangents[i];
+        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      }
+    }
+    if (quad) {
+      var lp = points[pi];
+      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
+    }
+    return path;
+  }
+  function d3_svg_lineCardinalTangents(points, tension) {
+    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
+    while (++i < n) {
+      p0 = p1;
+      p1 = p2;
+      p2 = points[i];
+      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineBasis(points) {
+    if (points.length < 3) return d3_svg_lineLinear(points);
+    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
+    points.push(points[n - 1]);
+    while (++i <= n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    points.pop();
+    path.push("L", pi);
+    return path.join("");
+  }
+  function d3_svg_lineBasisOpen(points) {
+    if (points.length < 4) return d3_svg_lineLinear(points);
+    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
+    while (++i < 3) {
+      pi = points[i];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+    --i;
+    while (++i < n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBasisClosed(points) {
+    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
+    while (++i < 4) {
+      pi = points[i % n];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
+    --i;
+    while (++i < m) {
+      pi = points[i % n];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBundle(points, tension) {
+    var n = points.length - 1;
+    if (n) {
+      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
+      while (++i <= n) {
+        p = points[i];
+        t = i / n;
+        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+      }
+    }
+    return d3_svg_lineBasis(points);
+  }
+  function d3_svg_lineDot4(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+  }
+  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
+  function d3_svg_lineBasisBezier(path, x, y) {
+    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+  }
+  function d3_svg_lineSlope(p0, p1) {
+    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+  }
+  function d3_svg_lineFiniteDifferences(points) {
+    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
+    while (++i < j) {
+      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
+    }
+    m[i] = d;
+    return m;
+  }
+  function d3_svg_lineMonotoneTangents(points) {
+    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
+    while (++i < j) {
+      d = d3_svg_lineSlope(points[i], points[i + 1]);
+      if (abs(d) < ε) {
+        m[i] = m[i + 1] = 0;
+      } else {
+        a = m[i] / d;
+        b = m[i + 1] / d;
+        s = a * a + b * b;
+        if (s > 9) {
+          s = d * 3 / Math.sqrt(s);
+          m[i] = s * a;
+          m[i + 1] = s * b;
+        }
+      }
+    }
+    i = -1;
+    while (++i <= j) {
+      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
+      tangents.push([ s || 0, m[i] * s || 0 ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineMonotone(points) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+  }
+  d3.svg.line.radial = function() {
+    var line = d3_svg_line(d3_svg_lineRadial);
+    line.radius = line.x, delete line.x;
+    line.angle = line.y, delete line.y;
+    return line;
+  };
+  function d3_svg_lineRadial(points) {
+    var point, i = -1, n = points.length, r, a;
+    while (++i < n) {
+      point = points[i];
+      r = point[0];
+      a = point[1] - halfπ;
+      point[0] = r * Math.cos(a);
+      point[1] = r * Math.sin(a);
+    }
+    return points;
+  }
+  function d3_svg_area(projection) {
+    var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
+    function area(data) {
+      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
+        return x;
+      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
+        return y;
+      } : d3_functor(y1), x, y;
+      function segment() {
+        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
+          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
+        } else if (points0.length) {
+          segment();
+          points0 = [];
+          points1 = [];
+        }
+      }
+      if (points0.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    area.x = function(_) {
+      if (!arguments.length) return x1;
+      x0 = x1 = _;
+      return area;
+    };
+    area.x0 = function(_) {
+      if (!arguments.length) return x0;
+      x0 = _;
+      return area;
+    };
+    area.x1 = function(_) {
+      if (!arguments.length) return x1;
+      x1 = _;
+      return area;
+    };
+    area.y = function(_) {
+      if (!arguments.length) return y1;
+      y0 = y1 = _;
+      return area;
+    };
+    area.y0 = function(_) {
+      if (!arguments.length) return y0;
+      y0 = _;
+      return area;
+    };
+    area.y1 = function(_) {
+      if (!arguments.length) return y1;
+      y1 = _;
+      return area;
+    };
+    area.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return area;
+    };
+    area.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      interpolateReverse = interpolate.reverse || interpolate;
+      L = interpolate.closed ? "M" : "L";
+      return area;
+    };
+    area.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return area;
+    };
+    return area;
+  }
+  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+  d3.svg.area = function() {
+    return d3_svg_area(d3_identity);
+  };
+  d3.svg.area.radial = function() {
+    var area = d3_svg_area(d3_svg_lineRadial);
+    area.radius = area.x, delete area.x;
+    area.innerRadius = area.x0, delete area.x0;
+    area.outerRadius = area.x1, delete area.x1;
+    area.angle = area.y, delete area.y;
+    area.startAngle = area.y0, delete area.y0;
+    area.endAngle = area.y1, delete area.y1;
+    return area;
+  };
+  d3.svg.chord = function() {
+    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
+    function chord(d, i) {
+      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
+      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
+    }
+    function subgroup(self, f, d, i) {
+      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;
+      return {
+        r: r,
+        a0: a0,
+        a1: a1,
+        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
+        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
+      };
+    }
+    function equals(a, b) {
+      return a.a0 == b.a0 && a.a1 == b.a1;
+    }
+    function arc(r, p, a) {
+      return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
+    }
+    function curve(r0, p0, r1, p1) {
+      return "Q 0,0 " + p1;
+    }
+    chord.radius = function(v) {
+      if (!arguments.length) return radius;
+      radius = d3_functor(v);
+      return chord;
+    };
+    chord.source = function(v) {
+      if (!arguments.length) return source;
+      source = d3_functor(v);
+      return chord;
+    };
+    chord.target = function(v) {
+      if (!arguments.length) return target;
+      target = d3_functor(v);
+      return chord;
+    };
+    chord.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return chord;
+    };
+    chord.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return chord;
+    };
+    return chord;
+  };
+  function d3_svg_chordRadius(d) {
+    return d.radius;
+  }
+  d3.svg.diagonal = function() {
+    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
+    function diagonal(d, i) {
+      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
+        x: p0.x,
+        y: m
+      }, {
+        x: p3.x,
+        y: m
+      }, p3 ];
+      p = p.map(projection);
+      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+    }
+    diagonal.source = function(x) {
+      if (!arguments.length) return source;
+      source = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.target = function(x) {
+      if (!arguments.length) return target;
+      target = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.projection = function(x) {
+      if (!arguments.length) return projection;
+      projection = x;
+      return diagonal;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalProjection(d) {
+    return [ d.x, d.y ];
+  }
+  d3.svg.diagonal.radial = function() {
+    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
+    diagonal.projection = function(x) {
+      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalRadialProjection(projection) {
+    return function() {
+      var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;
+      return [ r * Math.cos(a), r * Math.sin(a) ];
+    };
+  }
+  d3.svg.symbol = function() {
+    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
+    function symbol(d, i) {
+      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
+    }
+    symbol.type = function(x) {
+      if (!arguments.length) return type;
+      type = d3_functor(x);
+      return symbol;
+    };
+    symbol.size = function(x) {
+      if (!arguments.length) return size;
+      size = d3_functor(x);
+      return symbol;
+    };
+    return symbol;
+  };
+  function d3_svg_symbolSize() {
+    return 64;
+  }
+  function d3_svg_symbolType() {
+    return "circle";
+  }
+  function d3_svg_symbolCircle(size) {
+    var r = Math.sqrt(size / π);
+    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
+  }
+  var d3_svg_symbols = d3.map({
+    circle: d3_svg_symbolCircle,
+    cross: function(size) {
+      var r = Math.sqrt(size / 5) / 2;
+      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
+    },
+    diamond: function(size) {
+      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
+      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
+    },
+    square: function(size) {
+      var r = Math.sqrt(size) / 2;
+      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
+    },
+    "triangle-down": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
+    },
+    "triangle-up": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
+    }
+  });
+  d3.svg.symbolTypes = d3_svg_symbols.keys();
+  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
+  d3_selectionPrototype.transition = function(name) {
+    var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {
+      time: Date.now(),
+      ease: d3_ease_cubicInOut,
+      delay: 0,
+      duration: 250
+    };
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_selectionPrototype.interrupt = function(name) {
+    return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));
+  };
+  var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
+  function d3_selection_interruptNS(ns) {
+    return function() {
+      var lock, active;
+      if ((lock = this[ns]) && (active = lock[lock.active])) {
+        if (--lock.count) delete lock[lock.active]; else delete this[ns];
+        lock.active += .5;
+        active.event && active.event.interrupt.call(this, this.__data__, active.index);
+      }
+    };
+  }
+  function d3_transition(groups, ns, id) {
+    d3_subclass(groups, d3_transitionPrototype);
+    groups.namespace = ns;
+    groups.id = id;
+    return groups;
+  }
+  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;
+  d3_transitionPrototype.call = d3_selectionPrototype.call;
+  d3_transitionPrototype.empty = d3_selectionPrototype.empty;
+  d3_transitionPrototype.node = d3_selectionPrototype.node;
+  d3_transitionPrototype.size = d3_selectionPrototype.size;
+  d3.transition = function(selection, name) {
+    return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);
+  };
+  d3.transition.prototype = d3_transitionPrototype;
+  d3_transitionPrototype.select = function(selector) {
+    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;
+    selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
+          if ("__data__" in node) subnode.__data__ = node.__data__;
+          d3_transitionNode(subnode, i, ns, id, node[ns][id]);
+          subgroup.push(subnode);
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_transitionPrototype.selectAll = function(selector) {
+    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;
+    selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          transition = node[ns][id];
+          subnodes = selector.call(node, node.__data__, i, j);
+          subgroups.push(subgroup = []);
+          for (var k = -1, o = subnodes.length; ++k < o; ) {
+            if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
+            subgroup.push(subnode);
+          }
+        }
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_transitionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_transition(subgroups, this.namespace, this.id);
+  };
+  d3_transitionPrototype.tween = function(name, tween) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
+    return d3_selection_each(this, tween == null ? function(node) {
+      node[ns][id].tween.remove(name);
+    } : function(node) {
+      node[ns][id].tween.set(name, tween);
+    });
+  };
+  function d3_transition_tween(groups, name, value, tween) {
+    var id = groups.id, ns = groups.namespace;
+    return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
+    } : (value = tween(value), function(node) {
+      node[ns][id].tween.set(name, value);
+    }));
+  }
+  d3_transitionPrototype.attr = function(nameNS, value) {
+    if (arguments.length < 2) {
+      for (value in nameNS) this.attr(value, nameNS[value]);
+      return this;
+    }
+    var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    function attrTween(b) {
+      return b == null ? attrNull : (b += "", function() {
+        var a = this.getAttribute(name), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttribute(name, i(t));
+        });
+      });
+    }
+    function attrTweenNS(b) {
+      return b == null ? attrNullNS : (b += "", function() {
+        var a = this.getAttributeNS(name.space, name.local), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttributeNS(name.space, name.local, i(t));
+        });
+      });
+    }
+    return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
+  };
+  d3_transitionPrototype.attrTween = function(nameNS, tween) {
+    var name = d3.ns.qualify(nameNS);
+    function attrTween(d, i) {
+      var f = tween.call(this, d, i, this.getAttribute(name));
+      return f && function(t) {
+        this.setAttribute(name, f(t));
+      };
+    }
+    function attrTweenNS(d, i) {
+      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+      return f && function(t) {
+        this.setAttributeNS(name.space, name.local, f(t));
+      };
+    }
+    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+  };
+  d3_transitionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.style(priority, name[priority], value);
+        return this;
+      }
+      priority = "";
+    }
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    function styleString(b) {
+      return b == null ? styleNull : (b += "", function() {
+        var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
+        return a !== b && (i = d3_interpolate(a, b), function(t) {
+          this.style.setProperty(name, i(t), priority);
+        });
+      });
+    }
+    return d3_transition_tween(this, "style." + name, value, styleString);
+  };
+  d3_transitionPrototype.styleTween = function(name, tween, priority) {
+    if (arguments.length < 3) priority = "";
+    function styleTween(d, i) {
+      var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
+      return f && function(t) {
+        this.style.setProperty(name, f(t), priority);
+      };
+    }
+    return this.tween("style." + name, styleTween);
+  };
+  d3_transitionPrototype.text = function(value) {
+    return d3_transition_tween(this, "text", value, d3_transition_text);
+  };
+  function d3_transition_text(b) {
+    if (b == null) b = "";
+    return function() {
+      this.textContent = b;
+    };
+  }
+  d3_transitionPrototype.remove = function() {
+    var ns = this.namespace;
+    return this.each("end.transition", function() {
+      var p;
+      if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
+    });
+  };
+  d3_transitionPrototype.ease = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].ease;
+    if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
+    return d3_selection_each(this, function(node) {
+      node[ns][id].ease = value;
+    });
+  };
+  d3_transitionPrototype.delay = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].delay;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].delay = +value.call(node, node.__data__, i, j);
+    } : (value = +value, function(node) {
+      node[ns][id].delay = value;
+    }));
+  };
+  d3_transitionPrototype.duration = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].duration;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));
+    } : (value = Math.max(1, value), function(node) {
+      node[ns][id].duration = value;
+    }));
+  };
+  d3_transitionPrototype.each = function(type, listener) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 2) {
+      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
+      try {
+        d3_transitionInheritId = id;
+        d3_selection_each(this, function(node, i, j) {
+          d3_transitionInherit = node[ns][id];
+          type.call(node, node.__data__, i, j);
+        });
+      } finally {
+        d3_transitionInherit = inherit;
+        d3_transitionInheritId = inheritId;
+      }
+    } else {
+      d3_selection_each(this, function(node) {
+        var transition = node[ns][id];
+        (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
+      });
+    }
+    return this;
+  };
+  d3_transitionPrototype.transition = function() {
+    var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if (node = group[i]) {
+          transition = node[ns][id0];
+          d3_transitionNode(node, i, ns, id1, {
+            time: transition.time,
+            ease: transition.ease,
+            delay: transition.delay + transition.duration,
+            duration: transition.duration
+          });
+        }
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, ns, id1);
+  };
+  function d3_transitionNamespace(name) {
+    return name == null ? "__transition__" : "__transition_" + name + "__";
+  }
+  function d3_transitionNode(node, i, ns, id, inherit) {
+    var lock = node[ns] || (node[ns] = {
+      active: 0,
+      count: 0
+    }), transition = lock[id];
+    if (!transition) {
+      var time = inherit.time;
+      transition = lock[id] = {
+        tween: new d3_Map(),
+        time: time,
+        delay: inherit.delay,
+        duration: inherit.duration,
+        ease: inherit.ease,
+        index: i
+      };
+      inherit = null;
+      ++lock.count;
+      d3.timer(function(elapsed) {
+        var delay = transition.delay, duration, ease, timer = d3_timer_active, tweened = [];
+        timer.t = delay + time;
+        if (delay <= elapsed) return start(elapsed - delay);
+        timer.c = start;
+        function start(elapsed) {
+          if (lock.active > id) return stop();
+          var active = lock[lock.active];
+          if (active) {
+            --lock.count;
+            delete lock[lock.active];
+            active.event && active.event.interrupt.call(node, node.__data__, active.index);
+          }
+          lock.active = id;
+          transition.event && transition.event.start.call(node, node.__data__, i);
+          transition.tween.forEach(function(key, value) {
+            if (value = value.call(node, node.__data__, i)) {
+              tweened.push(value);
+            }
+          });
+          ease = transition.ease;
+          duration = transition.duration;
+          d3.timer(function() {
+            timer.c = tick(elapsed || 1) ? d3_true : tick;
+            return 1;
+          }, 0, time);
+        }
+        function tick(elapsed) {
+          if (lock.active !== id) return 1;
+          var t = elapsed / duration, e = ease(t), n = tweened.length;
+          while (n > 0) {
+            tweened[--n].call(node, e);
+          }
+          if (t >= 1) {
+            transition.event && transition.event.end.call(node, node.__data__, i);
+            return stop();
+          }
+        }
+        function stop() {
+          if (--lock.count) delete lock[id]; else delete node[ns];
+          return 1;
+        }
+      }, 0, time);
+    }
+  }
+  d3.svg.axis = function() {
+    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;
+    function axis(g) {
+      g.each(function() {
+        var g = d3.select(this);
+        var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
+        var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;
+        var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), 
+        d3.transition(path));
+        tickEnter.append("line");
+        tickEnter.append("text");
+        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2;
+        if (orient === "bottom" || orient === "top") {
+          tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2";
+          text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize);
+        } else {
+          tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2";
+          text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start");
+          pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize);
+        }
+        lineEnter.attr(y2, sign * innerTickSize);
+        textEnter.attr(y1, sign * tickSpacing);
+        lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);
+        textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);
+        if (scale1.rangeBand) {
+          var x = scale1, dx = x.rangeBand() / 2;
+          scale0 = scale1 = function(d) {
+            return x(d) + dx;
+          };
+        } else if (scale0.rangeBand) {
+          scale0 = scale1;
+        } else {
+          tickExit.call(tickTransform, scale1, scale0);
+        }
+        tickEnter.call(tickTransform, scale0, scale1);
+        tickUpdate.call(tickTransform, scale1, scale1);
+      });
+    }
+    axis.scale = function(x) {
+      if (!arguments.length) return scale;
+      scale = x;
+      return axis;
+    };
+    axis.orient = function(x) {
+      if (!arguments.length) return orient;
+      orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
+      return axis;
+    };
+    axis.ticks = function() {
+      if (!arguments.length) return tickArguments_;
+      tickArguments_ = arguments;
+      return axis;
+    };
+    axis.tickValues = function(x) {
+      if (!arguments.length) return tickValues;
+      tickValues = x;
+      return axis;
+    };
+    axis.tickFormat = function(x) {
+      if (!arguments.length) return tickFormat_;
+      tickFormat_ = x;
+      return axis;
+    };
+    axis.tickSize = function(x) {
+      var n = arguments.length;
+      if (!n) return innerTickSize;
+      innerTickSize = +x;
+      outerTickSize = +arguments[n - 1];
+      return axis;
+    };
+    axis.innerTickSize = function(x) {
+      if (!arguments.length) return innerTickSize;
+      innerTickSize = +x;
+      return axis;
+    };
+    axis.outerTickSize = function(x) {
+      if (!arguments.length) return outerTickSize;
+      outerTickSize = +x;
+      return axis;
+    };
+    axis.tickPadding = function(x) {
+      if (!arguments.length) return tickPadding;
+      tickPadding = +x;
+      return axis;
+    };
+    axis.tickSubdivide = function() {
+      return arguments.length && axis;
+    };
+    return axis;
+  };
+  var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
+    top: 1,
+    right: 1,
+    bottom: 1,
+    left: 1
+  };
+  function d3_svg_axisX(selection, x0, x1) {
+    selection.attr("transform", function(d) {
+      var v0 = x0(d);
+      return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)";
+    });
+  }
+  function d3_svg_axisY(selection, y0, y1) {
+    selection.attr("transform", function(d) {
+      var v0 = y0(d);
+      return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")";
+    });
+  }
+  d3.svg.brush = function() {
+    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];
+    function brush(g) {
+      g.each(function() {
+        var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
+        var background = g.selectAll(".background").data([ 0 ]);
+        background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
+        g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move");
+        var resize = g.selectAll(".resize").data(resizes, d3_identity);
+        resize.exit().remove();
+        resize.enter().append("g").attr("class", function(d) {
+          return "resize " + d;
+        }).style("cursor", function(d) {
+          return d3_svg_brushCursor[d];
+        }).append("rect").attr("x", function(d) {
+          return /[ew]$/.test(d) ? -3 : null;
+        }).attr("y", function(d) {
+          return /^[ns]/.test(d) ? -3 : null;
+        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
+        resize.style("display", brush.empty() ? "none" : null);
+        var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;
+        if (x) {
+          range = d3_scaleRange(x);
+          backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]);
+          redrawX(gUpdate);
+        }
+        if (y) {
+          range = d3_scaleRange(y);
+          backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]);
+          redrawY(gUpdate);
+        }
+        redraw(gUpdate);
+      });
+    }
+    brush.event = function(g) {
+      g.each(function() {
+        var event_ = event.of(this, arguments), extent1 = {
+          x: xExtent,
+          y: yExtent,
+          i: xExtentDomain,
+          j: yExtentDomain
+        }, extent0 = this.__chart__ || extent1;
+        this.__chart__ = extent1;
+        if (d3_transitionInheritId) {
+          d3.select(this).transition().each("start.brush", function() {
+            xExtentDomain = extent0.i;
+            yExtentDomain = extent0.j;
+            xExtent = extent0.x;
+            yExtent = extent0.y;
+            event_({
+              type: "brushstart"
+            });
+          }).tween("brush:brush", function() {
+            var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);
+            xExtentDomain = yExtentDomain = null;
+            return function(t) {
+              xExtent = extent1.x = xi(t);
+              yExtent = extent1.y = yi(t);
+              event_({
+                type: "brush",
+                mode: "resize"
+              });
+            };
+          }).each("end.brush", function() {
+            xExtentDomain = extent1.i;
+            yExtentDomain = extent1.j;
+            event_({
+              type: "brush",
+              mode: "resize"
+            });
+            event_({
+              type: "brushend"
+            });
+          });
+        } else {
+          event_({
+            type: "brushstart"
+          });
+          event_({
+            type: "brush",
+            mode: "resize"
+          });
+          event_({
+            type: "brushend"
+          });
+        }
+      });
+    };
+    function redraw(g) {
+      g.selectAll(".resize").attr("transform", function(d) {
+        return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")";
+      });
+    }
+    function redrawX(g) {
+      g.select(".extent").attr("x", xExtent[0]);
+      g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]);
+    }
+    function redrawY(g) {
+      g.select(".extent").attr("y", yExtent[0]);
+      g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]);
+    }
+    function brushstart() {
+      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;
+      var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup);
+      if (d3.event.changedTouches) {
+        w.on("touchmove.brush", brushmove).on("touchend.brush", brushend);
+      } else {
+        w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend);
+      }
+      g.interrupt().selectAll("*").interrupt();
+      if (dragging) {
+        origin[0] = xExtent[0] - origin[0];
+        origin[1] = yExtent[0] - origin[1];
+      } else if (resizing) {
+        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
+        offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];
+        origin[0] = xExtent[ex];
+        origin[1] = yExtent[ey];
+      } else if (d3.event.altKey) center = origin.slice();
+      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
+      d3.select("body").style("cursor", eventTarget.style("cursor"));
+      event_({
+        type: "brushstart"
+      });
+      brushmove();
+      function keydown() {
+        if (d3.event.keyCode == 32) {
+          if (!dragging) {
+            center = null;
+            origin[0] -= xExtent[1];
+            origin[1] -= yExtent[1];
+            dragging = 2;
+          }
+          d3_eventPreventDefault();
+        }
+      }
+      function keyup() {
+        if (d3.event.keyCode == 32 && dragging == 2) {
+          origin[0] += xExtent[1];
+          origin[1] += yExtent[1];
+          dragging = 0;
+          d3_eventPreventDefault();
+        }
+      }
+      function brushmove() {
+        var point = d3.mouse(target), moved = false;
+        if (offset) {
+          point[0] += offset[0];
+          point[1] += offset[1];
+        }
+        if (!dragging) {
+          if (d3.event.altKey) {
+            if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];
+            origin[0] = xExtent[+(point[0] < center[0])];
+            origin[1] = yExtent[+(point[1] < center[1])];
+          } else center = null;
+        }
+        if (resizingX && move1(point, x, 0)) {
+          redrawX(g);
+          moved = true;
+        }
+        if (resizingY && move1(point, y, 1)) {
+          redrawY(g);
+          moved = true;
+        }
+        if (moved) {
+          redraw(g);
+          event_({
+            type: "brush",
+            mode: dragging ? "move" : "resize"
+          });
+        }
+      }
+      function move1(point, scale, i) {
+        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;
+        if (dragging) {
+          r0 -= position;
+          r1 -= size + position;
+        }
+        min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];
+        if (dragging) {
+          max = (min += position) + size;
+        } else {
+          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
+          if (position < min) {
+            max = min;
+            min = position;
+          } else {
+            max = position;
+          }
+        }
+        if (extent[0] != min || extent[1] != max) {
+          if (i) yExtentDomain = null; else xExtentDomain = null;
+          extent[0] = min;
+          extent[1] = max;
+          return true;
+        }
+      }
+      function brushend() {
+        brushmove();
+        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
+        d3.select("body").style("cursor", null);
+        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
+        dragRestore();
+        event_({
+          type: "brushend"
+        });
+      }
+    }
+    brush.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.clamp = function(z) {
+      if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;
+      if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;
+      return brush;
+    };
+    brush.extent = function(z) {
+      var x0, x1, y0, y1, t;
+      if (!arguments.length) {
+        if (x) {
+          if (xExtentDomain) {
+            x0 = xExtentDomain[0], x1 = xExtentDomain[1];
+          } else {
+            x0 = xExtent[0], x1 = xExtent[1];
+            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
+            if (x1 < x0) t = x0, x0 = x1, x1 = t;
+          }
+        }
+        if (y) {
+          if (yExtentDomain) {
+            y0 = yExtentDomain[0], y1 = yExtentDomain[1];
+          } else {
+            y0 = yExtent[0], y1 = yExtent[1];
+            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
+            if (y1 < y0) t = y0, y0 = y1, y1 = t;
+          }
+        }
+        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
+      }
+      if (x) {
+        x0 = z[0], x1 = z[1];
+        if (y) x0 = x0[0], x1 = x1[0];
+        xExtentDomain = [ x0, x1 ];
+        if (x.invert) x0 = x(x0), x1 = x(x1);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+        if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];
+      }
+      if (y) {
+        y0 = z[0], y1 = z[1];
+        if (x) y0 = y0[1], y1 = y1[1];
+        yExtentDomain = [ y0, y1 ];
+        if (y.invert) y0 = y(y0), y1 = y(y1);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+        if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];
+      }
+      return brush;
+    };
+    brush.clear = function() {
+      if (!brush.empty()) {
+        xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];
+        xExtentDomain = yExtentDomain = null;
+      }
+      return brush;
+    };
+    brush.empty = function() {
+      return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];
+    };
+    return d3.rebind(brush, event, "on");
+  };
+  var d3_svg_brushCursor = {
+    n: "ns-resize",
+    e: "ew-resize",
+    s: "ns-resize",
+    w: "ew-resize",
+    nw: "nwse-resize",
+    ne: "nesw-resize",
+    se: "nwse-resize",
+    sw: "nesw-resize"
+  };
+  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
+  var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;
+  var d3_time_formatUtc = d3_time_format.utc;
+  var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ");
+  d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
+  function d3_time_formatIsoNative(date) {
+    return date.toISOString();
+  }
+  d3_time_formatIsoNative.parse = function(string) {
+    var date = new Date(string);
+    return isNaN(date) ? null : date;
+  };
+  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
+  d3_time.second = d3_time_interval(function(date) {
+    return new d3_date(Math.floor(date / 1e3) * 1e3);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
+  }, function(date) {
+    return date.getSeconds();
+  });
+  d3_time.seconds = d3_time.second.range;
+  d3_time.seconds.utc = d3_time.second.utc.range;
+  d3_time.minute = d3_time_interval(function(date) {
+    return new d3_date(Math.floor(date / 6e4) * 6e4);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
+  }, function(date) {
+    return date.getMinutes();
+  });
+  d3_time.minutes = d3_time.minute.range;
+  d3_time.minutes.utc = d3_time.minute.utc.range;
+  d3_time.hour = d3_time_interval(function(date) {
+    var timezone = date.getTimezoneOffset() / 60;
+    return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
+  }, function(date) {
+    return date.getHours();
+  });
+  d3_time.hours = d3_time.hour.range;
+  d3_time.hours.utc = d3_time.hour.utc.range;
+  d3_time.month = d3_time_interval(function(date) {
+    date = d3_time.day(date);
+    date.setDate(1);
+    return date;
+  }, function(date, offset) {
+    date.setMonth(date.getMonth() + offset);
+  }, function(date) {
+    return date.getMonth();
+  });
+  d3_time.months = d3_time.month.range;
+  d3_time.months.utc = d3_time.month.utc.range;
+  function d3_time_scale(linear, methods, format) {
+    function scale(x) {
+      return linear(x);
+    }
+    scale.invert = function(x) {
+      return d3_time_scaleDate(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
+      linear.domain(x);
+      return scale;
+    };
+    function tickMethod(extent, count) {
+      var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);
+      return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {
+        return d / 31536e6;
+      }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];
+    }
+    scale.nice = function(interval, skip) {
+      var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval);
+      if (method) interval = method[0], skip = method[1];
+      function skipped(date) {
+        return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;
+      }
+      return scale.domain(d3_scale_nice(domain, skip > 1 ? {
+        floor: function(date) {
+          while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);
+          return date;
+        },
+        ceil: function(date) {
+          while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);
+          return date;
+        }
+      } : interval));
+    };
+    scale.ticks = function(interval, skip) {
+      var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ {
+        range: interval
+      }, skip ];
+      if (method) interval = method[0], skip = method[1];
+      return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);
+    };
+    scale.tickFormat = function() {
+      return format;
+    };
+    scale.copy = function() {
+      return d3_time_scale(linear.copy(), methods, format);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  function d3_time_scaleDate(t) {
+    return new Date(t);
+  }
+  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
+  var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];
+  var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) {
+    return d.getMilliseconds();
+  } ], [ ":%S", function(d) {
+    return d.getSeconds();
+  } ], [ "%I:%M", function(d) {
+    return d.getMinutes();
+  } ], [ "%I %p", function(d) {
+    return d.getHours();
+  } ], [ "%a %d", function(d) {
+    return d.getDay() && d.getDate() != 1;
+  } ], [ "%b %d", function(d) {
+    return d.getDate() != 1;
+  } ], [ "%B", function(d) {
+    return d.getMonth();
+  } ], [ "%Y", d3_true ] ]);
+  var d3_time_scaleMilliseconds = {
+    range: function(start, stop, step) {
+      return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
+    },
+    floor: d3_identity,
+    ceil: d3_identity
+  };
+  d3_time_scaleLocalMethods.year = d3_time.year;
+  d3_time.scale = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
+  };
+  var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {
+    return [ m[0].utc, m[1] ];
+  });
+  var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) {
+    return d.getUTCMilliseconds();
+  } ], [ ":%S", function(d) {
+    return d.getUTCSeconds();
+  } ], [ "%I:%M", function(d) {
+    return d.getUTCMinutes();
+  } ], [ "%I %p", function(d) {
+    return d.getUTCHours();
+  } ], [ "%a %d", function(d) {
+    return d.getUTCDay() && d.getUTCDate() != 1;
+  } ], [ "%b %d", function(d) {
+    return d.getUTCDate() != 1;
+  } ], [ "%B", function(d) {
+    return d.getUTCMonth();
+  } ], [ "%Y", d3_true ] ]);
+  d3_time_scaleUtcMethods.year = d3_time.year.utc;
+  d3_time.scale.utc = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);
+  };
+  d3.text = d3_xhrType(function(request) {
+    return request.responseText;
+  });
+  d3.json = function(url, callback) {
+    return d3_xhr(url, "application/json", d3_json, callback);
+  };
+  function d3_json(request) {
+    return JSON.parse(request.responseText);
+  }
+  d3.html = function(url, callback) {
+    return d3_xhr(url, "text/html", d3_html, callback);
+  };
+  function d3_html(request) {
+    var range = d3_document.createRange();
+    range.selectNode(d3_document.body);
+    return range.createContextualFragment(request.responseText);
+  }
+  d3.xml = d3_xhrType(function(request) {
+    return request.responseXML;
+  });
+  if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3;
+  this.d3 = d3;
+}();
\ No newline at end of file
diff --git a/learn/map/d3.min.js b/learn/map/d3.min.js
new file mode 100644 (file)
index 0000000..1984d17
--- /dev/null
@@ -0,0 +1,5 @@
+!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new l;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function S(){ta.event.preventDefault()}function k(){for(var n,t=ta.event;n=t.sourceEvent;)t=n;return t}function E(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=ta.event;u.target=n,ta.event=u,t[u.type].apply(e,r)}finally{ta.event=i}}},t}function A(n){return ya(n,_a),n}function N(n){return"function"==typeof n?n:function(){return Ma(n,this)}}function C(n){return"function"==typeof n?n:function(){return xa(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ta.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function q(n){return n.trim().replace(/\s+/g," ")}function L(n){return new RegExp("(?:^|\\s+)"+ta.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=T(n).map(D);var u=n.length;return"function"==typeof t?r:e}function D(n){var t=L(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",q(u+" "+n))):e.setAttribute("class",q(u.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e?t.createElementNS(e,n):t.createElement(n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ta.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return ba(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,ra(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+ta.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=$;a>0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Qa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ga(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=sc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=N[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&cc!==jt,o=new(i?jt:cc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&dc.hasOwnProperty(n.type)&&dc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=Da,t=t*Da/2+qa/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])<Ca&&ga(n[1]-t[1])<Ca}function _e(n,t){n*=Da;var e=Math.cos(t*=Da);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++xc,_c+=(n-_c)/xc,wc+=(t-wc)/xc,Sc+=(e-Sc)/xc}function Se(){function n(n,u){n*=Da;var i=Math.cos(u*=Da),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);bc+=l,kc+=l*(t+(t=o)),Ec+=l*(e+(e=a)),Ac+=l*(r+(r=c)),we(t,e,r)}var t,e,r;qc.point=function(u,i){u*=Da;var o=Math.cos(i*=Da);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),qc.point=n,we(t,e,r)}}function ke(){qc.point=_e}function Ee(){function n(n,t){n*=Da;var e=Math.cos(t*=Da),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-nt(g)/h,v=Math.atan2(h,g);Nc+=p*l,Cc+=p*s,zc+=p*f,bc+=v,kc+=v*(r+(r=o)),Ec+=v*(u+(u=a)),Ac+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;qc.point=function(o,a){t=o,e=a,qc.point=n,o*=Da;var c=Math.cos(a*=Da);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},qc.lineEnd=function(){n(t,e),qc.lineEnd=ke,qc.point=_e}}function Ae(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ne(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(be(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function qe(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);x.point(e[0],e[1])}function f(){x.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)<Ca?(n.point(e,r=(r+o)/2>0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)<Ca&&(e-=u*Ca),ga(i-a)<Ca&&(i-=a*Ca),r=Ue(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Ue(n,t,e,r){var u,i,o=Math.sin(n-e);return ga(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]<t[0]?qa:-qa;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function Fe(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;yc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)<Ca,C=N||Ca>A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)<Ca?k:E):k<=b[1]&&b[1]<=E:A>qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)<Ca?u>0?0:3:ga(r[0]-e)<Ca?u>0?2:1:ga(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c
+},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)<Ca||ga(r-h)<Ca?(r+h)/2:Math.atan2(_,b),A=n(E,k),N=A[0],C=A[1],z=N-t,q=C-e,L=M*z-y*q;(L*L/x>i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)<Ca?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-K(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(qa/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=qa*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(qa/4+t/2)),-n]}function Ar(n){return n[0]}function Nr(n){return n[1]}function Cr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)<Ca&&ga(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ga(e-l.circle.x)<Ca&&ga(r-l.circle.cy)<Ca;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)<Ca&&p-u>Ca?{x:f,y:ga(t-f)<Ca?e:p}:ga(u-p)<Ca&&h-r>Ca?{x:ga(e-p)<Ca?t:h,y:p}:ga(r-h)<Ca&&u-g>Ca?{x:h,y:ga(t-h)<Ca?e:g}:ga(u-g)<Ca&&r-f>Ca?{x:ga(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function Yr(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.y<M.y||m.y===M.y&&m.x<=M.x){if(!M.L){y=M.P;break}M=M.L}else{if(!M.R){y=M;break}M=M.R}tl.insert(y,m),y||(nl=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(nl=t.N),tl.remove(t),rl.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=Gc,r=Oe(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ga(t.a.x-t.b.x)<Ca&&ga(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return Gc.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Kc[n.i].edges.push(new Qr(u,n,t)),Kc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,Gc.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for(Gc=[],Kc=new Array(n.length),Qc=new nu,tl=new nu;;)if(u=nl,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Kc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Ir(t));var o={cells:Kc,edges:Gc};return Qc=tl=Gc=Kc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t,e,r,u,i,o){var a,c=1/0;return function l(n,s,f,h,g){if(!(s>i||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Pa,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Pa:0}function Uu(n,t){return n[0]*t[0]+n[1]*t[1]}function ju(n){var t=Math.sqrt(Uu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Fu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Hu(n,t){var e,r=[],u=[],i=ta.transform(n),o=ta.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:vu(a[0],c[0])},{i:3,x:vu(a[1],c[1])})):r.push(c[0]||c[1]?"translate("+c+")":""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Iu(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Vu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Zu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Vu(n,t){if(n===t)return n;for(var e=Zu(n),r=Zu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Xu(n){n.fixed|=2}function $u(n){n.fixed&=-7}function Bu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Wu(n){n.fixed&=-5}function Ju(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Ju(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Gu(n,t){return ta.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ri,n}function Ku(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function ni(n){return n.children}function ti(n){return n.value}function ei(n,t){return t.value-n.value}function ri(n){return ta.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ui(n){return n.x}function ii(n){return n.y}function oi(n,t,e){n.y0=t,n.y=e}function ai(n){return ta.range(n.length)}function ci(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function li(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?mi(r,u=a):mi(r=c,u),o--):(di(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,M=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function wi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function Si(n,t){return n.parent==t.parent?1:2}function ki(n){var t=n.children;return t.length?t[0]:n.t}function Ei(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ai(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ni(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=ta.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ii(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++o<a;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=(c+l)/2,0):(l-c)/(n.length-1+a);return i=r(c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=l=Math.round((c+l)/2),0):(l-c)/(n.length-1+a)|0;return i=r(c+Math.round(s*a/2+(l-c-(n.length-1+a)*s)/2),s),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c));return i=r(s+Math.round((f-s-(n.length-a)*h)/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Pi(t.a[0])},e.copy=function(){return Qi(n,t)},e.domain(n)}function no(n,t){function i(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ta.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ta.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(u).sort(e),i()):n},o.range=function(n){return arguments.length?(t=n,i()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return no(n,t)},i()}function to(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Nr,u=Ne,i=go,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=El.get(n)||go).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function go(n){return n.join("L")}function po(n){return go(n)+"Z"}function vo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function yo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function Mo(n,t){return n.length<4?go(n):n[1]+_o(n.slice(1,-1),wo(n,t))}function xo(n,t){return n.length<3?go(n):n[0]+_o((n.push(n[0]),n),wo([n[n.length-2]].concat(n,[n[1]]),t))}function bo(n,t){return n.length<3?go(n):n[0]+_o(n,wo(n,t))}function _o(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return go(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function wo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function So(n){if(n.length<3)return go(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",No(Cl,o),",",No(Cl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Co(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ko(n){if(n.length<4)return go(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(No(Cl,i)+","+No(Cl,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Co(e,i,o);return e.join("")}function Eo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[No(Cl,o),",",No(Cl,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Co(t,o,a);return t.join("")}function Ao(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return So(n)}function No(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Co(n,t,e){n.push("C",No(Al,t),",",No(Al,e),",",No(Nl,t),",",No(Nl,e),",",No(Cl,t),",",No(Cl,e))}function zo(n,t){return(t[1]-n[1])/(t[0]-n[0])}function qo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=zo(u,i);++t<e;)r[t]=(o+(o=zo(u=i,i=n[t+1])))/2;return r[t]=o,r}function Lo(n){for(var t,e,r,u,i=[],o=qo(n),a=-1,c=n.length-1;++a<c;)t=zo(n[a],n[a+1]),ga(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]-Ra,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Do(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,M=t.length,x=Et(e),b=Et(u),_=e===r?function(){return g}:Et(r),w=u===i?function(){return p}:Et(i);++y<M;)o.call(this,h=t[y],y)?(d.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),m.push([+_.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Nr,o=Ne,a=go,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r
+},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=El.get(n)||go).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Po(n){return n.radius}function Uo(n){return[n.x,n.y]}function jo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Fo(){return 64}function Ho(){return"circle"}function Oo(n){var t=Math.sqrt(n/qa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Io(n){return function(){var t,e;(t=this[n])&&(e=t[t.active])&&(--t.count?delete t[t.active]:delete this[n],t.active+=.5,e.event&&e.event.interrupt.call(this,this.__data__,e.index))}}function Yo(n,t,e){return ya(n,Pl),n.namespace=t,n.id=e,n}function Zo(n,t,e,r){var u=n.id,i=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[i][u].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[i][u].tween.set(t,e)}))}function Vo(n){return null==n&&(n=""),function(){this.textContent=n}}function Xo(n){return null==n?"__transition__":"__transition_"+n+"__"}function $o(n,t,e,r,u){var i=n[e]||(n[e]={active:0,count:0}),o=i[r];if(!o){var a=u.time;o=i[r]={tween:new l,time:a,delay:u.delay,duration:u.duration,ease:u.ease,index:t},u=null,++i.count,ta.timer(function(u){function c(e){if(i.active>r)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]<Vl[i]/u?i-1:i]:[Bl,Vi(n,e)[2]]}return r.invert=function(t){return Ko(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Ko)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Ko(+e+1),t).length}var i=r.domain(),o=Pi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Fi(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.6"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=n[i])&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)u(e=+n[o])&&(r+=e);else for(;++o<i;)u(e=+t.call(n,n[o],o))&&(r+=e);return r},ta.mean=function(n,t){var e,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)u(e=r(n[a]))?i+=e:--c;else for(;++a<o;)u(e=r(t.call(n,n[a],a)))?i+=e:--c;return c?i/c:void 0},ta.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},ta.median=function(n,t){var i,o=[],a=n.length,c=-1;if(1===arguments.length)for(;++c<a;)u(i=r(n[c]))&&o.push(i);else for(;++c<a;)u(i=r(t.call(n,n[c],c)))&&o.push(i);return o.length?ta.quantile(o.sort(e),.5):void 0},ta.variance=function(n,t){var e,i,o=n.length,a=0,c=0,l=-1,s=0;if(1===arguments.length)for(;++l<o;)u(e=r(n[l]))&&(i=e-a,a+=i/++s,c+=i*(e-a));else for(;++l<o;)u(e=r(t.call(n,n[l],l)))&&(i=e-a,a+=i/++s,c+=i*(e-a));return s>1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n<t;)for(var r,u=-1,i=e[n]=new Array(r);++u<r;)i[u]=arguments[u][n];return e},ta.transpose=function(n){return ta.zip.apply(ta,n)},ta.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ta.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ta.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ta.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)<t;)u.push(r/i);return u},ta.map=function(n,t){var e=new l;if(n instanceof l)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,u=-1,i=n.length;if(1===arguments.length)for(;++u<i;)e.set(u,n[u]);else for(;++u<i;)e.set(t.call(n,r=n[u],u),r)}else for(var o in n)e.set(o,n[o]);return e};var pa="__proto__",va="\x00";c(l,{has:h,get:function(n){return this._[s(n)]},set:function(n,t){return this._[s(n)]=t},remove:g,keys:p,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:f(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t),this._[t])}}),ta.nest=function(){function n(t,o,a){if(a>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g<p;)(h=d.get(c=v(s=o[g])))?h.push(s):d.set(c,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,a))}):(s={},f=function(e,r){s[e]=n(t,r,a)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=M(n,t,t[e]);return n};var da=["webkit","ms","moz","Moz","o","O"];ta.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return A(i)},_a.selectAll=function(n){var t,e,r=[];n=C(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=ra(n.call(e,e.__data__,a,u))),t.parentNode=e);return A(r)};var wa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ta.ns={prefix:wa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!L(n[u]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},_a.style=function(n,e,r){var u=arguments.length;if(3>u){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=H(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=H(i);for(;f>r;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var a=Z([]),c=A([]),s=A([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return c.enter=function(){return a},c.exit=function(){return s},c},_a.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},_a.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},_a.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},_a.call=function(n){var t=ra(arguments);return n.apply(t[0]=this,t),this},_a.empty=function(){return!this.node()},_a.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return A(o)},Sa.insert=function(n,t){return arguments.length<2&&(t=V(this)),_a.insert.call(this,n,t)},ta.select=function(t){var e;return"string"==typeof t?(e=[Ma(t,ua)],e.parentNode=ua.documentElement):(e=[t],e.parentNode=n(t)),A([e])},ta.selectAll=function(n){var t;return"string"==typeof n?(t=ra(xa(n,ua)),t.parentNode=ua.documentElement):(t=n,t.parentNode=null),A([t])},_a.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Dl.call(this),v=e(d=m||ta.mouse(this)),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv("    ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t
+},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},dc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};ta.geo.area=function(n){return mc=0,ta.geo.stream(n,Mc),mc};var mc,yc=new ce,Mc={sphere:function(){mc+=4*qa},point:b,lineStart:b,lineEnd:b,polygonStart:function(){yc.reset(),Mc.lineStart=ge},polygonEnd:function(){var n=2*yc;mc+=0>n?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=u,b.lineStart=i,b.lineEnd=o,y=0,Mc.polygonStart()},polygonEnd:function(){Mc.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>yc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Nr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ta.geom.polygon=function(n){return ya(n,Jc),n};var Jc=ta.geom.polygon.prototype=[];Jc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Jc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Jc.clip=function(n){for(var t,e,r,u,i,o,a=Tr(n),c=-1,l=this.length-Tr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],qr(o,s,u)?(qr(i,s,u)||n.push(Lr(i,o,s,u)),n.push(o)):qr(i,s,u)&&n.push(Lr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var Gc,Kc,Qc,nl,tl,el=[],rl=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Yr),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},ta.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=Et(r=n),t):r},t.y=function(n){return arguments.length?(o=Et(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?ul:n,t):a===ul?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===ul?null:a&&a[1]},t)};var ul=[[-1e6,-1e6],[1e6,1e6]];ta.geom.delaunay=function(n){return ta.geom.voronoi().triangles(n)},ta.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ga(c-e)+ga(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Nr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},ta.interpolateRgb=gu,ta.interpolateObject=pu,ta.interpolateNumber=vu,ta.interpolateString=du;var il=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ol=new RegExp(il.source,"g");ta.interpolate=mu,ta.interpolators=[function(n,t){var e=typeof t;return("string"===e?Ga.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?gu:du:t instanceof ot?gu:Array.isArray(t)?yu:"object"===e&&isNaN(t)?pu:vu)(n,t)}],ta.interpolateArray=yu;var al=function(){return y},cl=ta.map({linear:al,poly:ku,quad:function(){return _u},cubic:function(){return wu},sin:function(){return Eu},exp:function(){return Au},circle:function(){return Nu},elastic:Cu,back:zu,bounce:function(){return qu}}),ll=ta.map({"in":y,out:xu,"in-out":bu,"out-in":function(n){return bu(xu(n))}});ta.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},ta.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=ta.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(ta.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(La-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],M=m[y][g],x=u[y][M],b=l,_=l+=x*n;p[y+"-"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},ta.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e<b;)a=m[e],a.x+=(y-a.x)*d,a.y+=(x-a.y)*d;if(g)for(Ju(t=ta.geom.quadtree(m),r,o),e=-1;++e<b;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<b;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(M=n,a):M},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=M.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=ta.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Gu(e,r)},ta.layout.pie=function(){function n(o){var a,c=o.length,l=o.map(function(e,r){return+t.call(n,e,r)}),s=+("function"==typeof r?r.apply(this,arguments):r),f=("function"==typeof u?u.apply(this,arguments):u)-s,h=Math.min(Math.abs(f)/c,+("function"==typeof i?i.apply(this,arguments):i)),g=h*(0>f?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=ta.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Ri,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));
+return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ri(t):Di(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Di(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Ri:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Gu(i,a)},ta.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++a<c;){i.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(e=l[s])&&$o(e,s,u,r,o),t.push(e)}return Yo(i,u,r)},_a.interrupt=function(n){return this.each(null==n?Dl:Io(Xo(n)))};var Tl,Rl,Dl=Io(Xo()),Pl=[],Ul=0;Pl.call=_a.call,Pl.empty=_a.empty,Pl.node=_a.node,Pl.size=_a.size,ta.transition=function(n,t){return n&&n.transition?Tl?n.transition(t):n:ta.selection().transition(n)},ta.transition.prototype=Pl,Pl.select=function(n){var t,e,r,u=this.id,i=this.namespace,o=[];n=N(n);for(var a=-1,c=this.length;++a<c;){o.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(r=l[s])&&(e=n.call(r,r.__data__,s,a))?("__data__"in r&&(e.__data__=r.__data__),$o(e,s,i,u,r[i][u]),t.push(e)):t.push(null)}return Yo(o,i,u)},Pl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=this.namespace,c=[];n=C(n);for(var l=-1,s=this.length;++l<s;)for(var f=this[l],h=-1,g=f.length;++h<g;)if(r=f[h]){i=r[a][o],e=n.call(r,r.__data__,h,l),c.push(t=[]);for(var p=-1,v=e.length;++p<v;)(u=e[p])&&$o(u,p,a,o,i),t.push(u)}return Yo(c,a,o)},Pl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]<M[0])],q[1]=h[+(n[1]<M[1])]):M=null),A&&m(n,l,0)&&(r(k),t=!0),N&&m(n,s,1)&&(u(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,i=Ui(t),c=i[0],l=i[1],s=q[e],v=e?h:f,d=v[1]-v[0];return C&&(c-=s,l-=d+s),r=(e?p:g)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=s)+d:(M&&(s=Math.max(c,Math.min(l,2*M[e]-r))),r>s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}();
\ No newline at end of file
diff --git a/learn/map/datamaps.china.min.js b/learn/map/datamaps.china.min.js
new file mode 100755 (executable)
index 0000000..c3f0377
--- /dev/null
@@ -0,0 +1,2 @@
+!function(){function a(a,b,c){return this.svg=l.select(a).append("svg").attr("width",c||a.offsetWidth).attr("class","datamap").attr("height",b||a.offsetHeight).style("overflow","hidden"),this.svg}function b(a,b){var c,d,e=b.width||a.offsetWidth,f=b.height||a.offsetHeight;return b&&"undefined"==typeof b.scope&&(b.scope="world"),"usa"===b.scope?c=l.geo.albersUsa().scale(e).translate([e/2,f/2]):"world"===b.scope?c=l.geo[b.projection]().scale((e+1)/2/Math.PI).translate([e/2,f/("mercator"===b.projection?1.45:1.8)]):"china"===b.scope&&(c=l.geo.conicConformal().rotate([-120,0]).center([0,38]).parallels([15.5,55]).scale(1e3).translate([e/2,f/3+20]).precision(.1)),d=l.geo.path().projection(c),{path:d,projection:c}}function c(){l.select(".datamaps-style-block").empty()&&l.select("head").append("style").attr("class","datamaps-style-block").html('.datamap path {stroke: #FFFFFF; stroke-width: 1px;} .datamaps-legend dt, .datamaps-legend dd { float: left; margin: 0 3px 0 0;} .datamaps-legend dd {width: 20px; margin-right: 6px; border-radius: 3px;} .datamaps-legend {padding-bottom: 20px; z-index: 1001; position: absolute; left: 4px; font-size: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;} .datamaps-hoverover {display: none; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .hoverinfo {padding: 4px; border-radius: 1px; background-color: #FFF; box-shadow: 1px 1px 5px #CCC; font-size: 12px; border: 1px solid #CCC; } .hoverinfo hr {border:1px dotted #CCC; }')}function d(a){var b=this.options.fills,c=this.options.data||{},d=this.options.geographyConfig,e=this.svg.select("g.datamaps-subunits");e.empty()&&(e=this.addLayer("datamaps-subunits",null,!0));var f=m.feature(a,a.objects[this.options.scope]).features;d.hideAntarctica&&(f=f.filter(function(a){return"ATA"!==a.id}));var g=e.selectAll("path.datamaps-subunit").data(f);g.enter().append("path").attr("d",this.path).attr("class",function(a){return"datamaps-subunit "+a.id}).attr("data-info",function(a){return JSON.stringify(c[a.id])}).style("fill",function(a){var d;return c[a.id]&&(d=b[c[a.id].fillKey]),d||b.defaultFill}).style("stroke-width",d.borderWidth).style("stroke",d.borderColor)}function e(){function a(){this.parentNode.appendChild(this)}var b=this.svg,c=this,d=this.options.geographyConfig;(d.highlightOnHover||d.popupOnHover)&&b.selectAll(".datamaps-subunit").on("mouseover",function(e){var f=l.select(this);if(d.highlightOnHover){var g={fill:f.style("fill"),stroke:f.style("stroke"),"stroke-width":f.style("stroke-width"),"fill-opacity":f.style("fill-opacity")};f.style("fill",d.highlightFillColor).style("stroke",d.highlightBorderColor).style("stroke-width",d.highlightBorderWidth).style("fill-opacity",d.highlightFillOpacity).attr("data-previousAttributes",JSON.stringify(g)),/((MSIE)|(Trident))/.test||a.call(this)}d.popupOnHover&&c.updatePopup(f,e,d,b)}).on("mouseout",function(){var a=l.select(this);if(d.highlightOnHover){var b=JSON.parse(a.attr("data-previousAttributes"));for(var c in b)a.style(c,b[c])}a.on("mousemove",null),l.selectAll(".datamaps-hoverover").style("display","none")})}function f(a,b){if(b=b||{},this.options.fills){var c="<dl>",d="";b.legendTitle&&(c="<h2>"+b.legendTitle+"</h2>"+c);for(var e in this.options.fills){if("defaultFill"===e){if(!b.defaultFillName)continue;d=b.defaultFillName}else d=b.labels&&b.labels[e]?b.labels[e]:e+": ";c+="<dt>"+d+"</dt>",c+='<dd style="background-color:'+this.options.fills[e]+'">&nbsp;</dd>'}c+="</dl>";{l.select(this.options.element).append("div").attr("class","datamaps-legend").html(c)}}}function g(a,b,c){{var d=this;this.svg}if(!b||b&&!b.slice)throw"Datamaps Error - arcs must be an array";"undefined"==typeof c&&(c=n.arcConfig);var e=a.selectAll("path.datamaps-arc").data(b,JSON.stringify);e.enter().append("svg:path").attr("class","datamaps-arc").style("stroke-linecap","round").style("stroke",function(a){return a.options&&a.options.strokeColor?a.options.strokeColor:c.strokeColor}).style("fill","none").style("stroke-width",function(a){return a.options&&a.options.strokeWidth?a.options.strokeWidth:c.strokeWidth}).attr("d",function(a){var b=d.latLngToXY(a.origin.latitude,a.origin.longitude),e=d.latLngToXY(a.destination.latitude,a.destination.longitude),f=[(b[0]+e[0])/2,(b[1]+e[1])/2];return"M"+b[0]+","+b[1]+"S"+(f[0]+50*c.arcSharpness)+","+(f[1]-75*c.arcSharpness)+","+e[0]+","+e[1]}).transition().delay(100).style("fill",function(){var a=this.getTotalLength();return this.style.transition=this.style.WebkitTransition="none",this.style.strokeDasharray=a+" "+a,this.style.strokeDashoffset=a,this.getBoundingClientRect(),this.style.transition=this.style.WebkitTransition="stroke-dashoffset "+c.animationSpeed+"ms ease-out",this.style.strokeDashoffset="0","none"}),e.exit().transition().style("opacity",0).remove()}function h(a,b){var c=this;b=b||{};var d=this.projection([-67.707617,42.722131]);this.svg.selectAll(".datamaps-subunit").attr("data-foo",function(e){var f=c.path.centroid(e),g=7.5,h=5;["FL","KY","MI"].indexOf(e.id)>-1&&(g=-2.5),"NY"===e.id&&(g=-1),"MI"===e.id&&(h=18),"LA"===e.id&&(g=13);var i,j;i=f[0]-g,j=f[1]+h;var k=["VT","NH","MA","RI","CT","NJ","DE","MD","DC"].indexOf(e.id);if(k>-1){var l=d[1];i=d[0],j=l+k*(2+(b.fontSize||12)),a.append("line").attr("x1",i-3).attr("y1",j-5).attr("x2",f[0]).attr("y2",f[1]).style("stroke",b.labelColor||"#000").style("stroke-width",b.lineWidth||1)}return a.append("text").attr("x",i).attr("y",j).style("font-size",(b.fontSize||10)+"px").style("font-family",b.fontFamily||"Verdana").style("fill",b.labelColor||"#000").text(e.id),"bar"})}function i(a,b,c){function d(a){return"undefined"!=typeof a&&"undefined"!=typeof a.latitude&&"undefined"!=typeof a.longitude}var e=this,f=this.options.fills,g=this.svg;if(!b||b&&!b.slice)throw"Datamaps Error - bubbles must be an array";var h=a.selectAll("circle.datamaps-bubble").data(b,JSON.stringify);h.enter().append("svg:circle").attr("class","datamaps-bubble").attr("cx",function(a){var b;return d(a)?b=e.latLngToXY(a.latitude,a.longitude):a.centered&&(b=e.path.centroid(g.select("path."+a.centered).data()[0])),b?b[0]:void 0}).attr("cy",function(a){var b;return d(a)?b=e.latLngToXY(a.latitude,a.longitude):a.centered&&(b=e.path.centroid(g.select("path."+a.centered).data()[0])),b?b[1]:void 0}).attr("r",0).attr("data-info",function(a){return JSON.stringify(a)}).style("stroke",function(a){return"undefined"!=typeof a.borderColor?a.borderColor:c.borderColor}).style("stroke-width",function(a){return"undefined"!=typeof a.borderWidth?a.borderWidth:c.borderWidth}).style("fill-opacity",function(a){return"undefined"!=typeof a.fillOpacity?a.fillOpacity:c.fillOpacity}).style("fill",function(a){var b=f[a.fillKey];return b||f.defaultFill}).on("mouseover",function(a){var b=l.select(this);if(c.highlightOnHover){var d={fill:b.style("fill"),stroke:b.style("stroke"),"stroke-width":b.style("stroke-width"),"fill-opacity":b.style("fill-opacity")};b.style("fill",c.highlightFillColor).style("stroke",c.highlightBorderColor).style("stroke-width",c.highlightBorderWidth).style("fill-opacity",c.highlightFillOpacity).attr("data-previousAttributes",JSON.stringify(d))}c.popupOnHover&&e.updatePopup(b,a,c,g)}).on("mouseout",function(){var a=l.select(this);if(c.highlightOnHover){var b=JSON.parse(a.attr("data-previousAttributes"));for(var d in b)a.style(d,b[d])}l.selectAll(".datamaps-hoverover").style("display","none")}).transition().duration(400).attr("r",function(a){return a.radius}),h.exit().transition().delay(c.exitDelay).attr("r",0).remove()}function j(a){return Array.prototype.slice.call(arguments,1).forEach(function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a}function k(b){if("undefined"==typeof l||"undefined"==typeof m)throw new Error("Include d3.js (v3.0.3 or greater) and topojson on this page before creating a new map");return this.options=j(b,n),this.options.geographyConfig=j(b.geographyConfig,n.geographyConfig),this.options.bubblesConfig=j(b.bubblesConfig,n.bubblesConfig),this.options.arcConfig=j(b.arcConfig,n.arcConfig),l.select(this.options.element).select("svg").length>0&&a.call(this,this.options.element,this.options.height,this.options.width),this.addPlugin("bubbles",i),this.addPlugin("legend",f),this.addPlugin("arc",g),this.addPlugin("labels",h),this.options.disableDefaultStyles||c(),this.draw()}var l=window.d3,m=window.topojson,n={scope:"world",setProjection:b,projection:"equirectangular",dataType:"json",done:function(){},fills:{defaultFill:"#ABDDA4"},geographyConfig:{dataUrl:null,hideAntarctica:!0,borderWidth:1,borderColor:"#FDFDFD",popupTemplate:function(a){return'<div class="hoverinfo"><strong>'+a.properties.name+"</strong></div>"},popupOnHover:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2},bubblesConfig:{borderWidth:2,borderColor:"#FFFFFF",popupOnHover:!0,popupTemplate:function(a,b){return'<div class="hoverinfo"><strong>'+b.name+"</strong></div>"},fillOpacity:.75,animate:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2,highlightFillOpacity:.85,exitDelay:100},arcConfig:{strokeColor:"#DD1C77",strokeWidth:1,arcSharpness:1,animationSpeed:600}};k.prototype.draw=function(){function a(a){b.options.dataUrl&&l[b.options.dataType](b.options.dataUrl,function(a){if("csv"===b.options.dataType&&a&&a.slice){for(var c={},d=0;d<a.length;d++)c[a[d].id]=a[d];a=c}Datamaps.prototype.updateChoropleth.call(b,a)}),d.call(b,a),e.call(b),(b.options.geographyConfig.popupOnHover||b.options.bubblesConfig.popupOnHover)&&(hoverover=l.select(b.options.element).append("div").attr("class","datamaps-hoverover").style("z-index",10001).style("position","absolute")),b.options.done(b)}var b=this,c=b.options,f=c.setProjection.apply(b,[c.element,c]);return this.path=f.path,this.projection=f.projection,c.geographyConfig.dataUrl?l.json(c.geographyConfig.dataUrl,function(c,d){if(c)throw new Error(c);b.customTopo=d,a(d)}):a(this[c.scope+"Topo"]),this},k.prototype.worldTopo="__WORLD__",k.prototype.usaTopo="__USA__",k.prototype.chinaTopo={type:"Topology",objects:{china:{type:"GeometryCollection",geometries:[{type:"MultiPolygon",properties:{name:"Hongkong"},id:"Hongkong",arcs:[[[0]],[[1]],[[2]],[[3,4]]]},{type:"MultiPolygon",properties:{name:"Macao"},id:"Macao",arcs:[[[5]],[[6]]]},{type:"MultiPolygon",properties:{name:"Taiwan"},id:"Taiwan",arcs:[[[7]],[[8]],[[9]],[[10]],[[11]],[[12]],[[13]],[[14]]]},{type:"Polygon",properties:{name:"Gansu"},id:"Gansu",arcs:[[15,16,17,18,19,20,21]]},{type:"Polygon",properties:{name:"Qinghai"},id:"Qinghai",arcs:[[22,23,24,-19]]},{type:"MultiPolygon",properties:{name:"Guangxi"},id:"Guangxi",arcs:[[[25]],[[26]],[[27]],[[28,29,30,31,32]]]},{type:"Polygon",properties:{name:"Guizhou"},id:"Guizhou",arcs:[[33,-32,34,35,36]]},{type:"Polygon",properties:{name:"Chongqing"},id:"Chongqing",arcs:[[37,38,-37,39,40]]},{type:"Polygon",properties:{name:"Beijing"},id:"Beijing",arcs:[[41,42,43,44]]},{type:"MultiPolygon",properties:{name:"Fujian"},id:"Fujian",arcs:[[[45]],[[46]],[[47]],[[48]],[[49]],[[50]],[[51]],[[52]],[[53]],[[54]],[[55]],[[56]],[[57]],[[58]],[[59]],[[60]],[[61]],[[62]],[[63,64,65,66]]]},{type:"Polygon",properties:{name:"Anhui"},id:"Anhui",arcs:[[67,68,69,70,71,72]]},{type:"MultiPolygon",properties:{name:"Guangdong"},id:"Guangdong",arcs:[[[73]],[[74]],[[75]],[[76]],[[77]],[[78]],[[79]],[[80]],[[81]],[[82]],[[83]],[[84]],[[85]],[[86]],[[87]],[[88]],[[89]],[[90]],[[91]],[[92]],[[93]],[[94]],[[95]],[[96,-65,97,-5,98,-29,99]]]},{type:"Polygon",properties:{name:"Xizang"},id:"Xizang",arcs:[[-24,100,101,102,103]]},{type:"Polygon",properties:{name:"Xinjiang"},id:"Xinjiang",arcs:[[-20,-25,-104,104]]},{type:"Polygon",properties:{name:"Hainan"},id:"Hainan",arcs:[[105]]},{type:"Polygon",properties:{name:"Ningxia"},id:"Ningxia",arcs:[[106,-16,107]]},{type:"Polygon",properties:{name:"Shaanxi"},id:"Shaanxi",arcs:[[108,109,110,-41,111,-17,-107,112]]},{type:"Polygon",properties:{name:"Shanxi"},id:"Shanxi",arcs:[[113,-109,114,115]]},{type:"Polygon",properties:{name:"Hubei"},id:"Hubei",arcs:[[-70,116,117,-38,-111,118]]},{type:"Polygon",properties:{name:"Hunan"},id:"Hunan",arcs:[[119,-100,-33,-34,-39,-118]]},{type:"Polygon",properties:{name:"Sichuan"},id:"Sichuan",arcs:[[-112,-40,-36,120,-101,-23,-18]]},{type:"Polygon",properties:{name:"Yunnan"},id:"Yunnan",arcs:[[-35,-31,121,-102,-121]]},{type:"MultiPolygon",properties:{name:"Hebei"},id:"Hebei",arcs:[[[122]],[[-43,123]],[[124,125,126,-45,127,128,129,130,-116,131]]]},{type:"Polygon",properties:{name:"Henan"},id:"Henan",arcs:[[132,-71,-119,-110,-114,-131]]},{type:"MultiPolygon",properties:{name:"Liaoning"},id:"Liaoning",arcs:[[[133]],[[134]],[[135]],[[136]],[[137]],[[138]],[[139]],[[140]],[[141]],[[142]],[[143]],[[144,-125,145,146]]]},{type:"MultiPolygon",properties:{name:"Shandong"},id:"Shandong",arcs:[[[147]],[[148]],[[149]],[[150]],[[151]],[[152]],[[153,-72,-133,-130,154]],[[155]],[[156]]]},{type:"MultiPolygon",properties:{name:"Tianjin"},id:"Tianjin",arcs:[[[157]],[[158]],[[159]],[[160,-128,-44,-124,-42,-127]]]},{type:"Polygon",properties:{name:"Jiangxi"},id:"Jiangxi",arcs:[[161,-66,-97,-120,-117,-69]]},{type:"MultiPolygon",properties:{name:"Jiangsu"},id:"Jiangsu",arcs:[[[162]],[[163]],[[164]],[[165,166,-73,-154,167]]]},{type:"MultiPolygon",properties:{name:"Shanghai"},id:"Shanghai",arcs:[[[168]],[[169]],[[170,171,-166]],[[172]]]},{type:"MultiPolygon",properties:{name:"Zhejiang"},id:"Zhejiang",arcs:[[[173]],[[174]],[[175]],[[176]],[[177]],[[178]],[[179]],[[180]],[[181]],[[182]],[[183]],[[184]],[[185]],[[186]],[[187]],[[188]],[[189]],[[190]],[[191]],[[192]],[[193]],[[194]],[[195]],[[196]],[[197]],[[198]],[[199]],[[200]],[[201]],[[202]],[[203]],[[204]],[[205]],[[206]],[[207]],[[208]],[[209]],[[-172,210,-67,-162,-68,-167]]]},{type:"Polygon",properties:{name:"Jilin"},id:"Jilin",arcs:[[211,-147,212,213]]},{type:"Polygon",properties:{name:"Inner Mongol"},id:"Inner Mongol",arcs:[[214,-213,-146,-132,-115,-113,-108,-22,215]]},{type:"Polygon",properties:{name:"Heilongjiang"},id:"Heilongjiang",arcs:[[-214,-215,216]]},{type:"MultiPolygon",properties:{name:"Paracel Islands"},id:"Paracel Islands",arcs:[[[217]],[[218]],[[219]],[[220]],[[221]],[[222]],[[223]],[[224]]]}]}},arcs:[[[6623,1706],[1,-3],[1,1],[0,-2],[-1,-1],[2,0],[2,0],[1,0],[-2,-2],[-1,-2],[1,-3],[-1,0],[-4,0],[0,2],[0,8],[-1,0],[0,2],[0,3],[1,0],[1,-3]],[[6639,1722],[1,-1],[1,0],[1,-1],[1,-3],[2,-2],[0,-2],[-1,-2],[0,-3],[1,-2],[-1,0],[1,-5],[-2,-1],[0,1],[-1,2],[0,3],[-1,3],[-1,1],[-1,-1],[1,-1],[0,-2],[-1,0],[-1,-2],[1,-3],[0,-2],[0,-1],[-2,-1],[0,4],[1,1],[-1,1],[-1,-1],[-1,0],[1,2],[-2,1],[1,1],[0,2],[-2,0],[1,3],[-3,-2],[0,-2],[-1,0],[0,2],[0,1],[-2,2],[-2,0],[-1,1],[-1,2],[0,1],[-1,2],[-1,1],[0,1],[0,1],[1,0],[2,1],[1,1],[2,-1],[1,-1],[2,0],[2,0],[1,2],[2,1],[1,-1],[2,-1]],[[6612,1734],[0,-3],[-1,1],[-1,1],[-1,0],[-1,-4],[-2,0],[0,-3],[1,1],[-1,-4],[1,-6],[-3,0],[-1,1],[2,-4],[-3,-3],[4,-4],[-2,-3],[-3,-2],[-1,2],[0,6],[-2,0],[-1,0],[-2,0],[-3,-4],[-1,0],[-1,-1],[2,-1],[0,-1],[-2,-2],[-2,0],[-2,3],[0,2],[-1,-1],[-2,-2],[-3,-3],[-2,-1],[-1,2],[0,3],[0,3],[0,2],[2,0],[0,2],[1,1],[0,2],[-1,1],[2,2],[1,1],[1,1],[2,2],[1,3],[3,0],[2,0],[1,-2],[1,1],[4,4],[3,-1],[1,3],[1,0],[1,3],[3,4],[1,-2],[4,4],[1,-1],[0,-1],[0,-2]],[[6641,1794],[1,0],[-1,-2],[-1,-2],[-1,-2],[-1,0],[0,-3],[1,1],[0,1],[2,1],[1,1],[1,3],[1,1],[0,-1],[1,1],[1,-1],[-1,-2],[1,0],[1,-2],[0,-1],[1,-1],[1,1],[0,-1],[0,-2],[0,-2],[1,0],[1,-2],[1,-1],[5,2],[1,1],[0,-1],[-3,-4],[-2,-2],[-2,-2],[-2,-1],[-2,-2],[0,-2],[-2,-2],[-1,0],[-3,5],[-2,-1],[-1,1],[0,-1],[0,-2],[1,-1],[0,-2],[-1,1],[0,1],[-1,1],[-2,0],[-1,-2],[-3,-1],[1,-1],[2,-2],[2,-2],[2,-2],[0,-2],[1,-1],[-1,-3],[1,1],[1,4],[2,2],[0,3],[1,0],[2,-1],[2,0],[1,-2],[-1,-2],[1,-2],[1,3],[2,2],[-2,4],[2,3],[2,1],[0,2],[3,4],[1,-1],[1,-1],[-1,-2],[1,-1],[1,-4],[-1,-2],[1,-2],[1,2],[0,-4],[1,0],[0,4],[1,6],[2,-2],[0,-2],[0,-2],[3,0],[2,-1],[-1,-2],[1,-4],[-2,1],[-1,1],[-2,-6],[1,1],[1,-4],[1,-5],[0,-1],[0,2],[-2,0],[1,-2],[-1,-3],[-1,-1],[-2,-1],[0,-3],[-1,2],[0,3],[-2,-2],[0,2],[-1,2],[0,4],[-2,2],[0,2],[-2,-2],[-1,0],[-3,2],[-1,0],[-2,-3],[1,-4],[1,-2],[0,-2],[-2,2],[0,3],[-1,-1],[-1,-2],[2,-3],[1,-6],[1,-1],[2,0],[0,-3],[1,0],[1,0],[1,-3],[-1,-1],[-1,-2],[-1,1],[0,-2],[0,-2],[2,1],[0,-2],[0,-2],[-1,-1],[-1,2],[-2,1],[0,3],[-1,4],[-1,2],[0,2],[0,1],[-2,2],[0,-4],[0,-3],[-2,-4],[-2,3],[-3,5],[1,-2],[-1,0],[-3,4],[-1,-2],[1,-2],[0,-1],[-1,1],[-1,-2],[-1,-1],[0,-1],[-1,2],[0,3],[0,1],[-1,1],[0,2],[-2,2],[-2,2],[-2,1],[0,-1],[-2,4],[0,4],[-1,1],[-2,-2],[-3,1],[0,-1],[-1,0],[-1,-1],[-1,0],[-1,0],[-2,-1],[-3,-1],[-1,0],[0,2],[-3,0],[-1,1],[-1,1],[-1,3],[-1,0],[0,2],[-1,-1],[1,-3],[-3,0],[-2,-2],[-2,1],[-1,0],[-2,2],[1,3],[-1,3],[-2,3],[2,3],[3,0],[2,2],[2,6],[4,2],[3,8],[1,0],[2,-1],[-1,-1],[0,-2],[1,1],[2,0],[1,1],[-1,2],[0,2],[2,1],[3,1],[1,1],[0,2],[1,1],[1,0],[1,1],[0,2]],[[6617,1787],[1,1],[3,0],[1,-1],[1,-1],[2,3],[1,1],[2,-1],[1,4],[1,2],[2,1],[1,-2],[3,0],[4,0],[1,0]],[[6531,1690],[2,-1],[1,0],[0,-1],[-1,-1],[-1,0],[0,-3],[1,0],[1,-1],[1,1],[0,-1],[-1,0],[1,-1],[1,0],[0,-1],[0,-1],[-1,-1],[-1,1],[1,-1],[-1,-1],[-1,1],[0,-1],[-1,-1],[1,-2],[-1,0],[-1,1],[-1,-1],[-1,0],[-1,2],[1,0],[0,7],[-2,2],[0,1],[0,2],[2,1],[1,1],[1,-1]],[[6531,1703],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[1,1],[0,-1],[-1,0],[0,-1],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-1,0],[0,-1],[-1,2],[0,1],[0,1],[1,1],[1,2],[1,2],[-1,1],[0,-1],[-1,0],[0,1],[0,1],[2,0],[0,1],[1,-1],[1,-1],[1,0]],[[7844,1650],[-4,-1],[-4,3],[-4,4],[-3,4],[1,2],[0,2],[-1,3],[-1,2],[12,0],[0,-2],[0,-1],[-1,-2],[0,-3],[1,-2],[3,-4],[1,-2],[0,-3]],[[7829,1816],[0,-1],[-1,0],[-1,0],[-1,1],[-1,1],[-2,4],[-1,4],[1,1],[6,0],[1,-2],[-1,-4],[0,-1],[0,-2],[0,-1]],[[7587,2027],[-1,-1],[2,5],[9,13],[6,12],[2,1],[-6,-13],[-3,-5],[-2,-3],[-2,-3],[-2,-2],[-3,-4]],[[7520,2069],[0,-1],[2,1],[2,-1],[2,1],[1,2],[3,-8],[0,-4],[0,-2],[-1,1],[-2,2],[-1,0],[-3,-2],[-2,0],[-1,-1],[0,-1],[-1,-4],[0,-1],[-3,-2],[-3,-1],[-3,2],[-3,4],[1,3],[1,-3],[3,-1],[3,1],[2,3],[-2,0],[-1,2],[-1,1],[-1,2],[0,-1],[-1,-1],[0,4],[0,4],[1,0],[2,-1],[4,4],[3,2],[-1,-4]],[[7495,2060],[-2,0],[1,2],[0,1],[1,1],[2,0],[1,1],[1,2],[0,4],[2,10],[2,2],[2,-3],[-1,-1],[-1,-4],[-2,-7],[0,-3],[0,-1],[0,-2],[-2,0],[-1,0],[-1,0],[-1,-1],[-1,-1]],[[7516,2077],[-1,-1],[-1,1],[0,4],[-1,2],[-3,4],[3,4],[2,-2],[2,-2],[1,-3],[-1,-2],[0,-3],[-1,-2]],[[7331,2310],[3,-12],[-1,-8],[-2,-4],[-5,4],[-3,1],[-5,0],[-4,-5],[-3,-5],[-2,-2],[-2,2],[-2,0],[-1,1],[-1,2],[0,1],[2,2],[0,1],[0,2],[0,3],[0,4],[-1,3],[-1,2],[1,1],[5,3],[6,-6],[5,1],[0,8],[2,5],[4,2],[5,-6]],[[7852,2499],[2,-6],[1,0],[1,1],[2,0],[2,0],[0,-1],[-1,-1],[-1,-2],[0,-2],[1,-1],[2,-3],[1,0],[1,-2],[2,-1],[29,-10],[2,-2],[-1,-4],[-1,-2],[1,-5],[1,-8],[2,-4],[1,-1],[5,1],[2,0],[2,-1],[3,-2],[1,-2],[-13,-9],[-3,-5],[-12,-20],[-2,-5],[-1,-6],[-1,-7],[0,-7],[0,-7],[2,-14],[0,-4],[-1,-3],[0,-8],[2,-5],[4,-4],[5,-1],[0,-2],[-2,0],[-2,0],[-2,-1],[-1,-1],[2,-4],[1,-6],[-1,-6],[-4,-3],[0,-2],[1,-3],[1,-2],[0,-3],[-2,-2],[-3,-3],[-5,-8],[0,-2],[0,-7],[0,-2],[-1,-2],[-1,-3],[0,-6],[0,-2],[-1,-1],[0,-1],[0,-2],[1,-1],[0,-1],[1,-1],[0,-1],[-1,-2],[-3,-6],[-4,-8],[-3,-3],[-1,-2],[0,-2],[0,-1],[-4,-5],[-2,-2],[-2,-5],[-1,-12],[-5,-10],[-1,-4],[0,-4],[1,-5],[1,-2],[1,-1],[1,-1],[0,-3],[-1,-3],[-2,-6],[-1,-3],[0,-6],[-2,-15],[-4,-15],[-5,-37],[-3,-9],[-7,-59],[-3,-25],[-1,-4],[-5,-9],[-1,-5],[-1,-5],[-1,-11],[0,-9],[-1,-9],[-3,-9],[-1,-2],[-3,-4],[-1,-2],[-1,-2],[-1,-5],[-3,-8],[-2,-12],[-1,-5],[-7,-14],[0,-3],[-9,-11],[-2,-3],[0,-3],[0,-5],[0,-3],[-1,-3],[-1,-3],[-3,-6],[-3,-4],[-10,-10],[-7,-11],[-2,-1],[-1,-3],[-3,-12],[-2,-5],[-5,-9],[-2,-6],[-1,-11],[-3,-16],[-6,-15],[-1,-6],[-1,-15],[0,-13],[1,-48],[-1,-7],[-2,-6],[-2,-2],[-2,-4],[0,-7],[1,-9],[0,-5],[-3,6],[-4,5],[-5,3],[-5,2],[0,-6],[-2,-3],[-2,1],[-2,3],[0,2],[0,7],[-3,8],[0,3],[0,2],[0,3],[0,10],[0,3],[2,3],[0,3],[-12,48],[-1,3],[-4,6],[-2,9],[-2,3],[-5,6],[-2,1],[0,1],[-1,0],[-1,4],[0,1],[-3,3],[-6,4],[-3,3],[-3,4],[-1,1],[-2,2],[-1,0],[-1,-1],[-1,0],[-9,9],[-7,16],[8,-14],[-1,7],[-1,4],[-2,2],[-3,6],[-5,8],[-3,4],[-1,4],[2,4],[0,4],[0,6],[-2,5],[-3,7],[-3,9],[-1,5],[0,2],[1,4],[1,2],[-1,1],[-1,1],[0,1],[-1,2],[-2,5],[0,2],[-1,12],[-1,6],[-1,4],[-3,3],[3,3],[2,6],[-1,5],[-4,1],[0,-2],[-1,-3],[-1,-3],[-2,0],[-1,2],[0,7],[0,2],[-3,2],[-1,-2],[-1,-3],[-2,0],[-2,2],[0,3],[0,3],[1,2],[2,2],[2,0],[2,1],[1,3],[-1,2],[-6,2],[0,1],[5,1],[-1,2],[-2,3],[-2,3],[0,4],[2,1],[2,1],[0,3],[0,3],[-1,3],[1,3],[1,3],[1,3],[0,2],[0,2],[2,8],[1,2],[2,0],[-3,3],[1,3],[3,1],[2,1],[1,0],[-1,3],[-1,-2],[-1,1],[-2,0],[0,3],[2,5],[2,0],[3,0],[-2,10],[-3,7],[1,4],[0,1],[-1,2],[0,1],[1,2],[0,3],[3,4],[-5,0],[0,8],[2,5],[0,15],[1,11],[1,9],[3,7],[1,10],[1,8],[1,2],[4,8],[1,2],[0,2],[4,4],[1,3],[1,6],[0,3],[5,6],[1,3],[2,7],[2,7],[4,15],[2,4],[1,3],[2,1],[1,1],[1,2],[1,2],[0,3],[4,4],[0,2],[1,10],[0,2],[2,3],[7,12],[1,3],[2,3],[1,6],[2,11],[6,15],[1,9],[3,5],[8,14],[4,7],[1,4],[1,6],[1,5],[4,9],[1,6],[1,3],[4,1],[1,2],[1,3],[1,2],[3,4],[2,3],[4,1],[4,-1],[0,5],[1,4],[3,3],[1,5],[0,2],[3,2],[1,5],[3,10],[1,3],[1,1],[0,2],[-1,1],[0,2],[1,3],[1,2],[1,2],[0,3],[1,3],[1,3],[2,2],[1,0],[0,2],[0,2],[2,6],[1,3],[6,13],[4,7],[4,6],[12,5],[3,3],[2,3],[3,2],[5,3],[13,3],[7,2],[3,2],[3,4],[2,1],[1,1],[2,0],[2,-1],[1,-3],[1,-2],[1,-2],[2,2],[-2,5],[-4,5],[-2,2],[1,2],[1,2],[1,1],[1,0],[1,5],[2,5],[4,6],[6,4],[7,3],[7,-2],[2,-3],[7,-13]],[[5027,5721],[9,0],[9,11],[2,1],[2,-1],[7,-4],[26,-4],[4,-1],[1,-2],[-3,-2],[-3,-2],[-1,-3],[1,-3],[4,-3],[1,-1],[1,-2],[0,-3],[0,-1],[-1,-1],[-2,-2],[-2,-2],[-1,0],[-1,-1],[-1,-3],[0,-1],[-1,-1],[-1,-1],[-1,0],[-2,0],[-1,0],[-1,-1],[0,-1],[-1,-2],[-1,-1],[0,-1],[0,-2],[3,-4],[2,-1],[1,-2],[5,-2],[1,0],[2,0],[1,0],[1,1],[1,0],[1,2],[4,5],[1,1],[1,1],[3,-1],[3,-1],[9,-7],[0,-1],[1,-1],[0,-2],[1,-4],[0,-2],[1,-1],[2,-3],[2,-5],[1,-5],[1,-3],[1,-3],[0,-1],[1,-1],[7,-9],[4,-4],[4,-2],[12,-4],[10,-8],[5,-6],[1,-3],[3,-10],[16,-27],[3,-7],[0,-4],[-14,-11],[-1,-1],[-1,-2],[-1,-2],[0,-4],[0,-3],[8,-38],[7,-15],[4,-15],[2,-3],[0,-2],[3,-3],[5,-6],[2,-5],[2,-6],[1,-4],[3,-19],[1,-4],[0,-3],[-1,-5],[0,-2],[0,-1],[-2,-2],[0,-3],[0,-4],[1,-8],[0,-4],[0,-3],[-1,-2],[-1,-1],[-1,-2],[-11,-8],[-1,-1],[-1,-1],[-2,-5],[0,-2],[-2,-8],[0,-5],[0,-7],[0,-4],[1,-3],[0,-1],[5,-12],[2,-5],[0,-1],[1,-1],[1,-1],[1,-1],[1,-2],[2,-7],[0,-2],[1,-2],[0,-1],[1,-2],[1,-1],[1,-3],[0,-1],[1,-1],[1,0],[1,0],[1,0],[1,-1],[2,-1],[15,-13],[3,0],[4,-1],[2,2],[4,2],[4,2],[7,0],[3,-2],[1,-3],[-2,-2],[-2,-1],[-2,-1],[-1,-1],[-1,-2],[1,-3],[1,-4],[1,-4],[4,-7],[10,-16],[3,-6],[4,-7],[2,-2],[3,0],[2,2],[3,4],[2,2],[3,2],[2,0],[21,-10],[2,-2],[1,-2],[-1,-1],[-2,-1],[-25,-4],[-1,-1],[-2,-1],[-1,-3],[1,-4],[1,-2],[2,-1],[2,0],[2,1],[8,5],[3,1],[3,0],[5,-2],[10,1],[11,-4],[3,-1],[2,-3],[4,-8],[3,-6],[3,-4],[2,-3],[3,-7],[2,-4],[4,-5],[4,0],[3,1],[11,14],[2,3],[1,2],[1,3],[2,8],[1,8],[0,8],[1,8],[0,1],[0,2],[-1,1],[0,1],[-1,2],[-1,0],[-2,1],[-4,1],[-1,1],[-1,1],[-2,5],[0,3],[-1,1],[0,2],[1,1],[0,1],[2,0],[11,0],[1,0],[1,0],[0,2],[0,1],[0,1],[-1,1],[0,1],[-5,3],[-1,2],[-2,4],[-1,2],[-1,11],[-1,4],[-1,3],[0,2],[0,1],[0,2],[1,1],[0,1],[1,1],[1,1],[2,1],[2,1],[8,1],[6,0],[6,-1],[2,-2],[1,0],[4,-2],[7,-1],[2,-1],[4,-6],[2,-2],[3,1],[1,1],[1,2],[0,2],[1,2],[2,2],[6,4],[4,1],[2,0],[1,1],[1,1],[1,3],[1,3],[5,3],[1,2],[0,2],[0,1],[-1,1],[0,1],[-4,5],[0,2],[-1,1],[0,1],[0,3],[-1,1],[0,2],[-1,1],[-3,4],[0,1],[0,1],[0,1],[1,0],[0,1],[1,1],[1,1],[2,1],[6,1],[2,1],[2,2],[0,2],[0,1],[-1,1],[-2,2],[-1,2],[0,1],[0,1],[1,1],[2,2],[1,2],[1,2],[-1,1],[-1,2],[0,2],[0,3],[0,3],[2,8],[0,4],[0,2],[-1,2],[-2,6],[-2,2],[0,1],[-2,2],[0,1],[-2,5],[-1,2],[-1,1],[-4,4],[-1,1],[-2,6],[-1,1],[0,1],[-1,1],[-1,0],[-6,-2],[-2,-1],[-1,1],[-2,0],[-8,5],[-4,3],[-8,9],[-2,2],[-1,0],[-1,0],[-1,0],[-3,-1],[-4,-3],[-1,0],[-1,-1],[-2,0],[-2,1],[-2,1],[-1,1],[-1,1],[-1,2],[-2,5],[0,3],[0,2],[1,1],[0,1],[3,2],[0,1],[1,1],[0,1],[0,1],[0,2],[0,2],[-1,19],[-1,3],[0,2],[-1,1],[-1,2],[-2,2],[-2,2],[-2,2],[-1,1],[-1,3],[0,1],[1,1],[1,1],[4,2],[3,3],[1,1],[0,1],[1,5],[-1,11],[-1,12],[0,5],[1,6],[0,1],[1,2],[0,1],[1,1],[7,5],[0,1],[1,0],[2,0],[1,0],[3,-2],[1,0],[1,1],[2,1],[1,2],[0,1],[5,15],[0,3],[1,2],[-1,1],[0,2],[0,1],[-6,15],[0,1],[-1,1],[-4,4],[-1,2],[0,1],[0,2],[0,1],[1,1],[3,2],[0,1],[1,2],[1,1],[3,10],[1,2],[0,2],[0,2],[0,1],[0,1],[-2,4],[0,1],[-1,2],[0,4],[1,3],[2,7],[0,2],[0,2],[0,11],[1,2],[0,2],[1,2],[0,1],[1,2],[1,0],[1,1],[4,1],[9,0],[4,-2],[1,-1],[2,-2],[9,-12],[7,-6],[5,-3],[2,0],[9,0],[3,0],[3,0],[5,3],[1,0],[5,1],[6,0],[10,-2],[9,-5],[2,-2],[5,-6]],[[5506,5633],[-1,-6],[0,-5],[1,-1],[0,-1],[1,-3],[0,-4],[0,-8],[0,-4],[-2,-8],[1,-1],[2,-1],[24,-6],[7,1],[2,0],[1,0],[2,-1],[2,-3],[1,-2],[-1,-1],[-1,-2],[0,-1],[1,-1],[3,-2],[11,-4],[8,-1],[5,1],[2,-1],[1,-1],[0,-2],[2,-1],[2,-3],[3,-1],[13,-5],[1,0],[7,-4],[1,-2],[2,-2],[0,-1],[4,-10],[1,-3],[2,-3],[2,-1],[1,-1],[5,-1],[4,-1],[1,-1],[1,-1],[0,-2],[-1,-4],[0,-1],[0,-2],[0,-2],[1,-2],[2,-2],[1,-1],[1,-1],[5,-1],[2,0],[7,-4],[2,0],[1,-1],[1,0],[1,1],[1,1],[2,4],[1,1],[1,1],[1,1],[1,-1],[1,-1],[1,-2],[1,-2],[2,-2],[1,0],[1,-1],[6,-1],[6,-3],[2,-1],[2,-1],[1,-2],[2,-1],[1,-3],[0,-1],[2,-5],[0,-1],[1,-2],[1,-2],[3,-3],[1,-1],[2,-1],[2,-1],[3,0],[2,0],[4,0],[2,0],[2,0],[1,-1],[2,-1],[1,-2],[1,-1],[2,0],[5,-2],[1,-1],[1,-1],[1,-1],[0,-1],[1,-1],[3,-5],[5,-4],[2,-3],[2,-2],[0,-2],[0,-1],[0,-2],[0,-2],[-2,-5],[-1,-3],[-1,-2],[-3,-4],[-2,-4],[0,-1],[-1,-2],[0,-2],[0,-1],[0,-2],[1,-2],[1,-3],[3,-4],[1,-4],[2,-3],[0,-1],[0,-3],[1,-6],[0,-3],[0,-10],[-1,-6],[-1,-5],[-2,-11],[0,-1],[-1,-2],[-1,-2],[-1,-2],[-2,-1],[-3,-1],[-2,-1],[-2,-1],[-1,-1],[-5,-9],[0,-1],[-2,-1],[-3,-2],[-3,-3],[-2,-1],[-1,-2],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-2],[1,-2],[3,-8],[1,-5],[0,-3],[0,-2],[0,-4],[-2,-19],[0,-2],[0,-2],[1,-3],[0,-3],[5,-14],[9,-17],[1,-19],[1,-14],[1,-8],[-1,-2],[0,-2],[-3,-3],[-6,-12],[-5,-8],[-1,-2],[-2,-1],[-1,-1],[-2,-1],[-7,-1],[-15,3],[-5,-1],[-2,0],[-6,-3],[-1,0],[-2,0],[-2,2],[-3,4],[-2,1],[-2,1],[-2,0],[-6,-1],[-3,-1],[-1,-1],[-3,-1],[-6,-5],[-4,-3],[-5,-1],[-1,-1],[-1,0],[-1,-2],[-1,-1],[-3,-2],[-1,0],[-1,0],[0,1],[-1,1],[-1,1],[0,1],[0,1],[-1,4],[-1,1],[-3,2],[-10,2],[-12,9],[-7,3],[-1,-1],[-1,-2],[0,-1],[0,-1],[0,-1],[1,-3],[0,-2],[0,-2],[0,-3],[-1,-1],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-6,-2],[-1,0],[0,-2],[0,-1],[2,-4],[3,-8],[9,-26],[6,-8],[5,-6],[1,-2],[1,-2],[1,-1],[0,-1],[0,-1],[0,-3],[-2,-3],[-6,-2],[-7,-2],[-3,-2],[-1,0],[-3,-1],[-14,2],[-9,2],[-2,-1],[-1,-1],[-1,-1],[-3,-4],[-1,-2],[-1,-1],[-1,0],[-2,0],[-3,0],[-8,4],[-4,0],[-3,0],[-1,-1],[-2,-1],[-2,0],[-1,0],[-3,1],[-1,1],[-2,0],[-2,0],[-1,-1],[-1,-1],[-2,-5],[-1,-1],[-1,-1],[-3,-1],[-1,0],[-1,-1],[-1,-2],[-1,-1],[-1,1],[-2,1],[-1,1],[-2,4],[-1,3],[-1,1],[-2,3],[-1,2],[-7,6],[-2,2],[-4,9],[-2,4],[-1,2],[-2,2],[-2,1],[-12,3],[-1,0],[-1,1],[-1,1],[-1,3],[-2,2],[-1,1],[-2,0],[-15,-1],[-5,2],[-1,0],[-24,-5],[-7,3],[-1,-1],[-2,-1],[-2,-3],[-1,-2],[-2,-3],[-7,-5],[0,-3],[0,-1],[1,-4],[1,-2],[0,-1],[0,-2],[-1,-7],[0,-2],[0,-2],[0,-2],[1,-1],[8,-17],[0,-2],[0,-2],[0,-3],[-1,-4],[-1,-3],[-1,-1],[-1,-1],[-1,-2],[-1,-2],[-1,-3],[-3,-9],[0,-2],[-1,-1],[-1,-1],[-2,-2],[-6,-4],[-1,-1],[-1,-2],[-2,-3],[-2,-7],[-2,-4],[0,-1],[-1,-1],[-1,-2],[-3,-3],[-2,-1],[-1,-2],[-1,-2],[-1,-2],[0,-1],[0,-3],[1,-4],[4,-7],[2,-2],[1,-1],[13,0],[5,1],[1,0],[2,-1],[2,-2],[2,-3],[2,-3],[3,-1],[3,-1],[4,-2],[3,-4],[1,-5],[1,-5],[3,-4],[3,-3],[2,-3],[0,-1],[0,-3],[3,-20],[-1,-3],[0,-3],[-1,-3],[-2,-1],[-2,0],[-5,2],[-4,1],[-5,3],[-3,1],[-3,0],[-2,-1],[-4,-3],[3,-2],[3,-1],[2,-1],[1,-2],[6,-22],[0,-3],[0,-3],[-1,-3],[-2,-1],[-1,0],[-4,1],[-2,-1],[-2,-4],[-1,-10],[-2,-7],[-7,-19],[-4,-8],[0,-1],[-1,-1],[0,-2],[0,-4],[0,-3],[2,-5],[2,-1],[2,-1],[1,0],[1,-1],[1,0],[1,-2],[1,-2],[0,-3],[-1,-2],[-3,-2],[-1,-1],[-1,-2],[0,-3],[1,-5],[1,-5],[0,-4],[0,-4],[0,-3],[1,-3],[2,-4],[1,-1],[3,-2],[2,-3],[3,-4],[1,-2],[1,-3],[1,-2],[0,-3],[1,-4],[-1,-3],[-2,-9],[-8,-5],[-4,1],[-3,4],[-1,2],[-1,5],[-1,3],[-1,2],[-2,1],[-2,1],[-2,1],[-2,-1],[-6,-2],[-2,-1],[-2,1],[-2,1],[-2,0],[-3,-2],[-5,-4],[-12,-7],[-3,0],[-2,1],[-4,2],[-1,2],[-1,1],[-1,4],[-1,2],[-1,2],[-2,0],[-11,0],[-1,-1],[-1,0],[-1,-3],[0,-2],[-1,-4],[-1,-2],[-2,-3],[-2,-2],[-4,-2],[-4,-2],[-5,-5],[-1,-1],[-2,-1],[-2,-1],[-2,-2],[-3,-17],[-2,-4],[-2,-3],[-3,-1],[-5,0],[-1,-1],[-1,-1],[-1,-2],[-1,-4],[0,-2],[0,-4],[1,-3],[0,-1],[0,-1],[1,-2],[0,-3],[2,-2],[1,-3],[16,-14],[3,0],[4,0],[3,-1],[2,-1],[1,-1],[0,-2],[1,-1],[-1,-2],[-3,-8],[0,-3],[-1,-3],[0,-3],[2,-24],[0,-7],[0,-2],[-1,-2],[-1,-4],[0,-2],[-1,-2],[-1,-2],[-1,-2],[-1,-1],[-2,-1],[-2,1],[-4,0],[-4,-2],[-3,-3],[-5,-8],[-3,-2],[-6,-4],[-5,-2],[-4,0],[-23,6]],[[5214,4533],[-1,3],[-2,0],[-3,0],[-3,-1],[-2,-1],[-3,-3],[-2,-3],[-3,-4],[-1,-4],[0,-3],[0,-3],[1,-4],[8,-13],[1,-2],[0,-1],[0,-4],[-2,-2],[-1,-2],[-5,-2],[-3,-3],[-4,-4],[-6,-8],[-3,-4],[-4,-3],[-1,0],[-3,1],[-4,4],[-1,1],[-1,0],[-2,0],[-2,-2],[-3,-7],[-3,-6],[-2,-2],[-3,-1],[-2,0],[-2,1],[-2,2],[-1,2],[-1,4],[-1,1],[-2,1],[-2,0],[-16,-6],[-3,-1],[-3,0],[-2,2],[-8,6],[-2,1],[-2,0],[-9,0],[-9,1],[-10,3],[-4,1],[-5,3],[-5,4],[-12,13],[-9,14],[-2,2],[-2,3],[-10,2],[-5,3],[-2,2],[-2,3],[-1,2],[-1,3],[0,4],[2,11],[3,4],[2,4],[3,1],[7,0],[1,2],[1,2],[3,8],[1,5],[0,3],[0,3],[-1,3],[-1,2],[-12,20],[-2,5],[-4,9],[-1,5],[-1,7],[0,9],[0,3],[1,2],[1,1],[1,1],[1,1],[2,1],[2,0],[6,0],[1,0],[2,2],[0,2],[-1,1],[-1,2],[-1,2],[-2,1],[-6,2],[-2,1],[-2,2],[-2,3],[-4,8],[-1,2],[-4,3],[-9,18],[-1,5],[0,3],[0,3],[1,3],[0,5],[0,7],[-1,5],[-2,4],[-2,4],[-2,4],[-2,2],[-4,2],[-29,4],[-18,-3],[-6,0],[-4,1],[-8,4],[-2,1],[-2,3],[-2,1],[-2,1],[-4,0],[-11,-3],[-4,1],[-1,2],[0,3],[0,4],[4,11],[1,3],[1,4],[-1,2],[-2,0],[-4,-1],[-13,-11],[-4,-2],[-4,-1],[-6,-1],[-9,1],[-4,1],[-7,5],[-4,4],[-2,2],[-1,2],[0,3],[0,2],[1,7],[0,4],[0,3],[-1,2],[-1,2],[-5,6],[-1,2],[0,4],[0,4],[0,5],[0,5],[1,5],[0,9],[1,9],[-1,6],[-1,7],[-1,4],[-1,3],[-2,2],[-13,6],[-3,2],[-2,2],[-1,2],[-5,10],[-3,6],[-2,3],[-2,3],[-3,1],[-4,0],[-5,-4],[-7,-2],[-2,0],[-3,-1],[-3,-1],[-2,-3],[-5,-8],[-2,-4],[-8,-6],[-10,-7],[-2,-1],[-1,-2],[-1,-3],[1,-3],[2,-2],[4,-1],[2,-1],[1,-1],[1,-2],[0,-2],[-1,-2],[-3,-1],[-23,-3],[-3,-1],[-3,-3],[-3,-5],[-3,-11],[-2,-3],[-3,-3],[-2,-1],[-2,0],[-1,1],[-1,0],[-1,-1],[-1,1],[0,2],[-1,1],[-1,0],[-2,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-2,-2],[-1,0],[-8,-4],[-4,-4],[-1,-1],[4,-6],[10,-21],[1,-3],[-1,-2],[-1,-1],[-1,-2],[0,-3],[2,-1],[4,-1],[3,-2],[2,-4],[2,-4],[-2,-2],[-1,-1],[-1,-2],[-2,-2],[3,-1],[2,1],[2,2],[1,1],[1,-3],[0,-2],[-1,-2],[-1,-3],[-1,-6],[0,-6],[1,-2],[2,-4],[0,-1],[2,-5],[8,-4],[2,-4],[1,0],[10,-10],[-1,-2],[-3,2],[-1,-1],[0,-3],[0,-3],[1,-4],[1,-3],[3,-6],[-1,0],[-1,1],[-1,0],[-2,1],[1,-3],[0,-1],[-3,-2],[-9,-11],[-2,0],[-2,-1],[-1,0],[-1,-1],[-7,-2],[-3,-2],[-1,-2],[-4,-9],[-1,-2],[-2,-2],[-2,-1],[-9,-3],[-2,-1],[-2,-2],[-2,-2],[-1,-3],[-2,-10],[-3,-6],[-2,-2],[-2,0],[-7,2],[-4,-1],[-2,-1],[-1,0],[-3,-3],[-11,-15],[-6,-7],[-2,0],[0,3],[0,3],[1,3],[0,4],[-1,4],[-1,5],[-2,3],[-1,2],[-1,3],[0,4],[2,5],[1,4],[2,3],[2,2],[1,1],[1,2],[2,4],[3,12],[1,3],[1,3],[0,3],[1,4],[0,3],[-1,3],[-1,3],[0,2],[-4,6],[-1,3],[1,2],[0,3],[0,2],[-1,6],[-5,7],[-1,3],[-2,0],[-3,4],[-1,1],[-1,0],[-2,0],[0,-1],[-1,-2],[1,-9],[-2,-8]],[[4606,4697],[-4,0],[-1,0],[-2,-1],[-1,-2],[-1,-2],[-1,-1],[-2,-1],[-11,1],[-3,0],[-1,1],[-3,18],[-3,14],[-2,5],[-3,7],[-4,5],[-1,2],[-1,1],[-3,-1],[-1,-1],[-4,-3],[-1,-1],[-1,-1],[-1,0],[-4,-7],[-2,-1],[-1,-1],[-2,-1],[-2,-1],[-4,0],[-5,0],[-5,2],[-8,6],[-2,1],[-2,1],[-2,-2],[-4,-4],[-2,0],[-1,3],[-1,7],[1,11],[1,6],[-1,6],[-1,7],[-3,9],[-1,3],[-3,3],[-2,0],[-4,0],[-2,1],[-3,3],[-2,0],[-2,1],[-1,0],[-1,0],[-6,7],[-4,6],[-4,9],[-5,17],[-7,16],[-10,18],[-1,5],[0,4],[0,4],[3,15],[1,4],[1,5],[3,4],[7,8],[4,7],[6,5],[4,-2],[12,-11],[4,-2],[4,-2],[12,-1],[3,-1],[3,-2],[3,-2],[2,0],[2,0],[1,0],[2,0],[2,-1],[2,-3],[1,-1],[2,-1],[2,-1],[1,-2],[1,-2],[2,0],[5,-2],[10,-4],[6,-1],[2,-2],[1,-1],[1,-1],[2,0],[3,1],[2,-1],[7,-2],[6,-5],[1,-3],[1,-2],[2,-1],[1,-3],[-1,-3],[2,-2],[6,-4],[4,-2],[1,-1],[0,-1],[1,-1],[2,1],[1,-5],[4,-4],[3,-2],[1,2],[3,3],[3,4],[2,2],[2,4],[1,3],[1,2],[2,2],[2,-1],[8,-3],[3,0],[2,2],[0,2],[1,3],[1,3],[1,1],[3,0],[2,1],[1,2],[1,3],[-1,3],[0,2],[1,3],[4,1],[2,2],[2,2],[0,5],[2,3],[3,1],[6,0],[2,1],[1,2],[2,8],[1,3],[1,2],[3,1],[2,2],[0,1],[0,2],[0,2],[0,3],[-1,3],[-5,10],[-3,8],[0,3],[-1,2],[0,3],[0,1],[-1,1],[-7,6],[-5,4],[-2,0],[-1,0],[-7,-1],[-1,1],[-2,0],[-2,1],[-2,2],[-2,2],[-2,3],[-1,3],[-1,3],[-1,2],[0,3],[0,8],[-1,3],[-1,3],[-2,1],[-2,-1],[-1,-1],[-5,-7],[-2,-1],[-2,-1],[-2,0],[-2,0],[-2,2],[-2,2],[-1,2],[-2,3],[-1,3],[0,3],[-1,3],[1,3],[2,3],[1,1],[5,2],[2,2],[2,2],[3,5],[1,1],[4,-4],[3,0],[2,2],[1,2],[1,3],[0,3],[0,3],[0,3],[0,2],[-1,4],[0,3],[1,4],[2,5],[9,10],[2,2],[1,3],[0,2],[2,1],[4,0],[3,1],[4,2],[2,2],[3,3],[4,8],[9,8],[3,2],[5,1],[4,2],[1,4],[3,9],[4,8],[3,5],[6,5],[1,4],[-1,4],[-2,4],[-4,6],[-2,3],[0,3],[-1,3],[-2,1],[-2,0],[-2,0],[-3,0],[-1,3],[1,4],[4,7],[2,5],[0,4],[-1,7],[-1,4],[2,3],[2,2],[4,1],[8,0],[4,0],[3,1],[4,7],[5,11],[1,2],[3,4],[2,1],[2,2],[4,0],[3,0],[11,-5],[7,-1],[3,3],[3,11],[0,6],[0,8],[-2,11],[-3,13],[-1,6],[-1,6],[3,19],[0,3],[1,0],[2,0],[2,-1],[1,-1],[3,0],[1,2],[5,6],[8,0],[3,-1],[3,-3],[4,1],[12,-4],[1,1],[0,2],[1,3],[-1,5],[-2,12],[0,3],[1,3],[1,3],[3,6],[0,2],[0,1],[0,2],[0,1],[-2,4],[-2,2],[-3,3],[-3,3],[-1,2],[0,2],[0,2],[0,3],[1,2],[13,30],[2,2],[2,2],[-4,5],[-1,1],[-2,2],[-1,2],[-1,1],[-1,1],[-1,1],[-4,1],[-1,0],[-1,1],[-2,2],[-5,8],[-6,3],[-1,0],[-3,0],[-2,0],[0,1],[-1,3],[-1,4],[-1,10],[-2,7],[-3,21],[-6,9],[-2,7],[-2,8],[-2,6],[-2,3],[-3,3],[-6,3],[-3,4],[-2,4],[-1,4],[0,3],[0,4],[2,2],[2,2],[3,1],[3,1],[2,1],[2,2],[0,4],[0,5],[0,3],[-1,2],[-2,3],[-5,6],[-6,4],[-1,2],[-5,11],[-1,2],[-1,0],[-1,1],[-10,7],[-2,2],[-1,1],[0,2],[3,12],[3,14],[0,9],[4,2],[3,2],[2,4],[1,4],[0,4],[-1,4],[-5,9],[-10,11],[-3,6],[-2,4],[-4,2],[-4,2],[-5,2],[-17,21],[-5,5],[-4,2],[-4,0],[-2,0],[-2,0],[-14,12],[-2,3],[-2,4],[0,4],[1,1],[0,1],[4,8],[1,4],[-1,5],[-1,4],[-10,9],[-2,14],[-2,14],[-1,4],[-1,1],[-2,-1],[-1,-1],[-13,-23],[-4,-5],[-1,-2],[-2,-4],[-1,-16],[-1,-5],[-3,-1],[-3,1],[-3,3],[-3,4],[-4,10],[-2,3],[-8,3],[-58,50],[-39,43],[-9,6],[-11,4],[-48,28],[-6,6],[-3,21],[-2,6],[-2,6],[-4,5],[-4,3],[-2,1],[-2,1],[-7,0],[-5,0],[-8,4],[-5,4],[-3,4],[-3,5],[-2,4],[-3,3],[-3,1],[-1,2],[-3,8],[-3,5],[-10,11],[-2,2],[-3,0],[-1,-2],[-1,-2],[-1,-7],[-1,-9],[0,-6],[0,-1],[3,-9],[2,-6],[1,-2],[1,-1],[3,-3],[1,-1],[0,-1],[1,-1],[-1,-5],[0,-1],[1,-1],[0,-1],[1,-6],[1,-3],[0,-2],[0,-2],[0,-1],[-1,-1],[-1,-1],[-1,0],[-1,1],[-5,10],[-6,8],[-13,9],[-14,6],[-13,4],[-6,4],[-39,39],[-5,7],[-1,4],[-1,3],[-1,3],[0,2],[-1,3],[-1,1],[-9,6],[-2,4],[-12,18],[-42,48],[-2,4],[0,3],[0,2],[2,4],[0,3],[-1,2],[-2,3],[-3,2],[-4,1],[-8,-1],[-3,0],[-2,2],[-5,10],[-2,2],[-2,2],[-3,1],[-6,1],[-3,2],[-3,2],[-5,2],[-6,1],[-1,-1],[-1,-1],[-1,-5],[-1,-4],[-1,-3],[-2,-2],[-1,-2],[-7,-9],[-4,-3],[-4,-2],[-5,-1],[-3,1],[-2,2],[-3,0],[-10,0],[-3,0],[-3,2],[-2,2],[-3,7],[-2,3],[-3,2],[-2,1],[-3,1],[-2,0],[-2,-2],[-2,-2],[-2,-7],[-1,-3],[-1,-6],[-2,-5],[-11,-15],[-15,-16],[-6,-3],[-8,9],[-52,38],[-3,6],[-1,1],[-49,37],[-2,1],[-37,14],[-9,0],[-9,-2],[-2,-1],[-1,-1],[-1,-1],[-1,-1],[0,-2],[-1,-5],[-1,-3],[-1,-2],[0,-1],[-2,-2],[0,-1],[-1,-2],[1,-2],[3,-17],[1,-7],[0,-3],[0,-1],[-1,-15],[0,-5],[0,-3],[-1,-3],[-1,-6],[0,-3],[0,-4],[1,-2],[0,-3],[-1,-10],[1,-4],[1,-6],[0,-3],[-1,-3],[-1,-2],[0,-3],[0,-3],[0,-4],[0,-1],[0,-1],[-1,-1],[-3,-2],[-1,-2],[0,-2],[0,-4],[1,-4],[3,-6],[0,-2],[1,-3],[0,-2],[0,-2],[-2,-48],[-1,-5],[-1,-1],[0,-1],[-1,-1],[-2,-1],[-3,0],[-11,1],[-15,6],[-5,3],[-2,2],[-2,2],[-3,3],[-18,7],[-6,4],[-3,3],[-1,3],[-1,2],[0,2],[0,1],[2,8],[0,2],[-1,2],[-1,1],[-10,4],[-7,5],[-13,12],[-3,1],[-3,1],[-8,-1],[-4,1],[-4,2],[-7,6],[-2,1],[-3,0],[-2,0],[-2,-1],[-2,1],[-3,2],[-1,3],[-2,3],[-1,8],[-1,3],[-1,1],[-2,2],[-19,8],[-1,2],[-4,6],[-11,13],[-3,2],[-2,1],[-4,0],[-2,0],[-3,3],[-3,3],[-5,9],[-9,11],[-1,2],[-1,3],[-1,3],[-1,2],[-2,1],[-11,4],[-3,2],[-3,3],[-17,23],[-6,11],[-1,1],[-1,1],[-2,-1],[-7,-4],[-3,-1],[-3,0],[-13,1],[-3,-1],[-10,-4],[-2,0],[-6,1],[-4,2],[-1,1],[-4,3],[-2,4],[-2,2],[-1,0],[-2,1],[-10,2],[-20,8],[-4,3],[-3,4],[-3,4],[-1,2],[-2,1],[-3,2],[-12,1],[-2,1],[-4,2],[-6,2],[-50,0],[-4,1],[-6,0],[-9,-4],[-4,0],[-9,-1],[-2,0],[-10,-5],[-1,0],[-4,0],[-4,2],[-1,1],[-4,0],[-4,0],[-4,1],[-5,2],[-1,0],[-2,0],[-13,-7],[-3,-1],[-14,1],[-3,-1],[-3,-2],[-4,-3],[-8,-8],[-2,-2],[-2,-1],[-21,-8],[-3,0],[-10,0],[-9,3],[-2,0],[-2,-1],[-7,-4],[-2,-2],[-1,-2],[-3,-3],[-2,-2],[-4,0],[-11,2]],[[3160,6185],[0,3],[1,39],[2,21],[0,10],[0,3],[-1,3],[-28,95],[-1,8],[-1,6],[1,4],[0,3],[1,4],[22,46],[1,4],[1,6],[1,81],[2,13],[8,4],[8,1],[41,-6],[5,2],[13,11],[17,8],[5,3],[7,8],[15,25],[8,16],[7,21],[41,74],[93,127],[78,54],[71,18],[46,-7],[5,1],[6,2],[4,4],[14,17],[14,20],[1,2],[0,3],[0,4],[0,4],[-3,10],[-1,5],[0,10],[4,95],[2,11],[1,5],[2,4],[3,3],[45,36]],[[3721,7129],[2,0],[16,3],[58,7],[59,7]],[[3856,7146],[107,-309],[-27,-31],[-4,-4],[-2,-8],[2,-11],[8,-17],[21,-35],[19,-26],[6,-3],[5,-5],[30,-36],[4,-3],[11,-6],[2,-3],[3,-4],[0,-4],[0,-6],[-15,-83],[0,-3],[2,-1],[44,2],[10,2],[4,2],[4,2],[4,3],[20,27],[6,11],[2,3],[1,1],[54,29],[56,2],[7,2],[20,13],[17,3],[40,-4],[3,-1],[3,-3],[2,-3],[2,-3],[17,-33],[1,-3],[1,-3],[2,-9],[0,-10],[0,-6],[0,-5],[-2,-5],[-8,-16],[-21,-31],[-1,-3],[-3,-8],[-5,-23],[-2,-5],[-2,-5],[-3,-4],[-2,-4],[-45,-36],[-15,-18],[-12,-20],[-4,-8],[-1,-4],[42,-1],[12,-4],[13,-15],[14,-10],[19,-10],[24,-9],[5,-4],[6,-6],[3,-4],[2,-4],[1,-2],[1,-3],[0,-4],[1,-11],[1,-2],[1,-2],[3,-3],[3,-2],[16,-5],[3,-3],[2,-4],[1,-3],[0,-3],[0,-3],[1,-2],[2,-3],[3,-1],[3,-1],[40,-1],[3,-1],[3,-2],[1,-4],[2,-10],[1,-9],[0,-4],[-1,-17],[0,-8],[1,-8],[1,-4],[2,-5],[1,-4],[2,-4],[9,-11],[17,-16],[1,-1],[3,-1],[2,-1],[3,0],[1,1],[2,0],[1,1],[4,5],[2,1],[3,0],[3,-1],[2,-2],[1,-2],[0,-1],[-1,-3],[-1,-4],[0,-4],[0,-4],[0,-3],[1,-2],[2,-3],[1,-2],[3,-9],[3,-5],[2,-2],[8,-5],[1,-2],[0,-3],[-1,-2],[-2,-3],[-1,-2],[0,-3],[2,-3],[2,-1],[2,0],[7,0],[4,-1],[27,-16],[3,0],[2,1],[2,1],[2,1],[3,0],[17,-3],[12,0],[3,3],[6,12],[6,8],[12,14],[4,8],[2,5],[-1,4],[-7,8],[-5,9],[-15,20],[-6,8],[0,2],[0,1],[0,1],[1,1],[2,1],[2,2],[26,7],[62,31],[3,1],[4,0],[3,-1],[3,-1],[12,-10],[4,-3],[4,-1],[18,-5],[21,-8],[22,-3],[4,1],[2,2],[11,15],[5,5],[6,5],[16,10],[8,8],[29,17],[47,18],[45,4],[2,-1],[2,-1],[2,-1],[1,-3],[-1,-3],[-2,-12],[-1,-4],[1,-3],[0,-3],[2,-4],[24,-50],[2,-4],[1,-4],[0,-3],[0,-3],[-1,-4],[-1,-4],[-7,-20],[-2,-4],[-1,-1],[-1,-1],[-7,-4],[-4,-3],[-3,-4],[-3,-6],[-10,-30],[-5,-10],[-6,-11],[-7,-10],[-13,-14],[-53,-41],[-4,-4],[-1,-2],[0,-2],[1,-3],[4,-8],[2,-4],[1,-5],[7,-44],[0,-4],[-1,-2],[-18,-6],[-3,-2],[-1,-2],[-1,-6],[0,-7],[1,-14],[5,-37],[1,-3],[2,-2],[35,-15],[4,-3],[31,-39],[40,-44],[5,-4],[4,-1],[2,-1],[8,-9],[4,-2],[2,-1],[2,0],[4,3],[2,1],[2,0],[5,-2]],[[4606,4697],[-2,-15],[-3,-6],[-6,-4],[-4,-4],[-2,-4],[-1,-6],[-2,-8],[0,-5],[1,-3],[2,-3],[6,-4],[1,-3],[1,-4],[0,-4],[-1,-3],[-4,-7],[-8,-23],[-3,-3],[-3,0],[-3,3],[-5,10],[-6,8],[-7,8],[-3,1],[-3,1],[-3,1],[-3,-2],[-1,-1],[0,-3],[-1,-4],[-1,-4],[-2,-2],[-2,2],[-2,3],[-2,1],[-3,1],[-4,-3],[-8,-4],[-5,-2],[-5,-5],[-3,-3],[-1,-3],[0,-4],[-5,-18],[-1,-6],[0,-5],[0,-8],[0,-5],[1,-4],[1,-4],[1,-2],[1,-1],[9,-6],[2,-3],[1,-2],[1,-4],[1,-4],[0,-6],[0,-3],[-3,-13],[-5,-13],[-3,-5],[-2,-4],[-2,-1],[-3,-1],[-1,0],[-1,0],[-3,2],[-2,1],[-1,1],[-2,0],[-2,-2],[-7,-7],[-2,-2],[-2,-1],[-5,-1],[-2,0],[-2,-1],[-1,-1],[-2,0],[-2,1],[-1,2],[-1,1],[-2,2],[-1,2],[-4,1],[-2,1],[-14,2],[-8,4],[-2,0],[-2,-1],[0,-2],[0,-1],[1,-5],[0,-3],[-1,-3],[-2,-3],[-2,-3],[-1,-3],[0,-4],[0,-6],[-1,-4],[0,-1],[0,-3],[-2,-7],[-3,-13],[-1,-2],[-2,-1],[-7,-6],[-2,-4],[-7,8],[-3,6],[-1,2],[1,3],[0,3],[1,2],[1,1],[2,3],[7,7],[1,1],[1,1],[1,2],[1,4],[0,1],[-1,2],[-2,3],[-1,3],[-1,3],[-1,1],[-2,2],[-1,2],[-1,4],[0,3],[0,3],[-2,4],[-5,6],[-1,3],[-2,3],[-7,8],[-1,0],[-3,-3],[-2,-2],[-2,0],[-6,0],[-5,-1],[-3,-1],[-1,-1],[-2,-3],[-1,-4],[-1,-11],[0,-4],[-1,-2],[-3,-1],[-4,1],[-7,3],[-2,3],[-2,3],[1,2],[1,3],[2,6],[1,3],[2,7],[0,4],[0,4],[-2,13],[0,2],[-2,3],[-8,10],[-6,13],[-3,2],[-3,1],[-6,-2],[-2,0],[-1,0],[-1,1],[-2,3],[-3,4],[-2,4],[-2,5],[-3,6],[-2,1],[-1,-1],[0,-1],[-1,-3],[0,-8],[-1,-3],[-1,-3],[-2,-3],[-2,-2],[-4,-1],[-2,-2],[-2,-2],[-1,-2],[0,-4],[1,-7],[0,-3],[-1,-3],[-5,-24],[-2,-3],[-1,-1],[-2,0],[-7,7],[-3,2],[-7,3],[-2,2],[-7,7],[-3,2],[-2,2],[-14,2],[-5,2],[-2,2],[-3,5],[-2,0],[-4,0],[-3,1],[-3,1],[-2,3],[-2,3],[-3,12],[-2,6],[-2,6],[-4,5],[-16,14],[-2,2],[-7,2],[-23,14],[-5,5],[-4,4],[-2,6],[-4,12],[-1,3],[-4,7],[-1,3],[-1,3],[1,13],[0,2],[-2,5],[-1,7],[-1,8],[0,4],[0,3],[-3,8],[-1,2],[-1,1],[-3,3],[-1,2],[-1,3],[-3,12],[-1,3],[-2,2],[-2,1],[-1,2],[-1,2],[0,3],[1,2],[1,2],[1,1],[1,1],[0,2],[0,2],[-1,3],[-11,18],[-20,25],[-2,3],[-3,1],[-3,2],[-2,1],[-2,0],[-10,-4],[-4,-1],[-2,0],[-2,1],[-1,2],[0,3],[0,2],[0,3],[-1,3],[-2,5],[-4,4],[-2,2],[-29,5],[-2,0],[-3,-1],[-2,-1],[-3,-3],[-4,-6],[-12,-10],[-9,-4],[-10,-2],[-2,0],[-1,2],[0,3],[0,3],[0,12],[-1,3],[-1,4],[-2,4],[-3,5],[-1,3],[-6,0],[-2,-1],[-1,-1],[-1,-3],[0,-4],[0,-4],[-1,-4],[-3,-3],[-26,-13],[-7,-1],[-4,-2],[-1,-2],[0,-3],[-1,-3],[-1,-3],[1,-4],[2,-9],[2,-5],[0,-6],[0,-16],[-1,-8],[0,-4],[0,-3],[0,-2],[4,-6],[1,-2],[2,0],[4,-1],[2,-1],[2,-3],[1,-4],[1,-13],[1,-3],[1,-2],[1,-2],[2,-3],[3,-2],[3,-1],[3,-1],[6,1],[1,-1],[1,-2],[2,-1],[1,-2],[2,-2],[9,-3],[2,-1],[1,-1],[1,-1],[0,-2],[-1,-2],[-2,-3],[-3,-4],[-3,-2],[-2,-1],[-4,0],[-2,-1],[-3,-3],[-1,-4],[-3,-9],[-2,-4],[-13,-19],[0,-1],[-2,-4],[-1,-5],[0,-6],[0,-3],[0,-4],[3,-9],[0,-3],[1,-4],[0,-5],[0,-3],[-1,-2],[-1,-2],[-2,-3],[-2,-2],[-9,-4],[-2,-2],[-2,-3],[-2,-4],[-2,-7],[0,-1],[0,-1],[1,-5],[1,-5],[1,-21],[2,-5],[5,-10],[0,-2],[0,-2],[1,-2],[2,-1],[1,-1],[3,-4],[15,-13],[1,-1],[2,-1],[3,0],[1,0],[1,-2],[2,-6],[0,-1],[7,-7],[9,-5]],[[3942,4436],[-1,-1],[-1,-8],[-2,-2],[-3,-1],[-1,-2],[-1,-2],[-1,-4],[-1,-3],[-1,-2],[-2,-1],[-2,0],[-1,2],[-4,6],[-2,2],[-2,1],[-10,0],[-17,5],[-4,0],[-2,-1],[-1,-3],[0,-2],[0,-4],[-2,-4],[-2,-4],[-1,-3],[0,-3],[2,-2],[2,-2],[3,0],[3,-2],[1,-2],[0,-3],[0,-5],[-3,-10],[0,-2],[2,-5],[0,-2],[-2,-4],[-3,-2],[-4,1],[-3,1],[-4,0],[-2,-4],[-2,-5],[-2,-8],[-1,-10],[0,-4],[0,-4],[1,-2],[1,-1],[1,0],[2,-1],[0,-1],[-1,-4],[-3,-6],[-2,-3],[-3,-1],[-4,1],[-2,0],[-1,-2],[-1,-6],[-2,-4],[-3,-2],[-3,-1],[-7,1],[-10,3],[-3,-1],[-3,-1],[-8,-6],[-3,-1],[-2,0],[-3,1],[-2,0],[-3,-1],[-8,-5],[-3,0],[-6,1],[-2,-2],[-1,-2],[0,-2],[2,-3],[7,-8],[0,-4],[-1,-4],[-3,-7],[-2,-4],[0,-4],[0,-3],[1,-4],[4,-7],[1,-4],[1,-5],[0,-6],[-2,-6],[-3,-3],[-2,-1],[-2,1],[-5,3],[-7,8],[-3,1],[-2,0],[-5,2],[-7,1],[-13,4],[-3,2],[-5,4],[-3,4],[-5,7],[-9,20],[-4,4],[-4,0],[-9,-4],[-5,-3],[-2,-3],[0,-1],[-1,-3],[-1,-3],[-4,-6],[-1,-6],[1,-5],[3,-3],[6,-6],[2,-3],[2,-4],[1,-4],[0,-6],[0,-4],[-1,-5],[-1,-3],[-1,-4],[0,-4],[0,-2],[1,-2],[2,-2],[1,-1],[0,-3],[-1,-2],[-3,-5],[-3,-2],[-3,1],[-1,3],[-2,3],[0,4],[-1,3],[-3,6],[-1,3],[-1,4],[0,5],[-1,5],[-1,4],[-2,3],[-3,3],[-3,1],[-2,0],[-3,0],[-13,-2],[-8,0],[-9,2],[-2,-1],[-2,-1],[-4,-3],[-2,0],[-2,1],[-1,2],[-2,5],[-2,3],[-3,2],[-13,4],[-4,1],[-4,-1],[-6,-1],[-5,-3],[-3,-1],[-2,0],[-2,1],[-5,8],[-6,6],[-2,3],[-1,4],[-1,4],[-1,13],[-1,4],[-4,13],[-1,4],[1,3],[1,3],[2,2],[0,1],[6,2],[2,1],[0,1],[0,2],[-1,2],[-1,1],[-1,2],[0,2],[1,3],[2,3],[0,3],[0,3],[-1,2],[-1,3],[-1,2],[0,7],[-2,3],[-2,2],[-8,3],[-2,1],[-2,2],[-2,3],[-2,6],[-1,3],[-1,1],[-2,1],[-23,1],[-6,2],[-3,2],[-10,12],[-5,3],[-2,2],[-1,1],[0,2],[-1,2],[0,4],[-1,18],[-1,2],[0,3],[-2,2],[-1,2],[-10,10],[-16,9],[-2,2],[-1,3],[-1,7],[-2,3],[-2,2],[-4,4],[-2,2],[-2,3],[-5,9],[-2,1],[-3,1],[-3,-1],[-2,-2],[-5,-6],[-3,-3],[-2,-1],[-9,-4],[-2,-2],[-2,-2],[-3,-1],[-2,1],[-3,5],[-1,1],[-2,-1],[-1,-2],[-1,-3],[0,-4],[0,-4],[-2,-4],[-3,-2],[-18,-3],[-5,-2],[-3,-4],[-1,-1],[0,-1],[-1,-2],[-2,-2],[-4,-2],[-17,1],[-8,4],[-4,3],[-2,0],[-1,-1],[-1,-1],[-1,0],[-4,-1],[-4,1],[-3,3],[-5,11],[-5,3],[-6,2],[-15,0],[-8,-2],[-6,-5],[-4,-5],[-4,-3],[-2,-1],[-3,2],[-3,4],[-1,4],[-2,4],[-2,1],[-8,-1],[-3,1],[-3,2],[-6,9],[-14,13],[-4,2],[-6,0],[-13,-1],[-2,-1],[-1,-1],[-1,-1],[-2,0],[-2,3],[-1,4],[-2,5],[0,5],[-1,5],[-2,2],[-2,0],[-9,-4],[-3,0],[-10,0],[-20,9],[-12,-6],[-15,4],[-2,0],[-4,0],[-3,1],[-7,3],[-2,0],[-2,-1],[-1,-1],[-1,-1],[-1,-1],[-2,1],[-4,3],[-2,0],[-2,0],[-1,-2],[-2,-1],[-1,-2],[-1,0],[-2,1],[-1,2],[-2,0],[-1,0],[-3,-3],[-1,-1],[-2,-1],[-1,0],[-3,0],[-1,1],[-2,1],[-1,3],[-3,14],[0,3],[1,3],[1,2],[0,2],[1,2],[-1,1],[-1,1],[-2,2],[-3,1],[-7,2],[-3,0],[-3,0],[-2,-2],[-2,-2],[-1,-2],[-2,-1],[-2,-2],[-3,-1],[-2,0],[-3,0],[-4,2],[-5,4],[-11,14],[-3,4],[-2,4],[-2,4],[-3,2],[-3,0],[-5,0],[-2,0],[-2,1],[-15,15],[-5,3],[-9,8],[-11,16],[-17,35],[-1,3],[0,2],[0,1],[1,1],[1,0],[1,0],[1,1],[0,1],[1,1],[0,1],[0,1],[0,1],[-1,1],[-2,2],[-2,1],[-1,0],[-28,0],[-2,0],[-1,-1],[-1,-1],[-1,-2],[-1,-2],[-1,-2],[0,-2],[-1,-6],[0,-2],[-1,-2],[-1,-2],[-15,-5],[-3,0],[-11,1],[-2,0],[-7,-10],[-6,-9],[-3,-3],[-3,-2],[-3,-2],[-5,0],[-5,0],[-10,3],[-4,1],[-12,9],[-19,17],[-5,8],[-2,1],[-2,1],[-6,-2],[-3,0],[-6,1],[-3,2],[-2,3],[-3,3],[-2,2],[-3,6],[-6,14],[-1,4],[-1,4],[0,6],[0,5],[1,5],[1,2],[-1,1],[0,1],[-2,3],[-3,6],[-1,5],[-2,3],[-2,2],[-7,5],[-2,1],[-4,0],[-4,1],[-6,3],[-1,1],[-2,2],[-1,1],[-1,3],[0,4],[-1,8],[-1,7],[-2,4],[-2,2],[-5,3],[-1,2],[-1,3],[1,5],[0,4],[-1,3],[-2,3],[-12,15],[-2,1],[-3,1],[-2,1],[-3,5],[-10,19],[-1,5],[-1,4],[-1,4],[-3,7],[-1,4],[0,5],[2,7],[1,3],[2,3],[2,1],[2,0],[4,0],[2,1],[2,1],[3,5],[4,5],[1,2],[1,7],[4,25],[1,3],[2,4],[1,3],[0,3],[-1,4],[-1,2],[-1,1],[-3,1],[-1,0],[0,1],[-1,2],[0,3],[-1,5],[1,17],[-1,13],[-5,29],[-1,3],[-2,2],[-1,2],[-2,2],[0,2],[-1,3],[0,2],[0,2],[1,2],[11,13],[4,7],[2,8],[-3,16],[-3,6],[-2,1],[-3,1],[-6,1],[-13,-1],[-5,0],[-5,2],[-2,1],[-1,3],[0,2],[0,4],[1,6],[1,11],[0,4],[-1,4],[-1,5],[-4,6],[-7,12],[-4,7],[-3,6],[0,4],[0,2],[1,1],[1,1],[1,3],[1,1],[1,3],[0,3],[0,4],[-1,7],[0,3],[1,3],[1,2],[2,1],[2,1],[10,4],[7,4],[18,15],[2,1],[0,2],[0,3],[-1,3],[-1,2],[-3,1],[-2,2],[-1,3],[0,3],[1,2],[3,6],[1,4],[0,4],[-1,9],[-1,4],[1,3],[2,7],[7,18],[2,5],[1,5],[1,8],[0,4],[-1,2],[-1,1],[-2,1],[-2,1],[-2,0],[-12,-2],[-6,0],[-9,2],[-6,3],[-5,4],[-3,2],[-2,2],[-2,4],[-2,6],[-3,9],[-1,6],[0,4],[0,2],[1,0],[0,1],[1,1],[3,6],[5,4],[3,3],[13,5],[14,2]],[[2628,5372],[31,-4],[4,0],[4,1],[5,3],[2,3],[2,3],[1,4],[0,4],[6,32],[1,1],[1,0],[3,-2],[4,-5],[2,-3],[2,-4],[6,-14],[1,-2],[1,-2],[2,-1],[1,-1],[21,-4],[54,-1],[3,-1],[31,-26],[4,-1],[3,0],[4,0],[3,2],[15,11],[7,3],[7,1],[3,1],[2,2],[1,3],[1,3],[0,5],[0,5],[-3,15],[-5,17],[-4,14],[-6,39],[-3,11],[-1,1],[-1,1],[-2,2],[-2,1],[-5,2],[-13,2],[-3,2],[-6,4],[-7,8],[-8,12],[-2,3],[-1,2],[0,1],[-1,11],[0,12],[0,8],[1,6],[1,2],[2,4],[9,11],[6,13],[3,3],[2,1],[9,3],[1,0],[11,-2],[3,0],[3,0],[9,4],[17,12],[5,3],[16,3],[2,1],[1,2],[2,3],[1,2],[0,2],[0,5],[0,6],[-1,3],[0,4],[-1,2],[-2,3],[-11,15],[-11,28],[-2,6],[-5,25],[-1,5],[-2,6],[-2,4],[-2,2],[-1,1],[-19,9],[-3,2],[-7,7],[-5,8],[-5,6],[-26,17],[-18,16],[-21,12],[-1,1],[-2,2],[-1,3],[-1,2],[0,2],[0,3],[0,2],[0,2],[0,1],[6,15],[1,4],[0,5],[0,8],[-1,5],[-1,3],[-40,87],[-5,14],[-2,8],[0,6],[1,4],[3,3],[2,2],[3,1],[6,1],[2,0],[9,-2],[2,0],[10,5],[3,3],[2,2],[11,8],[9,10],[2,3],[5,5],[8,4],[1,1],[0,1],[1,1],[0,2],[0,5],[1,2],[1,2],[0,1],[1,1],[1,0],[7,-1],[5,0],[26,7],[4,1],[15,-1],[17,4],[13,7],[5,1],[11,0],[8,4],[16,12],[4,2],[4,1],[23,2],[41,13],[15,9],[24,9],[21,13],[14,16],[2,1],[3,2],[5,1],[18,2],[50,14],[15,6],[3,1],[2,0]],[[5803,1389],[0,-1],[-1,0],[-1,5],[2,5],[3,2],[2,-4],[-1,-5],[-2,-2],[-2,0]],[[5652,1522],[-8,-3],[-1,1],[1,1],[2,1],[3,4],[2,1],[1,-1],[1,-2],[-1,-2]],[[5717,1584],[0,-1],[-1,0],[0,2],[0,1],[-1,1],[1,1],[1,-1],[0,-1],[0,-2]],[[6276,2371],[-1,-2],[-4,-2],[-1,0],[-1,-1],[-3,-3],[0,-1],[0,-1],[-1,-2],[1,-1],[0,-4],[1,-3],[0,-1],[0,-2],[-2,-1],[-1,-1],[0,-3],[0,-4],[1,-2],[1,-2],[1,-3],[3,-2],[0,-1],[2,-3],[1,-1],[3,-1],[1,-1],[0,-1],[0,-2],[0,-3],[-2,-9],[-1,-2],[0,-3],[1,-2],[0,-2],[3,-6],[6,-16],[1,-3],[0,-1],[0,-2],[0,-2],[-1,-2],[-1,-2],[0,-1],[-8,-10],[-2,-5],[-1,-1],[-2,0],[-2,1],[-1,0],[-1,-1],[-5,-6],[-4,-3],[-2,-2],[0,-1],[-1,-2],[0,-1],[0,-3],[0,-2],[0,-1],[1,-1],[1,-3],[0,-1],[0,-2],[1,-4],[-1,-14],[0,-2],[1,-3],[2,-10],[1,-7],[1,-4],[-1,0],[0,-1],[0,-1],[-2,-7],[-1,-2],[-2,-2],[-1,-2],[-2,-1],[-4,-3],[-1,-1],[-2,-4],[-2,-16],[-1,-2],[-1,-2],[-1,0],[-2,-1],[-1,0],[-1,1],[-2,0],[-4,3],[-2,0],[-1,0],[-5,0],[-1,-1],[-4,-6],[-1,-3],[-3,-13],[0,-2],[0,-3],[0,-1],[0,-1],[1,-2],[0,-1],[1,-1],[0,-1],[1,-2],[0,-3],[0,-3],[-1,-2],[-2,-3],[-1,-1],[-1,-1],[-8,-1],[-3,-2],[-7,-5],[-2,-2],[-1,-1],[0,-2],[-1,-1],[1,-6],[0,-1],[0,-2],[0,-3],[-1,-3],[-3,-9],[-9,-22],[-1,-3],[0,-2],[-1,-6],[-1,-6],[-1,-4],[0,-2],[1,-5],[0,-1],[-1,-2],[0,-6],[-1,-2],[0,-2],[2,-5],[0,-3],[1,-6],[0,-2],[1,-4],[0,-1],[0,-3],[0,-4],[-1,-4],[-1,-4],[0,-1],[0,-2],[0,-1],[1,-4],[0,-1],[1,-1],[1,-2],[2,-2],[1,-2],[0,-1],[1,-4],[-1,-2],[0,-2],[-1,-2],[-2,-4],[0,-3],[-1,-4],[0,-2],[-1,-1],[-1,-1],[-2,-2],[-1,-13],[0,-4],[-2,-2],[-3,-5],[-8,-17],[-1,-2],[-3,-2],[-3,-4],[-3,-5],[-2,-3],[-1,-1],[-2,-1],[-19,-2],[-2,-1],[0,-1],[0,-1],[3,-2],[0,-1],[1,-1],[0,-1],[1,-2],[-1,-3],[-3,-7],[-5,-6],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-2,1],[-1,2],[-1,0],[-1,1],[-2,0],[-1,-1],[-1,0],[0,-2],[-1,-5],[-1,-2],[-1,-1],[-1,0],[-5,-1],[-3,-4],[-3,-1],[-3,1],[-1,0],[-1,-1],[-1,-1],[0,-1],[-3,-3],[-1,-1],[-1,-1],[-1,1],[-1,0],[-1,3],[-1,0],[-1,0],[-1,-1],[0,-2],[-1,-3],[0,-2],[0,-2],[0,-2],[0,-1],[0,-2],[-1,-3],[-1,-3],[-1,-4],[0,-1],[-2,-2],[-1,0],[-1,0],[-1,2],[-1,0],[-1,1],[-1,-1],[0,-1],[0,-1],[1,-2],[2,-5],[1,-2],[1,-1],[0,-2],[0,-2],[0,-1],[-2,-8],[0,-2],[0,-1],[1,-2],[0,-1],[1,-1],[2,-2],[5,-6],[2,-4],[1,-3],[1,-2],[0,-2],[0,-1],[0,-2],[-1,-1],[-2,-1],[-1,-1],[-2,0],[-1,1],[-6,3],[-1,0],[-1,-1],[-1,-1],[-1,-1],[-1,-4],[-2,-4],[-1,-3],[0,-1],[0,-8],[0,-2],[0,-1],[-1,-1],[-2,-2],[-3,-2],[-1,-1],[-2,0],[-3,3],[-1,2],[-1,0],[-1,0],[-1,1],[-1,-1],[-1,-1],[-2,-1],[-4,-6],[-1,-1],[-1,0],[-1,0],[-1,1],[-1,1],[-9,12],[0,1],[-1,1],[-1,0],[-1,-1],[-1,-2],[-1,0],[-1,-1],[-2,0],[-4,0],[-1,0],[0,-1],[0,-2],[1,-5],[0,-2],[1,-2],[1,-1],[0,-1],[0,-2],[1,-2],[0,-6],[-2,-20],[0,-8],[1,-4],[5,-7],[-1,-5],[0,-8],[0,-2],[-1,-1],[-1,0],[-1,-1],[-3,1],[-3,1],[-3,1],[-4,-2],[-5,-3],[-3,-1],[-2,0],[-2,0],[-4,3],[-6,3],[-3,0],[-3,0],[-3,-1],[-6,-5],[-1,-1],[-2,0],[-2,0],[-6,0],[-1,-1],[-2,0],[0,-1],[-1,-1],[0,-1],[-1,-3],[-1,-1],[-5,-41],[0,-1],[-1,-2],[-3,-4],[-1,-1],[-1,-1],[-2,0],[-7,-4],[-3,-1],[-1,0],[-1,0],[0,1],[-1,1],[-2,3],[0,1],[-1,0],[-1,1],[-1,0],[-1,-1],[-1,-2],[0,-18],[0,-2]],[[5908,1534],[0,-7],[2,-9],[3,-5],[0,-2],[-2,0],[0,2],[-1,0],[-3,-5],[-5,2],[-10,10],[2,2],[1,8],[2,4],[-1,2],[0,4],[0,2],[0,1],[1,1],[0,1],[0,2],[-3,-2],[-4,-4],[-2,-4],[2,-4],[-1,-1],[-1,0],[-1,1],[-1,1],[0,2],[0,2],[0,3],[0,3],[-1,1],[0,1],[2,8],[-4,-4],[-1,-1],[-1,3],[0,2],[-1,3],[-1,2],[-1,1],[0,5],[1,2],[-1,2],[1,4],[2,3],[2,2],[0,2],[-1,-1],[-2,1],[-1,1],[0,2],[-12,-16],[1,-1],[0,-1],[0,-1],[1,-1],[-1,0],[-1,0],[0,-1],[1,0],[2,1],[1,0],[0,-5],[-2,-2],[-4,0],[-3,2],[0,-2],[11,-6],[2,-2],[0,-2],[5,-10],[0,-1],[-1,-1],[-1,-1],[0,-9],[0,-2],[-1,-2],[-2,-3],[0,-2],[-2,-3],[-7,-4],[-3,-3],[-1,3],[0,2],[1,2],[0,2],[-1,-1],[-2,-3],[-1,-3],[0,-2],[-1,-2],[-2,-1],[-14,0],[-1,1],[-2,6],[-1,-5],[-3,-4],[-3,-2],[-4,2],[0,-1],[-1,-1],[-1,-2],[-1,0],[0,8],[0,7],[-2,-4],[-1,-6],[-1,-8],[-7,0],[-2,1],[-1,4],[-1,-3],[0,-2],[1,-2],[1,-2],[-3,0],[-7,6],[-3,1],[-5,2],[-1,3],[0,5],[3,3],[4,2],[4,1],[4,1],[1,4],[0,12],[-1,13],[-1,0],[0,-3],[-2,0],[-1,1],[-1,3],[-1,0],[-2,-2],[-1,-1],[-1,2],[-1,3],[-1,0],[-1,-1],[-1,-2],[0,3],[1,2],[2,4],[0,2],[-3,-2],[-6,-6],[-3,-2],[-4,0],[-2,0],[-2,0],[-3,2],[-1,2],[-2,7],[-1,4],[-1,2],[-1,0],[-2,0],[-1,0],[-2,3],[0,3],[0,1],[1,1],[1,1],[-1,7],[0,2],[1,0],[0,1],[1,1],[2,1],[5,1],[0,2],[1,1],[-1,-1],[-2,0],[-2,-1],[1,4],[-1,-1],[-1,-1],[-1,-1],[-1,-2],[-1,0],[-1,1],[0,2],[0,2],[2,7],[-1,0],[-2,-3],[0,-2],[-1,3],[0,2],[1,2],[1,2],[-4,-1],[-6,2],[-4,-1],[2,-1],[5,-3],[-1,-1],[0,-1],[0,-1],[0,-2],[3,1],[1,-5],[1,-6],[-2,-5],[-1,-1],[-1,-2],[-1,1],[0,3],[0,3],[-1,3],[-1,2],[-2,-1],[1,-2],[1,-1],[-1,-3],[0,1],[0,1],[-1,0],[-1,0],[1,-2],[0,-1],[-1,0],[-1,-1],[3,0],[0,-2],[-1,0],[0,-1],[4,-4],[3,-3],[1,-5],[-3,-6],[3,0],[2,0],[2,0],[-2,-5],[-3,0],[-3,3],[-3,2],[-2,-1],[0,-2],[-1,-1],[-1,-2],[-2,-1],[-2,0],[-2,-1],[2,-3],[-2,2],[-1,5],[0,4],[-3,1],[0,2],[4,2],[1,-1],[1,-3],[1,0],[0,11],[-2,-2],[0,-1],[-1,-2],[-1,0],[-3,4],[1,6],[1,5],[0,5],[-1,-1],[-1,1],[-2,-7],[-1,-2],[-2,-2],[-1,3],[-3,2],[-1,2],[1,0],[2,1],[2,1],[0,2],[-3,1],[-2,0],[-1,0],[1,4],[1,3],[1,3],[2,2],[0,5],[-1,0],[0,-2],[-1,-2],[-1,-1],[-1,5],[0,2],[-1,0],[0,-4],[0,-3],[-1,-3],[0,-3],[-2,0],[0,3],[-1,1],[-1,0],[2,-6],[1,-3],[-1,-2],[-5,-2],[0,4],[0,3],[2,6],[-4,-2],[-2,3],[0,5],[2,3],[3,2],[3,11],[3,3],[0,2],[-3,1],[-4,6],[0,-2],[0,-1],[-1,-1],[0,-1],[-1,1],[-1,0],[-2,1],[1,-1],[1,-1],[1,0],[-2,-1],[-2,0],[-1,2],[0,4],[1,2],[1,1],[2,2],[-1,4],[-1,0],[0,-1],[0,-2],[-1,0],[0,1],[-1,2],[0,-4],[-1,-3],[-1,-3],[-2,-2],[-1,0],[-3,1],[0,-1],[1,-1],[1,-1],[0,-1],[1,-1],[-3,-1],[-3,-3],[-1,-3],[2,-2],[-5,2],[0,6],[3,15],[-1,-1],[-1,-2],[-1,-2],[0,-2],[-1,-8],[-1,-6],[1,-4],[2,-4],[3,-3],[-1,0],[-1,0],[0,-1],[0,-1],[1,-1],[0,-1],[2,2],[1,-2],[1,-3],[0,-2],[0,-3],[-1,-2],[-1,-3],[0,-5],[-1,1],[-1,0],[-1,0],[-2,-1],[2,-1],[2,-1],[2,-2],[1,-2],[0,-1],[-2,0],[0,-1],[0,-1],[1,0],[-1,0],[-2,0],[0,-2],[1,0],[2,-1],[1,-1],[0,-2],[0,-1],[0,-2],[2,8],[1,3],[2,1],[-1,-2],[0,-1],[-1,-1],[0,-1],[-1,-2],[1,-3],[0,-2],[0,1],[1,1],[1,0],[0,1],[1,1],[0,-1],[0,-1],[0,1],[2,4],[1,0],[1,-5],[-1,-2],[-2,-2],[-1,-4],[1,2],[1,0],[-1,-4],[-2,-1],[-2,0],[-2,2],[0,-2],[1,-1],[1,0],[1,-1],[1,0],[-1,-3],[0,-1],[-1,-1],[-2,-1],[1,-2],[1,-1],[-5,-3],[-2,-1],[0,2],[0,3],[2,2],[2,-1],[0,1],[-2,4],[-2,-4],[-1,-2],[-2,-1],[2,-2],[0,-2],[-1,-1],[-1,-1],[0,-1],[0,-1],[2,1],[0,-2],[-9,-1],[-3,0],[-2,4],[1,6],[2,1],[3,-2],[-1,-3],[2,1],[1,2],[1,8],[-1,0],[-1,-1],[0,-1],[-1,1],[-1,1],[0,2],[1,1],[1,1],[1,1],[1,1],[0,2],[1,1],[2,1],[2,1],[0,2],[-8,-2],[-2,0],[2,4],[1,2],[-1,3],[0,-1],[-2,-3],[0,-1],[-1,1],[-1,-3],[-2,0],[-8,7],[0,2],[1,5],[-4,-4],[-1,-7],[0,-8],[2,-6],[-3,0],[1,-3],[0,-1],[-1,-1],[-1,-1],[-1,-2],[0,-3],[2,0],[1,0],[0,-2],[-1,-1],[-3,-4],[-1,-1],[0,-4],[-1,-1],[-1,0],[-2,-1],[-5,-7],[-3,-2],[0,3],[2,4],[4,10],[1,4],[0,2],[0,2],[-1,2],[-1,2],[-2,4],[0,1],[2,4],[-4,-3],[-1,-1],[0,1],[0,3],[-1,-1],[0,-1],[-1,0],[1,-2],[1,-2],[0,-2],[-1,-2],[0,-1],[1,0],[-5,-7],[-3,-2],[-4,3],[-1,-2],[0,-2],[0,-1],[-2,1],[-1,2],[-1,-4],[-2,0],[-2,1],[-2,0],[1,-4],[-1,-3],[-2,0],[-4,4],[-2,1],[-3,0],[-2,-2],[6,-6],[2,-1],[-3,0],[-1,-4],[0,-3],[1,-2],[3,0],[1,2],[3,1],[3,-1],[0,-2],[-6,-1],[-5,-3],[-7,-11],[-1,0],[0,5],[1,3],[3,5],[0,2],[-7,12],[-3,1],[-5,9],[-5,5],[-2,3],[-2,5],[0,3],[-2,2],[-3,3],[-6,2],[-2,0],[-3,0],[-3,-1],[-6,-7],[-3,-2],[-10,-4],[-3,0],[-7,2],[-3,-1],[-1,-1],[-1,-4],[-1,-2],[-2,0],[-1,1],[-3,2],[-2,1],[-1,9],[-2,4],[-3,2],[-3,-2],[-4,-7],[-6,-5],[-2,3],[-1,1],[-4,19],[-5,8],[-5,-1],[-5,-2],[-7,2],[-12,17],[-5,5],[-7,2],[-3,2],[-3,3],[0,6],[2,4],[2,4],[2,4],[0,6],[-2,4],[-3,2],[-3,0],[-3,-2],[-3,-2],[-3,-1],[-3,3],[-2,4],[-2,4],[-2,2],[-4,2],[-7,0],[-2,0],[-4,3],[-1,1],[-1,3],[-1,1],[-2,1],[-1,0],[-5,-9],[-3,-3],[-2,0],[-1,2],[-1,2],[0,2],[0,3],[3,12],[1,6],[0,7],[-1,1],[-1,3],[-1,1],[0,3],[1,4],[0,2],[-1,3],[-1,2],[-1,3],[-1,4],[2,4],[2,2],[0,3],[-4,19],[-1,4],[-2,3],[-7,1],[-3,2],[-3,3],[-1,4],[0,10],[0,2],[-1,6],[0,3],[0,3],[2,4],[1,2],[4,27],[1,5],[2,4],[3,0],[2,-3],[2,-5],[2,-3],[4,0],[2,3],[3,14],[1,4],[4,8],[1,5],[1,8],[1,5],[2,2],[5,5],[1,3],[-1,4],[-4,0],[-3,0],[-3,0],[0,1],[-2,6],[-5,6],[-2,4],[-1,1],[-2,1],[-1,-1],[-2,-3],[-1,-1],[-3,0],[-2,4],[-1,4],[-2,4],[-3,2],[-8,3],[-2,2],[-2,1],[-2,-2],[-1,-6],[-2,-2],[-24,-9],[-3,-1],[-3,0],[-3,1],[-4,2],[-1,3],[-1,10],[-3,9],[-5,5],[-7,3],[-9,1],[-12,-1],[-2,-1],[-2,-9],[-3,-1],[-2,-2],[-5,-1],[-2,1],[-3,1],[-1,-1],[-1,-1],[-1,-2],[-1,-2],[-1,-1],[-3,3],[-9,16],[-2,5],[-2,3],[-2,1],[-2,1],[-2,2],[-3,4],[-2,2],[-4,0],[-5,2],[-11,1],[-3,1],[-1,4],[-1,5],[0,2],[0,9],[-1,6],[-1,2]],[[5218,1955],[1,5],[0,4],[0,2],[4,7],[4,5],[6,9],[1,1],[0,1],[1,1],[0,2],[0,3],[0,4],[0,1],[0,2],[0,1],[1,1],[0,1],[1,1],[1,0],[1,-1],[3,-2],[1,-1],[1,0],[1,1],[1,0],[0,1],[1,1],[0,1],[0,2],[0,3],[-2,4],[1,1],[0,1],[3,0],[1,0],[1,0],[0,1],[1,0],[2,3],[2,4],[3,6],[2,2],[3,3],[2,3],[1,1],[1,2],[0,2],[2,3],[0,1],[1,1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,-1],[5,-4],[0,-1],[7,-6],[2,-1],[2,-1],[4,1],[1,0],[7,3],[1,1],[0,1],[1,2],[1,1],[2,3],[0,1],[1,0],[1,1],[2,1],[1,0],[1,1],[0,1],[0,1],[1,1],[1,22],[0,14],[0,3],[1,3],[1,5],[1,3],[0,2],[0,1],[0,3],[-3,12],[0,2],[0,1],[0,1],[0,2],[1,1],[1,1],[6,2],[1,0],[1,1],[0,1],[0,2],[0,1],[0,2],[0,1],[-1,1],[-7,18],[-1,1],[0,1],[0,1],[1,1],[0,1],[1,4],[1,1],[-1,2],[-2,2],[-9,7],[-1,0],[-3,4],[-4,4],[-4,4],[-1,3],[0,3],[1,1],[1,3],[0,3],[-1,1],[-2,0],[-1,-1],[-1,-1],[-2,-3],[0,-1],[-1,-1],[-1,0],[-1,-1],[-8,0],[-1,-1],[-1,0],[-1,-2],[0,-1],[-1,-1],[0,-2],[0,-1],[0,-4],[0,-1],[0,-1],[-1,-1],[-1,-1],[-6,1],[-3,0],[-4,-1],[-1,-1],[-1,1],[-2,1],[-5,5],[-3,2],[-6,0],[-1,1],[-2,1],[-2,2],[-1,2],[-1,2],[0,5],[-1,2],[-1,5],[-1,1],[-1,1],[0,1],[-1,0],[-1,0],[-2,0],[-2,-1],[-4,-2],[-1,0],[-2,0],[-1,-1],[-1,-1],[-1,-1],[0,-5],[-2,-8],[-1,-1],[0,-2],[0,-1],[-1,-1],[-3,-2],[-5,-1],[-1,0],[-1,1],[-2,2],[-1,3],[-1,1],[-2,1],[-3,2],[-4,5],[-5,6],[-2,2],[-1,1],[-1,0],[-1,0],[-1,-1],[0,-1],[0,-2],[2,-4],[0,-1],[0,-2],[0,-1],[-1,-1],[-1,-1],[-2,0],[-3,3],[-10,10],[-2,2],[-1,4],[0,1],[-1,3],[0,1],[0,3],[1,3],[1,3],[0,1],[0,2],[-1,4],[0,6],[0,4],[0,12],[0,1],[0,2],[-1,1],[0,1],[-5,5],[-2,3],[0,1],[-1,2],[0,6],[0,2],[-1,1],[0,1],[-1,1],[-1,2],[-1,2],[-3,1],[-3,0],[-7,-1],[-5,-1],[-2,-1],[-1,-1],[-1,0],[-2,0],[-1,1],[-3,1],[-1,1],[-2,1],[-4,4],[-2,1],[-2,1],[-14,2],[-3,2],[-1,0],[-2,-1],[-3,-2],[-2,-1],[-1,-1],[-1,-3],[0,-3],[0,-3],[0,-2],[1,-1],[0,-3],[2,-2],[2,-3],[1,-1],[0,-2],[0,-1],[0,-2],[0,-1],[0,-1],[-1,-2],[-1,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-2,1],[-1,1],[-1,1],[-11,16],[-5,11],[-1,8],[-10,28],[-3,15],[0,4],[0,4],[0,2],[1,3],[1,4],[3,5],[4,6]],[[5057,2372],[3,1],[4,-4],[8,-12],[2,-2],[2,-1],[3,-1],[2,-1],[2,-1],[3,-6],[2,-2],[3,4],[3,5],[3,4],[3,1],[4,1],[2,2],[2,3],[4,13],[2,2],[7,2],[7,3],[4,3],[1,0],[1,1],[1,1],[1,3],[1,7],[2,4],[1,7],[0,2],[0,2],[3,4],[6,11],[1,2],[2,1],[3,2],[2,1],[2,1],[2,6],[2,2],[3,-1],[4,-4],[3,-5],[3,-9],[4,-1],[4,1],[3,1],[4,3],[4,1],[2,-2],[3,-2],[3,-2],[2,-3],[2,-15],[4,-8],[4,-5],[6,-2],[6,1],[2,-1],[3,-2],[4,-5],[3,0],[4,2],[8,-10],[6,-3],[4,-7],[3,-2],[3,1],[5,5],[3,1],[4,0],[3,-1],[3,-3],[11,-18],[3,-2],[3,3],[4,10],[4,6],[10,12],[5,6],[3,13],[0,12],[-3,12],[-4,10],[2,1],[2,0],[1,-1],[2,0],[1,1],[1,2],[1,2],[2,1],[13,0],[10,6],[2,2],[12,6],[8,9],[2,2],[12,7],[5,6],[4,7],[4,5],[6,2],[13,0],[17,5],[1,2],[1,3],[1,6],[0,2],[3,2],[3,0],[3,-1],[1,-4],[1,1],[1,0],[1,1],[1,1],[0,1],[1,1],[1,7],[0,1],[1,2],[0,3],[1,10],[0,2],[0,1],[-1,1],[0,1],[-2,3],[-3,7],[-1,3],[0,4],[0,2],[0,2],[1,1],[1,1],[1,1],[1,1],[1,1],[0,1],[1,5],[1,2],[1,2],[1,2],[1,0],[2,2],[2,1],[2,2],[1,1],[2,0],[6,-1],[6,1],[5,2],[2,3],[3,3],[1,1],[2,-1],[4,-4],[6,-11],[4,-7],[0,-1],[0,-1],[-1,-3],[-1,-2],[0,-2],[-1,-1],[0,-2],[1,-1],[0,-2],[1,-1],[1,-1],[1,0],[5,-2],[2,-1],[1,-1],[2,-1],[0,-1],[1,-1],[0,-1],[1,-2],[0,-3],[0,-5],[0,-3],[1,-3],[1,-3],[1,-1],[0,-1],[1,-1],[2,-2],[4,-1],[1,-1],[1,-1],[0,-2],[0,-1],[-1,-1],[-1,-3],[0,-1],[-1,-1],[0,-2],[0,-1],[0,-2],[1,-1],[1,0],[1,-1],[1,0],[2,-1],[1,0],[1,1],[3,2],[1,2],[3,5],[0,1],[2,1],[2,1],[1,1],[3,0],[1,1],[0,1],[1,4],[0,2],[1,1],[1,1],[1,2],[1,0],[1,0],[0,-1],[0,-2],[0,-1],[-1,-5],[0,-1],[0,-2],[0,-1],[1,-1],[0,-2],[1,-1],[1,0],[3,-3],[0,-2],[0,-1],[-1,-2],[0,-2],[1,-1],[1,-1],[1,0],[1,1],[1,1],[1,1],[0,1],[1,0],[1,1],[2,1],[1,1],[1,-1],[1,-1],[1,-3],[1,-2],[0,-2],[0,-2],[1,-7],[1,-1],[0,-1],[2,-1],[3,-1],[9,0],[2,1],[1,0],[1,2],[7,9],[1,2],[3,2],[2,1],[15,0],[2,1],[3,2],[2,2],[2,2],[1,2],[1,2],[0,2],[1,3],[0,19],[0,9],[0,1],[0,2],[1,1],[0,1],[1,1],[4,3],[1,1],[3,4],[1,2],[3,9],[1,2],[1,0],[1,1],[4,3],[3,2],[0,1],[1,1],[0,1],[1,1],[0,3],[1,3],[3,0],[2,-3],[2,-2],[2,-1],[1,0],[3,0],[5,0],[1,-1],[2,-1],[1,-2],[2,-4],[0,-1],[9,-9],[1,-2],[2,-6],[2,-5],[2,-5],[6,-14],[4,-4],[0,8],[0,6],[0,2],[0,1],[-1,2],[-1,2],[-3,5],[0,2],[-1,2],[0,3],[1,3],[0,3],[1,2],[2,2],[2,2],[4,3],[4,2],[1,1],[0,2],[-1,2],[-2,3],[0,2],[1,3],[1,4],[2,3],[2,4],[3,3],[5,3],[4,0],[2,-1],[1,-3],[1,-3],[0,-4],[0,-3],[-1,-5],[0,-2],[0,-2],[0,-1],[1,0],[1,-1],[2,1],[10,4],[12,3],[2,0],[1,0],[6,-9],[2,-1],[2,1],[2,2],[2,2],[2,3],[0,3],[0,3],[-2,5],[-1,3],[0,4],[1,11],[1,9],[1,6],[0,2],[0,1],[-1,0],[-1,0],[-8,-4],[-5,-4],[-8,-9],[-2,-1],[-2,0],[-1,0],[-1,2],[0,2],[-1,2],[0,2],[1,2],[0,2],[0,1],[1,2],[9,14],[5,4],[5,2],[5,1],[11,5],[2,-1],[1,-2],[1,-3],[0,-5],[2,-2],[1,-2],[2,-1],[1,1],[2,2],[1,3],[0,4],[0,3],[0,2],[0,2],[2,0],[1,-2],[1,-2],[5,-11],[2,-4],[2,-2],[2,-1],[2,0],[2,1],[2,1],[1,2],[1,7],[1,4],[4,11],[2,9],[1,4],[5,7],[2,3],[1,6],[-1,3],[-2,4],[0,2],[0,3],[2,5],[10,10]],[[5861,2715],[2,2],[2,1],[1,0],[1,0],[5,-2],[2,-1],[2,0],[3,0],[2,1],[3,3],[1,0],[1,-2],[2,-2],[5,-10],[1,0],[1,-1],[1,-3],[0,-6],[0,-3],[-2,-6],[-1,-3],[0,-3],[1,-2],[1,-1],[2,-1],[6,0],[7,3],[2,2],[2,2],[1,3],[0,4],[-1,4],[-1,9],[-1,2],[0,1],[0,1],[1,2],[1,2],[2,3],[2,1],[5,2],[2,3],[2,6],[7,22],[1,5],[3,4],[5,0],[1,-1],[2,-1],[1,-1],[3,-4],[1,-1],[6,-1],[2,-1],[1,-2],[0,-3],[-1,-4],[-3,-8],[-2,-5],[0,-5],[0,-3],[1,-2],[3,0],[5,0],[9,4],[5,-1],[2,-3],[2,-3],[2,-4],[2,-2],[1,-5],[2,-2],[2,0],[6,6],[1,1],[2,5],[6,24],[1,2],[1,2],[5,6],[2,2],[3,1],[3,2],[4,-1],[3,1],[2,0],[1,2],[7,13],[1,2],[1,3],[0,1],[-1,4],[0,2],[1,2],[1,4],[1,2],[-1,2],[0,4],[0,2],[0,2],[2,2],[2,1],[10,-3],[6,-1],[2,-1],[2,-2],[0,-2],[0,-5],[0,-3],[1,-2],[1,-1],[2,0],[25,0],[3,2],[2,3],[1,6],[2,12],[1,3],[1,2],[1,2],[3,-1],[1,-2],[5,-6],[1,-1],[5,-1],[0,-1],[14,-10],[2,-1],[5,-1],[4,-2],[3,-2],[1,0],[4,0],[1,0],[1,0],[0,-1],[3,-5],[1,-1],[0,-1],[0,-1],[0,-2],[-1,-3],[-2,-4],[0,-1],[-2,-21],[-2,-18],[-1,-6],[-4,-12],[-1,-6],[0,-2],[0,-2],[0,-4],[1,-2],[0,-1],[4,-10],[3,-4],[2,-3],[2,-1],[2,-1],[1,0],[1,0],[1,1],[0,1],[0,2],[0,3],[1,3],[0,2],[1,1],[1,0],[1,0],[2,-1],[1,0],[5,0],[6,1],[6,5],[1,0],[1,0],[0,-2],[-1,-2],[0,-2],[0,-1],[4,-1],[-1,-2],[-8,-9],[-1,-2],[0,-2],[0,-4],[0,-3],[-1,-3],[-2,-5],[-2,-4],[-2,-6],[-1,-2],[-1,-1],[-1,-1],[-1,0],[-3,0],[-1,0],[-1,-2],[0,-1],[0,-8],[0,-2],[0,-2],[-1,-2],[0,-2],[-1,-2],[0,-1],[0,-2],[3,-10],[0,-2],[0,-1],[-1,-12],[0,-2],[0,-2],[0,-1],[1,-2],[-1,-2],[0,-2],[-2,-4],[-2,-5],[-1,-1],[0,-2],[0,-4],[0,-2],[-1,-2],[-4,-8],[-1,-1],[-1,0],[-1,0],[-3,-1],[-3,-1],[-2,-1],[-2,-1],[-1,-2],[-1,-2],[-1,-2],[0,-3],[0,-5],[-1,-3],[-1,-3],[-1,-1],[0,-1],[-4,-3],[0,-1],[-1,-1],[0,-3],[1,-4],[0,-1],[0,-1],[0,-1],[-2,-5],[-1,-2],[-5,-8],[-1,-1],[-2,-2],[-1,-1],[-5,-1],[-1,0],[-1,-1],[0,-1],[-1,-2],[-3,-15],[-3,-8],[0,-3],[0,-2],[0,-5],[0,-2],[0,-1],[1,-4],[5,-9],[2,-8],[1,-1],[0,-1],[2,-1],[1,-1],[2,0],[1,1],[5,6],[3,8],[3,14],[1,3],[1,1],[0,1],[3,1],[4,4],[13,18],[2,3],[2,1],[1,-1],[1,-1],[4,-6],[1,-2],[1,0],[2,1],[6,5],[1,0],[2,0],[1,0],[3,-3],[1,-1],[0,-1],[1,-1],[0,-1],[0,-2],[0,-1],[-1,-2],[-1,-5],[0,-1],[0,-2],[0,-1],[1,-1],[4,-4],[2,-2],[0,-1],[1,-1],[0,-2],[-1,-1],[0,-2],[-1,-2],[-1,-3],[-1,-2],[-1,-3],[-1,-2],[0,-1],[0,-1],[0,-1],[2,-7],[1,-3],[1,-6],[0,-2],[-1,-1],[-1,-4],[0,-1],[0,-1],[1,-1],[4,-7],[0,-1],[0,-2],[1,-1],[0,-2],[0,-1],[-3,-12],[-5,-13],[0,-2],[0,-1],[0,-2],[1,-1],[1,0],[4,-1],[2,-2],[2,-1],[2,-4],[2,-1],[1,0],[1,2],[1,1],[6,12],[1,1],[1,0],[1,0],[3,0],[1,0],[1,1],[0,1],[1,1],[0,5],[1,5],[1,1],[0,1],[1,2],[2,1],[1,2],[1,0],[21,-5],[5,0],[5,1],[6,0],[1,0],[1,1],[1,0],[1,1],[1,1],[2,0],[1,0],[6,-3],[1,-1],[1,-1],[1,-1],[0,-2],[0,-2]],[[5828,3368],[0,-4],[-1,-4],[0,-2],[0,-2],[1,-3],[2,-11],[1,-2],[0,-2],[0,-5],[-1,-4],[-1,-6],[0,-2],[0,-2],[1,-2],[1,-1],[2,-1],[7,-5],[2,-2],[1,-2],[1,-2],[1,-2],[0,-2],[0,-5],[-1,-3],[0,-3],[-4,-11],[-5,-19],[0,-3],[-1,-3],[0,-2],[1,-2],[0,-1],[1,-2],[1,0],[1,1],[1,0],[1,2],[1,1],[1,1],[1,0],[1,0],[1,-1],[1,-1],[0,-1],[0,-2],[0,-2],[-1,-2],[0,-1],[-1,-1],[-5,-6],[-1,-2],[-1,-3],[0,-1],[0,-2],[0,-1],[0,-2],[2,-2],[2,-1],[0,-1],[1,-1],[0,-1],[-1,-1],[-2,-3],[-1,-1],[0,-1],[-1,-1],[0,-3],[0,-3],[1,-3],[2,-7],[0,-4],[0,-2],[0,-3],[0,-2],[0,-2],[1,-2],[2,-3],[1,-2],[1,-3],[2,-2],[7,-4],[0,-6],[1,-4],[1,-2],[1,-1],[2,-5],[0,-3],[0,-2],[0,-4],[0,-2],[0,-7],[0,-1],[-1,-2],[0,-1],[-1,-2],[-1,-3],[-1,-2],[-17,-16],[-5,-14],[-2,-2],[0,-1],[-1,0],[-2,0],[-2,0],[-6,2],[-1,0],[-2,-2],[-2,-3],[-1,-1],[-1,-1],[-3,-1],[-2,-1],[0,-1],[-1,-2],[0,-3],[-2,-4],[-16,-29],[-2,-1],[-1,-1],[-3,-1],[-2,0],[-1,-1],[-10,-15],[-1,-5],[0,-6],[0,-2],[0,-2],[-1,-1],[-1,-1],[-2,-2],[-2,-2],[-1,-1],[-1,0],[-7,0],[-1,0],[-1,-1],[0,-1],[0,-1],[0,-2],[0,-1],[1,-2],[4,-2],[2,-3],[7,-11],[1,-1],[2,-1],[1,0],[7,4],[1,1],[1,1],[1,2],[1,4],[0,2],[1,2],[1,2],[2,2],[2,3],[3,2],[2,1],[10,7],[2,1],[1,0],[1,0],[0,-1],[0,-1],[0,-2],[0,-1],[-1,-2],[-1,-1],[0,-2],[0,-2],[2,-2],[1,-1],[1,-1],[2,0],[1,0],[1,1],[2,2],[1,1],[4,6],[2,5],[1,4],[0,1],[1,0],[1,0],[4,-5],[1,0],[1,0],[1,0],[4,3],[4,2],[2,0],[8,0],[2,-1],[2,-1],[2,-1],[3,-3],[1,-1],[0,-1],[1,-3],[1,-3],[0,-1],[2,-2],[2,-2],[3,-5],[0,-1],[1,-1],[0,-2],[0,-4],[0,-3],[0,-5],[0,-3],[0,-1],[0,-3],[-1,-3],[0,-3],[-1,-2],[-1,-1],[-2,-3],[-2,-2],[-1,-1],[0,-1],[-1,-2],[-1,-2],[0,-2],[1,-2],[1,-2],[1,0],[2,1],[1,1],[1,-1],[1,0],[1,-1],[3,-5],[0,-1],[0,-2],[-1,-3],[0,-2],[-1,-1],[-7,-5],[-11,-13],[-2,-2],[-1,-1],[-1,0],[-5,0],[-1,-1],[-3,-2],[-2,-1],[-2,0],[-1,-1],[-1,-2],[0,-2],[0,-2],[2,-3],[1,-2],[0,-1],[3,-1],[1,-1],[3,-1],[1,0],[2,-2],[2,-2],[1,-2],[5,-13],[0,-2],[0,-3],[0,-6],[-1,-3],[0,-2],[-3,-7],[-1,-3],[-4,-5],[-4,-9],[-1,-3],[-1,-2],[-4,-18],[0,-2],[0,-2],[0,-2],[1,-6],[0,-2],[1,-2],[2,-3],[1,-1],[1,-1],[11,-2],[1,-1],[1,-1],[-1,-2],[-2,-4],[0,-1],[-1,-1],[0,-2],[0,-2],[1,-2],[1,-2],[2,-3],[0,-1],[1,-2],[0,-3],[0,-3],[1,-4],[1,-3],[0,-4],[0,-5],[1,-4],[4,-12]],[[5057,2372],[0,1],[1,18],[1,5],[3,5],[5,10],[1,2],[1,1],[2,4],[5,11],[2,3],[1,1],[1,1],[3,6],[1,3],[0,2],[0,3],[0,3],[-2,6],[-1,3],[0,4],[1,3],[0,2],[0,2],[4,9],[0,3],[0,2],[0,2],[0,3],[0,3],[1,3],[0,2],[1,1],[5,0],[1,0],[1,1],[1,1],[2,2],[0,2],[0,2],[-1,1],[0,1],[-1,1],[-4,1],[-6,2],[-4,2],[-2,2],[-2,2],[-9,16],[-1,1],[-2,2],[-5,3],[-1,11],[-1,17],[-1,4],[-2,2],[-2,-1],[-4,-3],[-2,0],[-3,-1],[-5,2],[0,1],[0,2],[0,13],[-1,4],[-1,2],[-5,3],[-2,2],[-1,1],[-4,3],[-2,3],[-3,3],[-1,2],[-1,2],[0,2],[0,1],[0,4],[0,3],[0,5],[-1,10],[0,2],[0,2],[0,1],[1,0],[1,0],[1,0],[5,-4],[1,0],[1,0],[1,0],[1,1],[0,1],[1,2],[1,2],[1,2],[0,3],[4,14],[1,3],[0,5],[0,5],[-1,2],[0,2],[-1,1],[-1,1],[0,1],[-1,1],[-1,3],[0,2],[0,1],[4,3],[3,2],[1,0],[2,2],[2,2],[5,13],[1,4],[0,4],[0,3],[0,2],[2,4],[0,4],[0,2],[0,1],[-1,4],[-1,3],[0,2],[1,2],[0,1],[3,5],[1,2],[0,1],[1,9],[0,6],[1,3],[0,2],[3,5],[8,10],[4,3],[1,2],[1,1],[1,2],[1,3],[1,1],[1,1],[0,1],[1,0],[-1,1],[-1,3],[-1,2],[-1,7],[0,1],[-2,2],[0,1],[-1,1],[0,2],[-1,2],[0,5],[0,2],[-1,2],[-1,1],[-3,6],[-3,4],[-1,1],[0,2],[0,3],[0,2],[-1,1],[0,1],[-1,1],[-1,1],[-1,1],[-1,0],[-2,1],[-2,0],[-1,0],[-2,-1],[-1,0],[-1,0],[-1,1],[-2,2],[-1,3],[0,1],[0,3],[0,7],[-1,1],[0,2],[-4,11],[0,1],[-1,1],[-1,0],[-1,1],[-2,0],[-1,0],[-1,-1],[0,-1],[-1,-2],[0,-5],[0,-1],[-1,-1],[-4,-8],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,0],[-1,-1],[-14,-1],[-1,1],[-1,0],[-9,5],[-1,1],[-1,0],[-1,0],[-1,0],[-1,0],[-2,-2],[-1,0],[-1,-2],[-5,-9],[-1,-1],[-3,-10],[-1,-2],[0,-5],[-1,-1],[0,-1],[-2,-2],[-1,-1],[-1,0],[-4,1],[-13,0],[-1,0],[-4,2],[-4,2],[-5,4],[-7,8],[-1,1],[-1,2],[-2,7],[0,2],[-1,2],[0,2],[1,6],[0,7],[0,2],[2,10],[0,1],[0,1],[-1,0],[-3,-1],[-1,0],[-1,0],[-1,1],[0,2],[0,3],[-1,5],[-1,5],[-1,5],[0,3],[1,1],[0,1],[1,1],[0,2],[1,3],[0,1],[1,0],[2,1],[4,2],[0,1],[1,1],[-1,2],[0,3],[-1,3],[1,2],[0,1],[1,4],[0,2],[0,1],[0,2],[-1,2],[-1,1],[-2,2],[0,2],[0,3],[-1,2],[0,1],[-2,3],[-1,3],[-1,2],[-2,3],[-1,1],[-1,1],[-1,-1],[-2,0],[-1,-3],[-3,-3],[-3,-2],[-5,8],[-2,4],[0,1],[0,2],[0,2],[1,1],[1,1],[2,3],[6,6],[6,7],[17,27],[3,5],[7,11],[6,16],[1,2],[1,1],[0,1],[2,1],[3,1],[2,1],[3,0],[1,0],[1,-1],[1,0],[1,-2],[1,-1],[2,-4],[3,-3],[3,-4],[3,-2],[4,-3],[5,-4],[3,-4],[2,-3],[2,-3],[1,-1],[2,1],[3,1],[6,5],[1,1],[0,2],[1,1],[0,2],[-1,8],[1,3],[2,3],[8,9],[2,4],[1,2],[2,3],[2,2],[1,0],[1,-1],[0,-1],[1,-1],[5,-11],[6,-12],[2,-2],[3,-3],[6,-3],[1,0],[1,0],[4,1],[8,-2],[4,0],[12,4],[2,0],[1,-1],[2,-1],[1,-1],[2,0],[2,1],[3,2],[1,0],[1,1],[1,0],[1,-1],[1,0],[2,-2],[3,-3],[2,-1],[2,0],[1,0],[1,1],[6,5],[1,1],[2,2],[1,0],[10,6],[1,1],[4,6],[1,1],[4,3],[3,1],[2,1],[7,-1],[6,-4],[2,0],[2,0],[1,0],[1,1],[0,2],[0,4],[0,2],[1,1],[1,3],[1,1],[0,1],[0,2],[1,5],[-1,3],[1,2],[0,1],[3,5],[0,2],[0,1],[1,3],[0,11],[0,1],[0,1],[2,5],[1,1],[2,6],[1,6],[1,12],[1,5]],[[5181,3161],[3,0],[2,2],[5,8],[2,1],[4,1],[10,3],[4,1],[5,-1],[1,-1],[1,0],[5,-8],[1,-1],[1,-1],[4,-2],[1,-1],[1,-1],[1,-2],[2,-6],[1,-2],[0,-1],[2,-1],[1,0],[3,2],[4,0],[2,1],[2,1],[1,3],[1,1],[1,1],[1,1],[3,1],[2,0],[8,-1],[3,0],[1,1],[1,1],[1,2],[4,4],[4,2],[2,0],[1,0],[1,-1],[2,0],[11,1],[5,1],[1,1],[2,2],[2,3],[3,1],[1,1],[2,0],[4,-1],[8,-4],[5,0],[3,0],[1,1],[2,1],[7,5],[2,3],[5,4],[1,2],[1,2],[0,2],[-1,6],[-1,5],[-3,8],[0,3],[-1,3],[0,11],[-1,3],[0,2],[-2,3],[-3,4],[-9,8],[-1,1],[0,2],[-1,7],[-1,4],[1,2],[0,1],[-1,1],[-3,5],[-1,1],[-1,2],[-5,4],[-2,1],[-2,0],[-2,0],[-1,0],[-6,-4],[-3,-2],[-2,-1],[-1,-1],[-2,-1],[-1,0],[-1,0],[-6,4],[-2,1],[-2,-1],[-2,-1],[-3,0],[-2,1],[-1,2],[-2,3],[0,5],[0,4],[0,4],[1,4],[0,2],[-1,2],[-1,2],[-3,2],[-2,1],[-4,2],[-2,1],[-5,5],[-1,1],[-2,0],[-4,-1],[-3,0],[-1,1],[-2,1],[-4,2],[-1,2],[-1,2],[0,2],[1,5],[0,3],[0,19],[-1,3],[-1,2],[-3,4],[-1,2],[-1,2],[1,2],[1,2],[4,3],[1,2],[1,2],[0,3],[1,5],[1,3],[0,1],[1,2],[4,4],[2,1],[2,0],[7,-4],[2,0],[7,4],[2,0],[4,0],[2,0],[2,1],[2,4],[1,4],[1,10],[1,5],[2,3],[1,2],[2,5],[2,5],[2,1],[1,0],[16,-23],[7,-8],[4,-2],[1,-2],[3,-7],[1,-2],[2,-1],[13,-8],[1,-1],[2,-2],[1,-2],[1,-2],[0,-3],[0,-2],[0,-3],[0,-2],[0,-2],[1,-2],[1,-1],[2,0],[2,2],[6,12],[1,4],[0,4],[0,5]],[[5358,3386],[4,-2],[8,-6],[3,-2],[3,1],[0,4],[-1,9],[0,4],[1,4],[3,5],[1,3],[1,3],[0,3],[0,3],[0,3],[-1,4],[-6,15],[-2,4],[-1,5],[0,5],[1,3],[2,1],[2,-1],[1,-1],[1,-2],[1,-2],[2,-3],[7,-9],[1,-2],[1,-3],[4,-13],[4,-11],[0,-2],[0,-3],[-1,-4],[-1,-2],[-3,-10],[-1,-2],[-5,-10],[-1,-1],[0,-2],[1,-1],[1,-2],[2,1],[5,2],[4,0],[2,-1],[2,-1],[2,-3],[0,-1],[4,-4],[3,-1],[3,1],[2,3],[1,1],[0,1],[1,6],[0,10],[0,4],[1,4],[2,0],[3,-1],[2,0],[2,2],[2,3],[2,4],[1,4],[0,2],[0,3],[1,3],[-1,3],[0,4],[-2,9],[1,6],[2,6],[6,7],[4,3],[2,0],[2,-3],[1,-2],[3,-1],[2,4],[2,5],[2,10],[1,2],[2,3],[2,2],[3,0],[5,0],[5,3],[2,1],[2,-1],[5,-5],[5,-7],[4,-6],[2,-3],[3,-3],[3,-1],[3,0],[2,1],[23,18],[1,2],[1,3],[1,2],[1,3],[0,10],[1,2],[1,1],[3,5],[1,2],[0,1],[0,1],[0,2],[0,1],[-1,2],[-1,1],[-1,2],[-7,6],[-1,2],[-1,3],[0,2],[-1,6],[-1,3],[0,7],[1,6],[2,6],[1,3],[1,3],[2,5],[2,2],[1,2],[2,1],[1,1],[1,0],[1,-2],[1,-2],[3,-7],[1,-2],[2,-1],[1,-2],[4,-2],[9,-3],[4,-4],[2,-2],[2,0],[1,0],[10,2],[2,0],[2,-2],[1,-2],[1,-3],[0,-3],[-1,-14],[1,-3],[0,-3],[2,-4],[2,-3],[3,-5],[1,-2],[2,-1],[2,0],[2,1],[4,2],[2,1],[1,2],[12,10],[11,6],[18,-1],[20,4],[1,0],[0,-1],[0,-7],[1,-11],[6,-22],[1,-2],[-1,-12],[1,-2],[1,-5],[2,-3],[1,-4],[1,-6],[-1,-4],[-6,-6],[-2,-4],[0,-4],[1,-5],[1,-4],[2,-2],[3,-1],[7,-6],[13,-4],[3,-1],[1,0],[1,0],[2,2],[2,0],[1,-1],[1,-2],[1,-3],[2,-2],[1,-2],[1,-2],[0,-1],[0,-2],[-1,-24],[1,-7],[0,-12],[-1,-8],[0,-3],[1,-3],[2,-6],[1,-2],[1,-2],[2,-1],[2,-1],[2,-1],[2,0],[1,0],[1,1],[1,0],[1,1],[0,2],[0,1],[0,1],[0,2],[-2,3],[0,1],[-1,2],[1,1],[0,3],[0,2],[0,1],[0,2],[0,1],[-1,1],[-3,6],[0,2],[-1,1],[0,2],[1,1],[0,1],[1,1],[1,0],[5,3],[1,1],[2,0],[1,-1],[2,-1],[1,-1],[1,-2],[1,-2],[1,-2],[5,-4],[0,-1],[1,-2],[0,-2],[-1,-3],[-1,-4],[-3,-16],[-1,-6],[-3,-18],[0,-1],[0,-2],[0,-3],[1,-1],[1,0],[1,0],[1,1],[1,2],[1,1],[1,0],[1,1],[2,0],[2,-1],[6,-5],[1,0],[1,0],[1,0],[1,0],[2,1],[2,0],[2,0],[1,0],[1,0],[5,-4],[1,0],[2,-1],[2,1],[3,-1],[1,1],[1,0],[2,3],[1,0],[1,0],[6,-5],[1,0],[1,0],[1,0],[1,1],[0,1],[1,2],[0,1],[0,2],[0,1],[-2,7],[0,2],[0,1],[1,2],[0,1],[3,3],[1,2],[1,1],[0,3],[6,34],[1,4],[1,2],[0,1],[6,6],[3,3],[5,3]],[[5883,4223],[8,-3],[3,-2],[2,-4],[5,-8],[4,-10],[0,-8],[0,-6],[1,-6],[1,-1],[3,-1],[13,-3],[15,-6],[6,-4],[0,-2],[-1,-1],[0,-2],[1,-2],[6,-5],[3,-2],[5,-5],[3,-2],[3,-3],[3,-4],[7,-17],[0,-7],[-1,-6],[0,-5],[0,-4],[0,-1],[0,-2],[5,-8],[0,-3],[0,-2],[-1,-2],[-1,-2],[-4,-5],[-3,-4],[-1,-2],[-1,-3],[0,-3],[0,-3],[1,-6],[3,-13],[1,-2],[0,-3],[0,-2],[-1,-11],[0,-7],[0,-7],[-2,-6],[-2,-5],[-3,-6],[-2,-2],[-2,-1],[-2,-2],[-5,0],[-2,0],[-2,1],[-1,1],[-4,3],[-1,1],[-1,3],[0,3],[-1,2],[-2,2],[-1,1],[-2,1],[-2,1],[-3,-1],[-2,-1],[-20,-14],[-3,-3],[-11,-14],[-1,-3],[-1,-2],[-1,-3],[0,-3],[-1,-3],[-2,-2],[-5,-4],[-2,-2],[-2,-3],[-2,-4],[-1,-2],[-2,-1],[-3,3],[-2,0],[-2,-1],[-1,-1],[-10,-13],[-3,-3],[-3,-2],[-3,-1],[-3,-1],[-6,1],[-3,2],[-1,2],[-2,1],[-3,1],[-3,-2],[-12,-8],[-2,-1],[-2,0],[-3,1],[-2,1],[-2,2],[-1,2],[-1,2],[-2,1],[-2,1],[-5,1],[-13,1],[-2,-1],[-4,-2],[-2,-2],[-2,-2],[-2,-4],[-1,-3],[-2,-1],[-7,0],[-3,-1],[-4,-2],[-4,-3],[-2,-2],[-3,0],[-3,1],[-2,1],[-2,3],[-1,5],[-1,3],[-1,1],[-1,1],[-2,-1],[-1,-2],[-6,-13],[-1,-2],[-2,-1],[-3,-2],[-22,-3],[-2,-1],[-2,-3],[-1,-3],[-1,-2],[-3,-14],[0,-3],[1,-3],[2,-2],[2,-2],[13,-7],[4,-2],[1,-1],[2,-2],[1,-4],[1,-5],[0,-5],[-1,-3],[-2,-16],[0,-8],[0,-13],[4,-27],[0,-3],[-1,-2],[0,-2],[-2,-8],[-1,-3],[0,-3],[1,-6],[1,-6],[-1,-3],[0,-2],[-2,-2],[-1,-1],[-2,-1],[-10,-1],[-4,-1],[-2,-1],[-1,-2],[0,-3],[3,-5],[2,-5],[1,-3],[0,-6],[1,-2],[1,-2],[1,-1],[3,-2],[2,-1],[2,0],[1,0],[2,1],[1,1],[1,2],[1,3],[1,10],[1,2],[1,2],[3,4],[1,2],[3,6],[1,2],[2,2],[2,-1],[2,-2],[3,-8],[1,-5],[1,-8],[2,-11],[1,-6],[1,-2],[2,-1],[2,-1],[2,-2],[3,-2],[7,-2],[5,-4],[6,-2],[2,-1],[2,-2],[1,-3],[1,-3],[0,-4],[0,-2],[0,-2],[-4,-21],[0,-3],[1,-4],[1,-4],[4,-6],[2,-4],[1,-5],[-1,-3],[-1,-5],[0,-3],[1,-3],[3,-3],[7,-4],[1,-1],[3,-1],[1,-2],[2,-2],[5,-14],[4,-9],[21,-29]],[[5820,3526],[11,-14],[2,-5],[-1,-1],[-1,-3],[-1,-2],[-4,-20],[-1,-13],[2,-26],[1,-6],[1,-3],[1,-1],[1,-2],[1,-3],[0,-2],[-1,-2],[-1,-2],[-1,-2],[-1,-2],[1,-3],[0,-2],[0,-2],[-1,-1],[-1,-2],[-4,-2],[-1,-1],[0,-1],[-1,-2],[0,-2],[1,-1],[1,-2],[2,-1],[3,-1],[2,-1],[2,-2],[1,-2],[0,-2],[0,-1],[-3,-9],[-1,-3],[-1,-6]],[[5358,3386],[-7,11],[-6,15],[-3,8],[-2,8],[-2,16],[0,5],[1,8],[0,4],[-1,3],[-2,4],[-3,3],[-8,5],[-4,1],[-3,0],[-2,0],[-3,1],[-4,3],[-9,9],[-3,2],[-1,0],[-1,0],[-2,-1],[-17,-13],[-1,-1],[-3,0],[-3,0],[-3,2],[-4,3],[-4,6],[-4,9],[0,2],[-1,3],[0,5],[0,3],[0,4],[0,4],[0,3],[-2,9],[0,3],[1,4],[0,3],[0,2],[-1,3],[-2,3],[-2,5],[0,5],[1,18],[-1,2],[-1,1],[-3,-1],[-1,-2],[-2,-5],[-1,-1],[-1,0],[-6,4],[-3,1],[-6,0],[-8,1],[-8,6],[-6,5],[-1,1],[0,2],[-1,3],[1,12],[-1,5],[0,3],[-2,1],[-4,4],[-1,1],[-1,1],[-2,0],[-3,1],[-1,1],[-1,1],[-1,3],[0,1],[-2,4],[-1,3],[-1,11],[0,5],[1,3],[2,6],[2,3],[1,3],[4,4],[3,4],[4,9],[2,2],[2,1],[2,0],[3,-2],[2,1],[1,1],[2,5],[1,1],[2,1],[7,0],[1,0],[1,2],[0,3],[1,11],[0,3],[1,2],[1,2],[2,2],[12,9],[2,0],[2,1],[3,0],[2,1],[1,2],[1,4],[0,3],[-2,8],[1,4],[0,3],[3,8],[2,4],[1,2],[0,3],[-2,3],[-10,10],[-9,10],[-7,5],[-2,2],[-2,3],[0,3],[0,3],[0,2],[3,3],[8,4],[2,1],[2,2],[1,2],[0,2],[-1,2],[-2,3],[-1,2],[0,3],[0,2],[2,1],[2,1],[9,-2],[1,-1],[1,1],[1,1],[1,2],[0,3],[-1,5],[0,4],[11,24],[1,3],[3,1],[3,0],[3,-2],[4,-5],[3,-3],[1,-1],[12,-2],[4,-1],[20,-11],[5,-5],[2,-2],[2,-7],[2,-7],[1,-1],[1,-1],[2,-2],[1,-1],[1,-2],[1,-2],[1,-2],[2,-1],[2,3],[3,5],[2,2],[2,2],[13,0],[2,1],[2,1],[0,2],[1,2],[0,3],[1,3],[1,2],[1,1],[2,1],[2,0],[3,-2],[3,-1],[1,0],[1,1],[4,6],[1,1],[1,-1],[0,-1],[1,-3],[1,-2],[2,-2],[3,-3],[3,-3],[2,-5],[1,-7],[2,-11],[3,-8],[2,-7],[3,-2],[1,-11],[2,-5],[2,-4],[2,-2],[2,-2],[2,-1],[3,-1],[3,0],[3,1],[4,3],[3,1],[6,-1],[12,3],[3,0],[3,-2],[3,0],[3,1],[2,2],[2,3],[1,3],[1,3],[2,3],[3,2],[2,2],[2,4],[4,6],[2,5],[3,7],[2,2],[6,5],[6,24],[17,46],[2,4],[2,2],[1,0],[2,1],[10,22],[2,6],[0,6],[-2,5],[-3,9],[-1,3],[0,3],[0,4],[1,4],[1,3],[2,5],[5,8],[4,3],[5,2],[10,-1],[3,0],[2,1],[2,1],[2,2],[2,3],[3,4],[1,2],[1,1],[1,-1],[2,-1],[1,-3],[4,-12],[2,-3],[1,-3],[2,-1],[2,-1],[2,1],[2,1],[2,2],[13,16],[2,4],[1,3],[1,5],[0,2],[-2,4],[-1,1],[0,1],[0,2],[1,3],[2,5],[7,10],[1,1],[1,3],[5,30],[1,9],[-1,5],[-1,3],[0,2],[1,2],[3,3],[14,11],[5,6],[2,3],[1,3],[0,4],[0,3],[0,3],[0,3],[1,3],[2,6],[1,5],[1,5],[0,5],[2,3],[1,1],[10,2],[4,2],[0,1],[4,4],[7,9],[2,4],[2,5],[2,6],[1,6],[1,3],[1,3],[1,1],[1,1],[1,2],[2,1],[4,6],[2,3],[1,3],[0,5],[-1,8],[-1,4],[-1,2],[-4,5],[-9,11],[-22,19],[-3,3],[-1,2],[-1,2],[0,1],[1,3],[0,2],[9,17],[4,10],[2,1],[1,1],[6,0],[2,1],[1,1],[0,3],[-1,2],[-1,3],[-6,8],[-1,2],[0,3],[2,2],[2,2],[21,4]],[[5707,4345],[11,-8],[5,-4],[8,-11],[3,-2],[3,-1],[3,-1],[4,-2],[2,-1],[0,-1],[1,-2],[3,-5],[2,-3],[11,-7],[5,-4],[4,-2],[6,-3],[17,-11],[10,-9],[10,-14],[2,-4],[10,-25],[5,-7],[4,-2],[5,-2],[39,7],[3,2]],[[7152,6477],[2,-10],[1,-5],[-1,-2],[0,-1],[-1,-2],[0,-2],[-4,-4],[0,-1],[-1,-2],[-2,-6],[-1,-2],[0,-2],[-1,-1],[-1,0],[-2,-2],[-8,-1]],[[7133,6434],[-29,-8],[-9,-7],[-2,-1],[-1,0],[-26,1],[-6,-2],[-3,-1],[-2,-2],[0,-2],[-1,-3],[-2,-8],[0,-1],[0,-2],[0,-1],[1,-3],[1,-4],[3,-5],[1,-2],[0,-3],[1,-1],[1,-1],[2,0],[1,-1],[1,-1],[1,-2],[1,-2],[2,-3],[1,0],[0,-1],[3,-1],[1,-1],[1,-1],[1,-1],[1,0],[1,2],[1,1],[1,1],[0,-1],[1,-1],[0,-1],[2,-9],[0,-1],[0,-3],[-1,-3],[-1,-2],[-2,-3],[0,-1],[-4,-8],[0,-2],[-1,-1],[0,-3],[0,-1],[1,-2]],[[7074,6326],[-4,-8],[-5,-10],[-2,-2],[-1,-1],[-2,-1]],[[7060,6304],[-19,0],[-8,2],[-2,0],[-2,0],[-6,-3],[-1,-1],[-1,-2],[-1,-1],[0,-1],[-1,-3],[-1,-2],[-1,-1],[-6,-1],[-8,-6],[-2,-1],[-1,-2],[0,-1],[0,-1],[0,-2],[1,-1],[4,-4],[1,-1],[0,-1],[1,-2],[-1,-1],[0,-2],[-1,-1],[-1,-2],[-3,-2],[-4,0],[-3,0],[-9,3],[-3,2],[-11,12],[-4,8],[-2,10],[-2,1],[-1,0],[-1,1],[-4,-1],[-9,-3],[-1,-1],[-4,1],[-1,0],[-9,-2],[-1,0],[-1,0],[-8,4],[-2,1],[-1,0],[-1,-1],[-2,-1],[-3,0],[-1,-1],[-1,-2],[-1,0],[-1,-1],[-1,0],[-2,-1],[-3,-1],[-1,-1],[-4,0],[-1,0],[-1,-1],[-1,-1],[-1,-4],[-1,-1],[0,-1],[-1,0],[-1,-1],[-1,0],[-2,1],[-1,1],[-3,4],[-2,2],[-2,1],[-2,2],[0,1],[-1,2],[-1,4],[0,2],[-1,1],[-1,2],[-1,1],[-6,1],[-1,0],[-1,0],[-3,-2],[-2,0],[-1,0],[-2,1],[-11,5],[-1,0],[-1,2],[-1,1],[-1,1],[0,3],[-5,28],[0,1],[0,2],[1,2],[1,2],[1,1],[1,1],[2,0],[1,0],[3,-1],[3,0],[2,0],[6,4],[0,1],[0,2],[-2,3],[-7,5],[-1,3],[0,2],[0,2],[0,12],[0,1],[0,1],[0,1],[-1,1],[-7,5],[-4,5],[-1,2],[0,1],[0,1],[0,1],[0,1],[1,2],[3,2],[1,0],[1,0],[2,2],[1,1],[1,2],[5,11],[1,1],[1,2],[3,3],[5,3],[40,15],[4,2],[2,2],[1,3],[3,9],[2,4],[2,3],[5,5],[1,4],[0,6],[-1,5],[-1,3],[-2,2],[-1,2],[-2,1],[-1,1],[-27,51],[0,1],[-1,2],[1,1],[1,1],[2,2],[5,2],[16,9],[2,1],[1,0],[3,0],[14,-4],[1,-1],[4,1],[2,1],[1,2],[8,9],[4,2],[1,1],[1,1],[12,25],[3,3],[2,1],[1,0],[1,-1],[1,0],[1,-1],[3,-4],[1,-1],[1,0],[1,-1],[1,0],[2,1],[1,1],[1,1],[1,2],[1,1],[1,1],[1,0],[4,1],[5,0],[5,-1],[2,-1],[2,1],[1,1],[1,1],[-1,2],[-2,3],[-16,30],[-1,2],[0,3],[0,1],[2,1],[6,-6],[3,-1],[3,-1],[3,1],[1,2],[1,1],[1,5],[1,3],[3,2],[15,10],[1,1],[0,2],[0,5],[0,3],[2,2],[1,2],[2,0],[1,0],[1,0],[2,-2],[0,-2],[0,-13],[1,-5],[1,-3],[1,-1],[1,-2],[3,-4],[5,-5],[5,-8],[1,-2],[1,-1],[11,-14],[5,-7],[7,-10],[8,-8],[16,-11],[3,-1],[2,1],[2,1],[3,2],[8,1],[1,0],[4,0],[17,-8],[21,2],[9,-2],[1,-3],[-9,-3],[-1,-3],[-1,-3],[0,-2],[-2,-3],[-2,-1],[-6,1],[-5,-1],[-8,-2],[-4,-2],[-2,-2],[-8,-10],[-1,-2],[-1,-4],[0,-2],[0,-1],[1,-2],[1,-3],[2,-3],[2,-3],[2,-1],[1,-1],[0,-1],[1,-2],[-1,-3],[0,-9],[0,-2],[0,-6],[1,-3],[1,-4],[2,-4],[1,-2],[3,-4],[7,-8],[4,-3]],[[7165,2110],[2,-2],[4,3],[5,-1],[4,-3],[-2,-6],[-3,1],[-2,-3],[-1,-5],[0,-7],[-2,-2],[-3,2],[-2,-1],[-2,-4],[-1,-5],[0,-5],[1,-1],[1,-5],[-9,-3],[-9,0],[3,6],[5,7],[4,15],[-1,2],[-2,1],[-2,0],[-1,0],[-1,-1],[-1,1],[0,2],[5,8],[0,5],[1,0],[-1,5],[2,2],[3,0],[1,0],[1,-5],[3,-1]],[[7280,2318],[4,-1],[3,1],[0,-4],[1,-5],[0,-2],[-1,-3],[-2,-1],[-1,-2],[0,-4],[-2,-5],[-2,-2],[-4,0],[-4,2],[-1,2],[-2,2],[0,2],[0,2],[2,1],[2,1],[1,1],[1,4],[-4,-3],[-1,0],[-1,4],[1,3],[2,7],[0,5],[4,-3],[4,-2]],[[7312,2321],[-1,-1],[-4,3],[-1,1],[1,1],[0,1],[3,1],[2,-2],[0,-2],[0,-2]],[[7441,2449],[0,-1],[-1,1],[0,1],[-1,1],[-1,1],[0,1],[1,2],[1,2],[0,1],[-1,1],[0,1],[0,1],[0,1],[1,1],[1,1],[2,1],[2,1],[1,2],[0,-1],[0,-1],[0,-1],[-2,-1],[-1,-2],[0,-3],[1,-1],[0,-1],[0,-1],[0,-1],[-3,-5],[0,-1]],[[7506,2496],[2,-1],[2,1],[1,0],[2,0],[1,-1],[-1,-2],[-2,-1],[-1,-2],[0,-4],[-1,-2],[-2,0],[-2,2],[-1,3],[1,2],[0,2],[-2,1],[-2,0],[0,-2],[-5,2],[-2,3],[-1,4],[1,2],[1,1],[1,0],[2,3],[1,0],[0,-2],[1,0],[1,-1],[1,-2],[1,-3],[1,-2],[2,-1]],[[7470,2552],[-1,0],[-1,6],[-1,3],[0,2],[0,5],[3,15],[1,1],[0,1],[1,1],[1,2],[0,1],[2,3],[2,0],[0,-2],[0,-1],[1,-2],[0,-3],[-1,-7],[-1,-7],[-1,-6],[1,-4],[0,-4],[-2,-1],[-2,-1],[-2,-2]],[[7548,2604],[2,-4],[2,2],[2,0],[1,-2],[2,-3],[-3,-3],[2,-2],[5,-2],[3,-2],[-2,-3],[-3,-3],[-2,4],[-2,-1],[-3,-4],[-1,-4],[2,-5],[5,-5],[1,-4],[-4,1],[-4,-1],[-4,-3],[-2,-5],[0,-3],[0,-3],[0,-1],[-3,0],[-3,2],[-3,3],[-2,3],[1,5],[0,1],[2,2],[0,1],[0,1],[0,2],[0,1],[0,1],[-2,-2],[-2,0],[-1,0],[-2,2],[2,3],[1,2],[2,0],[8,-2],[3,1],[2,5],[-3,2],[-5,-2],[-2,3],[0,3],[2,9],[0,3],[-2,0],[-1,-2],[-1,-2],[-2,5],[1,5],[2,4],[3,4],[3,1],[0,1],[3,2],[3,0],[-1,-2],[0,-4],[0,-5]],[[7538,2614],[0,-3],[0,-1],[-6,-1],[-1,0],[-1,1],[0,1],[0,2],[1,1],[1,-1],[6,3],[0,-2]],[[7517,2610],[-1,-1],[-1,-1],[-1,0],[0,1],[-1,0],[-1,2],[1,0],[0,1],[0,-1],[1,-1],[1,3],[2,1],[0,1],[1,1],[0,1],[2,1],[0,-3],[-2,-3],[-1,-2]],[[7485,2696],[-2,0],[-1,2],[-5,1],[-5,3],[-2,1],[-2,1],[-3,0],[-2,1],[-1,3],[-1,4],[-1,3],[-2,3],[-2,3],[-1,10],[2,-2],[4,-9],[2,-2],[2,-2],[6,-1],[10,-6],[5,-5],[1,-5],[-2,-3]],[[7525,2724],[-3,-2],[-9,4],[-2,4],[4,7],[4,2],[2,-2],[2,-3],[2,-5],[1,-3],[-1,-2]],[[7594,2844],[1,-2],[-1,-4],[-1,-1],[-1,0],[-2,-1],[-1,0],[0,2],[0,2],[1,1],[-1,0],[0,1],[1,1],[1,0],[2,0],[1,1]],[[7606,2852],[-1,0],[-2,3],[0,1],[3,3],[3,6],[1,0],[1,-1],[0,-2],[0,-1],[0,-1],[0,-2],[-1,-1],[-1,0],[-1,-1],[-2,-4]],[[7554,2870],[-1,-3],[-1,1],[-2,0],[1,0],[-1,-1],[-1,-1],[-1,-1],[-1,0],[-1,1],[-1,2],[1,2],[1,1],[1,0],[1,0],[2,1],[2,-1],[1,-1]],[[7543,2881],[-4,-4],[-1,-2],[-3,-1],[-2,0],[-1,1],[-1,1],[-1,-2],[-1,1],[-1,2],[0,3],[0,2],[1,0],[9,0],[1,-1],[1,-1],[0,3],[1,1],[1,1],[2,0],[0,-1],[0,-2],[-1,-1]],[[7575,2889],[0,-1],[-1,-2],[0,-1],[0,-1],[1,-2],[0,-1],[-2,1],[-1,0],[0,1],[0,2],[-2,0],[-1,2],[0,1],[2,0],[1,0],[2,1],[1,0]],[[7635,2951],[-2,0],[-2,1],[1,2],[2,0],[1,0],[0,-1],[1,0],[-1,-2]],[[7644,2960],[1,-2],[0,-3],[1,-1],[1,-1],[0,-1],[-5,-3],[-4,5],[-2,2],[1,3],[0,1],[1,0],[1,2],[2,0],[1,0],[0,-1],[1,0],[1,-1]],[[7653,3024],[0,-2],[1,-6],[-3,2],[-5,14],[-5,4],[-2,-1],[-3,-1],[-2,0],[-2,2],[-1,4],[2,3],[2,2],[1,1],[-1,1],[0,1],[0,-1],[-1,-1],[-1,2],[1,1],[1,1],[0,4],[-3,-3],[-1,-1],[-1,2],[-1,1],[-2,2],[1,-2],[0,-1],[0,-1],[1,-1],[-2,-1],[-2,1],[-2,1],[-2,1],[0,-2],[1,-1],[1,-2],[1,-1],[0,-1],[-3,-4],[-1,0],[-1,4],[-3,3],[0,-2],[0,-3],[0,-2],[0,-2],[0,-2],[-3,-4],[0,-3],[0,-2],[1,-1],[2,0],[1,0],[1,2],[0,2],[0,1],[5,4],[3,2],[1,-1],[1,-4],[5,-3],[1,-3],[2,2],[3,3],[0,-2],[1,0],[0,1],[0,1],[1,2],[3,-5],[0,-4],[-3,-8],[4,2],[2,-2],[3,-4],[3,-3],[0,-1],[-2,-1],[-4,1],[-2,0],[6,-2],[0,-2],[-4,-2],[-2,2],[-1,-2],[3,-2],[0,-2],[-2,0],[0,-1],[4,0],[-3,-2],[-3,0],[-13,3],[-1,1],[-2,4],[-1,1],[-2,0],[1,-3],[1,-2],[0,-2],[1,-2],[3,-9],[-1,-2],[-3,4],[-2,-2],[-2,-4],[-2,-2],[0,-2],[4,0],[2,-5],[0,-5],[-3,-4],[-1,2],[-2,-2],[-4,0],[-7,0],[6,-5],[2,-1],[2,1],[2,1],[2,0],[1,-3],[-1,-1],[0,-2],[-1,-1],[1,-4],[-1,-1],[-1,-1],[-1,-1],[-2,0],[-1,0],[-5,3],[-4,1],[-3,-1],[-2,-2],[1,-5],[-2,-1],[-1,-1],[-1,-1],[-2,0],[-1,0],[-1,1],[-1,2],[-2,0],[-4,0],[4,-3],[-2,-3],[-3,-4],[0,-6],[2,-2],[2,-2],[3,-1],[2,-1],[1,-1],[2,-2],[2,-2],[3,0],[-1,-3],[-2,-4],[-2,-3],[1,-4],[2,-2],[2,0],[3,-1],[1,-3],[-1,-3],[-2,-1],[-2,0],[-2,-1],[-1,-4],[0,-3],[1,-4],[2,-4],[2,2],[0,-2],[-6,-5],[-1,-1],[-2,-2],[0,2],[0,2],[1,2],[-1,2],[-8,-8],[-2,-1],[-9,0],[-2,-2],[-1,-3],[-1,-4],[0,-5],[-9,-9],[-6,0],[-2,2],[0,5],[0,3],[1,0],[1,-1],[1,1],[1,2],[-1,5],[0,2],[3,3],[3,2],[7,3],[2,1],[4,5],[3,1],[-1,1],[0,3],[-1,1],[2,2],[2,7],[2,4],[0,-1],[1,0],[2,-1],[1,1],[-1,1],[0,1],[0,1],[8,15],[0,3],[-2,1],[-8,-3],[-12,2],[-3,-1],[0,-3],[2,-6],[-2,-7],[-4,-6],[-2,-6],[2,-7],[-3,-2],[-4,0],[-1,9],[0,1],[-4,6],[-1,-1],[-3,-4],[-2,-2],[0,5],[2,16],[1,2],[5,4],[-2,2],[-2,0],[-2,0],[-2,-2],[1,7],[3,3],[3,1],[2,6],[-4,-1],[-4,-2],[-2,-4],[-2,-4],[-1,-5],[0,-2],[0,-3],[1,-4],[-1,-4],[-2,-2],[-2,0],[-2,2],[0,1],[1,4],[-2,6],[-2,6],[-3,2],[-1,-1],[-1,-3],[-1,-4],[0,-2],[1,-4],[1,-2],[4,-7],[2,-1],[1,-2],[0,-3],[-1,-2],[-2,0],[-2,2],[-3,4],[-3,5],[-3,3],[-3,-1],[-1,5],[1,3],[-1,2],[-2,3],[-1,0],[-3,-1],[-1,-1],[1,-3],[-2,-3],[-2,-2],[-1,-3],[0,-3],[0,-3],[0,-3],[1,-2],[2,-1],[2,0],[2,0],[2,-2],[0,-3],[0,-4],[-1,-6],[-5,5],[-2,0],[-2,-1],[-1,-1],[1,-6],[1,-5],[7,-7],[1,-5],[1,0],[2,5],[3,3],[3,2],[3,3],[2,-2],[2,-1],[5,1],[-1,0],[2,0],[1,-1],[0,-2],[-1,-2],[2,-1],[4,-1],[2,-2],[0,-3],[0,-2],[0,-2],[-2,2],[0,1],[-2,-3],[1,-5],[2,-3],[3,-1],[0,-2],[-1,0],[0,-1],[-1,-1],[2,-1],[1,-2],[2,-4],[0,-4],[1,-2],[-1,-2],[0,-3],[-1,0],[-2,0],[-1,0],[0,-1],[0,-4],[0,-1],[-3,-1],[-2,0],[-1,6],[-3,3],[-3,3],[-3,0],[-1,2],[-5,8],[-1,2],[-1,-1],[-1,-3],[-1,-1],[-2,-2],[-1,-1],[-2,2],[-1,0],[-3,-1],[-2,-2],[-1,-3],[1,-4],[4,-1],[4,1],[1,2],[1,1],[1,-1],[2,-2],[1,-2],[0,-20],[2,-4],[3,-1],[0,-1],[0,-3],[-1,-1],[3,0],[6,1],[2,2],[0,8],[1,4],[3,-2],[1,2],[1,3],[0,3],[1,3],[1,1],[5,4],[1,-4],[2,-2],[1,-3],[-2,-4],[3,0],[4,-4],[2,-1],[2,0],[5,3],[2,1],[0,-2],[-10,-13],[-2,-1],[-3,4],[-5,0],[-4,-3],[-3,-5],[1,-1],[2,-1],[-2,-2],[-1,1],[-1,2],[-2,1],[-2,-1],[-3,-2],[-3,-1],[-4,0],[-3,-1],[-3,-2],[-4,-4],[3,-2],[3,-2],[-1,-3],[1,-2],[-3,-1],[-2,-2],[-2,-2],[-1,-4],[-1,-2],[-2,-1],[-1,-3],[1,-5],[-6,-6],[-4,-7],[-3,-9],[-4,-8],[-4,-10],[-2,-4],[-4,0],[-1,1],[-1,5],[-1,2],[-2,1],[-4,1],[-1,1],[-5,5],[-3,2],[-8,1],[-3,2],[-4,7],[-3,4],[-2,1],[-7,2],[-1,1],[-6,5],[-2,2],[-2,1],[0,-2],[4,-4],[3,-6],[4,-3],[3,2],[3,-3],[1,-3],[1,-8],[1,-4],[4,-6],[1,-3],[0,-8],[1,-1],[7,-1],[6,-4],[2,-1],[6,1],[5,2],[5,4],[8,8],[1,2],[1,2],[0,5],[0,2],[3,2],[5,0],[2,1],[9,-7],[5,-2],[4,2],[3,-5],[1,-2],[1,-3],[-1,-3],[-4,-12],[-1,-3],[-2,-3],[-3,-1],[-2,-1],[-1,-1],[-3,-13],[-3,9],[-1,2],[-2,-4],[2,-2],[0,-6],[1,-5],[3,-3],[1,-1],[0,-4],[0,-6],[0,-1],[2,0],[0,-1],[0,-2],[-4,-6],[0,-2],[0,-8],[-1,-2],[-1,-1],[0,-1],[-2,0],[0,1],[-1,2],[-5,4],[-2,0],[-1,-4],[-2,0],[-3,-1],[-1,-2],[-1,1],[-1,1],[-3,0],[1,-6],[1,-8],[1,-5],[3,3],[-1,-6],[0,-6],[2,-4],[4,-2],[1,1],[1,3],[1,1],[3,-2],[1,-1],[2,1],[1,2],[1,2],[-2,-10],[0,-3],[4,-1],[-1,-2],[-1,-2],[-1,0],[-2,0],[3,-2],[1,0],[2,0],[-2,-3],[-1,0],[-2,-1],[0,-1],[5,1],[0,-1],[0,-2],[0,-2],[2,0],[2,-1],[0,-2],[0,-3],[-2,-3],[1,-1],[1,0],[1,-1],[2,-6],[0,-5],[-1,-3],[-3,-4],[3,0],[1,-1],[2,-1],[-9,-3],[-3,0],[0,2],[1,2],[1,2],[1,1],[-2,8],[-2,4],[1,2],[1,2],[1,2],[-1,1],[-2,5],[0,1],[-1,0],[-1,-1],[-1,-1],[-1,-1],[-1,0],[0,1],[-1,1],[-1,-3],[0,-5],[0,-4],[1,-1],[3,-1],[0,-1],[-1,-5],[-1,-3],[-3,-1],[-4,0],[-3,0],[1,3],[1,4],[1,5],[0,3],[0,1],[-1,1],[-1,1],[0,2],[0,2],[2,2],[0,2],[1,1],[-1,0],[-6,0],[-1,-2],[-1,-4],[-1,-3],[-2,2],[0,3],[2,8],[0,4],[-1,1],[-12,3],[-2,2],[-1,3],[1,3],[4,11],[-2,-2],[-1,0],[0,-2],[-2,2],[1,4],[-2,3],[-3,0],[-3,-2],[2,-4],[-1,-3],[-6,-2],[-1,-3],[0,-8],[-2,-4],[-3,-8],[-2,-2],[-2,-1],[-5,-1],[-2,-2],[-2,-3],[-5,-5],[-2,-1],[-2,-1],[1,-4],[7,-12],[2,-3],[0,-4],[1,-2],[2,1],[1,3],[1,4],[1,0],[3,-11],[-3,-2],[-2,-2],[-2,-3],[2,-4],[1,-3],[1,-1],[2,3],[2,3],[1,4],[1,4],[1,5],[1,-2],[2,-1],[2,0],[0,3],[2,-1],[1,-1],[1,-2],[-2,0],[1,-2],[4,-8],[1,-1],[2,0],[2,-2],[0,-2],[-1,-4],[-3,-2],[-7,1],[-2,-2],[3,-11],[-1,-3],[-4,-1],[-3,4],[-2,1],[-2,-2],[-4,-1],[-2,-2],[-2,4],[-2,4],[-2,4],[-4,-2],[-3,-4],[1,-4],[1,-3],[1,-3],[1,-1],[1,-2],[1,-3],[2,2],[1,-2],[-1,-2],[-2,-1],[-3,0],[-2,2],[-2,0],[-1,-2],[1,-1],[0,-1],[0,-1],[1,-1],[-2,1],[-4,3],[2,5],[1,2],[-3,3],[-2,-2],[-1,-4],[0,-4],[-2,4],[0,5],[4,7],[2,4],[0,4],[-2,2],[-4,1],[-7,-2],[-3,1],[2,5],[3,3],[4,1],[0,5],[-7,1],[-11,-5],[-1,-1],[-2,0],[-4,-4],[-1,-4],[3,-2],[4,-1],[1,-2],[-1,-4],[1,-4],[1,2],[2,2],[2,1],[3,-1],[2,-3],[-1,-3],[-2,-5],[-2,-4],[0,-5],[0,-2],[-1,-1],[-1,-1],[-2,-1],[-3,1],[-3,1],[-3,-2],[-1,-1],[-2,-3],[0,-3],[2,-5],[3,-4],[3,-2],[6,-3],[-1,-2],[2,-2],[2,-1],[2,1],[3,2],[1,7],[1,4],[1,-1],[0,-3],[0,-4],[-1,-4],[-1,-2],[-1,-2],[1,-4],[1,-7],[3,1],[1,1],[-2,-3],[-2,-3],[-3,-1],[-1,3],[-1,2],[-3,1],[-6,-1],[-1,-4],[1,-8],[4,-6],[6,4],[0,-2],[1,0],[-1,-1],[0,-1],[1,0],[0,-1],[0,-1],[-4,-2],[-5,0],[-4,2],[-3,3],[-2,1],[-5,-3],[-2,-1],[-2,1],[-1,2],[-2,1],[-3,-2],[1,-4],[-3,-3],[-4,-2],[-4,-2],[-1,1],[-1,1],[-1,2],[1,4],[1,1],[3,2],[1,0],[0,4],[-2,5],[-2,3],[-2,3],[0,-9],[0,-2],[-1,-1],[-1,2],[0,3],[1,3],[-1,1],[-1,2],[-2,4],[-1,-3],[-2,-5],[-1,-2],[1,-2],[3,-2],[1,-3],[0,-4],[-3,-2],[-5,1],[-4,1],[-4,3],[7,-8],[1,-3],[0,-4],[-1,-3],[0,-3],[3,-7],[1,-2],[0,2],[1,1],[1,0],[1,0],[1,0],[4,3],[1,2],[1,2],[2,-1],[0,-2],[0,-2],[0,-3],[1,-3],[1,1],[3,1],[2,-2],[1,-1],[0,-3],[-2,-7],[-1,-1],[-2,-1],[-2,-3],[-3,-8],[-3,-3],[-1,2],[-2,3],[-2,2],[-2,-3],[-1,-4],[0,-5],[0,-5],[1,-3],[2,0],[2,-1],[-1,-6],[-2,-6],[-4,-6],[-5,-4],[-4,-2],[-1,0],[-1,-1],[-1,3],[0,2],[0,2],[1,2],[1,1],[3,1],[-1,2],[-12,11],[-2,1],[-2,0],[-5,4],[-3,1],[1,4],[0,3],[0,8],[0,3],[-2,-2],[-1,-3],[-2,-2],[3,-13],[-2,-5],[-5,-4],[-4,-2],[-5,2],[-1,-1],[-1,1],[-4,2],[-1,-3],[-1,-3],[-2,-1],[-2,1],[-1,-8],[-4,-1],[-4,4],[-2,5],[0,6],[2,1],[2,-1],[2,2],[0,3],[-2,1],[-3,1],[-2,0],[1,5],[1,4],[-1,4],[-3,5],[-1,-8],[-1,-1],[-1,0],[-1,0],[0,-6],[-1,-4],[-2,-3],[-1,-3],[-1,-4],[-1,1],[-2,3],[-7,5],[-2,-5],[2,-6],[-2,-4],[-2,-1],[-3,2],[1,5],[-3,-3],[-3,-5],[1,-3],[7,-1],[4,-2],[2,-4],[-2,-4],[-2,-2],[-1,-1],[-2,0],[-1,-1],[-1,-1],[-1,-2],[2,-2],[2,-3],[0,-2],[-4,0],[-14,9],[-7,2],[-7,-2],[3,-1],[3,-1],[4,-1],[2,-4],[-14,5],[-4,-1],[0,-2],[14,-17],[5,-3],[14,2],[5,3],[1,2],[2,-1],[1,-2],[0,-3],[-1,-6],[-1,-2],[-1,0],[-1,-2],[-1,-7],[1,0],[2,2],[2,2],[1,2],[3,0],[3,-2],[2,-5],[0,-2],[2,-2],[1,-2],[0,-5],[0,-2],[1,-3],[-3,0],[-4,-3],[-2,1],[-2,-2],[-3,-7],[-3,-3],[-1,-1],[-3,-2],[-1,-1],[-1,-2],[-1,-4],[0,-2],[-2,-1],[-1,4],[0,8],[-3,2],[-2,-1],[-2,-3],[-2,-3],[4,-2],[1,-4],[-1,-6],[-5,-11],[-1,-3],[0,-4],[0,-3],[1,-3],[0,-2],[-1,-4],[-5,2],[-4,-3],[-7,-11],[-4,-6],[-1,-3],[0,-5],[-1,-3],[-2,-3],[-2,1],[-1,3],[1,8],[9,13],[1,6],[-2,1],[-4,-3],[0,3],[2,1],[1,2],[-1,2],[0,2],[-1,5],[-1,0],[-2,-9],[-4,-1],[-5,3],[-4,5],[1,-4],[1,-3],[2,-1],[3,0],[-4,-10],[0,-5],[1,-6],[-3,-6],[-4,-6],[-3,-9],[-1,-9],[0,-8],[2,-5],[-3,-5],[-1,-3],[-3,-7],[-1,5],[0,6],[2,6],[0,9],[0,5],[-1,5],[-2,5],[-2,3],[-2,3],[-3,2],[-11,0],[-3,1],[-4,5],[-2,1],[-2,-4],[1,-5],[3,-1],[3,1],[3,0],[6,-10],[-2,-11],[-4,-12],[-5,-3],[-9,5],[-2,-1],[-1,-2],[-1,-2],[-2,-2],[-4,-2],[-2,4],[-2,3],[-3,-2],[3,-5],[-1,-4],[-3,-7],[1,-9],[-1,-2],[-1,-6],[2,-5],[-3,-6],[-3,-2],[-1,5],[0,4],[2,4],[-2,4],[-1,6],[0,-2],[-3,-6],[1,-3],[1,-3],[0,-3],[-6,-2],[-2,-2]],[[7122,2074],[0,1],[-2,6],[-2,3],[-1,1],[-1,1],[-7,5],[-3,3],[-1,2],[-2,4],[-2,4],[-1,3],[-6,35],[-2,4],[0,2],[-2,3],[0,1],[0,1],[-3,22],[-1,1],[-1,1],[0,1],[-1,3],[-1,4],[-1,11],[0,4],[0,4],[1,6],[1,2],[0,2],[3,6],[1,3],[1,2],[-1,6],[-3,8],[-8,34],[-1,5],[-1,1],[0,1],[-6,7],[-1,2],[-1,2],[-1,2],[0,2],[0,1],[0,3],[0,2],[0,1],[-1,1],[-1,2],[-10,10],[-1,2],[0,2],[0,3],[1,12],[1,6],[1,3],[1,2],[0,2],[0,2],[0,1],[0,1],[-1,1],[-1,1],[-3,0],[-14,0],[-2,-1],[-1,-1],[-6,-2],[-5,-3],[-5,-6],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-1,2],[-1,1],[0,1],[-3,14],[-1,3],[-2,4],[-5,8],[-1,2],[-1,3],[-3,7],[-3,7],[0,1],[0,1],[0,4],[-1,1],[-1,1],[-2,-1],[-2,0],[-1,-1],[-2,-1],[-3,-4],[-2,-1],[-4,-1],[-1,0],[-1,0],[0,2],[-1,2],[1,3],[-1,1],[-1,1],[-9,2],[-5,0],[-1,-1],[-2,0],[-5,0],[-2,0],[-2,1],[-3,3],[-2,2],[-1,1],[-2,4],[0,1],[-1,0],[-1,1],[-1,0],[-2,0],[-2,-1],[-2,1],[-1,1],[-4,3],[-3,1],[-8,1]],[[6912,2419],[-5,9],[0,2],[-1,2],[1,0],[1,0],[2,1],[1,1],[1,4],[0,3],[0,1],[-1,3],[-1,3],[0,11],[0,2],[-2,5],[-3,20],[-1,4],[1,2],[2,3],[6,5],[1,2],[1,2],[5,10],[1,2],[2,4],[1,2],[1,2],[1,4],[1,3],[0,2],[-1,8],[1,3],[0,3],[2,12],[1,13],[1,1],[2,5],[1,4],[0,1],[3,5],[0,3],[1,2],[0,1],[-1,1],[-1,5],[-1,2],[0,2],[0,3],[0,2],[0,1],[1,2],[1,4],[2,5],[1,3],[1,1],[1,2],[1,0],[2,1],[0,1],[1,2],[2,8],[1,1],[0,1],[1,1],[1,1],[1,1],[2,0],[2,1],[1,1],[0,1],[0,1],[-1,1],[-2,3],[-1,2],[-1,3],[0,4],[0,5],[0,2],[1,2],[4,7],[3,4],[1,0],[1,2],[3,1],[7,1],[2,1],[1,0],[1,1],[4,4],[3,2],[1,2],[1,3],[5,13],[5,10],[4,19],[0,6],[0,1],[-1,1],[-1,3],[0,2],[0,3],[0,4],[0,3],[0,1],[-1,6],[-1,6],[0,3],[1,2],[7,14],[2,3],[1,1],[2,4],[4,10],[1,0],[1,1],[1,0],[1,0],[1,0],[0,-1],[1,-2],[1,-2],[1,-1],[0,-1],[1,-1],[1,-1],[1,0],[1,0],[1,1],[1,1],[2,3],[0,2],[1,2],[0,6],[3,15],[0,2],[-1,1],[-3,1],[-1,0],[-1,1],[-2,1],[-1,2],[-4,11],[-1,8],[0,6],[0,4],[0,2],[-1,1],[-1,3],[-1,2],[-1,3],[-1,2],[0,2],[0,3],[0,3],[0,2],[1,1],[1,3],[2,4],[0,4],[3,28],[0,1],[1,2],[6,10],[3,6],[1,2],[1,1],[3,3],[1,1],[4,5],[1,1],[1,0],[1,-3],[1,0],[1,0],[3,2],[4,3],[3,2],[1,1],[2,0],[8,0],[1,0],[2,1],[3,3],[2,0],[1,1],[1,0],[3,-2],[1,0],[1,0],[1,1],[1,1],[8,11],[3,2],[6,9],[5,16],[1,5],[5,5],[1,2],[2,6],[5,10],[0,1],[1,2],[-1,3],[-1,2],[-1,2],[-1,1],[0,1],[0,3],[0,2],[-1,1],[-1,0],[0,-1],[-1,-1],[-1,0],[-1,0],[0,1],[-1,1],[0,8],[0,2],[1,2],[3,7],[0,2],[0,1],[0,3],[0,2],[0,1],[-3,8],[0,3],[-1,6],[0,3],[1,7],[1,4],[10,23],[3,5],[6,13],[7,11],[2,1],[1,1],[0,3],[1,4],[-2,15],[2,2],[1,1],[1,0],[2,-1],[2,-1],[3,2],[9,10],[2,4],[1,1],[3,2],[3,1],[3,2],[1,1],[3,5],[1,1],[1,1],[1,0],[2,0],[1,-1],[1,-1],[0,-1],[1,-1],[0,-4],[1,-2],[0,-1],[1,-2],[2,-3],[1,-2],[0,-1],[1,-3],[0,-1],[1,-2],[2,-3],[1,-2],[2,-1],[6,-5],[3,0],[4,-1],[1,-1],[3,-3],[1,-1],[1,0],[1,0],[1,1],[1,1],[2,3],[1,2],[1,2],[0,2],[1,1],[-1,7],[1,1],[0,3],[1,3],[0,1],[1,3],[2,1],[0,1],[1,1],[6,1],[3,1],[1,0],[1,1],[6,4],[4,2],[1,0],[1,0],[3,0],[1,0],[4,3],[1,0],[2,0],[5,-1],[2,0],[1,1],[1,4],[1,0],[0,1],[0,1],[1,1],[2,1],[1,1],[2,4],[1,2],[1,1],[2,0],[1,0],[2,-1],[1,0],[1,0],[2,1],[19,11],[7,1],[1,0],[1,1],[0,2],[1,3],[0,6],[2,9],[0,2],[-1,2],[-4,4],[0,1],[-1,1],[0,2],[0,1],[1,3],[3,4],[6,7],[6,5]],[[7330,3311],[9,-7],[3,0],[1,3],[1,2],[1,1],[9,3],[2,0],[1,0],[0,-1],[1,-2],[1,-1],[1,0],[8,2],[2,1],[1,2],[2,1],[0,1],[3,2],[2,2],[2,-11],[2,-3],[3,-5],[2,-3],[1,-3],[0,-2],[0,-1],[0,-1],[-2,-2],[-2,-2],[-1,-1],[0,-1],[-1,-2],[0,-2],[1,-1],[1,-1],[1,-2],[1,-4],[0,-3],[0,-1],[-4,-6],[-1,-1],[-1,-1],[0,-4],[-1,-20],[1,-10],[0,-1],[0,-1],[1,-1],[4,-6],[1,-2],[4,-3],[0,-1],[1,-2],[2,-3],[0,-3],[1,-11],[1,-8],[3,-13],[1,-3],[3,-5],[1,-3],[0,-2],[0,-2],[-1,-3],[0,-2],[-1,-3],[1,-1],[0,-2],[1,-1],[0,-3],[5,-27],[0,-2],[0,-1],[-1,-1],[-1,-1],[0,-1],[-1,0],[-1,0],[-1,-1],[-1,-1],[0,-2],[0,-2],[0,-1],[2,-3],[2,-2],[2,-1],[2,-1],[2,-1],[2,1],[5,2],[1,0],[2,0],[7,-3],[1,0],[3,-2],[1,-1],[1,0],[1,1],[1,0],[0,1],[1,0],[2,-1],[1,-2],[0,-3],[1,-1],[1,-2],[4,-2],[4,-1],[5,-1],[5,0],[2,1],[1,1],[1,3],[1,2],[1,2],[1,1],[6,2],[1,1],[1,1],[1,4],[1,2],[1,1],[3,3],[1,1],[2,0],[1,0],[1,0],[0,-1],[1,-2],[1,0],[5,4],[2,1],[1,2],[1,2],[0,2],[1,6],[0,2],[3,5],[1,3],[0,1],[0,2],[0,3],[1,3],[3,6],[2,3],[2,1],[1,0],[1,0],[4,-1],[3,0],[1,-1],[2,-2],[0,-3],[0,-2],[-1,-1],[-1,-2],[0,-2],[0,-1],[0,-2],[0,-1],[0,-1],[1,-1],[1,-1],[2,-1],[2,-1],[1,-3],[0,-1],[0,-4],[0,-2],[0,-1],[1,-2],[3,-3],[0,-2],[1,-2],[0,-3],[1,-4],[0,-4],[-1,-10],[0,-2],[0,-1],[1,-3],[2,-3],[5,-5],[0,-2],[2,-2],[1,-3],[1,-1],[0,-2],[0,-1],[0,-2],[0,-1],[1,-2],[1,-1],[1,0],[5,-1],[2,1],[1,1],[0,1],[1,1],[1,0],[1,-1],[2,-1],[1,0],[2,0],[2,1],[1,1],[6,0],[1,0],[1,1],[0,1],[1,1],[1,2],[4,3],[1,1],[1,0],[1,-1],[4,-4],[1,0],[1,-1],[2,1],[2,0],[1,1],[1,1],[7,9],[2,2],[3,3],[11,3],[4,0],[2,-1],[1,-1],[2,-1],[4,-5],[1,-1],[1,-1],[4,1],[1,0],[1,0],[2,-1],[1,-2],[5,-10],[2,-5],[1,-4],[1,-8],[0,-15],[1,-1]],[[7524,4063],[-2,-22],[-7,-45],[0,-3],[1,-2],[-1,-1],[0,-3],[-1,-2],[-2,-4],[-1,-2],[-2,-5],[0,-2],[-1,-1],[-2,-1],[-3,-3],[-1,-1],[0,-1],[-1,-2],[0,-4],[0,-3],[0,-3],[-4,-10],[-2,-8],[-1,-2],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,1],[-1,0],[0,1],[-1,2],[0,1],[-1,3],[0,1],[0,1],[-1,1],[-1,1],[-1,1],[-1,0],[-1,-1],[-1,-1],[-2,-1],[-1,-1],[0,-1],[-1,-1],[-2,-8],[-1,-2],[-1,-1],[-1,-1],[-5,-2],[-1,-1],[0,-1],[-1,-2],[1,-4],[-1,-2],[0,-1],[-2,-1],[-1,-1],[0,-1],[-1,-2],[0,-1],[0,-2],[1,-1],[0,-2],[1,-1],[2,-2],[2,-1],[1,0],[4,2],[1,0],[1,-1],[1,0],[1,-2],[0,-3],[0,-4],[0,-2],[1,-2],[2,-3],[1,-2],[0,-2],[0,-5],[0,-3],[1,-2],[2,-2],[3,-3],[0,-1],[1,0],[-1,-3],[-8,1],[-2,0],[-2,-1],[-2,-2],[-4,-4],[-2,-3],[-1,-2],[-3,-6],[0,-1],[-1,-1],[-2,1],[-1,1],[-1,2],[-1,0],[-1,1],[-1,-1],[-4,-1],[-1,0],[-8,2],[-10,-1],[-1,0],[-1,1],[-2,1],[-4,3],[-4,4],[-1,1],[-1,1],[-1,0],[-2,0],[-1,0],[-1,0],[-1,0],[-6,-5],[-1,-1],[-2,-2],[0,-1],[-1,-2],[1,-4],[0,-1],[0,-2],[3,-9],[2,-8],[-1,-2],[-1,-3],[-6,-8],[-1,-4],[2,0],[1,-1],[1,-1],[0,-1],[0,-1],[-1,-4],[0,-1],[-1,-2],[0,-2],[1,-1],[0,-2],[1,-4],[2,-20],[0,-1],[1,-4],[-1,-1],[0,-2],[-1,-2],[-6,-7],[0,-1],[-1,-3],[-1,-2],[0,-6],[-1,-1],[0,-2],[-2,-1],[-12,-14],[-1,-2],[-1,-1],[-1,-4],[0,-2],[0,-2],[1,-4],[0,-2],[0,-2],[0,-2],[0,-1],[-1,-2],[0,-2],[-13,-19],[-1,-1],[-5,0],[-1,-1],[-1,-1],[-7,-6],[-9,-17],[-5,-10],[-1,-1],[-7,-6],[-1,-2],[-1,-1],[-1,-5],[-1,-2],[-1,0],[-3,-1],[-1,2],[-1,2],[-1,2],[-1,1],[-1,1],[0,1],[-1,1],[-1,0],[-1,0],[-1,-1],[-2,-3],[0,-1],[1,-2],[0,-1],[0,-1],[0,-2],[0,-1],[-4,-3],[-18,-7]],[[7286,3607],[-7,6],[-2,4],[0,4],[-1,6],[0,2],[0,1],[1,1],[0,1],[0,1],[-1,3],[-1,2],[-1,1],[0,1],[-9,3],[-4,5],[-3,2],[-2,0],[-1,0],[-4,-1],[-3,-1],[-5,-3],[-2,-1],[-5,1],[-8,4],[-2,1],[-1,-1],[-6,-2],[-6,-1],[-3,0],[-3,2],[-1,1],[-3,3],[-3,7],[-1,1],[-1,1],[-2,0],[-3,0],[-1,0],[-6,-1],[-1,1],[-3,0],[-1,1],[-1,1],[-1,3],[-1,3],[-1,2],[-1,1],[-3,3],[-8,14],[-2,7],[-1,2],[-2,3],[0,2],[-1,2],[0,2],[1,12],[0,1],[-1,0],[-1,1],[-2,-1],[-4,-3],[-1,0],[-1,0],[-1,2],[0,2],[-1,1],[-2,0],[-1,0],[-1,-1],[-3,-2],[-1,-1],[-1,0],[-1,0],[-2,1],[-1,0],[-1,1],[-1,1],[-2,2],[0,1],[-1,2],[0,3],[1,1],[1,4],[0,1],[-1,2],[0,2],[-6,5],[-1,0],[-3,0],[-2,-1],[-2,-1],[-2,-2],[-1,0],[-1,-2],[-4,-9],[-2,-5],[-2,-3],[-1,-1],[0,-1],[1,-1],[1,-1],[2,-1],[0,-1],[1,-1],[2,-7],[0,-2],[0,-3],[-2,-4],[0,-3],[0,-2],[0,-1],[0,-2],[-1,-2],[-1,-1],[-9,-6],[-7,-4],[-2,-2],[-1,-1],[-1,-2],[-5,-11],[-6,-14],[-2,-2],[0,-1],[-1,0],[-2,-1],[-4,0],[-2,0],[-1,1],[-5,5],[-1,1],[-1,0],[-1,-1],[-1,-1],[0,-2],[-1,0],[0,-1],[0,-1],[-1,-1],[-1,0],[-2,0],[-1,2],[-2,5],[-1,2],[-2,4],[-5,4],[-2,2],[0,2],[-1,1],[0,1],[1,2],[1,4],[3,14],[1,3],[1,1],[1,0],[1,0],[2,-2],[1,0],[1,0],[0,1],[1,1],[1,6],[1,1],[0,1],[1,1],[1,0],[1,0],[1,0],[1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[1,1],[11,25],[3,15],[0,1],[0,2],[0,2],[0,2],[-1,1],[-1,2],[-13,20],[-2,3],[-7,4],[-3,1],[-3,1],[-2,0],[-4,-1],[-2,0],[-2,-2],[-6,-7],[-2,-2],[0,-1],[0,-1],[-2,-2],[-1,-1],[-1,-4],[-3,-6],[-2,-8],[-1,-4],[-3,-4],[-3,-2],[-4,-1],[-9,0],[-4,-1],[-5,-5],[-10,-13],[-5,-5],[-5,-3],[-5,1],[-10,1]],[[6954,3707],[-2,9],[-1,3],[0,2],[-1,10],[0,3],[1,3],[0,1],[0,1],[0,1],[-1,3],[-1,2],[-6,10],[0,1],[-1,2],[0,2],[0,2],[2,11],[0,3],[-1,8],[-1,5],[-1,9],[0,1],[0,1],[-2,3],[-1,17],[-1,2],[0,1],[-2,2],[-1,2],[-6,5],[-1,1],[0,1],[-2,5],[0,1],[-1,1],[0,1],[-4,3],[-4,2],[-1,1],[-1,2],[0,4],[-1,2],[0,1],[-2,3],[-1,3],[0,1],[0,2],[1,4],[1,2],[1,1],[6,5],[1,1],[1,1],[1,1],[0,2],[0,3],[0,4],[0,3],[-1,4],[-3,6],[-7,13],[-2,2],[0,1],[-1,0],[-1,1],[-3,0],[-1,1],[-1,0],[0,2],[-1,4],[0,1],[0,1],[-1,1],[-3,4],[-1,2],[-2,4],[-2,5],[0,2],[0,2],[0,3],[1,3],[0,4],[1,4],[0,1],[1,1],[1,2],[1,1],[2,1],[2,-1],[1,-1],[1,0],[2,0],[1,1],[1,1],[1,2],[0,3],[0,1],[0,2],[-1,4],[0,2],[0,3],[0,4],[0,1],[1,2],[2,2],[3,4],[3,2],[3,1],[2,1],[1,2],[5,7],[6,6],[1,2],[2,4],[0,1],[1,4],[-1,7],[-5,3],[-2,0],[-4,-1],[-1,0],[-2,-1],[-1,0],[-1,1],[-1,2],[0,3],[0,2],[-1,1],[-4,6],[-1,2],[-1,2],[0,1],[0,2],[0,1],[-1,1],[-1,1],[-1,1],[-2,0],[-1,0],[-1,0],[-3,-2],[-1,0],[-1,0],[-1,0],[-2,1],[-4,4],[-10,13],[-3,4],[-4,2],[-2,2],[-1,0],[-2,0],[-1,0],[0,-1],[-1,-1],[-1,-2],[-1,-3],[0,-1],[-1,-3],[0,-2],[-1,-1],[0,-1],[-1,-1],[-1,-1],[-1,0],[-1,1],[-1,0],[-1,2],[-2,3],[-4,10],[-1,4],[0,1],[-1,2],[-3,3],[-2,3],[-3,1],[-1,1],[0,1],[-1,2],[-1,7],[-1,1],[-1,2],[-2,3],[-1,1],[-5,2],[-1,1],[-1,4],[0,13]],[[6828,4138],[3,14],[0,5],[0,3],[0,3],[0,2],[0,2],[1,1],[3,6],[7,17],[1,1],[1,2],[0,2],[2,8],[0,2],[1,3],[2,4],[2,3],[3,7],[1,0],[1,0],[1,0],[1,-1],[0,1],[1,0],[2,3],[1,1],[13,8],[4,2],[3,0],[3,-1],[2,0],[1,1],[1,1],[1,1],[1,0],[5,-1],[7,-2],[5,0],[3,0],[2,1],[1,0],[0,1],[1,3],[0,4],[-1,17],[2,24],[1,6],[1,0],[0,1],[0,2],[0,2],[1,2],[-3,60],[0,2],[0,1],[-1,4],[-2,5],[0,3],[0,16],[-1,7],[-1,3],[0,2],[-1,1],[-2,3],[0,1],[0,2],[0,4],[2,7],[0,5],[-1,1],[-1,1],[0,2],[0,2],[1,1],[0,1],[5,7],[4,3],[-1,1],[-5,0],[-7,-8],[-6,-10],[-3,-9],[-3,5],[-3,2],[-2,-5],[-2,1],[-6,3],[-1,-7],[-6,-17],[-3,3],[-3,1],[-4,-1],[-4,-3],[-3,2],[-2,2],[-4,6],[-1,1],[-1,1],[-2,6],[0,1],[-1,2],[-1,1],[-1,4],[-1,1],[0,1],[-5,3],[-3,4],[-2,1],[-1,1],[-1,2],[-1,1],[-2,2],[-12,2],[-1,0],[0,1],[-1,1],[-3,2],[-10,2],[1,13],[0,4],[0,1],[0,2],[-1,1],[-3,6],[0,2],[-1,4],[1,15],[0,3],[1,1],[0,1],[1,1],[0,2],[-1,2],[0,3],[0,6],[0,2],[-1,2],[-3,2],[-1,1],[-2,3],[-1,1],[-2,2],[-4,1],[-4,3],[-1,0],[-4,1],[-1,0],[-1,1],[-1,1],[-2,2],[0,1],[-1,1],[-14,6],[-1,1],[-1,0],[-3,3],[-2,3],[-1,2],[0,2],[0,4],[0,1],[0,2],[1,2],[1,2],[0,1],[0,2],[0,1],[-1,7],[10,10],[4,1],[3,-2],[5,-6],[2,-1],[12,-2],[6,0],[8,7],[1,0],[9,3],[1,1],[3,2],[1,2],[0,1],[1,1],[1,7],[1,8],[0,2],[1,1],[1,2],[4,6],[1,1],[1,2],[0,2],[0,3],[0,1],[0,1],[0,1],[-1,12],[-1,3],[0,2],[-1,1],[0,1],[-2,1],[-1,1],[1,2],[1,4],[1,2],[-1,2],[0,2],[0,2],[0,2],[4,7],[0,1],[0,2],[-1,10],[0,2],[1,2],[1,1],[1,0],[1,-1],[1,-3],[1,-1],[0,-1],[1,0],[2,0],[1,1],[1,4],[3,5],[1,2],[1,1],[4,2],[5,1],[16,2],[5,3],[1,1],[1,1],[0,1],[0,1],[-2,9],[-2,8],[-2,11],[-1,5],[0,1],[-2,3],[-1,1],[0,1],[0,1],[0,2],[0,1],[1,2],[0,1],[1,1],[1,-1],[1,0],[1,-1],[0,-1],[1,0],[1,0],[1,2],[0,1],[1,18],[0,1],[-1,2],[0,1],[-1,1],[-1,0],[-1,0],[-4,0],[-1,0],[-1,1],[-1,1],[0,1],[0,1],[0,7],[0,7],[2,7],[2,7],[2,4],[2,3],[7,11],[1,2],[1,0],[1,1],[5,0],[1,0],[4,2],[1,0],[1,0],[4,-3],[7,-7],[3,-4],[0,-1],[1,-1],[2,0],[1,1],[1,1],[1,1],[2,0],[1,0],[3,-3],[3,0],[1,-1],[2,1],[2,0],[1,-1],[2,-3],[0,-2],[1,-1],[0,-4],[-1,-3],[-1,-6],[-1,-1],[0,-2],[1,-1],[0,-2],[1,-1],[9,-11],[2,-3],[1,-4],[2,-7],[1,-4],[2,-4],[7,-11],[2,-3],[1,-1],[1,0],[2,-1],[2,0],[2,0],[33,16],[6,3],[1,1],[1,1],[0,2],[1,2],[0,4],[1,5],[1,1],[1,1],[2,2],[3,1],[1,1],[1,0],[2,2],[1,1],[1,0],[4,1],[1,0],[1,1],[1,2],[2,3],[1,1],[1,1],[3,-2],[1,-1],[1,0],[1,0],[1,0],[0,2],[1,2],[0,9],[-1,5],[-5,10],[-5,18],[-3,8],[-2,4],[0,1],[0,1],[0,2],[1,2],[0,1],[0,2],[1,1],[1,1],[1,1],[1,1],[0,2],[0,1],[0,2],[0,3],[-1,6],[0,3],[0,1],[0,2],[1,6],[0,1],[0,1],[-1,1],[-1,1],[-1,0],[-12,-1],[-2,-1],[-1,0],[-4,1],[-1,0],[-3,-1],[-2,-1],[-1,0],[-1,1],[-2,1],[-1,1],[-9,14],[-8,8],[-7,6],[-3,3],[-3,5],[-5,7],[0,2],[-1,3],[1,10],[1,3],[0,1],[0,2],[0,2],[-2,9]],[[6955,4972],[6,4],[1,0],[2,0],[1,-1],[1,-1],[1,-2],[1,-1],[2,1],[4,2],[13,11],[5,6]],[[6992,4991],[4,0],[2,1],[1,0],[1,-1],[3,-4],[7,-7],[1,-2],[1,-2],[0,-1],[1,-1],[0,-2],[1,-1],[10,-10],[1,-2],[1,-2],[1,-3],[0,-1],[1,0],[2,-2],[3,-1],[14,-5],[9,-4],[1,-1],[1,-2],[2,-3],[2,-8],[0,-1],[2,-1],[2,0],[2,0],[1,0],[10,3],[2,0],[1,-1],[1,0],[1,-1],[2,-1],[2,-4],[2,-5],[1,-2],[0,-1],[-1,-2],[0,-1],[-1,-4],[-1,-6],[0,-3],[1,-1],[0,-2],[0,-1],[1,-1],[5,-5],[1,-1],[1,-2],[0,-1],[-1,-10],[0,-2],[0,-2],[1,-1],[0,-1],[1,-2],[1,-2],[17,-13],[4,-4],[3,-2],[8,-3],[3,0],[12,1],[2,0],[3,-2],[3,-4],[2,-2],[2,-4],[1,-1],[1,-1],[3,0],[2,0],[1,1],[6,4],[1,1],[1,0],[2,1],[1,0],[2,-1],[1,-1],[1,-1],[2,-3],[1,-1],[1,-4],[2,-3],[0,-2],[1,0],[1,-1],[2,0],[1,0],[1,1],[1,1],[0,1],[1,0],[0,1],[0,1],[0,1],[1,0],[2,-2],[1,-2],[0,-1],[1,-1],[0,-1],[2,-11],[1,-1],[0,-2],[1,-2],[1,-1],[0,-1],[1,-5],[0,-1],[0,-1],[1,-1],[1,-1],[1,-1],[2,0],[1,1],[2,1],[1,0],[1,-1],[0,-1],[0,-2],[0,-7],[0,-5],[0,-13],[0,-3],[0,-1],[0,-2],[-1,0],[-2,-3],[0,-1],[-1,-1],[1,-1],[1,-1],[3,0],[13,2],[1,0],[4,-2],[1,0],[2,1],[1,1],[2,0],[4,0],[3,1],[1,1],[2,2],[1,1],[15,1],[5,3],[2,0],[2,0],[2,0],[1,-1],[2,-2],[3,-5],[1,-3],[1,-3],[0,-2],[0,-2],[0,-2],[0,-2],[-1,-3],[-2,-5],[-2,-4],[-2,-2],[-1,-2],[0,-1],[-1,-2],[-2,-22],[1,-8],[0,-2],[0,-2],[0,-1],[-2,-1],[-1,0],[-1,0],[-1,2],[-2,1],[-1,0],[-2,-3],[-2,-6],[-8,-28],[-1,-13],[-1,-1],[-5,-7],[-1,-2],[-1,-1],[0,-2],[-1,-1],[0,-1],[0,-2],[1,-1],[1,-2],[4,-2],[2,-3],[1,-1],[0,-2],[0,-1],[0,-1],[0,-2],[1,-1],[1,-2],[3,-1],[11,-3],[0,1],[1,1],[1,1],[5,3],[4,1],[1,0],[0,1],[0,1],[0,1],[0,2],[1,3],[0,1],[1,0],[1,0],[2,0],[2,-2],[2,-3],[0,-2],[1,-1],[0,-2],[0,-2],[0,-2],[0,-4],[0,-7],[0,-3],[1,-7],[4,-17],[1,-3],[1,-1],[6,-7],[0,-1],[0,-2],[-7,-6],[-2,-2],[0,-1],[-1,-1],[0,-3],[0,-2],[0,-3],[1,-3],[1,-1],[0,-2],[1,-1],[0,-1],[4,-4],[1,-1],[0,-2],[1,-1],[0,-2],[0,-1],[0,-4],[0,-3],[0,-1],[0,-2],[1,-1],[0,-1],[11,-7],[0,-1],[0,-2],[0,-1],[1,-1],[2,0],[3,0],[1,0],[2,2],[2,0],[24,-3],[1,1],[2,3],[1,0],[1,1],[3,0],[13,-4],[2,0],[1,2],[3,3],[0,1],[0,1],[0,1],[-1,4],[0,1],[0,2],[0,1],[1,3],[0,1],[1,8],[0,2],[0,1],[1,0],[0,1],[1,0],[1,1],[3,1],[1,0],[1,1],[0,2],[0,1],[1,9],[0,2],[1,1],[0,1],[1,1],[0,1],[1,1],[1,1],[0,1],[1,5],[1,1],[1,1],[1,1],[2,0],[1,-1],[3,-2],[1,-1],[2,0],[7,2],[2,0],[3,0],[1,0],[1,-1],[0,-1],[1,0],[0,-1],[1,-1],[0,-2],[0,-2],[0,-4],[0,-2],[0,-1],[1,-1],[3,-1],[1,-1],[0,-1],[2,-3],[0,-1],[4,-5],[1,-1],[2,-4],[1,-1],[2,-1],[6,-1],[1,-1],[0,-2],[0,-4],[-1,-4],[1,-2],[0,-2],[1,-5],[1,-2],[1,-1],[2,-3],[1,-2],[0,-3],[0,-12],[1,-7],[1,-4],[-1,-8],[-5,-5],[-1,-2],[-1,-2],[-1,-5],[-1,-3],[0,-3],[0,-4],[0,-1],[-1,0],[0,-1],[-1,-2],[-6,-10],[-2,-2],[-2,0],[-1,5],[0,1],[0,1],[-1,1],[-2,3],[-1,1],[0,1],[-1,2],[0,1],[-2,1],[-1,1],[-1,0],[-1,0],[-2,0],[-1,0],[-1,1],[-1,0],[0,1],[-1,2],[-3,6],[0,1],[-1,1],[-1,1],[-1,0],[-2,0],[-1,0],[-1,1],[0,1],[0,1],[0,2],[0,1],[0,1],[0,2],[-1,0],[-1,0],[-7,-2],[-1,0],[-1,0],[-1,1],[-1,1],[0,1],[-1,1],[-1,1],[-1,-1],[-2,-1],[-2,0],[-1,0],[-2,3],[-1,1],[-1,0],[-1,-1],[-2,-2],[-1,-1],[-2,0],[-1,0],[-1,0],[-1,0],[-2,-2],[-2,-1],[-1,0],[-1,0],[0,1],[-1,1],[-2,0],[-3,-3],[-1,-1],[-1,0],[-1,1],[-2,1],[-1,1],[-1,0],[-1,0],[-1,0],[-1,-1],[-1,-2],[0,-2],[0,-3],[0,-2],[1,-1],[3,-3],[1,-1],[1,-1],[0,-1],[0,-2],[0,-1],[0,-4],[0,-1],[1,-2],[0,-1],[1,-1],[0,-1],[1,0],[7,-1],[1,-1],[0,-1],[1,-1],[0,-1],[1,-2],[0,-6],[-1,-7],[1,-3],[1,-5],[1,-4],[0,-2],[0,-3],[0,-1],[-1,-2],[-2,-2],[-1,-1],[0,-4],[-1,-3],[0,-1],[0,-1],[2,-1],[1,-1],[0,-2],[0,-1],[-1,-3],[-2,-4],[-7,-5],[-2,-2],[-9,-2],[-5,-1],[-1,0],[0,-1],[-1,-3],[0,-2],[0,-6],[0,-3],[0,-1],[-1,-2],[-2,-2],[-11,-9],[-3,-3],[-2,-6],[0,-3],[0,-2],[0,-2],[0,-1],[1,-2],[1,-1],[1,-2],[0,-1],[0,-1],[-1,-1],[-3,-2],[-1,-1],[0,-1],[0,-1],[-1,-2],[0,-1],[0,-1],[-2,-1],[0,-1],[0,-2],[4,-5],[1,-1],[2,-2],[2,-2],[2,-3],[2,-1],[1,0],[1,1],[1,0],[1,0],[1,-1],[1,-3],[1,-4],[1,-2],[0,-3],[-1,-11],[0,-4],[1,-2],[5,-4],[1,-1],[2,-1],[1,-1],[1,0],[1,-3],[0,-1],[1,0],[2,-1],[12,-3],[6,-4],[1,0],[0,-1],[0,-2],[0,-1],[-1,-2],[-1,-1],[-1,-1],[-1,-2],[0,-1],[0,-2],[2,-2],[0,-1],[2,-1],[4,-2],[2,0],[2,0],[1,0],[0,1],[1,1],[1,1],[1,3],[0,1],[1,1],[0,1],[1,0],[1,0],[1,0],[1,-2],[1,-2],[0,-5],[1,-2],[0,-1],[1,-1],[1,0],[1,0],[1,0],[1,2],[1,0],[1,0],[1,0],[1,0],[1,-1],[0,-1],[1,-1],[0,-2],[0,-1],[0,-7],[0,-2],[1,-1],[0,-1],[1,-4],[0,-1],[1,-3],[-1,-4],[-8,-33],[-2,-2],[-1,-3],[-1,-1],[-1,-1],[-8,-3],[-1,-1],[0,-2],[-1,-2],[0,-2],[0,-2],[0,-1],[0,-4],[3,-7],[1,-1],[1,-1],[3,-4],[0,-1],[1,-1],[1,-4],[0,-1],[1,-1],[2,0],[42,3],[3,2],[11,11],[3,0],[9,-6],[3,-1],[2,1],[2,0],[1,1],[4,-1],[1,0],[1,0],[0,1],[1,1],[1,2],[1,1],[0,1],[1,0],[1,0],[0,-2],[1,-1],[0,-2],[0,-1],[1,-2],[0,-1],[-1,-9],[0,-3],[0,-2],[1,-1],[0,-1],[1,-1],[2,-1],[4,-1],[10,-5],[2,-2],[2,-1],[6,1],[2,-2],[1,-2],[5,-2],[3,0],[6,0]],[[6022,1293],[1,-1],[2,-1],[2,-2],[1,-4],[0,-6],[-1,-4],[0,-1],[-1,0],[-2,-1],[-1,1],[0,1],[-2,9],[0,3],[-2,1],[-1,3],[1,2],[1,0],[0,1],[1,0],[1,-1]],[[6049,1355],[-3,-4],[-2,2],[-2,4],[-3,3],[5,8],[2,4],[2,1],[-1,-2],[2,-1],[2,0],[1,-1],[1,-3],[0,-3],[-1,-3],[-3,-5]],[[6013,1408],[2,-9],[1,-4],[2,-2],[1,3],[1,1],[2,1],[3,0],[-1,0],[3,1],[2,1],[1,2],[3,2],[3,0],[2,-2],[1,-5],[0,-5],[0,-4],[-3,-9],[-1,-4],[0,-3],[1,-3],[0,-2],[-2,-1],[-1,0],[-1,2],[-1,3],[0,3],[-1,2],[-2,4],[-4,3],[-2,1],[-13,0],[-5,-3],[-6,-4],[-5,-2],[-3,4],[2,1],[1,3],[-1,4],[-2,3],[3,1],[2,0],[2,0],[0,2],[-2,0],[-1,1],[0,2],[0,2],[3,-1],[3,-1],[3,1],[1,3],[-2,-1],[-2,-1],[-2,1],[-1,3],[9,0],[4,2],[3,4]],[[6028,1431],[2,0],[2,1],[4,3],[1,1],[1,0],[1,0],[3,-3],[1,0],[-3,-4],[0,-2],[-1,-3],[1,0],[4,9],[3,3],[3,-1],[0,-2],[-2,-4],[-4,-12],[-2,-5],[-4,-2],[-3,2],[-3,4],[1,4],[-2,1],[-1,1],[-1,1],[-1,3],[-1,0],[1,-4],[-3,0],[-2,2],[-1,2],[2,3],[-2,0],[-3,1],[-1,-1],[0,2],[3,1],[1,2],[2,2],[1,1],[4,0],[2,0],[0,-3],[-4,-1],[-2,0],[3,-2]],[[6267,1555],[1,-1],[1,1],[0,1],[1,0],[5,0],[2,-1],[1,-2],[0,-2],[-1,-4],[-3,-3],[-9,-3],[-2,0],[-1,0],[-2,-1],[-2,-2],[-3,-4],[-1,-1],[-6,-2],[-3,1],[1,1],[1,0],[1,1],[3,9],[0,4],[-1,6],[2,1],[6,0],[2,1],[3,3],[2,0],[0,-1],[1,-1],[1,-1]],[[6379,1550],[-2,-4],[-1,-1],[-5,0],[-2,1],[-2,1],[-1,-2],[-1,-4],[-1,-1],[-2,1],[-1,2],[0,2],[1,3],[6,6],[1,3],[-2,5],[4,1],[7,6],[4,2],[2,-4],[-1,-3],[-1,-2],[-1,-4],[2,-4],[0,-2],[-4,-2]],[[6418,1586],[0,-3],[0,-3],[-5,-3],[-2,-3],[-2,-2],[-2,-3],[0,-4],[1,-5],[1,-4],[-1,-5],[-2,-4],[0,-4],[3,-5],[-2,-3],[-1,0],[-4,1],[-1,1],[0,1],[-1,1],[0,4],[-1,0],[-1,0],[-1,1],[0,5],[5,9],[1,7],[-2,-1],[-4,-2],[-3,0],[-2,2],[1,4],[2,4],[4,4],[3,0],[2,11],[3,-2],[2,2],[2,0],[5,0],[-1,0],[3,-1]],[[6467,1611],[2,-1],[1,2],[1,0],[0,-1],[0,-2],[-2,-2],[-1,0],[-1,1],[-3,-3],[-3,2],[1,4],[2,-1],[1,2],[1,1],[1,-2]],[[6443,1608],[0,-1],[-1,1],[-1,4],[1,2],[2,1],[2,0],[0,-4],[0,-2],[-3,-1]],[[6484,1617],[-2,-2],[-1,1],[-3,3],[0,1],[-1,1],[-1,3],[2,5],[3,3],[1,1],[2,-1],[1,-3],[0,-2],[1,-1],[1,-1],[-1,-1],[0,-2],[-1,-2],[-1,-3]],[[6567,1643],[-2,-5],[-3,2],[-1,3],[-1,3],[2,0],[2,1],[2,0],[1,-4]],[[6481,1657],[0,-1],[-2,-3],[1,-1],[0,-2],[1,-1],[0,-1],[-2,-1],[-1,1],[-1,-1],[-4,-3],[-1,-2],[1,-2],[-1,-2],[-1,-2],[-1,0],[0,1],[-1,2],[2,17],[2,1],[6,0],[1,0],[1,0]],[[6653,1659],[-13,-6],[-3,1],[2,1],[9,5],[2,1],[1,1],[1,1],[0,2],[1,0],[1,0],[0,-2],[0,-1],[-1,-2],[0,-1]],[[6504,1666],[1,-1],[2,2],[0,-3],[-3,-10],[1,-1],[1,-1],[0,-1],[0,-2],[-13,1],[-2,3],[5,12],[2,1],[1,1],[2,1],[1,2],[1,1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1]],[[6528,1669],[-9,-3],[-2,1],[0,3],[0,3],[-1,1],[0,1],[1,2],[8,3],[1,0],[1,-1],[0,-2],[-1,-2],[1,-3],[3,-1],[-2,-2]],[[6500,1689],[-2,-8],[-3,-8],[-4,-6],[-4,-2],[-1,2],[-2,3],[-1,5],[1,4],[2,0],[1,1],[2,1],[1,1],[0,2],[0,2],[2,2],[1,1],[1,-4],[1,1],[2,2],[3,1]],[[6542,1763],[2,0],[2,0],[2,-2],[0,-2],[-1,-3],[-2,0],[0,-3],[-2,-1],[-1,-2],[-2,2],[0,4],[0,5],[2,2]],[[6545,1806],[-2,-2],[-4,5],[-7,11],[-6,8],[-6,6],[-2,3],[0,3],[4,2],[4,2],[3,-1],[2,-2],[1,-4],[2,-5],[5,-4],[5,-7],[1,-9],[0,-6]],[[6520,1883],[6,-12],[3,-3],[5,-2],[0,-1],[2,-8],[1,-3],[2,-3],[0,-2],[-2,-2],[-2,-1],[-4,1],[-2,3],[-1,4],[-2,5],[-1,-4],[-2,3],[-2,4],[-2,10],[-2,0],[0,-7],[-2,2],[-4,4],[-5,9],[-1,4],[1,3],[5,1],[7,-3],[2,-2]],[[6531,1881],[-2,-1],[-3,4],[-3,7],[0,8],[1,4],[3,-2],[0,-3],[2,-3],[2,-7],[0,-7]],[[7114,2035],[2,-2],[1,-3],[-1,-8],[-1,-5],[-4,1],[-4,2],[-5,-2],[-4,3],[-2,1],[-1,0],[-2,0],[-4,0],[-4,1],[0,2],[1,3],[3,3],[2,2],[1,-1],[1,-2],[1,-2],[2,0],[1,0],[1,1],[2,1],[1,4],[1,3],[2,1],[1,-1],[1,0],[3,-4],[2,2],[1,4],[2,0],[0,-4]],[[7095,2060],[0,-2],[-1,-2],[-1,-2],[0,-1],[-1,-3],[-3,-2],[-3,0],[-2,3],[-1,2],[2,1],[2,2],[2,2],[1,1],[2,1],[1,0],[2,0]],[[7084,2055],[-2,-1],[-1,1],[0,2],[0,1],[1,2],[2,1],[1,2],[0,2],[1,3],[0,1],[2,1],[1,0],[0,-1],[0,-3],[-2,-3],[0,-5],[0,-2],[-1,-1],[-2,0]],[[6592,2559],[1,0],[2,-1],[5,-5],[1,-1],[1,0],[1,1],[1,2],[1,0],[0,1],[1,-1],[1,-2],[-1,-2],[0,-6],[0,-1],[0,-3],[1,-4],[1,-5],[0,-3],[-1,-2],[-2,-5],[0,-3],[-1,-3],[0,-1],[1,-2],[1,-1],[1,0],[1,-1],[1,0],[1,1],[1,0],[3,2],[7,7],[1,1],[2,1],[2,0],[2,0],[1,-1],[2,-2],[1,0],[5,-1],[6,0],[6,-1],[1,0],[1,0],[1,1],[1,0],[3,4],[1,1],[2,1],[2,1],[2,1],[2,1],[1,1],[4,6],[2,5],[1,2],[1,1],[1,1],[1,-1],[2,0],[3,-1],[1,0],[1,0],[1,0],[1,0],[0,1],[1,0],[0,1],[2,4],[1,1],[1,1],[1,0],[2,1],[1,-1],[1,0],[1,-1],[1,-1],[0,-2],[0,-1],[1,-7],[0,-2],[1,-1],[0,-1],[1,-1],[2,-3],[3,-3],[2,-1],[9,-5],[1,-1],[1,-2],[1,-1],[1,-1],[0,-2],[0,-2],[1,-3],[0,-2],[0,-1],[-5,-19],[-1,-3],[0,-2],[1,-1],[0,-1],[1,-1],[5,-3],[1,-1],[0,-2],[0,-1],[-2,-2],[-1,0],[-1,-1],[-3,0],[-2,-1],[-1,0],[-1,-1],[-3,-5],[-2,-1],[-2,-1],[-7,-2],[-3,-2],[-1,0],[-1,-1],[-5,-7],[-7,-6],[-2,-1],[-2,-1],[-1,-1],[-2,-2],[-1,-1],[-1,0],[-1,-1],[-1,-1],[-1,-2],[-1,-4],[-1,-3],[0,-3],[0,-9],[-1,-3],[-1,-3],[-1,-3],[-2,-3],[-2,-4],[-1,-2],[-2,-9],[-1,-3],[-1,-2],[-2,-4],[-3,-4],[-2,-3],[-13,-10],[-2,-2],[-1,-1],[0,-1],[-1,-2],[0,-1],[1,-1],[1,-2],[5,-2],[5,-1],[1,0],[1,-2],[1,-1],[2,-4],[1,-4],[1,-2],[1,0],[4,-3],[6,-3],[2,-3],[1,-2],[2,-9],[1,-3],[2,-1],[1,-1],[1,-1],[2,0],[1,0],[1,1],[1,1],[1,2],[2,5],[1,2],[2,2],[2,1],[1,1],[4,0],[4,-1],[2,0],[2,0],[1,1],[7,6],[1,1],[2,1],[2,0],[0,-1],[1,-1],[1,-3],[0,-1],[1,-1],[1,-1],[3,-1],[1,0],[1,0],[1,1],[0,1],[1,1],[0,1],[1,3],[1,8],[0,3],[2,1],[2,2],[2,1],[1,0],[2,-2],[3,-1],[2,0],[1,-1],[1,-1],[1,-1],[0,-1],[1,-2],[1,-2],[1,-1],[2,-1],[1,1],[1,0],[0,1],[1,1],[1,2],[5,12],[1,3],[1,1],[1,1],[1,0],[12,5],[1,0],[1,1],[0,1],[1,1],[1,1],[1,1],[1,0],[1,0],[0,-1],[5,-4],[2,-1],[2,0],[4,0],[2,0],[1,1],[3,1],[0,1],[10,13],[2,2],[2,2],[1,0],[2,1],[1,0],[1,0],[1,0],[2,-1],[2,-3],[1,0],[1,0],[0,1],[1,3],[1,1],[7,3],[5,2],[1,-1],[1,0],[1,-1],[1,-1],[1,-3],[5,-12],[1,-1],[1,-1],[1,-1],[6,-6],[1,0],[1,-1],[0,-1],[1,-3],[1,-4],[4,-8],[2,-3],[8,-6],[2,-3],[4,-6],[1,-1],[1,-1],[1,0],[9,4],[2,0],[2,0],[1,0],[1,1],[1,1],[0,1],[-3,14],[-1,6],[1,10],[0,2],[0,1],[-1,1],[0,2],[-3,6],[-1,1],[0,1],[-1,1],[0,2],[1,1],[0,5],[1,2],[0,3],[-1,6],[0,2],[1,2],[2,5],[1,2],[2,2],[3,2],[1,1],[4,1],[4,-1],[4,-1],[1,0],[2,1],[0,1],[0,1],[0,1],[-2,4],[-1,2],[0,3]],[[7122,2074],[-3,-2],[-4,-9],[-5,-5],[-2,-1],[-1,4],[0,2],[1,4],[-2,4],[1,5],[0,4],[-2,4],[-2,0],[-2,1],[-2,1],[-1,0],[-1,-3],[-2,-1],[-4,-1],[-3,-7],[-2,-1],[-4,4],[-2,3],[4,6],[-2,1],[-2,0],[-1,-2],[0,-4],[-1,-2],[-4,-4],[-1,-3],[0,-2],[1,-2],[1,-1],[0,-4],[0,-4],[-1,-3],[-4,-6],[-1,-3],[1,-4],[3,-6],[-1,-6],[-15,-27],[-4,0],[-1,0],[-2,0],[-3,1],[-3,2],[-2,-1],[-4,-1],[-6,4],[-9,6],[-1,3],[-1,3],[-2,2],[-2,0],[-1,-1],[0,-2],[0,-9],[2,-4],[3,-5],[3,-5],[3,-2],[3,1],[5,0],[3,5],[5,0],[3,-5],[3,-1],[1,4],[3,-1],[3,-8],[0,-6],[1,-9],[2,-1],[1,1],[2,-1],[-3,-6],[-5,5],[-4,7],[-4,5],[-7,1],[2,-3],[3,-1],[2,-2],[1,-4],[-1,-2],[-3,-2],[-3,-4],[-1,-5],[-3,-8],[-1,0],[-2,2],[-2,2],[0,3],[0,3],[0,5],[-1,5],[-3,1],[-3,1],[-9,-3],[-1,-1],[0,-4],[3,-5],[2,3],[2,2],[2,1],[1,1],[5,-2],[0,-2],[0,-4],[-5,-5],[-4,-8],[-2,-10],[3,-6],[-1,-5],[1,-8],[1,-5],[-2,-3],[-4,-2],[-1,-8],[-4,-8],[-6,2],[-5,-2],[-8,-2],[-4,2],[-2,4],[-7,3],[-1,4],[-5,-2],[-4,2],[-4,1],[-2,-3],[6,-3],[3,0],[2,2],[2,-3],[-5,-7],[-4,-3],[-2,-3],[-2,-3],[-5,-8],[-4,-5],[-2,-2],[-3,-2],[-3,-2],[-2,7],[1,5],[6,7],[-6,3],[-8,7],[0,-3],[5,-7],[3,-2],[-2,-6],[-4,-3],[-1,-1],[-1,0],[-2,-2],[-3,-1],[-2,-1],[-5,-5],[-1,-3],[-3,0],[-2,0],[-4,-4],[-4,1],[-4,-4],[-2,-2],[-3,-7],[-3,0],[-2,2],[0,5],[-1,4],[0,3],[1,1],[1,-2],[0,-2],[1,-2],[1,-1],[0,3],[0,3],[-1,3],[-1,1],[-1,2],[-1,0],[-1,1],[-1,2],[-2,2],[-5,3],[-6,0],[1,5],[-3,2],[0,3],[1,3],[2,2],[2,-1],[1,0],[1,5],[1,2],[-1,1],[-6,-1],[-1,-2],[-3,-5],[-2,-3],[-3,-1],[-9,-2],[-1,-1],[0,-2],[-2,-4],[0,-1],[-4,0],[-1,3],[1,3],[1,4],[0,2],[-2,0],[-4,0],[-2,2],[-5,6],[-2,1],[-2,0],[0,-3],[-2,0],[-1,0],[-3,2],[2,-5],[2,-2],[1,-1],[2,1],[1,3],[2,0],[3,-3],[2,-5],[0,-5],[-5,-2],[0,-1],[2,-1],[5,1],[1,-1],[3,-2],[1,-1],[3,0],[1,1],[2,1],[2,2],[1,1],[1,2],[2,0],[-3,-4],[-6,-11],[-3,-4],[-2,-6],[0,-7],[5,-7],[1,6],[1,3],[3,-1],[0,-2],[-1,-4],[-3,-4],[0,-6],[2,-4],[-6,0],[-3,2],[-5,3],[-4,3],[-4,0],[-3,-3],[-5,0],[-3,1],[-2,3],[-2,4],[-2,4],[2,3],[2,1],[5,-1],[1,1],[2,2],[2,1],[0,3],[-2,4],[-4,-1],[-2,-3],[-2,-2],[-5,6],[-7,1],[-6,-1],[-3,0],[0,5],[4,4],[7,5],[3,3],[1,2],[-2,1],[0,2],[0,3],[1,6],[-2,0],[-2,-2],[-4,-6],[-2,-7],[-2,-3],[-2,-2],[-3,2],[-3,-1],[-4,-3],[0,-4],[1,-6],[-3,2],[-1,5],[-3,1],[-4,-3],[-2,0],[-5,-2],[-3,-3],[-1,-2],[0,-4],[-1,-2],[-2,-2],[-1,-2],[1,-3],[1,-2],[0,-3],[-2,0],[-2,-1],[-1,0],[-1,-2],[-1,-2],[-1,0],[-2,1],[-2,1],[0,2],[0,3],[-1,4],[-1,3],[-1,3],[-2,2],[-2,-4],[-2,1],[-2,4],[-2,1],[-3,-1],[2,-3],[2,-1],[0,-3],[-1,-2],[0,-2],[2,-2],[2,0],[1,2],[3,-2],[2,-1],[1,-4],[2,-3],[1,-2],[-2,-3],[-2,-2],[-2,-5],[-4,-11],[0,-5],[3,-5],[-4,-3],[-2,1],[-1,2],[2,3],[-1,5],[-3,3],[-5,0],[-5,-2],[-5,1],[-3,-2],[-2,5],[0,5],[0,5],[-1,6],[2,2],[1,4],[-3,5],[1,6],[1,4],[5,4],[3,2],[1,0],[1,1],[1,1],[1,3],[-1,3],[-2,1],[-1,1],[-1,0],[-1,2],[-2,0],[-1,-2],[-1,-5],[-1,-2],[-4,-2],[-2,4],[-4,1],[-2,-3],[-3,-2],[-3,-2],[-1,-3],[-4,-2],[-2,-2],[-4,-2],[-2,0],[0,-4],[1,-4],[-3,-2],[-2,0],[-1,1],[-2,2],[0,-5],[-1,-3],[-2,-4],[-1,-2],[1,-2],[5,-1],[-2,1],[4,-1],[2,1],[2,2],[2,0],[1,-3],[-2,-2],[-3,-7],[-2,-2],[-3,-1],[-3,-3],[-1,-3],[-2,-4],[2,-2],[1,-1],[1,1],[2,1],[1,2],[0,1],[1,0],[1,0],[1,-3],[1,0],[2,-1],[3,-3],[3,-3],[1,-4],[-1,-3],[-3,-2],[-3,-3],[-5,-2],[-2,-2],[-2,-4],[-3,-1],[-1,4],[-1,1],[0,1],[-1,3],[-1,1],[0,1],[1,2],[-1,3],[2,2],[0,1],[0,3],[-1,2],[0,1],[-1,2],[-2,2],[-1,3],[-1,0],[-1,0],[-1,-1],[0,3],[0,1],[-1,2],[-1,3],[-2,1],[-1,2],[-2,0],[-2,-1],[-4,-1],[-3,-2],[-2,2],[0,-2],[-2,1],[-2,-2],[1,-2],[-1,-1],[-4,1],[-1,-1],[-4,-3],[-2,-3],[-1,-1]],[[6617,1787],[-1,-1],[1,-1],[-3,0],[-1,-1],[0,-3],[-3,0],[0,1],[-1,1],[-2,2],[-4,2],[-2,1],[-2,0],[-1,1],[-1,-2],[-1,-2],[-1,-3],[0,-3],[0,-2],[-2,-1],[-2,0],[-1,0],[-1,0],[0,-1],[0,-2],[-3,-6],[-2,5],[-1,1],[-1,5],[0,4],[2,1],[2,2],[-2,4],[-6,6],[-2,3],[-2,4],[-1,5],[-2,7],[-1,8],[-4,3],[-1,16],[-1,5],[-2,2],[-6,1],[-2,-1],[0,-1],[-1,-1],[-1,-2],[-2,0],[-3,4],[0,4],[1,6],[-1,6],[-2,4],[-2,5],[-2,9],[-1,-3],[0,-4],[0,-4],[1,-3],[-2,3],[-1,5],[1,6],[1,4],[-1,-2],[-1,-2],[-1,-2],[0,2],[3,12],[1,6],[0,6],[1,5],[2,10],[-1,0],[-2,-8],[-1,-3],[0,-8],[-2,-9],[0,-3],[-1,3],[0,4],[1,4],[1,3],[0,4],[0,4],[2,9],[-3,-7],[-2,-15],[-2,-4],[1,5],[0,6],[0,11],[-3,-6],[-1,-3],[-2,0],[-2,2],[-1,4],[0,7],[2,7],[3,6],[4,3],[9,3],[9,6],[5,2],[2,-1],[2,-2],[2,-1],[4,2],[3,-1],[5,-3],[-3,4],[-3,1],[-6,1],[-2,1],[-4,3],[-3,1],[-5,-2],[-8,-8],[-5,-2],[-1,-2],[-6,-4],[-1,-1],[-1,-3],[-2,-2],[-3,-1],[-2,0],[-8,7],[-5,2],[-3,-4],[4,-4],[5,-1],[5,-3],[3,-8],[0,-8],[-2,-10],[-1,-5],[0,-1],[0,-2],[-2,-1],[-4,2],[-3,1],[-15,-9],[-5,-1],[-15,5],[0,-2],[3,-1],[4,-1],[1,0],[3,-4],[2,-1],[3,1],[3,2],[3,0],[3,-2],[10,-17],[2,-3],[9,-8],[-5,-3],[-2,-2],[-2,-5],[-2,3],[-8,5],[3,-5],[9,-6],[2,-3],[2,-4],[6,-8],[6,-8],[2,-7],[6,-10],[-1,-14],[-5,-11],[-3,-11],[1,-11],[1,-4],[4,-3],[5,0],[-2,-5],[0,-3],[0,-4],[-1,-3],[-2,-1],[-1,-3],[0,-4],[0,-5],[1,0],[1,-3],[0,-4],[-4,-1],[-2,-4],[-2,0],[-2,-2],[1,-3],[-1,0],[-1,-3],[-4,-5],[-2,-4],[-4,1],[-5,7],[-1,6],[-2,4],[-7,12],[-1,2],[0,4],[-1,3],[-1,1],[-7,10],[-5,7],[-3,9],[-2,14],[-2,6],[-9,22],[-2,3],[-1,-18],[0,-5],[1,-3],[4,-4],[6,-10],[13,-30],[2,-6],[2,-5],[4,-7],[2,-3],[6,-14],[-7,-2],[-2,0],[-4,3],[-2,1],[-1,-1],[-1,-1],[-1,-3],[-1,-4],[-1,-2],[-1,-1],[0,-1],[-2,0],[-2,-6],[-1,-3],[2,-5],[0,-3],[-1,-3],[-1,-2],[-2,-3],[-3,1],[-3,0],[-3,-1],[-3,-5],[-3,4],[-4,7],[-1,9],[1,4],[1,5],[-1,3],[2,4],[-1,3],[-1,4],[-1,5],[0,4],[-4,-3],[-1,-16],[-4,-7],[-5,6],[-1,-5],[1,-6],[-1,-6],[0,-6],[0,-6],[0,-4],[1,-5],[-1,-4],[0,-2],[0,-2],[2,-2],[-1,-4],[-1,-1],[-3,-1],[-1,0],[-1,-1],[0,-2],[0,-2],[-1,-4],[0,-1],[-1,-3],[-3,-4],[-5,-3],[-2,-2],[-6,5],[-1,5],[-2,10],[-1,4],[-2,3],[-2,2],[-2,-1],[-1,-3],[-2,-1],[-2,1],[-7,-5],[0,-2],[-1,-7],[-1,-2],[-4,0],[-1,0],[-1,-1],[0,-3],[-1,-2],[-7,-5],[0,-7],[-2,-7],[-4,-6],[-5,-2],[-4,2],[-18,14],[-3,5],[-2,6],[0,9],[2,4],[9,7],[2,6],[-1,0],[-3,-3],[-5,-3],[-5,0],[-3,3],[0,2],[-2,4],[0,2],[0,2],[1,4],[2,13],[1,3],[-4,-3],[-2,-6],[-1,-8],[0,-7],[2,-10],[3,-8],[0,-2],[0,-7],[0,-4],[1,-1],[1,-2],[0,-3],[1,-7],[-1,-3],[-1,-4],[-1,-8],[-1,-2],[-2,-1],[-1,-3],[-5,-2],[-8,-4],[-6,-1],[-3,6],[-2,2],[-3,2],[-3,2],[1,5],[2,4],[1,6],[-1,5],[-1,4],[-2,-5],[-1,-2],[-14,-5],[-7,0],[-3,0],[-2,2],[-1,4],[1,4],[4,7],[0,6],[-1,0],[-2,-6],[-5,-7],[-3,-3],[-3,11],[-3,7],[-4,6],[-3,3],[-1,-7],[1,-8],[1,-8],[1,-6],[3,-4],[4,-4],[4,-2],[5,-1],[-2,-3],[-12,-12],[-2,0],[0,-2],[0,-2],[-1,-1],[0,-1],[-2,-3],[-2,-1],[-1,-1],[-5,1],[0,2],[1,3],[2,2],[2,-2],[1,0],[0,3],[-1,2],[-1,1],[-2,1],[-2,-2],[-1,3],[0,5],[1,5],[-2,-4],[-3,-2],[-2,0],[-1,4],[-3,-1],[-2,0],[-5,3],[-1,-1],[-3,2],[-4,3],[3,-5],[10,-10],[2,-5],[2,-8],[-1,-7],[-5,-1],[2,-1],[2,-2],[2,-2],[1,-3],[-7,0],[-3,0],[-2,2],[-4,-5],[-4,-12],[-2,-5],[-2,-2],[-2,-1],[-2,1],[-2,3],[-1,3],[0,3],[-1,3],[-2,1],[0,-3],[0,-4],[1,-3],[1,-2],[-2,-2],[-4,-2],[-3,0],[-2,4],[-1,0],[0,-3],[-2,-2],[-3,-1],[-2,0],[-1,1],[-1,3],[1,7],[-2,-1],[-2,3],[-2,11],[-2,-4],[-2,-3],[0,-2],[1,-3],[3,-4],[1,-2],[-9,2],[-4,-1],[-2,-3],[2,1],[3,0],[4,-1],[-2,-2],[-5,-4],[-1,-1],[-2,-4],[-8,-10],[-4,-3],[-3,2],[3,2],[2,3],[3,9],[-3,2],[-4,3],[-4,2],[-3,-1],[-1,3],[-2,0],[-6,-3],[0,-2],[2,0],[-1,-1],[0,-1],[1,-2],[2,2],[3,1],[2,-1],[2,-2],[-7,-3],[-3,-3],[-3,-3],[-2,2],[-2,0],[-5,0],[0,2],[6,4],[0,1],[0,1],[-1,1],[-1,-1],[-1,-2],[-2,0],[-1,0],[-2,1],[0,1],[0,2],[-1,1],[-6,5],[-1,2],[-1,-3],[-2,-2],[-4,-2],[1,-1],[1,-5],[2,-1],[-2,-6],[-1,-2],[-2,-1],[0,-2],[2,0],[2,1],[2,2],[0,3],[1,3],[3,1],[3,0],[1,-3],[-4,-1],[-3,-3],[-5,-8],[-4,2],[-5,-3],[-3,-4],[-4,-3],[-1,0],[-2,-3],[-1,0],[-3,1],[-4,1],[-4,3],[-2,0],[-4,-2],[-4,-4],[-6,-9],[-3,-4],[-2,-6],[-2,-6],[-1,-7],[-1,0],[1,14],[1,6],[2,3],[-2,0],[-1,-1],[-1,-3],[-1,-3],[0,4],[-1,3],[-1,2],[1,4],[1,1],[4,2],[4,5],[5,1],[5,3],[2,8],[-1,0],[-5,-7],[-15,-10],[-4,-9],[0,-12],[1,-3],[4,-10],[-1,-6],[-4,0],[-6,5],[0,-2],[0,-2],[1,-1],[1,-1],[-18,-2],[-3,-2],[-2,-2],[-3,-3],[-1,0],[0,4],[2,5],[0,4],[-1,3],[-1,2],[0,2],[2,2],[0,1],[-1,1],[0,1],[-1,0],[0,1],[1,0],[0,1],[1,0],[2,-1],[1,-1],[2,-1],[1,-2],[1,0],[0,2],[0,1],[1,2],[0,2],[-1,0],[-1,-2],[-1,1],[-2,0],[-2,1],[0,2],[7,5],[0,2],[-1,0],[-1,0],[-1,-1],[0,-1],[0,5],[-3,-4],[-1,-5],[-1,-1],[-2,5],[0,4],[2,14],[-1,0],[-2,-5],[-3,3],[-5,10],[2,3],[0,1],[1,1],[0,2],[-5,-4],[2,-9],[4,-10],[-1,-10],[0,1],[-2,1],[1,-4],[-2,1],[-4,4],[-3,1],[0,-2],[2,-1],[3,-3],[2,-4],[-1,-3],[0,-2],[2,-2],[2,-2],[1,-3],[1,-3],[0,-1],[1,-2],[1,-1],[0,-3],[-1,-1],[0,-2],[0,-1],[-1,-4],[0,-4],[-1,-4],[-1,-1],[-2,-1],[-5,-5],[-2,-5],[-3,-2],[-6,-3],[-1,-2],[-8,-15],[-1,-1],[-1,1],[-1,4],[0,5],[0,4],[-1,-3],[-1,-3],[-1,-7],[-1,-3],[-4,-9],[-2,1],[0,-1],[2,-3],[0,-4],[-1,-5],[0,-5],[1,-4],[3,-8],[1,-4],[-2,3],[-1,1],[-1,0],[1,-3],[0,-1],[0,-2],[-1,-2],[1,0],[0,-2],[1,1],[0,1],[2,0],[1,0],[1,0],[0,-3],[3,1],[13,0],[2,3],[3,2],[3,0],[1,-5],[1,2],[1,-2],[1,-1],[0,1],[1,2],[3,-6],[2,-9],[2,-11],[-2,-8],[-3,-2],[-2,2],[-2,3],[-1,4],[-1,4],[1,11],[-1,5],[-2,-4],[-1,-2],[-1,-1],[2,-4],[0,-3],[-2,-2],[-2,-2],[1,-2],[-1,0],[0,-2],[5,-3],[-2,-5],[-3,-6],[-1,-7],[1,0],[1,2],[1,1],[0,2],[1,0],[1,-4],[-1,-3],[0,-2],[-2,-2],[2,-1],[2,0],[2,1],[2,2],[0,-6],[1,4],[2,-1],[1,-2],[2,-2],[-1,-3],[1,-3],[1,-2],[3,-2],[3,-2],[1,-1],[2,0],[2,0],[1,0],[3,-4],[2,-7],[4,-13],[-3,-11],[-2,-6],[-3,-3],[-2,-1],[-2,-9],[-9,-16],[-1,-1],[-4,1],[-2,0],[-1,-2],[-2,-4],[-4,-3],[-4,-2],[-3,-2],[-2,3],[-1,1],[-2,1],[-2,0],[-4,0],[-2,-1],[-1,-2],[0,-2],[-1,0],[-10,-2],[-2,2],[-3,4],[-1,1],[-2,0],[-1,1],[-1,2],[0,1],[-1,2],[-1,1],[-2,1],[-2,-1],[-1,-1],[-1,-3],[-1,-1],[-1,0],[-1,1],[-1,0],[-4,-1],[-2,-2],[-1,-5],[-1,-1],[-1,-2],[-2,-1],[-1,0],[0,2],[0,3],[1,3],[0,1],[1,6],[0,6],[0,2],[-2,4],[0,3],[-5,4],[-2,2],[3,2],[-5,6],[1,1],[2,0],[1,1],[1,2],[1,3],[1,0],[2,-4],[5,-6],[2,-3],[3,-7],[1,-1],[0,5],[1,4],[3,4],[1,4],[-1,5],[-4,5],[-2,3],[-1,3],[0,-1],[-1,-2],[0,-2],[0,-2],[-3,3],[0,3],[-1,4],[-1,5],[0,-10],[0,-4],[-2,-3],[0,4],[-1,3],[-1,4],[-1,2],[-3,1],[-5,1],[-2,2],[-2,1],[0,1],[-1,2],[0,3],[1,2],[1,1],[1,0],[1,0],[0,3],[0,6],[1,4],[-1,0],[-3,-11],[-1,0],[0,10],[-3,7],[-4,4],[-5,-1],[1,4],[0,4],[0,4],[2,3],[2,0],[1,0],[1,-2],[1,0],[2,0],[1,2],[2,3],[1,-1],[1,-1],[1,-1],[0,1],[1,2],[1,1],[1,1],[0,1],[0,2],[-1,1],[-4,-3],[-3,0],[-2,0],[-1,-4],[-1,0],[-5,10],[0,5],[3,5],[-2,2],[-1,4],[0,4],[3,2],[0,2],[-4,5],[0,2],[1,0],[0,2],[-1,2],[-1,1],[-1,0],[-1,-3],[1,-13],[-2,2],[-2,5],[-2,2],[1,-2],[2,-7],[-5,8],[-4,12],[-1,12],[5,8],[-2,4],[0,6],[3,12],[1,-1],[1,0],[1,-1],[-1,6],[-1,7],[-3,6],[-2,5],[1,4],[3,8],[1,2],[3,2],[1,-2],[2,-2],[2,-1],[-1,4],[2,3],[2,3],[1,3],[-1,15],[-1,3],[0,1],[2,4],[0,5],[-2,9],[2,0],[1,-2],[1,-2],[0,-3],[2,1],[1,3],[0,2],[0,1],[2,1],[4,-1],[13,2],[0,2],[-3,6],[2,6],[4,6],[2,6],[-3,-2],[-2,3],[1,4],[3,2],[0,2],[-5,-1],[-5,-2],[-4,0],[-3,6],[-3,-3],[0,-2],[2,0],[0,-2],[-2,-2],[0,-2],[-1,-1],[-1,0],[-2,3],[0,7],[0,15],[-3,-2],[-2,1],[-1,3],[2,3],[0,2],[-5,-2]],[[6276,2371],[4,1],[1,3],[4,8],[1,2],[1,2],[4,3],[2,1],[1,0],[1,-1],[0,-1],[1,-2],[1,-1],[0,-1],[1,-1],[1,-1],[1,1],[0,2],[0,3],[1,7],[3,15],[0,2],[0,1],[0,2],[-1,1],[0,1],[-1,1],[-3,3],[-1,1],[-1,2],[0,1],[-1,1],[1,3],[0,5],[4,14],[1,4],[0,3],[0,3],[0,3],[4,19],[1,6],[0,3],[0,2],[1,1],[1,1],[1,0],[2,0],[0,-1],[1,-1],[4,-4],[1,0],[1,-1],[1,0],[11,2],[8,-5],[3,-1],[3,1],[3,1],[2,-1],[1,0],[8,-4],[4,-3],[1,-1],[2,0],[10,1],[2,-1],[3,-1],[2,-2],[2,-3],[3,-5],[1,-2],[0,-2],[1,-3],[0,-1],[0,-1],[0,-6],[0,-2],[1,-1],[0,-1],[0,-2],[2,-3],[0,-1],[10,-9],[3,-4],[1,-1],[2,-1],[4,0],[3,-1],[4,1],[1,1],[7,3],[2,1],[5,0],[3,1],[1,2],[0,1],[0,1],[-3,6],[-1,2],[-1,4],[-1,4],[0,2],[0,2],[1,4],[2,8],[0,1],[0,2],[-1,13],[0,3],[0,2],[1,2],[2,3],[3,2],[1,1],[1,1],[1,3],[1,1],[0,2],[-1,1],[-1,1],[-1,1],[-1,0],[-5,1],[-2,0],[-1,0],[-9,-3],[-1,0],[-1,0],[-1,2],[-1,1],[-2,4],[-1,2],[0,3],[-1,8],[0,2],[0,1],[0,2],[1,1],[1,1],[1,1],[1,-1],[1,0],[0,-1],[1,-2],[1,-1],[0,-1],[1,-1],[1,0],[1,1],[1,0],[2,4],[2,3],[1,1],[5,2],[3,1],[2,1],[8,8],[5,4],[9,14],[6,7],[3,2],[3,1],[8,2],[1,1],[1,0],[1,0],[1,0],[0,-2],[0,-3],[0,-2],[0,-1],[0,-2],[1,-2],[1,-2],[8,-10],[6,-4],[1,0],[0,-1],[1,-1],[0,-1],[1,-2],[0,-1],[1,0],[1,-1],[7,-2],[1,0],[2,1],[3,1],[1,1],[2,0],[1,0],[0,-1],[1,-1],[1,-4],[1,-2],[1,-1],[2,-2],[0,-2],[0,-1],[0,-1],[0,-2],[1,0],[2,1],[9,6],[7,3],[2,1],[2,0],[2,-1],[8,-5],[1,0],[2,0],[4,2],[2,1],[1,1],[2,3],[1,2],[1,2],[2,8],[1,2],[2,3],[1,1],[1,1],[6,2]],[[3942,4436],[16,-8],[4,0],[3,2],[5,-6],[20,-9],[9,-11],[2,-2],[0,-2],[2,-1],[4,0],[1,-1],[1,-1],[1,-2],[2,-1],[7,-5],[3,-2],[1,-5],[0,-11],[0,-6],[1,-6],[9,-16],[6,-16],[10,-13],[2,-5],[1,-6],[8,-10],[2,-5],[1,-6],[-1,-7],[-1,-7],[-2,-4],[-2,-3],[0,-1],[2,-10],[0,-4],[-1,-3],[3,-2],[4,-10],[5,-5],[7,-16],[1,-1],[1,-1],[0,-1],[1,-2],[1,-2],[0,-8],[1,-4],[3,-5],[41,-53],[3,-8],[1,-1],[3,-2],[-2,-4],[-7,-11],[-5,-11],[-3,-5],[-2,-2],[-1,1],[-1,3],[-4,8],[-2,2],[-1,2],[-5,6],[-3,2],[-3,-1],[-2,-2],[-2,-6],[-2,-8],[1,-18],[-2,-5],[1,-1],[5,-2],[2,-1],[6,-8],[5,-16],[1,-1],[3,-5],[3,-7],[2,-2],[3,-3],[1,-1],[1,-7],[-1,-7],[-2,-6],[-2,-4],[2,-6],[2,-3],[5,-6],[8,-14],[3,-4],[7,-5],[2,-3],[1,-5],[-1,-5],[-3,-2],[-3,-2],[-2,-3],[0,-5],[3,-11],[1,-5],[0,-3],[0,-3],[0,-21],[1,-3],[0,-1],[2,-2],[1,-2],[1,-3],[4,-83],[7,-21],[1,-3],[1,-21],[1,-8],[2,-8],[-7,-16],[-2,-9],[0,-10],[0,-1],[2,-2],[0,-1],[0,-1],[-2,-1],[0,-1],[-2,-18],[-1,-10],[1,-4],[4,-8],[2,-6],[2,-4],[0,-1],[0,-10],[3,-29],[-1,-8],[1,-5],[1,-5],[0,-11],[1,-3],[3,-8],[1,-4],[2,-7]],[[4169,3558],[-8,-2],[-2,-2],[-3,0],[-4,-1],[-1,0],[-1,-1],[-2,-2],[-1,-3],[0,-6],[1,-5],[1,-4],[2,-5],[1,-4],[1,-5],[0,-4],[0,-4],[-1,-2],[-2,-3],[-7,-6],[-1,-1],[-1,-3],[-3,-6],[-1,-7],[-1,-4],[1,-2],[1,-4],[3,-5],[2,-3],[1,-2],[-1,-3],[0,-2],[-6,-5],[-2,-2],[-4,-1],[-2,0],[-2,2],[-1,5],[-4,13],[-6,30],[-1,1],[-1,0],[-1,0],[-1,-1],[-1,-2],[-2,-1],[-2,-1],[-10,-3],[-2,-1],[-1,-2],[-1,-2],[-1,-4],[0,-3],[1,-13],[0,-2],[2,-5],[0,-1],[0,-1],[0,-3],[0,-2],[0,-2],[1,-2],[1,-2],[2,-12],[0,-3],[0,-1],[-1,-2],[-9,-8],[-2,-3],[-1,-3],[-2,-3],[0,-6],[0,-6],[1,-11],[3,-12],[4,-10],[1,-4],[0,-4],[0,-3],[0,-4],[0,-6],[-2,-7],[-3,-8],[-6,-13],[-3,-4],[-11,-14],[-2,-2],[-5,-2],[-2,1],[-4,4],[-6,10],[-4,9],[-2,3],[-2,2],[-4,3],[-3,-10],[-2,-14],[-1,-6],[-2,-6],[-3,-4],[-3,-3],[-13,-9],[-3,-4]],[[4007,3272],[-11,15],[-3,2],[-6,2],[-1,3],[1,7],[0,4],[-2,3],[-6,5],[-8,15],[-6,4],[-10,-7],[-5,2],[-4,8],[-7,28],[-5,6],[-5,-3],[-4,-4],[-4,3],[-4,8],[-3,4],[-3,-3],[-2,-9],[-2,-4],[-3,-10],[-2,-4],[0,-3],[-1,-2],[-3,-4],[-1,-2],[1,-3],[0,-2],[1,-3],[0,-10],[-1,-5],[-2,-3],[-3,0],[-3,1],[-3,-1],[-1,-6],[-1,-3],[-6,-5],[-1,-4],[-7,5],[-9,10],[-1,2],[-2,7],[-1,1],[-2,0],[-1,1],[-11,13],[-7,2],[-7,-4],[-6,-6],[-5,-1],[-5,1],[-6,5],[-2,19],[-8,14],[-11,10],[-12,19],[-14,5],[-9,-6],[-5,-14],[-1,-12],[-1,-15],[-3,-2],[-5,17],[-6,8],[7,12],[-6,13],[11,9],[16,17],[-1,13],[-3,13],[-8,15],[-2,5],[-2,12],[-1,5],[-3,4],[-3,0],[-1,2],[0,3],[1,3],[-15,11],[-2,17],[-12,-6],[-14,-13],[-3,22],[1,4],[2,3],[3,2],[17,7],[2,3],[2,8],[4,8],[0,4],[-3,4],[-2,2],[-2,-1],[-3,-4],[-6,-5],[-5,0],[-5,4],[-5,8],[-2,4],[-2,13],[-2,4],[-11,0],[-10,-1],[-9,-1],[-15,-10],[-11,8],[-3,-2],[-6,-1],[1,-18],[-5,-14],[-12,2],[-8,6],[-2,-1],[-2,0],[-1,0],[-2,-2],[0,-2],[0,-3],[0,-2],[-6,-1],[-1,-3],[2,-10],[0,-6],[-2,-1],[-6,1],[-1,-4],[-3,7],[-1,10],[-3,-2],[-2,-13],[-7,3],[-10,-1],[-5,-6],[1,-16],[-10,1],[-1,2],[0,2],[0,2],[-1,2],[-2,2],[-1,0],[-12,3],[-3,2],[-8,7],[-10,4],[-3,1],[-3,3],[2,-6],[3,-4],[1,-2],[-4,1],[-12,8],[-6,3],[-6,-1],[-3,0],[-4,0],[-2,2],[1,10],[-2,5],[-9,14],[-5,6],[-7,3],[-5,0],[-3,-4],[-8,-19],[-3,-3],[-2,-1],[-4,-1],[-9,-1],[-4,0],[-4,-3],[-1,-3],[-3,-7],[-2,-3],[-2,-1],[-6,1],[-2,-13],[6,-10],[6,-10],[-9,-12],[-7,-12],[-12,-1],[-7,-8],[-9,-4],[-8,-5],[-3,-3],[-3,-2],[-3,-3],[-2,1],[-4,0],[-3,-1],[-2,-2],[0,-2],[1,-2],[0,-2],[-1,-2],[-1,0],[-2,0],[-2,-1],[0,-3],[-2,-2],[-9,-4],[-3,-2],[-11,-14],[-3,-2],[-3,2],[-2,1],[-2,-2],[-3,-4],[-3,-2],[-3,0],[-9,2],[-17,-2],[-15,-13],[-6,-5],[-9,-11],[-7,-5],[-6,-7],[-5,-6],[-1,-9],[-2,-9],[-3,-9],[-4,-7],[-15,-15],[-4,-7],[-3,-3],[-6,-3],[-3,-3],[-2,-3],[-4,-8],[-3,-4],[-2,-2],[-3,-1],[-2,-1],[-2,1],[-1,1],[-1,2],[0,1],[-2,-1],[-10,-10],[-5,-6],[-4,-7],[-3,-9],[1,-4],[2,-1],[6,-1],[2,-3],[0,-3],[-2,-8],[0,-7],[-4,-8],[-6,-6],[-4,-3],[-4,-1],[-2,-2],[-5,-6],[-2,-3],[-8,-3],[-6,-7],[-2,0],[-1,2],[-3,7],[-1,0],[-2,-3],[-1,-6],[-2,-5],[-2,0],[-2,3],[-1,5],[-1,0],[-2,-8],[-2,-4],[-2,1],[-3,5],[-2,10],[-2,4],[-2,1],[-1,-5],[0,-2],[0,-3],[1,-2],[-1,-3],[-1,-1],[-2,0],[-14,2],[-3,-1],[-6,-4],[-10,-14],[-6,-4],[-3,-1],[-8,2],[-7,0],[-2,1],[-6,5],[-7,3],[-23,-1],[-1,18],[1,6],[1,7],[2,5],[1,5],[-3,6],[-3,3],[-3,2],[-4,2],[-6,1],[-7,4],[-6,0],[-2,1],[-2,0],[-3,2],[-12,9],[-6,7],[-3,9],[-3,-5],[-4,0],[-4,1],[-4,-1],[-3,-4],[-7,-11],[-3,-5],[-4,-6],[-7,-3],[-7,1],[-5,4],[-3,4],[-8,10],[-10,3],[-10,1],[-5,2],[-5,2],[-7,6],[-2,1],[-3,-1],[-5,-3],[-4,-1],[-4,-1],[-10,2],[-3,0],[-3,-1],[2,14],[5,8],[5,1],[3,9],[5,2],[-2,9],[-6,3],[-7,1],[-8,9],[-7,0],[-4,4],[-6,0],[-4,-11],[-6,1],[-5,10],[0,10],[-6,6],[-4,-3],[-4,-6],[-4,-1],[-4,4],[-9,3],[-13,-7],[-3,-1],[-3,-2],[-6,2],[-6,-5],[-1,1],[-2,-2],[-1,-2],[-3,-5],[-1,-2],[-6,-5],[-2,-3],[-2,-4],[-3,-8],[-6,-4],[-19,-5],[-3,-2],[-3,-2],[-8,-14],[-3,-4],[-3,-2],[-3,-3],[-2,-5],[-4,-9],[-1,-2],[-8,-21],[-5,-10],[-6,-7],[-7,-4],[-5,-6],[-2,-9],[-1,-7],[-2,-4],[-7,-17],[-4,-10],[-1,-4],[-1,1],[-1,1],[-1,0],[0,1],[-2,0],[-5,-2],[-2,-2],[-2,-4],[-1,-4],[-2,-1],[-3,-4],[1,-3],[-2,-3],[-3,-2],[0,-3],[0,-3],[1,-3],[0,-1],[-3,-4],[-1,-5],[-1,-7],[2,-10],[3,-11],[2,-6],[-4,-5],[-3,4],[-6,1],[-4,-4],[-4,5],[-2,2],[-4,7],[-2,2],[-1,1],[-3,2],[-3,6],[-2,7],[-1,7],[0,9],[0,4],[-2,5],[0,4],[1,4],[3,7],[2,9],[4,9],[8,50],[0,4],[0,5],[-2,4],[-4,6],[-1,3],[0,5],[1,8],[0,5],[-2,4],[-4,5],[-7,7],[-4,2],[-10,2],[-3,3],[-4,6],[-2,0],[-7,-7],[-4,-5],[-2,-5],[-2,-3],[-5,2],[-3,-1],[-9,-10],[-4,-3],[-29,-7],[-4,-2],[-2,-1],[-2,0],[-4,1],[-2,-1],[-2,-5],[-1,-6],[2,-7],[2,-5],[-4,2],[-7,5],[-4,2],[-2,0],[-4,-3],[-2,0],[-2,0],[-3,3],[-2,1],[-13,0],[-3,3],[-2,-1],[-2,-4],[-2,-7],[-4,-6],[-3,-5],[-5,-4],[-4,0],[-4,2],[-3,2],[-4,1],[-2,-2],[-6,-3],[-2,0],[-2,1],[0,2],[-1,2],[-1,2],[-3,1],[-3,0],[-6,-3],[-15,-6],[-3,0],[0,4],[2,5],[1,3],[-4,2],[-4,-2],[-4,-5],[-3,-3],[-10,3],[-8,-1],[-5,0],[-6,5],[-9,17],[-5,8],[-4,3],[-3,1],[-1,-1],[-2,-1],[-5,-1],[-4,1],[-3,2],[-3,4],[-2,7],[-4,5],[-12,-1],[-5,3],[-1,3],[1,8],[-1,4],[-2,3],[-3,2],[-3,2],[-3,0],[-2,-1],[-4,-5],[-2,-1],[-3,2],[-2,3],[-2,2],[-3,0],[-1,-3],[-1,-4],[0,-4],[0,-4],[-2,-4],[-1,-3],[-1,-3],[0,-4],[0,-6],[-1,-5],[-2,-4],[-4,-3],[-6,-4],[-2,-1],[-3,2],[-6,7],[-1,1],[-2,0],[-1,-1],[-1,-1],[-2,0],[-1,2],[-4,7],[-3,3],[-3,1],[-3,0],[-4,2],[-2,2],[-1,3],[-2,8],[-1,3],[-1,2],[0,2],[1,5],[1,5],[0,7],[-2,5],[-3,1],[-14,-21],[0,-3],[2,-4],[0,-2],[0,-2],[0,-4],[0,-2],[-1,-2],[1,-1],[1,-2],[2,-3],[0,-2],[-1,-2],[0,-3],[1,-2],[1,-2],[1,-1],[0,-3],[-1,-1],[-5,-8],[-2,-1],[-2,0],[0,-1],[-4,1],[-8,-1],[-3,1],[-1,7],[0,5],[0,6],[0,5],[-2,5],[-5,7],[-2,4],[-1,6],[0,3],[0,3],[-1,2],[-2,6],[-1,5],[-1,3],[-2,4],[-4,3],[-7,5],[-4,4],[-4,5],[-3,6],[-3,6],[0,12],[-1,6],[-2,-1],[0,-2],[0,-2],[-1,-3],[-1,-1],[-3,-2],[-1,-2],[-5,-9],[-2,0],[-2,3],[-3,3],[-4,1],[-4,1],[-4,0],[-3,-1],[-5,4],[-2,1],[-3,0],[-2,-2],[-4,-6],[-3,-2],[-2,0],[-2,2],[-2,3],[-2,1],[-2,0],[-4,-3],[-2,-1],[-3,0],[-3,1],[-3,2],[-6,7],[-3,-1],[-3,-3],[-4,1],[-4,3],[-1,4],[0,3],[1,8],[0,5],[-1,14],[1,3],[4,4],[1,3],[0,5],[0,2],[1,2],[3,1],[1,2],[1,2],[1,2],[2,14],[-2,3],[-8,3],[-6,6],[-3,2],[-4,-1],[-1,-2],[-1,-2],[-1,-4],[-1,-3],[-2,0],[-1,-1],[-5,-4],[-1,-1],[-2,-7],[-2,-1],[-1,-1],[-2,0],[-3,2],[-2,0],[-9,-1],[-2,1],[-2,1],[-3,3],[-4,7],[-3,2],[-7,1],[-3,2],[1,12],[-2,3],[-3,0],[-3,2],[-1,2],[-2,5],[-1,1],[-9,2],[-3,2],[-3,2],[-3,2],[-4,0],[-4,1],[-2,6],[-2,12],[-2,2],[-3,4],[-3,7],[-1,2],[-2,1],[-12,3],[-8,7],[-2,4],[-3,7],[4,23],[-1,3],[-4,2],[-4,3],[-1,8],[0,3],[-1,2],[-4,5],[-1,5],[2,4],[2,4],[1,5],[-1,3],[-2,1],[-3,-1],[-2,1],[-1,3],[-1,7],[-2,3],[-3,0],[-3,-2],[-3,-1],[-2,4],[-1,2],[-2,1],[-2,-1],[-2,-1],[-1,3],[-1,2],[-1,1],[-2,1],[-2,0],[-3,-1],[-5,-2],[-1,-1],[-2,-4],[-1,0],[-4,-2],[-7,-5],[-4,-1],[-4,1],[-4,0],[-4,-2],[-3,-5],[-2,-4],[0,-5],[-2,-4],[-2,-1],[-3,0],[-6,2],[-2,1],[-2,2],[-4,1],[-2,1],[-1,3],[-1,2],[0,6],[-2,10],[-1,4],[-3,3],[-5,2],[-1,3],[-2,7],[-2,2],[-2,1],[-2,3],[0,4],[0,3],[-1,3],[-4,6],[-1,3],[1,4],[-1,5],[-4,6],[-11,-3],[-2,6],[0,3],[1,2],[1,1],[0,2],[0,4],[-2,4],[-3,5],[-2,1],[-2,2],[-2,1],[0,1],[-1,3],[0,2],[-2,2],[-2,1],[-2,0],[-4,0],[-4,-2],[-2,0],[0,-3],[-1,-4],[-1,-3],[-2,0],[-2,2],[-2,6],[-1,3],[-10,11],[-2,1],[-3,-1],[-2,1],[-1,1],[-3,4],[-1,1],[-3,-2],[-4,-4],[-4,-2],[-2,5],[-1,3],[-2,2],[-2,1],[-2,1],[-1,3],[-3,6],[-10,11],[-2,5],[1,3],[0,3],[0,2],[-2,2],[-1,0],[-4,-2],[-1,0],[-3,3],[-13,22],[-3,2],[-8,4],[-3,2],[-3,3],[-2,4],[-2,4],[-3,2],[-2,0],[-3,0],[-3,0],[-1,2],[-2,4],[-1,2],[-4,1],[-3,0],[-3,1],[-8,6],[-3,0],[-3,-2],[-3,1],[-2,3],[-1,5],[-1,6],[0,3],[3,10],[1,5],[-2,4],[-5,2],[-3,3],[-1,4],[-1,7],[2,16],[-1,4],[-2,2],[-4,0],[-7,-1],[-2,0],[-1,-1],[-2,-1],[-1,0],[-1,2],[-2,4],[-2,1],[-3,1],[-6,-1],[-7,5],[-3,-1],[-4,-2],[-3,-1],[-4,1],[-20,13],[-3,2],[-4,-1],[-1,-2],[-1,-2],[0,-2],[-3,-2],[-3,0],[-1,-1],[-1,-3],[-2,-10],[-1,-1],[-5,1],[-3,3],[-6,8],[-3,2],[-3,-2],[-1,-3],[1,-4],[-1,-4],[-2,-4],[-1,-4],[1,-9],[0,-3],[1,-4],[0,-2],[-1,-3],[-2,-4],[0,-9],[-2,-4],[-1,-4],[-3,-2],[-2,-1],[-3,0],[-2,0],[-2,-2],[0,-2],[1,-4],[0,-1],[0,-5],[-1,-2],[-2,-2],[-3,-1],[-2,-2],[0,-8],[-1,-3],[-4,-1],[-8,4],[-3,0],[-5,-1],[-2,2],[0,1],[-2,11],[-1,4],[-4,9],[-2,9],[-2,5],[-2,4],[-1,2],[1,5],[-1,3],[-4,8],[-5,4],[-12,5],[-14,8],[-3,3],[-2,4],[-3,8],[-2,4],[-5,5],[-16,13],[-3,2],[-3,-1],[-2,-1],[-3,0],[-3,1],[-5,4],[-9,5],[-16,13],[-12,5],[-6,0],[-6,-2],[2,5],[1,4],[1,4],[-1,5],[-1,3],[-2,3],[-2,3],[0,4],[1,1],[2,0],[1,0],[1,0],[2,2],[4,10],[-1,3],[-5,3],[-5,10],[-2,2],[-2,0],[-5,-4],[-3,-1],[-5,3],[-3,6],[-3,6],[-3,5],[-12,6],[-2,2],[-1,1],[-2,2],[-4,6],[-3,7],[-2,4],[-2,2],[-12,4],[-4,0],[-8,-3],[-7,0],[-3,-1],[-6,-6],[-2,0],[-2,1],[-4,1],[-2,2],[-3,3],[-2,4],[-2,3],[0,2],[-1,1],[0,2],[-1,1],[-2,1],[-3,1],[-2,0],[-3,-1],[-2,1],[-1,4],[-1,8],[-1,3],[-2,4],[-4,3],[-4,2],[-4,3],[-3,3],[-1,5],[0,4],[0,5],[-1,6],[-2,2],[-3,1],[-3,3],[0,2],[0,3],[0,2],[0,2],[-1,2],[-2,3],[-1,2],[0,3],[1,2],[0,3],[-1,3],[-1,1],[-3,0],[-2,1],[-1,4],[-1,4],[-1,4],[-5,4],[-5,6],[-2,2],[-8,-3],[-3,-10],[-2,-11],[-2,-6],[-2,1],[-4,6],[-3,2],[-3,-8],[-2,-4],[-1,-3],[-1,0],[-2,-2],[-2,0],[-5,1],[-4,-2],[-2,0],[-5,4],[-1,1],[-1,3],[0,5],[1,10],[2,10],[1,9],[-5,6],[-6,5],[0,6],[16,18],[3,4],[1,4],[-4,7],[-6,8],[-3,0],[-2,1],[-1,1],[-1,2],[-1,5],[-2,3],[-1,2],[0,3],[1,2],[0,2],[-4,7],[0,4],[4,9],[1,5],[2,12],[1,5],[3,11],[1,5],[-2,5],[-2,3],[-7,6],[-5,5],[-16,30],[-3,8],[-3,7],[-6,5],[-1,0],[-1,0],[-1,1],[-1,4],[1,4],[1,6],[-4,24],[-1,1],[0,2],[0,3],[1,3],[1,1],[1,2],[-1,2],[-6,14],[-5,13],[1,5],[4,3],[6,2],[23,1],[7,2],[3,3],[3,3],[4,8],[3,2],[4,-2],[3,-4],[-1,-5],[-1,-4],[-1,-5],[0,-4],[3,-14],[3,-8],[14,-17],[4,-6],[5,-6],[5,-2],[5,4],[3,1],[4,2],[2,1],[2,0],[4,-2],[2,1],[2,5],[2,15],[2,6],[3,4],[5,3],[5,2],[4,1],[3,-1],[3,-2],[3,-2],[3,1],[7,11],[16,18],[7,11],[3,9],[2,9],[-1,9],[-4,6],[-4,7],[-2,8],[-1,8],[-3,8],[-10,12],[-3,7],[0,10],[1,5],[1,13],[1,5],[3,8],[2,4],[-1,10],[-5,3],[-13,1],[-6,3],[-13,9],[-5,1],[-5,-4],[-2,2],[0,6],[-1,5],[-2,3],[-3,3],[-2,1],[-6,3],[-3,2],[-9,20],[0,1],[-15,19],[-4,9],[-3,15],[2,51],[-1,17],[-3,17],[-8,32],[1,23],[13,11],[16,9],[11,16],[2,6],[0,6],[0,6],[-2,6],[-3,9]],[[875,4912],[5,2],[2,2],[5,6],[1,1],[28,15],[2,0],[4,0],[16,-2],[4,1],[3,1],[8,6],[3,1],[5,1],[5,0],[15,-3],[8,-4],[9,-7],[0,-1],[2,0],[1,-1],[3,0],[2,0],[2,1],[2,1],[2,4],[11,24],[3,7],[6,20],[4,8],[0,2],[3,6],[0,3],[1,6],[0,4],[-1,4],[-1,2],[-6,11],[-1,2],[0,3],[-1,10],[-1,3],[-3,7],[0,3],[1,4],[2,5],[3,2],[2,2],[2,1],[2,1],[8,2],[1,1],[2,1],[2,1],[1,3],[1,2],[0,5],[0,3],[-1,3],[-1,2],[-1,2],[-1,2],[-1,3],[0,3],[1,4],[3,5],[10,16],[8,10],[3,5],[2,4],[9,32],[3,8],[1,4],[1,4],[0,9],[-1,5],[0,4],[0,1],[0,2],[3,4],[6,-4],[1,-1],[7,-9],[4,-5],[16,-14],[4,-2],[5,-1],[19,-2],[2,-1],[1,-1],[7,-5],[4,-3],[3,-1],[1,0],[4,0],[6,1],[3,0],[2,0],[3,-1],[3,-2],[10,-9],[4,-2],[1,0],[2,0],[3,1],[2,0],[1,2],[0,1],[0,8],[0,2],[0,2],[0,2],[1,3],[2,3],[1,1],[2,0],[3,-1],[3,-3],[4,-5],[7,-7],[6,-3],[3,-1],[5,0],[16,5],[3,0],[6,-2],[4,-1],[4,-3],[13,-15],[3,-2],[3,-2],[4,0],[18,2],[34,12],[13,8],[2,1],[1,2],[2,2],[1,3],[1,5],[2,13],[1,2],[1,2],[1,2],[2,2],[22,15],[11,10],[1,2],[1,3],[1,2],[1,3],[0,10],[1,4],[1,2],[2,2],[4,2],[2,1],[4,5],[2,2],[3,1],[5,-1],[35,-10],[6,0],[3,2],[9,7],[3,2],[4,0],[9,-1],[5,-1],[4,-2],[3,-5],[2,-4],[1,-5],[1,-6],[-2,-22],[0,-3],[0,-2],[1,-2],[2,-3],[3,-3],[6,-3],[4,-4],[3,-4],[2,-4],[4,-2],[6,1],[9,4],[2,0],[3,0],[6,-2],[5,-4],[3,-1],[4,-1],[16,0],[8,-2],[6,-5],[4,-1],[9,-1],[41,4],[19,11],[4,1],[3,0],[2,-1],[2,-1],[10,-7],[3,-2],[4,0],[3,0],[7,3],[57,45],[3,2],[32,9],[11,9],[13,15],[37,16],[4,0],[6,-1],[2,-1],[5,-3],[1,-1],[1,0],[2,1],[6,2],[4,2],[4,2],[4,0],[6,0],[2,-1],[2,-1],[12,-8],[0,-1],[1,-1],[2,-8],[1,-3],[1,-2],[1,-1],[1,0],[2,0],[3,2],[3,3],[16,22],[2,2],[3,1],[4,1],[26,-3],[4,0],[3,2],[2,3],[1,1],[6,11],[8,9],[2,4],[4,11],[0,1],[1,10],[1,4],[1,2],[0,1],[5,4],[1,2],[2,3],[1,4],[1,4],[2,12],[0,3],[1,2],[2,3],[2,1],[2,2],[4,2],[21,7],[2,1],[1,1],[2,2],[1,3],[2,3],[2,3],[2,1],[4,0],[15,-2],[12,1],[4,1],[4,2],[12,8],[6,1],[29,2],[2,1],[3,2],[5,2],[19,2],[3,1],[25,19],[3,0],[5,-1],[9,-6],[8,-3],[2,-1],[9,0],[32,7],[14,1],[6,1],[6,4],[3,3],[4,5],[2,2],[1,1],[1,1],[1,0],[13,-1],[12,1],[21,5],[20,2],[10,-2],[2,0],[3,-2],[1,-2],[0,-1],[1,0],[0,-1],[1,-1],[1,-1],[1,-1],[31,-12],[19,2],[2,-1],[2,-1],[5,-5],[12,-16],[3,-3],[1,0],[2,-1],[7,0],[7,-2],[5,-1],[15,1],[3,-1],[75,-48]],[[875,4912],[-1,2],[-4,6],[-6,4],[-8,3],[-6,4],[-8,15],[-14,15],[-10,5],[-37,9],[-7,4],[-7,8],[-3,9],[-11,50],[-1,5],[-7,11],[-2,9],[-1,20],[-2,10],[-15,37],[-6,19],[1,21],[5,13],[3,15],[-2,10],[-9,1],[-5,-3],[-7,-11],[-5,-3],[-4,2],[-4,4],[-3,5],[-3,6],[-4,1],[-2,0],[-2,-1],[-5,-5],[-5,-3],[-5,-2],[-23,5],[-1,1],[-6,-1],[-10,-2],[-5,1],[-5,4],[-8,8],[-4,3],[-5,1],[-12,-2],[-6,0],[-5,4],[-3,2],[-3,6],[-2,3],[-3,1],[-4,0],[-6,-2],[-7,1],[-3,0],[-4,2],[-2,3],[-4,7],[-2,4],[-3,2],[-7,-1],[-1,0],[-2,0],[-3,2],[-2,4],[-4,7],[-5,5],[-12,6],[-6,4],[-3,9],[2,21],[-1,9],[-3,1],[-6,-8],[-4,-2],[-4,0],[-2,0],[-1,-1],[-2,-2],[-2,-4],[-1,-2],[-3,-1],[-3,1],[-3,0],[-6,-6],[-3,0],[-2,2],[-3,1],[-4,-1],[-8,-3],[-4,0],[-4,6],[-2,9],[-1,11],[-1,10],[-4,10],[-5,4],[-13,1],[-5,3],[-5,6],[-3,9],[-1,9],[1,4],[2,3],[8,6],[1,2],[1,2],[0,3],[-1,4],[0,3],[2,4],[3,2],[2,2],[0,4],[-2,4],[-4,7],[-1,4],[0,10],[3,21],[-1,7],[-1,4],[-17,42],[-4,6],[-9,12],[-10,9],[-13,8],[-13,4],[-10,-5],[-1,-3],[-1,-3],[-1,-2],[-10,1],[-3,6],[-2,10],[0,11],[-1,10],[-3,8],[-4,6],[-6,3],[-20,6],[-5,4],[-5,5],[-2,2],[-3,1],[-14,-3],[-6,0],[-6,-2],[-3,-1],[-2,-3],[-2,-3],[-1,-8],[-1,-2],[-2,-1],[-1,2],[-1,8],[-2,3],[-4,10],[-5,5],[-12,1],[-5,5],[-2,4],[-3,1],[-6,-3],[-10,-4],[-3,-2],[-4,2],[-2,5],[-2,5],[-3,4],[-10,7],[-5,5],[-3,5],[0,6],[3,1],[6,-1],[3,0],[3,2],[1,4],[2,5],[2,4],[2,2],[5,0],[7,2],[2,1],[2,-1],[2,-3],[1,0],[1,0],[1,1],[0,1],[2,3],[1,2],[0,1],[4,0],[1,1],[3,4],[2,3],[2,2],[3,0],[1,-2],[6,-19],[2,-1],[3,0],[13,4],[3,3],[2,4],[2,4],[3,3],[3,1],[16,7],[1,3],[0,10],[2,4],[4,3],[8,3],[-5,5],[-5,6],[-8,14],[-3,3],[-14,11],[-5,6],[-4,8],[-2,9],[1,5],[2,4],[2,3],[2,4],[1,2],[0,3],[0,2],[1,3],[3,4],[1,3],[1,2],[-1,5],[-2,3],[-8,6],[-1,1],[-1,2],[-1,4],[1,1],[1,1],[3,5],[0,2],[-1,2],[-2,1],[0,2],[0,2],[-1,7],[1,16],[-2,8],[-12,8],[-3,7],[-3,31],[0,25],[1,5],[1,4],[7,10],[2,4],[1,5],[0,5],[-1,8],[0,2],[-1,3],[-1,1],[-3,2],[-1,2],[-1,3],[-3,4],[-3,2],[-3,1],[-3,0],[-4,0],[-3,3],[-2,4],[-3,3],[-28,14],[-23,14],[-4,1],[-11,-5],[-4,0],[-3,0],[-10,5],[-3,0],[-2,-2],[-2,-4],[-1,-2],[0,-3],[0,-2],[-1,-2],[-7,-2],[-1,-2],[0,-5],[2,-4],[2,-4],[-3,-5],[-2,-1],[-16,1],[-3,2],[-4,6],[-3,2],[-6,3],[-3,2],[-3,4],[-2,5],[-1,11],[-1,3],[-6,13],[-1,4],[1,12],[0,5],[-2,3],[-5,7],[-2,4],[0,5],[1,5],[2,4],[3,3],[4,2],[7,0],[4,2],[2,3],[1,4],[0,4],[-2,5],[-2,2],[-6,7],[-9,10],[-2,3],[-1,4],[-2,9],[-1,4],[-7,9],[-4,8],[-1,8],[1,8],[5,18],[1,4],[0,6],[-2,15],[0,5],[31,5],[3,2],[1,4],[2,9],[2,6],[2,4],[3,3],[3,2],[1,3],[-4,14],[0,12],[-1,5],[-3,5],[-3,2],[-3,1],[-2,2],[-1,5],[-1,5],[1,6],[2,4],[2,4],[4,5],[2,2],[0,3],[2,11],[2,6],[3,4],[3,4],[1,6],[0,4],[1,4],[2,3],[1,3],[5,4],[10,2],[6,3],[5,4],[5,3],[6,1],[6,-2],[6,-2],[5,-1],[5,1],[5,3],[18,18],[14,19],[6,5],[6,5],[3,2],[8,11],[3,1],[4,0],[14,-4],[5,1],[-1,9],[-2,3],[-8,9],[-1,4],[1,6],[2,5],[1,5],[0,1],[1,3],[2,3],[1,1],[3,1],[4,-2],[14,-12],[6,-4],[6,-1],[4,0],[8,5],[4,1],[3,-2],[3,-2],[3,-2],[3,1],[1,2],[1,2],[1,2],[2,1],[2,1],[2,1],[35,35],[7,6],[6,-1],[5,-5],[2,-11],[1,-15],[1,-5],[2,-4],[5,-5],[2,-3],[0,-5],[-2,-3],[-2,-4],[-1,-5],[0,-5],[3,-12],[1,-4],[3,-4],[4,1],[7,4],[4,0],[3,0],[11,-4],[3,0],[4,1],[3,3],[3,4],[2,5],[2,4],[14,8],[4,1],[4,-2],[6,-4],[3,-1],[5,5],[5,8],[5,7],[5,-2],[1,-5],[3,-16],[2,-3],[3,1],[5,6],[14,12],[5,5],[3,8],[6,19],[4,8],[9,8],[1,4],[1,4],[1,27],[3,9],[4,8],[6,6],[6,5],[3,3],[1,5],[0,6],[-2,5],[0,5],[1,5],[3,3],[6,6],[2,4],[5,5],[6,3],[18,5],[4,-1],[9,-5],[5,-2],[20,-2],[10,4],[5,0],[9,-2],[9,-5],[5,-3],[5,0],[12,4],[9,-1],[3,1],[2,1],[22,14],[5,2],[6,1],[21,-4],[7,-4],[3,0],[3,1],[17,17],[2,4],[2,4],[5,10],[3,8],[4,7],[3,3],[6,5],[3,3],[2,5],[-1,4],[-3,11],[1,4],[3,4],[3,3],[6,4],[15,14],[12,3],[6,3],[2,3],[1,6],[1,3],[2,2],[3,2],[22,11],[15,12],[3,2],[9,2],[19,16],[6,4],[8,2],[3,2],[4,3],[8,8],[2,3],[4,1],[10,-4],[4,0],[4,2],[12,10],[11,5],[9,8],[8,2],[7,0],[8,1],[5,7],[2,5],[2,10],[1,4],[2,4],[3,3],[6,3],[8,2],[42,0],[8,3],[4,8],[0,5],[-2,4],[-2,3],[-1,4],[-1,5],[-1,8],[-1,4],[7,4],[1,3],[2,6],[-3,19],[-3,4],[-1,4],[-1,4],[-4,21],[0,3],[2,5],[0,4],[0,3],[-2,5],[-4,7],[-2,4],[-1,11],[-1,4],[-1,4],[0,6],[2,4],[6,11],[2,8],[4,15],[3,7],[3,2],[3,0],[6,-2],[2,0],[8,4],[3,3],[13,6],[8,1],[3,3],[1,5],[-1,5],[-4,2],[-7,1],[-12,7],[-5,5],[-3,7],[2,7],[7,6],[14,7],[13,11],[7,4],[7,0],[8,-8],[3,-1],[4,1],[3,3],[3,4],[0,5],[0,5],[-4,9],[-1,5],[0,5],[-1,5],[-1,4],[-2,4],[-6,4],[-7,2],[-2,4],[8,18],[3,8],[0,9],[-19,60],[-19,60],[-6,10],[-3,6],[-2,5],[0,6],[0,5],[-1,4],[-2,5],[-5,6],[-3,4],[-1,4],[1,10],[5,19],[0,11],[-7,39],[0,9],[1,11],[4,20],[3,6],[1,3],[-2,3],[-3,5],[0,2],[0,3],[3,5],[6,3],[11,3],[2,2],[1,3],[-1,4],[-2,2],[-27,12],[-8,7],[-3,2],[-5,1],[-29,-8],[-8,1],[-20,15],[-4,6],[3,8],[3,3],[7,5],[17,16],[6,7],[7,3],[7,1],[12,-2],[11,5],[12,-1],[5,1],[2,3],[3,9],[4,3],[3,1],[12,-1],[26,11],[8,0],[13,-5],[4,0],[20,9],[8,1],[6,2],[14,9],[65,23],[13,11],[7,4],[6,-2],[6,-1],[4,-8],[3,-11],[1,-9],[0,-6],[1,-3],[2,-2],[11,-2],[3,-2],[3,-4],[7,-4],[8,2],[31,19],[9,2],[8,-1],[8,-6],[14,-18],[7,-6],[11,3],[7,14],[5,19],[3,24],[1,10],[-1,10],[-3,5],[-16,8],[-25,4],[-6,3],[-6,11],[1,6],[2,7],[5,14],[6,26],[12,24],[4,13],[3,7],[4,25],[4,36],[5,17],[6,16],[11,20],[2,8],[2,15],[1,4],[7,16],[15,63],[24,56],[1,4],[0,5],[-1,4],[0,5],[1,5],[2,10],[0,3],[-1,5],[0,3],[0,3],[2,6],[1,3],[-1,10],[2,3],[4,3],[4,1],[4,0],[5,0],[4,-2],[8,-8],[3,-3],[16,-3],[6,-4],[28,-20],[62,-25],[16,0],[11,-2],[4,0],[10,7],[1,0],[17,2],[20,-2],[3,0],[3,0],[8,-5],[8,-1],[15,4],[8,0],[6,-4],[5,-6],[3,-8],[0,-9],[-2,-4],[-2,-5],[-1,-4],[0,-3],[4,-2],[4,1],[12,5],[12,3],[4,3],[3,8],[3,3],[3,2],[7,1],[2,2],[5,6],[11,9],[3,4],[4,8],[3,3],[3,2],[3,1],[10,-2],[21,4],[11,0],[1,3],[0,5],[2,4],[2,4],[1,4],[1,4],[1,5],[1,4],[3,3],[4,1],[8,1],[2,3],[1,4],[0,5],[2,9],[0,4],[-1,5],[-1,4],[1,5],[1,5],[-1,6],[-12,21],[-2,7],[-1,9],[2,17],[0,9],[-13,78],[1,7],[2,6],[3,7],[2,10],[4,29],[22,57],[4,9],[6,4],[37,6],[30,-3],[9,5],[6,9],[4,3],[4,2],[16,-1],[19,8],[3,3],[2,3],[3,9],[2,5],[2,3],[8,8],[12,19],[1,3],[0,3],[-1,12],[-1,3],[2,2],[3,4],[4,9],[-3,5],[-5,5],[-4,9],[-1,6],[0,5],[0,4],[2,6],[3,4],[3,3],[6,6],[3,5],[4,9],[3,3],[5,0],[9,-3],[5,0],[23,9],[8,-1],[6,-4],[20,-6],[6,-3],[6,-1],[7,1],[6,3],[1,1],[1,2],[0,1],[2,5],[1,0],[1,0],[2,0],[31,10],[16,2],[1,-3],[2,-8],[1,-6],[-1,-4],[-2,-4],[-1,-6],[1,-5],[3,-3],[3,-1],[3,-3],[0,-9],[-6,-6],[-13,-7],[-2,-4],[-2,-5],[1,-4],[2,-4],[4,-1],[2,-2],[1,-1],[1,-3],[0,-5],[1,-3],[2,-3],[4,-2],[10,-6],[8,1],[3,-1],[10,-8],[4,-5],[1,-7],[-2,-2],[-7,-6],[-1,-2],[-1,-2],[-1,-3],[-3,-2],[-5,-5],[2,-6],[5,-6],[5,-4],[2,0],[4,1],[2,0],[1,-1],[3,-3],[4,-3],[6,-4],[3,-2],[2,0],[6,0],[3,0],[11,-6],[5,-4],[8,-12],[6,-4],[3,0],[4,1],[3,0],[4,-2],[10,-13],[1,-4],[-2,-10],[0,-6],[1,-5],[1,-5],[1,-4],[3,-4],[6,-6],[4,-1],[4,0],[4,-1],[11,-13],[5,-3],[4,-1],[10,2],[4,-1],[3,-3],[18,-27],[5,-3],[15,0],[9,-2],[4,1],[4,4],[3,3],[8,7],[3,2],[2,0],[7,-4],[2,-1],[9,1],[4,1],[7,1],[4,-3],[1,-7],[0,-5],[1,-4],[2,-2],[3,-1],[2,-1],[2,-4],[1,-5],[2,-3],[3,-1],[6,-2],[2,-3],[1,-3],[2,-8],[2,-3],[5,-1],[17,1],[6,2],[2,3],[0,4],[0,3],[2,4],[2,1],[7,-2],[7,0],[2,-3],[1,-5],[-1,-6],[-1,-5],[1,-5],[2,-5],[2,-4],[6,-7],[7,-5],[8,-4],[15,-5],[3,-2],[4,-3],[1,-3],[-2,-3],[-2,-3],[2,-6],[2,-3],[5,-14],[2,-3],[5,-5],[3,-4],[0,-8],[0,-8],[1,-7],[4,-4],[2,-3],[1,-4],[-1,-5],[-2,-4],[-1,-1],[0,-2],[0,-2],[40,-78],[5,-6],[6,-2],[4,0],[4,-1],[3,-2],[4,-4],[2,-4],[1,-4],[2,-5],[1,-5],[1,-1],[2,-2],[1,-1],[0,-3],[0,-2],[-2,-4],[0,-2],[1,-5],[2,-4],[6,-7],[5,-9],[1,-10],[0,-3],[0,-7],[-2,-12],[-1,-6],[3,-3],[3,-1],[3,-4],[-1,-4],[-1,-6],[-4,-9],[-2,-5],[-2,-10],[-2,-5],[-7,-20],[-4,-7],[-2,-4],[0,-5],[8,-30],[5,-7],[3,-8],[2,-12],[-1,-12],[-2,-7],[-2,-2],[-9,-10],[-34,-52],[-3,-6],[-7,-63],[3,-4],[11,-9],[3,-6],[1,-8],[3,-7],[2,-7],[0,-9],[1,-3],[6,-3],[3,-3],[2,-4],[0,-3],[-1,-3],[0,-4],[2,-8],[5,0],[12,8],[6,1],[7,-1],[7,-1],[6,-4],[2,-3],[4,-6],[2,-2],[11,-7],[16,-4],[3,0],[3,3],[2,3],[3,2],[4,0],[2,-2],[11,-16],[2,-1],[2,0],[1,1],[2,0],[16,-4],[4,0],[6,3],[4,0],[28,-2],[9,2],[6,1],[5,0],[6,-2],[5,-3],[14,-11],[4,-1],[8,2],[3,0],[7,-3],[3,0],[8,1],[3,0],[7,-4],[3,0],[16,4],[11,1],[18,6],[8,-1],[2,0],[6,1],[2,0],[9,-6],[5,-3],[5,0],[3,1],[3,0],[3,0],[3,-1],[4,0],[11,1],[4,0],[13,-7],[4,0],[8,1],[4,0],[3,-2],[6,-5],[4,-1],[17,-1],[26,-16],[5,-4],[26,-43],[8,-11],[8,-3],[14,-2],[7,0],[8,4],[2,-1],[3,-1],[2,-2],[14,-17],[3,-5],[4,-11],[3,-4],[4,-2],[11,0],[4,-3],[21,-15],[12,-13],[2,-4],[2,-4],[2,-4],[4,-2],[30,-11],[15,-9],[7,-1],[56,8],[3,-2],[-2,-5],[-4,-7],[-2,-5],[-2,-7],[-2,-5],[-1,-3],[0,-2],[1,-14],[-1,-15],[0,-6],[1,-3],[16,-5],[8,0],[6,-2],[4,-6],[9,-23],[17,-63],[23,-59],[1,-10],[1,-12],[1,-11],[4,-10],[5,-9],[63,-74],[4,-6],[2,-5],[1,-7],[2,-33],[2,-4],[1,-1]],[[6115,1034],[1,-1],[3,-10],[-3,-2],[-1,2],[-3,0],[-3,0],[-1,-2],[-9,-13],[-4,-9],[-2,-3],[-3,-1],[-3,1],[-2,3],[-1,4],[-1,7],[2,3],[2,1],[4,0],[-3,4],[-3,0],[-4,-3],[-1,-3],[1,-3],[2,-7],[1,-2],[-2,-6],[-1,-4],[0,-6],[-1,-3],[-2,-3],[-2,-3],[-2,-1],[0,-1],[1,-3],[-2,-3],[-2,-2],[-2,-2],[-1,0],[-3,1],[-1,-1],[-1,-1],[-1,-5],[-1,-1],[-2,-2],[0,-4],[1,-5],[0,-3],[-1,-4],[-5,-2],[0,-4],[-1,-9],[-2,-9],[-2,-8],[-3,-6],[-1,-6],[-1,1],[-1,1],[-4,-3],[-6,0],[-1,1],[-1,1],[-1,2],[-2,1],[0,-2],[2,-2],[1,-3],[2,-3],[2,-1],[2,1],[1,2],[1,0],[1,-3],[1,-2],[-1,-9],[2,4],[2,13],[1,0],[-2,-13],[-1,-10],[0,-2],[-3,-4],[-3,-6],[-2,-7],[-1,-7],[0,-9],[0,-2],[0,-3],[1,-2],[-1,-2],[-2,0],[-1,0],[-1,-1],[0,-2],[-1,0],[-1,0],[-1,-1],[-1,-2],[0,-5],[0,-2],[-1,-1],[-2,-2],[-1,-2],[-1,-2],[1,-2],[1,-2],[0,-1],[1,1],[3,-1],[2,-1],[2,-2],[2,3],[0,2],[-1,7],[-1,7],[0,3],[2,2],[1,-4],[4,-22],[-3,0],[-1,0],[-2,-1],[-1,-2],[-1,0],[-3,1],[-3,-5],[-4,-14],[1,-3],[-1,-3],[-1,-3],[-2,-2],[-3,3],[-7,-3],[-2,3],[2,2],[4,1],[7,1],[0,2],[-1,2],[-1,0],[-3,-4],[-9,-3],[-3,-4],[-1,0],[-5,1],[-7,-7],[-12,-16],[-6,-6],[-2,-5],[-3,-9],[-3,-1],[-6,3],[0,-2],[2,-2],[5,-2],[1,-3],[0,-4],[-2,-9],[0,-5],[-1,0],[0,5],[-2,3],[-1,0],[-1,-4],[1,-4],[1,-3],[0,-2],[-2,-2],[-2,-1],[-5,1],[-4,2],[0,4],[1,0],[2,-1],[2,0],[2,2],[1,2],[0,3],[1,3],[-1,3],[-1,-2],[-1,-2],[0,-2],[-1,1],[-2,3],[0,-1],[0,-2],[0,-1],[-1,2],[-1,-1],[-1,-3],[-1,-1],[-1,-1],[-1,0],[-1,0],[-5,1],[-3,-1],[-3,-2],[-7,-6],[-2,1],[-1,1],[0,2],[-1,1],[-3,1],[-3,-1],[-3,-1],[-2,-1],[1,-6],[-4,-18],[1,-8],[-2,0],[-1,2],[-1,2],[-1,1],[-1,-1],[-4,-4],[0,-2],[2,0],[2,0],[3,-2],[1,0],[2,0],[1,0],[0,-2],[0,-2],[-1,-2],[-1,-3],[-1,-3],[-2,-2],[-1,0],[-2,1],[-1,3],[-1,6],[-2,-2],[-6,-2],[-1,-2],[-1,-1],[-2,-2],[0,-1],[0,-2],[1,-4],[1,-2],[-3,2],[-2,0],[-2,-1],[-1,-3],[-1,0],[0,2],[1,5],[0,2],[-1,1],[-1,1],[0,1],[0,1],[-1,0],[0,1],[0,1],[1,1],[1,1],[0,2],[1,1],[0,1],[-1,3],[-2,-4],[-2,-2],[-1,-2],[0,-5],[-3,1],[-6,-5],[-2,3],[2,2],[1,2],[2,2],[2,1],[1,2],[-1,3],[-1,2],[-1,-4],[-2,6],[-3,4],[-4,2],[-17,4],[-19,0],[-5,-1],[-3,-3],[-1,0],[-2,3],[-1,4],[-1,4],[0,3],[-2,1],[1,4],[-2,-1],[-2,1],[-1,1],[-2,1],[-15,0],[-1,0],[-2,2],[-2,2],[-1,3],[-2,2],[-2,2],[-8,4],[-2,2],[-1,3],[-6,7],[-6,4],[-4,2],[-3,1],[-7,1],[-3,1],[-1,3],[-2,4],[0,6],[1,5],[1,4],[1,5],[1,20],[-1,10],[-2,10],[-2,8],[-3,7],[-2,3],[-2,3],[0,3],[1,5],[3,10],[1,4],[0,6],[0,6],[-1,2],[-1,1],[0,2],[0,9],[-5,22],[3,2],[2,4],[2,4],[1,4],[3,-1],[0,1],[-1,2],[0,3],[-1,5],[-1,5],[-2,0],[-3,0],[-2,2],[0,2],[2,3],[1,3],[-2,7],[1,3],[2,2],[1,1],[0,1],[-1,2],[1,0],[2,0],[0,1],[0,2],[1,1],[1,1],[0,2],[-1,2],[1,2],[1,2],[0,2],[1,3],[1,1],[4,-1],[2,0],[4,3],[1,0],[2,1],[3,8],[1,1],[3,3],[2,2],[7,3],[5,10],[4,3],[2,-4],[1,0],[0,2],[-1,4],[3,6],[6,8],[2,5],[1,3],[1,1],[8,2],[2,1],[4,4],[3,1],[1,3],[1,0],[4,2],[6,8],[2,5],[0,5],[1,2],[1,-1],[4,2],[3,1],[2,-1],[1,-1],[3,-4],[1,0],[-1,4],[-3,5],[-1,3],[3,1],[0,2],[-1,0],[0,2],[2,0],[0,1],[1,2],[-1,0],[-2,1],[-1,0],[-1,1],[-2,-4],[-4,-4],[-4,-4],[-3,-1],[-2,-2],[-1,-2],[-1,-1],[-1,0],[1,5],[-1,12],[0,4],[2,2],[2,2],[1,2],[1,1],[1,3],[1,2],[1,1],[1,0],[1,0],[1,1],[2,3],[0,2],[0,3],[1,3],[1,0],[1,0],[2,1],[4,5],[1,-1],[1,-5],[1,-2],[2,0],[5,-1],[5,-5],[3,-2],[2,1],[3,2],[2,-2],[1,-4],[0,-4],[1,0],[2,2],[2,2],[3,1],[2,2],[1,-2],[2,0],[3,1],[3,0],[0,1],[-8,4],[-2,2],[-1,6],[2,1],[5,0],[0,2],[-1,3],[-1,1],[0,-2],[-1,0],[-1,1],[-1,3],[0,3],[9,9],[3,2],[2,1],[3,0],[1,-1],[1,0],[2,2],[2,2],[3,0],[3,-1],[2,1],[1,1],[1,-2],[0,-2],[-1,-3],[1,-2],[0,-2],[-1,-1],[0,-3],[1,0],[2,6],[4,-1],[7,-6],[1,4],[0,4],[1,2],[2,-1],[1,-3],[0,-4],[0,-4],[0,-4],[3,3],[2,3],[2,4],[1,5],[2,0],[3,1],[1,0],[1,-1],[0,1],[1,1],[1,-1],[0,-1],[0,-1],[1,-1],[2,-3],[2,-5],[1,-4],[-4,-1],[1,-3],[2,-2],[3,-1],[3,1],[0,2],[-3,2],[2,2],[2,2],[0,4],[6,5],[3,1],[1,0],[2,0],[2,-1],[2,-3],[2,3],[2,6],[2,2],[-2,-1],[-2,-3],[-1,-1],[-2,-1],[-6,1],[7,4],[3,3],[1,3],[2,8],[1,4],[3,-2],[6,-3],[2,-1],[2,-1],[2,-1],[2,-2],[3,0],[3,2],[3,5],[2,1],[3,-1],[2,-2],[2,-3],[1,-3],[0,-2],[-1,-3],[1,-3],[4,-5],[0,-4],[1,-7],[1,-4],[1,0],[-1,3],[0,1],[0,2],[1,0],[0,2],[-1,2],[0,5],[-1,2],[-1,0],[-2,2],[0,2],[-1,3],[-1,7],[0,1],[0,6],[0,2],[1,2],[7,-9],[1,1],[7,-5],[4,-2],[5,-1],[0,-2],[-1,0],[0,-2],[2,-1],[3,-3],[2,-1],[2,3],[1,-5],[2,-9],[1,-5],[1,-1],[1,1],[1,2],[1,2],[-1,2],[0,2],[0,2],[1,2],[-3,5],[0,5],[-1,3],[-4,2],[-1,1],[0,2],[0,3],[0,2],[-1,3],[1,3],[4,7],[1,1],[6,-1],[2,3],[3,10],[1,2],[2,-3],[4,-20],[2,-3],[5,-5],[3,-7],[3,-3],[13,-3],[3,0],[1,1],[0,1],[1,-2],[3,4],[2,-5],[7,-34],[1,-15],[3,-16],[0,-7],[-1,-7],[1,-2],[2,-1]],[[5567,5841],[0,-11],[-1,-4],[-2,-4],[-3,-3],[-3,-1],[-5,-1],[-10,1],[-3,-1],[-1,-3],[-1,-2],[-1,-4],[0,-5],[0,-3],[-2,-2],[-2,-4],[-2,-3],[-9,-8],[-4,-4],[-7,-8],[-1,-3],[1,-4],[1,-4],[0,-5],[-9,-27],[-2,-13],[-1,-6],[-1,-9],[-1,-4],[0,-1],[8,-10],[4,-16],[1,-6],[1,-4],[1,-3],[-1,-3],[-6,-20]],[[5027,5721],[11,26],[1,2],[1,1],[2,1],[5,2],[7,3],[9,0],[2,-1],[10,-6],[2,0],[23,8],[23,3],[4,1],[4,4],[2,1],[1,2],[1,2],[2,6],[2,5],[3,4],[1,2],[3,3],[27,17],[17,7],[3,1],[4,-1],[2,0],[9,-5],[7,-2],[5,0],[10,3],[7,0],[2,0],[1,1],[5,6],[16,11],[2,2],[0,2],[0,1],[0,14],[0,4],[3,17],[1,7],[0,3],[0,2],[0,1],[0,1],[-1,2],[-2,4],[-5,12],[-2,10],[-1,3],[0,3],[0,3],[0,3],[1,4],[1,3],[1,3],[1,2],[1,2],[1,0],[4,2],[2,2],[0,1],[1,1],[0,2],[2,4],[0,2],[0,3],[0,3],[0,3],[-1,1],[0,2],[0,1],[-2,4],[-1,2],[0,1],[0,1],[0,9],[0,5],[3,46],[9,44],[2,7],[9,18],[3,6],[3,5],[0,2],[2,10],[1,3],[2,4],[3,7],[2,2],[1,3],[0,3],[2,16],[1,1],[4,13],[0,1],[1,1],[2,1],[4,1],[2,0],[1,0],[3,-2],[2,0],[2,0],[2,0],[2,1],[1,1],[2,1],[2,3],[1,1],[1,2],[1,1],[0,2],[0,2],[0,1],[0,2],[-1,1],[-1,4],[-1,5],[0,1],[0,6],[0,3],[1,0],[0,2],[1,1],[0,1],[3,3],[2,1],[2,0],[4,0],[11,-3],[6,0],[7,1],[2,1],[6,4],[4,3],[7,11],[3,1],[19,1],[3,2],[1,0],[1,-1],[2,-2],[1,-2],[0,-5],[1,-2],[1,-5],[-2,-18],[1,-5],[1,-6],[2,-5],[3,-2],[1,-2],[6,-16],[-1,-1],[1,-2],[0,-1],[1,-1],[4,-4],[4,-3],[7,-6],[0,-1],[1,-2],[-1,-3],[0,-3],[-3,-10],[-5,-11],[-26,-55],[-10,-17],[0,-1],[-1,-3],[-10,-47],[-3,-6],[-9,-15],[-16,-23],[17,-13],[9,-5],[8,-2],[2,-2],[19,-14],[3,-1],[27,-9],[11,-1],[14,7],[3,0],[23,-17],[3,-3],[7,-14],[4,-7],[2,-5],[1,-5],[-1,-7],[2,-2],[2,-2],[11,0],[1,-1],[9,-7],[12,-4],[5,-2]],[[6131,6246],[1,-2],[4,-2],[2,-3],[2,2],[2,-2],[0,-4],[1,-3],[3,-3],[2,-1],[2,-1],[0,-4],[-1,-4],[-10,-29],[-4,-19],[-3,-9],[-4,-6],[-11,-7],[-5,-4],[-3,-7],[3,-10],[2,-6],[0,-3],[-2,-5],[-2,-18],[-2,-5],[-2,-3],[-1,-4],[-1,-8],[-1,-3],[-3,-3],[-1,-3],[-1,-7],[-6,-16],[0,-2],[1,-1],[4,-8],[0,-1],[0,-8],[-1,-2],[-1,-3],[-2,-4],[-1,-2],[-1,-3],[-1,-6],[-1,-3],[-3,-3],[-7,-2],[-3,-3],[-3,-10],[-1,-3],[-6,-6],[-1,0],[-1,-2],[-5,-8],[-1,-2],[-2,-1],[-3,-1],[-5,0],[-2,-2],[-2,-2],[-1,-15],[0,-1],[-2,-3],[-2,-1],[-2,-1],[-3,0],[-1,-2],[-2,-9],[2,-6],[0,-4],[-2,-10],[2,-21],[0,-1],[0,-1],[1,-1],[0,-5],[0,-3],[0,-2],[0,-2],[1,-1],[4,0],[3,-2],[2,-3],[2,-4],[10,-28],[4,-4],[9,-6],[2,-2],[2,-5],[-2,-4],[-6,-5],[4,-3],[8,-6],[3,-5],[-2,-2],[-2,-3],[-1,-1],[0,-4],[1,-2],[1,-3],[1,-8],[1,-3],[-1,-2],[-2,-1],[-1,-2],[-3,-17],[-2,-2],[-3,-6],[-4,-2],[-7,-2],[-2,-4],[-1,-6],[0,-4],[2,-3],[4,-1],[3,-2],[0,-4],[-3,-9],[0,-2],[0,-1],[0,-2],[-1,-2],[0,-1],[-2,0],[-1,-1],[-1,-1],[0,-4],[-1,-1],[-10,-19],[-6,-7],[-1,-2],[-2,-8],[-1,-4],[-2,-1],[-1,-1],[-2,-3],[-2,-3],[0,-3],[-1,-2],[-2,-2],[-5,-2],[0,-2],[1,-1],[3,-1],[-2,-3],[-4,1],[-3,2],[-2,-1],[0,-3],[1,-3],[3,-3],[1,-1],[2,-3],[-1,-8],[-3,-8],[-4,-4],[1,-4],[4,-4],[2,-3],[-1,-4],[0,-2],[1,-1],[1,-2],[-1,-3],[0,-3],[-2,-4],[-1,0],[-1,0],[-1,0],[-1,-1],[1,-2],[2,-1],[1,-1],[3,-2],[-1,0],[0,-2],[1,-2],[0,-1],[3,2],[1,-4],[-2,-6],[-1,-3],[-2,1],[-2,1],[-1,0],[-1,-3],[1,-2],[15,-23],[1,-4],[1,-14],[0,-5],[0,-6],[-2,-10],[-1,-11],[-3,-15],[0,-6],[2,-11],[0,-5],[-1,-6],[-3,-10],[-1,-5],[1,-12],[8,-43],[1,-12],[0,-6],[1,-2],[0,-4],[2,-1],[1,1],[2,-1],[3,-9],[3,-36],[6,-20],[1,-11],[-3,-11],[-5,-7],[-2,-5],[0,-3],[1,-2],[-1,-5],[-1,-6],[-1,-3],[-1,-3],[-3,-3],[-2,-2],[-2,-1],[-5,-13],[-1,-3],[-3,-2],[-1,-4],[-1,-3],[-1,-4],[-1,-2],[-7,-8],[-3,-5],[-4,-10],[-1,-13],[-2,-7],[-1,-9],[-3,-10],[-1,-11],[-2,-14],[-2,-3],[2,-9],[0,-8],[-1,-8],[-4,-7],[-1,-6],[1,-22],[2,-15],[3,-7],[4,-4],[6,-1],[1,0]],[[6005,4985],[0,-1],[1,-19],[0,-6],[-1,-3],[-1,-3],[-1,-3],[0,-1],[0,-3],[0,-2],[2,-5],[0,-2],[2,-3],[4,-6],[2,-1],[11,-5],[1,0],[0,-1],[1,-1],[1,-2],[1,-2],[0,-4],[0,-2],[0,-2],[-5,-5],[-1,-2],[-1,-1],[0,-1],[-1,-2],[0,-1],[0,-2],[0,-2],[1,-1],[0,-2],[2,-3],[3,-5],[2,-1],[8,-5],[1,-1],[1,-1],[2,-2],[1,-1],[1,-1],[1,-1],[6,-1],[1,-1],[1,-1],[0,-3],[0,-2],[0,-1],[-1,-3],[-1,-3],[-1,-1],[-1,-13],[0,-2],[0,-3],[0,-2],[0,-1],[2,0],[1,0],[0,-1],[1,-4],[4,-10],[0,-1],[0,-1],[0,-2],[-1,-3],[-6,-12],[-1,-3],[0,-1],[0,-2],[0,-1],[0,-2],[2,-2],[2,-2],[4,-2],[5,-2],[2,-1],[10,-10],[1,-1],[2,-3],[4,-9],[0,-1],[0,-5],[0,-2],[0,-1],[0,-3],[1,-3],[9,-9],[4,-5],[7,-4],[4,-2],[2,-2],[2,-4],[1,-3],[2,-11],[2,-4],[0,-3],[2,-5],[0,-1],[0,-2],[-1,-4],[-1,-4],[-1,-2],[0,-1],[-1,-2],[1,-2],[0,-2],[3,-8],[0,-2],[1,-3],[-1,-7],[-6,-21]],[[6109,4628],[-3,-2],[-2,-3],[-1,0],[-1,-2],[-1,-4],[0,-1],[-1,-1],[-1,-2],[-1,-1],[-1,-1],[-8,0],[-3,0],[-2,-1],[-1,-1],[0,-2],[-1,-3],[-1,-2],[0,-1],[-1,-1],[-1,-1],[-3,-3],[-4,-2],[-1,-1],[0,-1],[-1,-1],[0,-1],[1,-2],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[-1,-1],[-1,0],[-3,2],[-1,1],[-1,1],[-5,6],[-3,4],[-1,0],[-1,0],[-3,-1],[-1,0],[-3,1],[-1,2],[0,1],[0,2],[-1,6],[-1,3],[0,1],[-3,8],[-1,1],[-1,1],[-2,1],[-1,0],[-2,0],[-2,-1],[-1,-1],[-1,-2],[-1,-2],[-2,-3],[-4,-7],[-2,-2],[-2,-1],[-1,0],[-32,-5],[-5,1],[-2,1],[-2,1],[0,1],[-5,6],[-2,2],[-1,1],[-2,2],[-1,0],[-3,0],[-22,1],[-7,5],[-2,1],[-5,1],[-20,0],[-5,1],[-4,2],[-4,2],[-2,1],[-1,0],[-2,-1],[-3,-5],[-1,-1],[-2,-1],[-2,0],[-1,0],[-6,3],[-1,0],[-1,0],[-1,0],[-1,-1],[-2,-1],[-8,-13],[-2,-4],[-1,-2],[0,-1],[1,-4],[6,-1],[4,-1],[4,-2],[5,-5],[1,0],[2,-1],[1,0],[5,1],[5,0],[7,-2],[8,-4],[1,-1],[0,-1],[1,-1],[3,-6],[1,-2],[0,-1],[0,-3],[-1,-4],[-2,-13],[0,-3],[-1,-1],[-2,-5],[-1,-1],[3,-4],[4,-4],[5,-2],[4,0],[5,5],[3,1],[2,-1],[4,-3],[3,-2],[8,-1],[2,-2],[6,-6],[7,-3],[2,-2],[2,-2],[1,-4],[1,-2],[0,-1],[0,-3],[4,-9],[0,-1],[2,-8],[0,-2],[0,-3],[-2,-7],[1,-4],[0,-3],[2,-1],[1,-2],[1,-3],[-1,-3],[-2,-4],[-3,0],[-3,0],[-3,2],[-2,1],[-2,0],[-2,-2],[0,-1],[0,-2],[0,-2],[0,-1],[0,-2],[0,-1],[-6,-6],[-1,-1],[-1,0],[-1,0],[-1,0],[0,1],[-5,4],[-3,2],[-12,4],[-2,0],[-1,0],[-3,-4],[-2,-1],[-1,-1],[-2,0],[-1,1],[-1,0],[-1,1],[0,1],[-3,4],[0,1],[-1,0],[-1,0],[-2,-1],[-4,-2],[-2,-1],[-1,0],[-1,1],[-1,0],[-5,3],[-1,0],[-1,0],[-1,0],[-1,-1],[-1,-1],[-1,-2],[0,-2],[-1,-5],[0,-1],[-1,-1],[-1,0],[-2,-1],[-2,-1],[-1,0],[-1,-4],[-1,-28],[-1,-4],[-1,-1],[-9,-9],[-1,-1],[-1,-1],[0,-2],[0,-2],[0,-3],[1,-5],[1,-3],[3,-5],[1,-2],[0,-2],[2,-6],[0,-2],[1,-1],[1,-1],[8,-5],[1,-1],[1,-1],[0,-1],[1,-1],[0,-3],[1,-11],[1,-6],[2,-3],[5,-8],[0,-1],[0,-2],[0,-3],[-1,-4],[-1,-2],[0,-2],[-2,-2],[0,-2],[-3,-14],[-3,-4],[0,-2],[0,-3],[1,-9],[0,-19],[-1,-2],[-1,-4],[-3,-5],[-1,-2],[0,-2],[0,-3],[0,-2],[2,-2]],[[5707,4345],[-1,3],[-4,9],[-1,2],[-3,1],[-3,2],[-12,1],[-4,-1],[-6,-3],[-3,0],[-2,1],[-2,2],[-2,1],[-3,-1],[-3,-4],[-3,-2],[-2,-1],[-5,1],[-6,-2],[-6,0],[-3,0],[-2,-2],[-3,-2],[-2,-2],[-1,-2],[-1,-2],[0,-3],[0,-6],[-1,-3],[-1,-1],[-1,0],[-1,1],[-4,2],[-9,10],[-7,5],[-2,2],[-1,2],[-6,14],[-4,6],[-1,2],[-8,6],[-2,2],[-5,8],[-4,4],[-3,3],[-3,0],[-2,0],[-2,-1],[-4,-1],[-4,0],[-13,4],[-2,1],[0,1],[0,1],[0,1],[0,1],[0,1],[1,1],[0,1],[0,1],[0,1],[-1,2],[0,1],[0,1],[-1,1],[0,2],[0,2],[-1,6],[0,1],[0,1],[1,2],[0,2],[-1,1],[-1,1],[-1,1],[-3,0],[-2,0],[-2,-1],[-2,-2],[-1,-1],[-3,-3],[-1,-2],[-6,-7],[-1,-2],[-3,-4],[-2,-1],[-3,-1],[-4,0],[-2,1],[-3,1],[-9,8],[-8,6],[-3,2],[-1,3],[-1,2],[1,3],[3,11],[0,3],[1,17],[0,3],[-2,4],[-3,6],[-2,1],[-2,1],[-5,1],[-12,-2],[-10,2],[-5,-1],[-5,1],[-10,5],[-3,1],[-2,0],[-2,-1],[-8,-11],[-6,-5],[-3,-1],[-12,-1],[-2,0],[-12,-6],[-2,-1],[-8,0],[-2,-1],[-2,-1],[-9,-9],[-4,-2],[-2,-1],[-3,0],[-4,0],[-3,1],[-3,3],[-12,11],[-6,7],[-2,5],[-1,2],[0,1],[-1,2],[0,3],[0,3],[0,3],[0,4],[1,3],[1,5],[4,9],[1,3],[1,3],[0,3],[-2,2],[-2,2],[-7,-1],[-4,-1],[-6,-3],[-3,-1],[-10,0],[-4,-2],[-3,-4],[-2,-3],[-1,-3],[-1,-3],[-1,-3],[-2,-6],[-1,-2],[-2,0],[-2,0],[-4,2],[-2,0],[-3,-1],[-3,-2],[-12,-11],[-2,-1],[-1,-1],[-3,1],[-2,1],[-2,2],[-1,4],[-1,5],[0,5],[-2,10],[-5,13],[-3,14]],[[5567,5841],[3,-3],[4,-2],[30,-9],[4,-1],[3,-3],[3,-3],[7,-13],[2,-3],[1,-5],[0,-5],[-1,-8],[0,-1],[2,-1],[4,-1],[32,2],[12,-2],[4,0],[27,9],[4,1],[12,-2],[9,0],[14,2],[3,1],[2,2],[1,3],[0,9],[0,4],[1,3],[1,4],[0,3],[-1,33],[1,5],[1,4],[4,9],[2,2],[1,2],[3,0],[2,0],[1,-2],[1,-2],[2,-6],[4,-7],[1,-2],[2,-1],[2,1],[2,2],[5,11],[2,6],[6,23],[0,4],[0,3],[-1,2],[-6,8],[-4,7],[-1,4],[-1,5],[-1,3],[1,3],[3,11],[1,5],[0,4],[1,7],[0,3],[1,2],[5,8],[2,4],[2,9],[2,4],[3,5],[9,10],[2,2],[2,10],[3,4],[4,4],[16,10],[2,3],[1,3],[-1,6],[1,4],[1,2],[1,1],[6,2],[1,2],[1,3],[2,8],[2,4],[3,4],[7,5],[4,2],[2,0],[1,-1],[1,-2],[2,0],[2,1],[2,2],[1,3],[2,9],[1,3],[2,3],[1,2],[4,4],[2,2],[1,4],[6,27],[2,2],[3,2],[12,3],[4,2],[3,3],[2,2],[0,2],[0,1],[1,2],[0,2],[1,1],[0,1],[20,22],[4,4],[8,5],[14,12],[7,5],[1,0],[1,2],[-1,3],[0,2],[-1,5],[-3,9],[-6,12],[-1,2],[0,1],[0,2],[0,1],[0,1],[1,1],[1,1],[1,1],[2,1],[1,0],[3,0],[2,-1],[5,-1],[2,-2],[1,-1],[1,-2],[4,-11],[2,-2],[1,-3],[11,-10],[1,-1],[3,0],[3,1],[1,1],[1,1],[2,2],[1,4],[1,1],[2,1],[6,1],[4,3],[2,1],[2,-1],[1,-1],[1,-1],[1,-2],[1,-1],[2,-3],[1,-2],[3,-10],[4,-8],[1,-1],[3,-3],[1,-1],[1,-1],[1,0],[2,1],[2,1],[2,2],[1,1],[0,2],[2,6],[1,3],[2,4],[2,5],[14,24],[0,1],[1,1],[0,1],[4,7],[9,11],[1,0],[1,1],[5,2],[2,1],[4,3],[1,1],[2,3],[1,2],[1,2],[1,1],[1,0],[1,0],[4,-2],[1,0],[1,0],[1,0],[1,0],[1,1],[2,2],[3,2],[1,0],[1,0],[1,0],[0,-2],[1,-2],[-2,-7],[-1,-3],[-2,-5],[-2,-4],[-3,-6],[-5,-9],[-1,-2],[0,-2],[1,-2],[1,-2],[8,-7],[1,1]],[[6558,5445],[0,-6],[-3,-12],[-1,-3],[-3,-10],[0,-2],[-1,-1],[0,-2],[0,-2],[1,-1],[1,-1],[1,-2],[1,-1],[0,-1],[-1,-2],[-1,-1],[-2,-2],[0,-1],[0,-2],[0,-2],[3,-3],[0,-1],[1,-2],[-1,-2],[-1,-3],[0,-2],[-1,-1],[0,-2],[0,-3],[1,-5],[0,-2],[0,-3],[-3,-13],[-1,-3],[-1,-3],[-3,-3],[-1,-1],[0,-1],[-1,-2],[0,-2],[1,-4],[0,-3],[0,-4],[-1,-10],[0,-4],[1,-5],[0,-1],[-6,-3],[0,-6],[0,-2],[0,-1],[1,-1],[0,-1],[0,-2],[-2,-19],[0,-2],[0,-1],[1,-2],[2,-3],[0,-2],[1,-1],[0,-1],[0,-2],[-1,-2],[-2,-2],[-8,-8],[-5,-7],[-4,-10],[0,-1],[-2,-2],[0,-1],[-2,-1],[-6,-4],[-9,-4],[-7,-3],[-3,0],[-1,0],[-1,0],[0,-1],[0,-2],[0,-1],[0,-2],[0,-1],[-1,-1],[-1,-1],[0,-1],[-1,-1],[-1,-1],[-2,0],[-3,0],[-1,0],[-1,-1],[-1,-1],[-2,-2],[-7,-4],[-2,-1],[-2,-3],[-1,-1],[-1,-2],[0,-2],[-1,-1],[-1,-1],[-2,-1],[-9,-2],[-3,0],[-3,-2],[-5,-6],[-1,-3],[-1,-3],[-1,-1],[0,-1],[-1,-1],[-1,-2],[-6,-4],[-3,-2],[-3,-1],[-12,1],[-14,9],[-1,1],[-1,2],[-2,3],[-1,2],[-1,1],[-1,1],[-1,0],[-2,0],[-3,-3],[-2,-1],[-1,-1],[-3,-2],[0,-1],[-1,-1],[0,-1],[0,-2],[-1,-1],[-1,-3],[0,-1],[-1,-1],[0,-1],[-3,-2],[-2,-2],[-4,-2],[-6,0],[-8,2],[-2,1],[-2,1],[-1,0],[-2,1],[-2,-1],[-3,-1],[-3,-2],[-3,-1],[-29,5],[-3,-2],[-2,0],[-2,0],[-6,2],[-3,-1],[0,-16],[1,-5],[0,-12],[-1,-5],[-3,-11],[0,-1],[-1,1],[-7,7],[-2,3],[-3,2],[-7,-1],[-3,2],[-3,-2],[-6,-1],[-2,-1],[-2,-3],[-2,-3],[-2,-2],[-3,-1],[-2,-2],[-4,-6],[-3,-1],[-3,0],[-3,-2],[-2,-3],[1,-4],[-2,-2],[-4,-2],[-2,-2],[-1,-3],[-2,-7],[-1,-3],[-1,-1],[-2,-1],[-1,-1],[0,-2],[-1,-4],[-1,-1],[-2,-2],[-18,-7],[-4,0],[-4,-4],[-2,0],[-2,1],[-3,4],[-2,0],[-2,0],[-2,-1],[-2,-1],[-3,-4],[-2,0],[-1,2],[-2,1],[-2,-1],[-1,-3],[0,-2],[-1,-2],[-1,0],[-2,0],[-2,2],[-7,4],[-3,-1],[-3,-10],[-2,-3],[-14,-6],[-3,-2],[-3,-4],[-2,-2],[-7,5],[-3,-1],[2,-12],[-7,-5],[-19,-1],[-4,-2],[-3,-3],[-1,-5],[-2,-1],[-9,-5],[-11,0],[-4,-2],[-2,-1],[-1,-2],[-2,0],[-2,2],[-2,4],[-2,2],[-1,1],[-4,-1],[-2,0],[-2,-1],[-1,-2],[-1,-2],[0,-1],[-2,-1],[-2,1],[-1,2],[-1,3],[-2,2],[-1,0],[-5,0]],[[6131,6246],[4,7],[5,3],[6,1],[14,0],[5,1],[4,4],[5,12],[8,9],[1,3],[-1,22],[1,2],[4,-2],[2,1],[-2,4],[0,1],[0,1],[2,1],[4,1],[30,-4],[2,-2],[1,-1],[2,-3],[1,-1],[2,-2],[3,-1],[2,0],[2,0],[1,1],[5,3],[2,2],[3,0],[2,1],[1,1],[5,8],[7,8],[1,2],[1,2],[1,5],[0,3],[1,10],[1,2],[1,3],[4,6],[1,2],[1,3],[5,15],[12,30],[2,4],[5,6],[3,3],[1,2],[8,21],[3,7],[3,8],[3,5],[1,4],[1,1],[1,1],[10,6],[8,7],[2,1],[2,0],[5,-2],[2,-1],[2,-1],[2,-2],[7,-5],[1,-1],[7,-1],[2,-1],[1,-1],[1,-1],[11,-9],[1,-2],[2,-2],[0,-1],[1,-1],[1,0],[2,-1],[1,0],[2,1],[12,6],[1,2],[4,6],[6,11],[8,16],[2,4],[2,2],[2,1],[20,13],[16,6],[2,0],[2,-1],[2,-1],[2,-1],[2,-2],[1,-2],[1,-2],[4,-12],[1,-1],[0,-1],[2,-2],[1,-1],[1,-1],[2,-1],[2,-1],[2,0],[15,2],[8,2],[3,2],[2,1],[26,22],[1,1],[2,0],[3,0],[5,-1],[3,0],[5,1],[2,1],[15,9],[4,2],[20,3],[2,1],[2,2],[1,1],[1,2],[0,2],[0,4],[0,2],[-1,1],[0,2],[-3,5],[-2,3],[-2,5],[-1,3],[0,3],[0,1],[0,2],[0,2],[1,2],[1,3],[4,8],[3,4],[12,9]],[[6629,6605],[0,-8],[-1,-4],[0,-3],[0,-3],[1,-2],[1,-2],[0,-1],[6,-8],[5,-6],[3,-6],[1,-3],[0,-3],[1,-1],[0,-16],[3,-17],[0,-5],[1,-8],[2,-3],[1,-1],[14,-2],[7,1],[3,0],[7,-3],[2,-1],[1,-3],[0,-2],[-1,-2],[-2,-2],[-7,-4],[-26,-11],[-9,-6],[-12,-5],[-7,-2],[-3,-2],[-3,-3],[-1,-7],[-1,-14],[-1,-3],[-1,-2],[-1,0],[-2,0],[-1,2],[-1,2],[-1,5],[-1,2],[-1,1],[-1,0],[-1,0],[-1,-2],[-1,-2],[-2,-6],[-1,-2],[-1,-2],[-2,-1],[-1,-2],[-1,-2],[-2,-4],[0,-2],[0,-2],[1,-1],[1,-2],[0,-1],[12,-9],[1,-2],[1,-2],[2,-6],[1,-1],[1,-2],[1,-1],[1,-1],[5,-2],[15,-3],[1,0],[1,-1],[1,-1],[2,-3],[2,-1],[2,-2],[15,-4],[2,0],[4,1],[1,0],[1,0],[1,-1],[1,-1],[1,-1],[1,-3],[1,-2],[0,-2],[-1,-12],[1,-8],[-1,-9],[-1,-5],[0,-6],[1,-2],[0,-2],[1,-1],[1,-2],[0,-2],[1,-4],[1,-2],[1,-1],[1,-1],[2,-1],[2,0],[1,-1],[1,-1],[1,-1],[3,-6],[3,-2],[3,-6],[1,-1],[0,-2],[-1,-9],[-1,-4],[-5,-13],[-3,-6],[-2,-5],[0,-3],[-1,-3],[0,-4],[0,-2],[0,-2],[-1,-1],[-1,-2],[-3,-3],[-1,-2],[-1,-2],[0,-3],[-1,-2],[1,-15],[-1,-5],[0,-2],[-1,-2],[0,-2],[-1,-2],[-1,-2],[-1,-1],[-1,-1],[-1,-1],[-2,-1],[-6,-3],[-2,-1],[-1,-2],[-5,-11],[-2,-2],[-2,-1],[-2,-1],[-2,-1],[-2,0],[-8,1],[-2,0],[-2,-1],[-3,-1],[-1,0],[-2,0],[-3,2],[-6,7],[-2,3],[-2,2],[-1,0],[-1,0],[-5,-3],[-4,-2],[-5,-4],[-2,-1],[-5,1],[-2,-1],[-2,-1],[-1,-1],[-2,-4],[-2,-5],[-1,-8],[-2,-4],[-1,-2],[-5,-4],[-1,-1],[-1,-1],[0,-2],[-1,-2],[0,-3],[-1,-2],[1,-2],[0,-4],[2,-4],[2,-5],[2,-5],[5,-8],[0,-2],[0,-2],[-4,-8],[-9,-13],[-9,-4],[-1,-3],[0,-3],[0,-4],[-1,-2],[-2,-2],[-6,-2],[-3,-3],[-2,-3],[-1,-4],[-7,-13],[-3,-8],[0,-5],[2,-14],[0,-4],[0,-3],[-1,-4],[-2,-6],[-1,-6],[0,-3],[0,-1],[1,-5],[1,-18],[1,-4],[0,-2],[1,-1],[0,-1],[2,-1],[20,-8],[1,-1],[4,-4],[1,-1],[4,-7],[1,0],[1,-1],[1,0],[5,-2],[3,-11],[2,-5],[4,-9],[2,-4],[0,-3],[4,-16],[1,-3],[1,-2],[1,-2],[4,-5],[10,-23],[2,-3],[5,-20],[12,-14],[1,-8],[-2,-18],[0,-4],[-1,-3],[-1,-2],[-1,-3],[-4,-14],[0,-1],[-5,-11],[-5,-9],[-5,-6],[-2,-3],[-3,-10],[-5,-10],[-2,-4],[-2,-13],[-1,-6],[-1,-2],[-1,-2],[-2,-4],[-7,-8],[-6,-9],[-1,-2],[-1,-2],[-1,-7],[0,-4],[0,-6],[1,-8],[2,-5],[0,-1],[1,-1],[0,-2],[0,-1],[1,-4],[0,-21],[0,-2],[-1,-4],[-1,0],[-1,-1],[-2,0],[-8,3],[-1,0],[-2,-1],[-1,-1],[0,-1],[0,-2],[0,-3],[-1,-4],[0,-2],[-2,-4],[-6,-8],[-2,-2],[-1,0],[-1,-1],[-1,0],[-5,-1],[-4,-4],[-4,-1],[-5,0],[-2,-1],[-2,0],[-1,-2],[-1,-1],[0,-2],[0,-1],[1,-1],[3,-4],[0,-1],[1,-1],[0,-2],[-1,-1],[-1,-4],[-1,-2],[0,-2],[0,-2],[1,-1],[6,-7],[2,-2],[1,-1],[0,-1],[0,-1],[1,-4],[0,-2],[1,-1],[2,-1],[1,-2],[0,-1],[1,-2],[-1,-1],[-1,-2],[0,-2],[-1,-2],[0,-4],[0,-2],[0,-2],[2,-3],[2,-2],[2,-2],[6,-2],[2,-1],[1,-2],[1,0],[4,-6],[6,-6],[2,-3],[3,-7]],[[6954,3707],[-6,0],[-5,-3],[-10,-7],[-3,-1],[-18,-4],[-5,2],[-18,19],[-2,2],[-1,7],[-2,3],[-2,2],[-13,0],[-15,-2],[-4,1],[-4,1],[-2,-6],[-4,-9],[-1,-4],[-1,-12],[-1,-2],[-1,-3],[-1,-4],[-4,-8],[-6,-9],[-2,-2],[-7,-5],[-3,-1],[-2,-1],[-1,1],[-1,0],[-2,4],[-1,1],[-2,1],[-8,3],[-15,2],[-1,-1],[1,-2],[1,-1],[1,-1],[1,-1],[1,-1],[1,-1],[1,-4],[1,-2],[0,-1],[1,-1],[1,-1],[0,-2],[-2,-6],[0,-3],[0,-4],[-1,-4],[-1,-4],[-2,1],[-1,2],[-1,1],[-1,5],[0,2],[-1,1],[-1,0],[-1,1],[-1,0],[-6,-1],[-6,2],[-3,0],[-1,-1],[-1,-1],[-1,-2],[-1,-1],[0,-2],[-1,-4],[0,-3],[-1,-1],[0,-1],[-1,0],[-2,0],[-1,1],[-2,4],[-1,1],[-1,1],[0,-1],[-1,-2],[0,-1],[0,-2],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[-3,-5],[-2,-3],[-1,-1],[0,-1],[-2,-10],[0,-3],[-1,-1],[0,-1],[-1,-1],[-2,-2],[-4,-3],[-3,-2],[-2,0],[-1,1],[-1,1],[0,1],[-1,3],[0,1],[-1,1],[-1,0],[-1,0],[-4,-2],[-7,-1],[-28,-16],[-1,0],[-1,0],[-1,0],[-1,1],[-1,1],[-1,1],[-1,1],[-1,0],[-1,0],[-6,-2],[-3,0],[-3,1],[-1,1],[-1,1],[-2,3],[-1,2],[-1,0],[-1,1],[-1,0],[-2,-1],[-1,-2],[-3,-5],[-1,-3],[-1,-3],[0,-3],[0,-3],[1,-9],[0,-1],[-1,-1],[-1,-1],[-2,-1],[-2,0],[-1,0],[-8,-6],[-1,0],[-1,0],[-9,-1],[-4,-1],[-11,-11],[-15,-26]],[[6588,3516],[-7,4],[-4,2],[-8,9],[-1,1],[-2,0],[-2,-1],[-1,-2],[-3,-2],[-1,-3],[-3,-6],[-1,0],[-2,2],[0,4],[-2,3],[-3,2],[-1,3],[-1,2],[0,4],[0,11],[0,4],[-1,4],[-2,3],[-1,1],[-6,2],[-1,3],[0,3],[1,8],[2,4],[2,5],[4,8],[3,6],[1,2],[6,2],[1,2],[1,2],[1,2],[2,3],[0,1],[0,3],[0,3],[-2,5],[-1,3],[0,1],[-3,3],[-2,4],[0,1],[-1,2],[0,2],[0,2],[0,6],[1,6],[0,3],[0,3],[-1,4],[-3,10],[-1,3],[0,1],[-1,0],[-1,1],[-1,0],[-1,1],[-1,0],[-7,-2],[-4,0],[-2,0],[0,1],[-1,2],[0,3],[2,15],[0,3],[8,23],[0,5],[0,1],[-12,-11],[-4,-5],[-8,-11],[-5,-4],[-38,-62],[-3,-10],[-3,-5],[-3,-3],[-2,1],[0,1],[0,1],[-4,6],[-1,0],[-1,-3],[-1,-3],[1,-4],[-1,-3],[-1,-1],[-2,0],[-1,1],[0,2],[0,9],[-1,5],[-2,3],[-4,0],[-2,-3],[-4,-5],[-3,-3],[-2,1],[-2,4],[-3,28],[1,9],[3,6],[10,9],[2,4],[2,4],[1,7],[-1,6],[-1,0],[-4,-7],[-7,-10],[-1,-4],[-1,2],[-2,6],[-1,3],[0,5],[0,3],[-5,7],[-5,-3],[-6,-7],[-1,-1],[-2,-2],[-1,-1],[-1,0],[-1,-1],[-1,-6],[-1,-2],[-1,-1],[-1,-1],[-1,-2],[-1,-1],[-2,-1],[-3,0],[-2,-1],[-1,0],[0,-2],[-1,-1],[0,-1],[0,-2],[-1,-2],[-1,-2],[-2,-2],[-1,-1],[-1,0],[-16,1],[-9,3],[-6,1],[-2,-1],[-1,-1],[-13,-18],[-3,-2],[-8,-6],[-1,-1],[-1,0],[-1,1],[0,2],[0,10],[0,2],[-1,2],[-2,2],[-2,2],[-1,1],[-1,1],[-1,2],[0,1],[-2,9],[0,1],[-1,0],[-1,-1],[-3,-5],[-1,-1],[-1,0],[-1,0],[-2,7],[-2,5],[-2,2],[-1,2],[-7,7],[-26,32],[-11,4],[-14,13],[-3,1],[-1,0],[-1,0],[-1,0],[-1,-2],[-2,-2],[-1,-1],[-2,-1],[-2,0],[-16,1],[-15,8],[-2,1],[-1,0],[-3,0],[-7,-3],[-1,-1],[-2,0],[-1,1],[-1,1],[-1,5],[-1,1],[-1,2],[-4,3],[-2,2],[0,1],[-3,3],[-11,10],[-31,7],[-18,1],[-24,8],[-5,1],[-4,0],[-1,-2],[-1,-3],[-1,-3],[0,-3],[0,-4],[0,-1],[-1,-2],[-3,-1],[-2,0],[-4,3],[-4,3],[-13,2],[-3,0],[-6,-2],[-1,-1],[-1,-1],[-2,-2],[-3,-5],[6,-4],[1,-1],[0,-3],[0,-2],[-1,-1],[-2,-2],[-1,-2],[-1,-3],[-1,-7],[1,-3],[2,-6],[2,-4],[0,-2],[2,-2],[6,-5],[2,-3],[4,-5],[0,-3],[1,-6],[-3,-6],[-1,0],[-6,-6],[-4,-3],[-2,-1],[-2,0],[-2,1],[-3,3],[-2,0],[-1,-1],[-1,-2],[-1,-3],[1,-3],[-1,-3],[-1,-2],[-4,-4],[-2,-1],[-2,-1],[-4,2],[-2,2],[-4,2],[-3,2],[-2,3],[-8,12],[-2,3],[-2,1],[-5,2],[-2,0],[-2,2],[-1,2],[-1,1],[-2,1],[-2,1],[-53,-14],[-3,-2],[-3,-4],[-7,-15],[-1,-11],[-1,-2],[-1,-1],[-2,-2],[-3,0],[-2,1],[-1,1],[-3,4],[-1,1],[-2,0],[-2,-1],[-7,-5],[-1,0],[-1,0],[-1,-1],[0,-3],[-2,-3],[-1,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-1,0],[-1,0],[0,-2],[-1,-3],[0,-4],[0,-1],[-1,1],[-1,2],[-1,0],[-1,-2],[-1,-4],[0,-2],[0,-2],[-1,0],[-1,0],[-1,-1],[0,-2],[0,-3],[0,-2],[0,-2],[-1,-3],[-2,-2],[-1,0],[0,-1],[-1,-1],[0,-2],[-1,-3],[1,-2],[0,-2],[0,-3],[-1,-2],[-4,-4],[-2,-2],[-1,-3],[0,-3],[0,-3],[0,-4],[0,-1],[1,-2],[1,-2],[-1,-2],[-1,-2],[-4,-5],[-1,0],[-5,-5],[-2,-4],[-1,-2],[1,-4],[0,-3],[0,-2],[0,-5],[-2,-9],[-1,-4],[-5,-4]],[[6109,4628],[3,-13],[2,-3],[1,-1],[5,-7],[2,-1],[2,-1],[3,-1],[2,-2],[1,-1],[1,-2],[1,-4],[1,-6],[1,-5],[5,-12],[3,-5],[5,-7],[0,-1],[1,-1],[0,-3],[0,-1],[0,-2],[0,-1],[-1,-3],[0,-2],[0,-2],[0,-2],[1,-2],[1,-1],[2,-1],[2,-1],[2,-2],[6,-8],[1,-1],[1,-1],[1,-1],[2,-1],[3,-4],[3,-5],[6,-13],[2,-4],[5,-8],[6,-6],[3,-4],[1,-2],[1,-1],[1,-4],[1,-3],[1,-7],[0,-2],[1,-3],[1,-2],[1,-1],[0,-1],[2,-1],[2,1],[1,2],[2,1],[1,2],[3,2],[2,1],[1,0],[2,0],[3,-1],[8,-6],[3,-2],[3,-4],[5,-13],[0,-2],[4,-2],[26,-10],[3,-2],[4,-9],[3,2],[1,0],[1,1],[1,1],[0,1],[1,1],[1,0],[2,-1],[1,-1],[5,-7],[7,-7],[1,-1],[2,0],[4,1],[2,0],[5,-2],[1,-1],[3,-3],[5,-6],[2,-1],[1,0],[2,0],[2,1],[1,1],[1,1],[1,1],[1,0],[3,1],[11,-1],[2,2],[2,1],[1,0],[7,0],[4,1],[13,-1],[22,-6],[2,0],[2,1],[5,2],[8,5],[23,6],[1,2],[2,3],[2,1],[2,0],[2,0],[3,-2],[4,-6],[2,-3],[1,0],[0,-1],[2,0],[1,1],[2,1],[2,1],[1,1],[2,3],[2,2],[1,0],[2,0],[3,-1],[1,-1],[1,-1],[2,-2],[0,-2],[1,-3],[1,-1],[1,-1],[1,-1],[4,-1],[1,-1],[1,0],[2,-3],[0,-1],[1,-1],[0,-2],[1,-2],[0,-2],[1,0],[5,-3],[9,-4],[2,0],[15,2],[1,1],[2,1],[1,2],[1,3],[0,3],[1,1],[1,2],[1,1],[1,1],[2,0],[1,0],[1,3],[1,3],[0,1],[1,2],[2,2],[2,2],[3,2],[1,0],[3,0],[1,-1],[2,0],[1,0],[3,3],[1,-1],[1,0],[0,-1],[0,-2],[7,-11],[0,-2],[0,-3],[0,-4],[-1,-5],[-1,-2],[0,-1],[0,-1],[-1,-2],[1,-2],[1,-7],[1,-15],[0,-2],[-1,-4],[-1,-2],[0,-1],[-2,-2],[-1,-3],[0,-1],[0,-5],[3,-9],[3,-10],[0,-5],[0,-10],[0,-3],[1,-2],[7,-10],[1,-3],[1,-2],[0,-1],[2,-13],[1,-2],[1,-2],[1,0],[1,-1],[2,1],[2,1],[1,1],[2,1],[1,-1],[1,-1],[2,-2],[0,-1],[1,-2],[0,-7],[-1,-8],[0,-2],[0,-3],[1,-2],[1,0],[1,-1],[10,3],[1,1],[3,1],[4,5],[9,15],[0,1],[1,1],[1,1],[1,0],[2,-1],[8,-6],[6,-2],[1,-1],[1,-1],[1,-2],[2,-4],[1,-2],[7,-8],[3,-2],[2,-2],[1,0],[1,0],[3,1],[2,1],[7,0],[1,0],[2,1],[1,2],[1,1],[1,1],[1,0],[3,-1],[4,-2],[2,-2],[1,-1],[1,-1],[0,-1],[1,-2],[0,-1],[0,-1],[0,-2],[0,-3],[-1,-2],[-1,-3],[-2,-4],[-1,-1],[0,-1],[0,-2],[-1,-3],[0,-2],[1,-1],[1,-9],[1,-5],[3,-1],[8,1],[2,0],[2,-1],[1,-1],[1,-1],[4,-8],[3,-3],[1,0],[2,-1],[2,1],[2,0],[1,-1],[1,-1],[1,-3],[2,-2],[4,-2],[5,-1],[2,0],[0,1],[2,0],[2,1],[3,0],[20,-3],[3,1],[3,1],[2,2],[2,2],[1,2],[2,2],[1,3],[3,10],[4,8],[1,1],[1,1],[2,1],[1,0],[1,-1],[1,-1],[1,-2],[2,-6],[1,-1],[2,-3],[0,-1],[1,-1],[0,-1],[0,-2],[0,-3],[0,-1],[0,-2],[-1,-6],[-1,-2],[0,-1],[1,-2],[0,-1],[0,-1],[1,-2],[1,-2],[1,-1],[3,-3],[0,-1],[1,-1],[0,-1],[0,-1],[1,-1],[0,-2],[2,-2],[1,0],[2,-1],[8,2],[4,3],[2,1]],[[6588,3516],[-1,-20],[0,-4],[1,-5],[1,-1],[3,-1],[4,-1],[2,-1],[3,-4],[1,-1],[1,0],[1,-1],[1,-1],[1,-2],[1,-2],[1,-3],[1,-2],[1,-2],[2,-2],[10,-6],[2,-2],[1,-2],[0,-2],[1,-6],[1,-2],[-3,-20],[-1,-3],[1,-3],[0,-5],[-1,-7],[-1,-8],[-2,-4],[-7,-9],[4,-4],[3,-4],[2,-4],[1,-1],[5,-2],[4,-1],[1,-1],[0,-3],[-1,-8],[-1,-3],[1,-2],[0,-1],[1,-1],[5,-3],[1,-1],[1,-1],[0,-1],[1,-1],[1,-3],[0,-2],[0,-2],[0,-1],[-1,-2],[0,-3],[-4,-10],[-1,-3],[-1,-2],[-1,-2],[-3,-3],[-2,-2],[-1,-1],[-9,-4],[-1,-1],[-1,-1],[0,-3],[0,-4],[-1,-2],[-1,-1],[-3,-4],[-1,-1],[-3,-2],[-1,-1],[0,-2],[-1,-3],[0,-4],[0,-4],[0,-7],[-1,-3],[0,-1],[-3,-5],[-12,-13],[-4,-2],[-9,-2],[-2,0],[-2,-1],[-4,-4],[-1,0],[-1,0],[-5,-1],[-1,0],[-1,-1],[-1,-1],[-1,-3],[-2,-6],[-1,-1],[0,-5],[1,-15],[0,-5],[0,-3],[-1,-4],[-1,-2],[-3,-4],[-5,-13],[-2,-3],[-4,-9],[-4,-18],[-1,-4],[-3,-7],[-1,-2],[0,-2],[0,-4],[1,-3],[1,-2],[1,-2],[0,-2],[1,-17],[2,-11],[1,-9],[0,-3],[0,-2],[1,-2],[1,-1],[1,-2],[8,-5],[1,0],[2,0],[2,1],[3,2],[3,4],[1,1],[1,1],[4,1],[2,1],[2,-1],[1,0],[4,-4],[4,-2],[1,-3],[-1,-3],[0,-5],[0,-3],[0,-3],[0,-2],[-4,-12],[-1,-2],[-7,-10],[-2,-4],[-1,-5],[-1,-2],[0,-12],[0,-2],[1,-1],[1,-2],[1,0],[1,1],[1,1],[1,1],[1,-1],[0,-1],[1,-1],[1,-7],[1,-1],[0,-2],[2,-2],[0,-1],[2,-3],[1,-1],[1,-2],[1,-5],[1,-2],[1,-1],[1,-1],[2,-1],[0,-1],[1,-1],[0,-1],[0,-3],[-1,-3],[-2,-3],[0,-2],[0,-1],[-1,-10],[0,-1],[-1,-2],[0,-1],[-4,-4],[-1,-3],[0,-1],[0,-5],[3,-28],[2,-12],[2,-2],[1,-2],[1,-2],[2,-1],[1,-1],[7,-1],[3,-1],[4,-3],[1,-1],[1,-3],[1,-1],[1,-1],[2,-1],[2,-1],[5,0],[2,0],[1,-3],[0,-4],[-2,-10],[0,-4],[0,-3],[0,-1],[0,-2],[0,-1],[-1,-3],[0,-2],[-3,-6],[-4,-6],[-1,-2],[-1,-2],[0,-2],[0,-4],[-1,-2],[1,-3],[0,-2],[-2,-12],[-1,-4],[0,-2],[-1,-3],[-8,-15],[-2,-3],[-1,-7],[3,-2],[1,0],[1,0],[1,0],[1,1],[1,1],[2,3],[1,1],[1,1],[1,0],[2,-3],[1,-1],[1,0],[1,-1],[1,0],[1,1],[1,0],[2,1],[7,8],[3,3],[2,0],[2,1],[1,0],[1,0],[1,-1],[1,-2],[1,0],[3,-1],[1,-1],[1,-1],[0,-4],[1,-1],[0,-2],[-1,-1],[-1,-2],[-1,-2],[-4,-4],[-1,-1],[-8,-4],[-1,-1],[-1,-1],[-1,-3],[-1,-2],[-1,-1],[-2,-1],[-2,0],[-1,-1],[-1,-1],[-1,-1],[-1,-2],[-2,-5],[-1,-3],[-1,-4],[0,-10],[0,-13],[0,-2],[0,-3],[-1,-4],[-1,-3],[-4,-5],[-2,-5],[-2,-5],[-2,-10],[-6,-12],[0,-3],[0,-2],[0,-4],[1,-9],[0,-3],[1,-3],[3,-4],[4,-5],[2,-4],[1,-2],[0,-3],[1,-3],[-1,-2],[0,-2],[-3,-8],[-3,-6],[-1,-5],[-1,-12]],[[5181,3161],[-5,9],[0,3],[1,2],[1,3],[-1,2],[-4,6],[-2,6],[-1,4],[0,3],[0,1],[4,8],[2,5],[1,3],[1,5],[0,12],[0,1],[0,1],[-1,1],[-1,0],[-2,0],[-4,-2],[-1,0],[-1,0],[-2,1],[-2,2],[-1,3],[0,7],[-1,2],[-2,2],[-19,7],[-6,-1],[-6,-6],[-1,-2],[-1,-2],[-1,-7],[-1,-6],[0,-3],[1,-8],[-1,-3],[-1,-2],[-1,-2],[-4,-2],[-1,-2],[-1,-2],[-1,-2],[-2,-1],[-2,-1],[-7,-1],[-8,-4],[-2,-1],[-2,1],[-5,2],[-2,1],[-2,-1],[-8,-7],[-2,-1],[-2,-1],[-4,-1],[-3,1],[-3,2],[-7,6],[-4,1],[-2,1],[-1,1],[-18,19],[-2,3],[-2,5],[-3,8],[-1,4],[1,3],[9,3],[7,4],[1,2],[1,2],[1,3],[-1,2],[0,3],[-1,2],[-4,13],[-1,3],[0,3],[1,2],[2,3],[0,3],[-1,3],[-4,6],[-1,3],[-2,2],[-2,2],[-8,4],[-3,1],[-3,4],[-1,3],[-1,3],[0,3],[0,10],[-1,5],[1,8],[-1,5],[0,3],[0,3],[0,2],[0,1],[0,1],[-1,2],[0,3],[0,3],[0,2],[2,1],[7,3],[2,1],[3,3],[1,0],[1,-1],[2,0],[2,0],[1,1],[1,1],[2,3],[0,1],[2,1],[1,1],[3,2],[1,0],[0,2],[1,1],[0,1],[-1,1],[0,2],[-2,1],[-2,2],[-4,0],[-1,1],[-4,0],[-2,0],[0,-1],[-1,-1],[-2,-1],[-3,-1],[-3,0],[-3,2],[-3,3],[-1,3],[-1,0],[0,-2],[-1,-3],[-1,-1],[-9,0],[-6,-1],[-4,-2],[-3,-3],[-1,-1],[-2,0],[-4,5],[-1,1],[-3,-1],[-6,-4],[-4,-1],[-3,1],[-2,1],[-2,2],[-3,2],[-2,0],[-1,-1],[-2,0],[-1,2],[0,5],[0,2],[-1,3],[-2,-2],[-1,-4],[-1,-4],[-2,-5],[1,-4],[-1,-4],[-4,-10],[-2,-5],[1,-2],[4,-11],[6,-22],[2,-15],[1,-5],[-15,-18],[-6,-4],[-5,-7],[-2,0],[-2,4],[-2,4],[-3,5],[-3,2],[-2,-1],[-1,-2],[-1,-1],[-1,-2],[-2,0],[-4,-1],[-1,0],[-2,-4],[-1,-6],[-3,-6],[-13,-13],[-1,-3],[1,-5],[-1,-2],[-1,-2],[-1,-2],[0,-2],[-1,-2],[2,-7],[2,-1],[3,1],[2,-1],[2,-12],[2,-5],[4,2],[1,1],[1,1],[2,0],[1,-1],[-1,-2],[-1,-2],[-3,-2],[-3,-4],[-1,-4],[0,-18],[-1,-4],[-4,-6],[0,-3],[0,-2],[-1,-2],[-2,0],[-1,-2],[0,-3],[0,-3],[-1,-2],[-1,-1],[-5,-4],[-14,-18],[-2,-3],[0,-2],[-4,-2],[-1,-2],[0,-2],[3,-7],[-1,-5],[-2,-2],[-6,0],[-3,-2],[-2,-1],[-9,-19],[-2,-6],[-1,-10],[-2,-4],[-2,-2],[-2,-1],[-2,1],[-2,-1],[-2,0],[-4,-1],[-1,-1],[-3,-3],[-1,-1],[-4,0],[-2,1],[-2,2],[-2,6],[-2,-4],[-2,-10],[-4,-9],[-3,-11],[0,-4],[0,-5],[3,-10],[2,-23],[-1,-6],[-1,-3],[-3,-9],[-1,-5],[0,-2],[0,-1],[-1,-1],[1,-2],[0,-2],[2,-2],[1,-2],[0,-2],[-1,-9],[1,-9],[4,-9],[5,-8],[3,-8],[3,-17],[1,-3],[1,-1],[1,-3],[0,-7],[0,-3],[2,-6],[1,-5],[1,-5],[-1,-11],[1,-5],[2,-3],[2,-3],[0,-6],[-1,-2],[-2,-6],[-1,-1],[-2,0],[-2,0],[-2,-2],[0,-2],[0,-2],[1,-3],[0,-2],[0,-1],[-2,-3],[0,-1],[0,-3],[2,-5],[0,-3],[-1,-5],[-1,-4],[-3,-4],[-4,-2],[-7,2],[-2,1],[0,3],[-3,0],[-5,-10],[-4,-3],[-5,-2],[-4,-4],[-7,-15],[-2,-2],[-2,-2],[-3,0],[-2,1],[-3,5],[-6,4],[0,7],[2,8],[0,7],[-1,3],[-2,3],[-3,2],[-3,1],[-2,-1],[-9,-10],[-6,-4],[-3,-1],[-4,0],[-4,-1],[-2,-4],[-2,-5],[-2,-4],[-4,-3],[-4,-3],[-4,-1],[-3,-1],[-3,-1],[-2,-4],[-1,-5],[-2,-2],[-12,-15],[-3,-5],[-2,-4],[-1,-4],[-1,0],[-1,0],[-29,4],[-1,0],[-1,-1],[-1,-2],[-3,-8],[-1,-2],[-2,-2],[-1,-1],[-2,-1],[0,1],[-1,0],[0,1],[-1,4],[-5,3],[-1,1],[-2,3],[-1,2],[0,2],[-1,2],[0,5],[1,4],[0,2],[-1,5],[-1,1],[-1,2],[-6,5],[-8,8],[-1,2],[-2,0],[-1,0],[0,-1],[-1,-1],[-2,-3],[0,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-2,0],[-1,2],[-1,1],[-1,3],[-1,1],[0,1],[0,2],[0,3],[1,3],[0,1],[0,2],[-1,4],[0,1],[1,1],[0,1],[3,4],[1,1],[1,1],[0,1],[1,0],[2,1],[1,2],[2,2],[0,3],[0,2],[-1,1],[-2,1],[-2,3],[-1,2],[-1,3],[-2,9],[-1,3],[-2,4],[-5,7],[-3,4],[-1,1],[-2,1],[-9,3],[-4,6],[-1,2],[-1,3],[0,2],[0,2],[1,2],[1,2],[3,4],[1,1],[1,2],[2,8],[4,13],[1,3],[0,2],[1,8],[0,3],[-1,2],[0,1],[-1,2],[-2,0],[-2,0],[-2,-1],[-1,-2],[-2,-9],[-1,-2],[-2,-1],[-2,0],[-2,2],[-1,2],[-2,4],[-1,4],[-1,16],[-1,4],[-1,3],[-2,3],[-29,38],[-2,3],[-1,5],[-1,5],[1,7],[2,6],[3,10],[0,5],[0,5],[-1,2],[-1,1],[-2,0],[-8,1],[-2,0],[-1,-1],[-4,-4],[-3,-2],[-2,-1],[-2,1],[-1,3],[-1,2],[-1,4],[0,8],[0,15],[-1,8],[-2,12],[-6,16],[-3,4],[-2,2],[-2,1],[-3,3],[-2,3],[0,3],[0,1],[1,13],[0,3],[-35,83],[-3,5],[-3,1],[-2,-1],[-1,-1],[-1,-2],[-1,-3],[-2,-6],[-2,-3],[-2,-3],[-1,-1],[-1,-1],[-2,0],[-2,0],[-3,2],[-3,4],[-3,2],[-3,0],[-2,-1],[-3,-2],[-1,-2],[-10,-22],[-5,-3],[-3,6],[0,1],[0,2],[1,3],[-2,11],[1,3],[0,1],[-1,4],[-1,3],[-2,2],[-6,3],[-3,2],[-3,2],[-2,4],[-3,10],[-2,4],[-10,14],[-4,7],[-2,6],[-2,10],[-3,11],[0,2],[0,4],[1,2],[2,3],[3,1],[8,4],[3,3],[5,5],[1,3],[0,3],[-1,2],[-3,3],[0,2],[0,2],[1,5],[0,4],[-2,4],[-1,2],[-11,9],[-3,7],[-3,5],[-5,7],[-2,4],[-1,4],[-4,14],[-1,3],[-1,2],[-2,3],[-2,2],[-3,2],[-2,0],[-2,0],[-1,1],[-2,1],[-2,3],[-1,3],[0,3],[0,3],[-1,4],[0,3],[-1,2],[-1,2],[-2,3],[-3,3],[-2,1],[-3,2],[-1,1],[-2,3],[-2,4],[-1,5],[0,3],[0,12],[0,4],[-1,2],[-1,1],[-1,0],[-4,-4],[-3,-2],[-3,-1],[-3,-1],[-2,-3],[-1,-3],[-2,-9],[-1,-5],[-2,-4],[-4,-5],[-2,-3],[-1,-4],[-2,-18],[-1,-4],[-1,-2],[-1,-3],[-1,0],[-3,0],[-2,-1],[-3,-3],[-7,-4],[-2,-1],[-1,-2],[-1,-2],[-1,-2],[-1,-3],[0,-2],[1,-3],[2,-4],[1,-2],[1,-3],[-1,-3],[-1,-5],[0,-5],[0,-6],[0,-13],[2,-10],[2,-8],[1,-3],[-3,-18],[0,-15],[0,-1],[-2,3],[0,8],[-1,4],[-7,11],[-2,1],[-2,1],[-1,2],[-1,3],[-1,2],[0,1],[-3,3],[-1,1],[0,2],[0,3],[0,3],[-1,1],[-2,0],[-1,2],[-3,5],[-11,26],[0,5],[2,2],[1,5],[0,6],[0,5],[-1,2],[-1,6],[0,3],[1,4],[0,3],[-1,3],[-1,4],[-1,3],[0,3],[-3,3],[-1,3],[0,3],[-2,6],[0,3],[0,3],[1,5],[0,3],[-1,5],[-3,11],[-1,6],[1,6],[3,17],[0,11],[-2,34],[0,35]],[[5218,1955],[-1,1],[-7,7],[-2,3],[-3,10],[-2,6],[-1,2],[-2,1],[-1,0],[-1,-1],[-2,0],[-2,2],[-3,3],[-2,3],[-2,4],[-2,4],[0,5],[-2,3],[-3,0],[-2,-2],[-6,-7],[-1,-3],[-1,-5],[-1,-5],[-1,-4],[-3,-3],[-2,-1],[-1,1],[-1,1],[-1,0],[-1,0],[-1,2],[-1,-1],[-1,-1],[0,-1],[-14,-6],[-2,-2],[-5,-5],[-6,-4],[-6,-8],[-1,-2],[-3,1],[-4,3],[-2,1],[-2,-2],[0,-4],[-1,-4],[0,-4],[-4,-5],[-4,-1],[-3,-3],[5,-35],[0,-5],[-1,-3],[-8,-7],[-1,-3],[-6,-12],[-2,-3],[-3,-3],[-2,-1],[-4,-1],[-5,3],[-3,1],[-1,-1],[-2,-3],[-1,-1],[-1,1],[-1,1],[-1,1],[-1,1],[0,1],[0,1],[0,2],[-2,0],[0,-1],[-3,-5],[-11,-13],[-3,-5],[-14,-14],[-1,-1],[-3,-1],[-2,2],[-3,3],[-9,7],[-2,3],[-2,5],[0,6],[1,6],[1,5],[-4,0],[-14,-7],[-5,-1],[-2,-1],[-2,-2],[-1,-2],[-2,-6],[-2,-2],[-3,-7],[-2,-7],[-1,-16],[-1,-4],[-2,-8],[0,-4],[0,-4],[0,-4],[-1,-4],[-1,-3],[-3,-2],[-1,2],[-2,3],[-2,1],[-2,1],[-2,7],[-1,2],[-1,1],[-3,1],[-1,0],[-4,6],[-1,1],[-1,2],[-3,8],[-1,2],[-2,3],[-11,15],[-11,21],[-2,1],[-7,-6],[-2,-2],[-1,-3],[-1,-4],[-2,-4],[-3,-7],[-1,-2],[1,-12],[0,-2],[0,-2],[-6,-12],[-1,-1],[-3,0],[-2,2],[-4,7],[-6,15],[-2,4],[0,5],[0,4],[0,4],[-2,2],[-2,3],[-1,3],[-2,2],[-2,2],[-4,2],[-2,-1],[-6,-17],[-3,-12],[-2,-2],[-2,-4],[-10,-7],[-4,-6],[-2,-7],[0,-2],[2,-4],[0,-3],[0,-2],[-9,-9],[-2,-1],[-3,-1],[-2,-2],[0,-4],[0,-4],[0,-5],[-3,-2],[-3,0],[-3,2],[-6,5],[-6,3],[-3,2],[-1,3],[-6,16],[-1,5],[-1,5],[-2,3],[-3,3],[-7,2],[-3,2],[-10,12],[-3,2],[-7,2],[-3,2],[-1,1],[-2,4],[-1,1],[-2,0],[-1,-2],[-1,-2],[-1,-1],[-3,0],[-2,3],[0,5],[-2,5],[-3,4],[-5,2],[-4,-1],[-2,-5],[-2,-9],[-1,-5],[-2,-3],[-2,-1],[-2,0],[-2,0],[-1,-2],[0,-3],[1,-2],[2,-1],[1,-2],[0,-2],[1,-1],[-1,-3],[-9,-14],[-12,-18],[-1,-5],[-1,-9],[-1,-4],[-2,-5],[-3,1],[-3,2],[-3,1],[-3,-1],[-3,-2],[-2,-4],[-2,0],[-1,2],[0,3],[0,2],[-2,1],[-2,1],[-10,4],[-3,0],[-3,0],[-4,-3],[-7,0],[-3,-1],[-1,-5],[-1,-6],[-2,-3],[-4,1],[-4,6],[-5,18],[-5,6],[-1,0],[-1,0],[-5,-1],[-4,-3],[-3,-5],[-3,-4],[-1,-6],[0,-5],[0,-5],[0,-6],[-1,0],[-3,-4],[0,-2],[0,-4],[-2,-11],[-1,-2],[-2,-1],[-2,0],[-2,1],[-2,0],[-2,-1],[-2,-2],[-2,-5],[0,-5],[5,-9],[2,-5],[1,-7],[-1,-5],[-1,-4],[0,-6],[2,-6],[4,-11],[2,-5],[1,-11],[1,-3],[4,-4],[6,-2],[1,-3],[0,-2],[0,-2],[1,-2],[3,-8],[2,-6],[1,-2],[4,-6],[0,-2],[-3,-15],[-1,-5],[1,-4],[0,-2],[3,-3],[1,-2],[0,-3],[-1,-5],[1,-3],[2,-3],[4,-1],[2,-2],[0,-5],[-2,-5],[-3,-2],[-4,0],[-2,-3],[0,-4],[2,-11],[-1,-5],[-2,-5],[-1,-26],[-2,-10],[0,-5],[2,-4],[2,-3],[8,-5],[2,-2],[2,-2],[2,-3],[0,-4],[0,-2],[0,-1],[-1,-2],[-1,-1],[-1,-2],[-1,0],[-4,1],[-2,-3],[0,-3],[1,-4],[0,-2],[0,-3],[-2,-2],[-3,-1],[-3,-1],[-2,0],[-3,3],[-3,8],[-2,3],[-4,0],[-6,-4],[-2,1],[-1,2],[0,3],[1,2],[1,3],[-1,3],[-1,0],[-1,1],[-5,2],[-4,1],[-4,1],[-18,-6],[-3,-2],[-8,-8],[-4,-2],[-3,-1],[-2,2],[-3,3],[-1,4],[-2,7],[-2,3],[1,10],[1,4],[-1,1],[-1,2],[-1,2],[3,5],[2,7],[0,3],[-1,0],[0,-1],[-4,4],[-4,4],[-1,1],[-1,6],[3,21],[0,8],[-2,4],[-3,0],[0,5],[0,4],[2,4],[1,3],[-1,3],[0,4],[-1,5],[-2,5],[-2,2],[-2,3],[0,13],[-1,4],[-6,2],[-2,-1],[-2,-2],[-3,-3],[-8,-9],[-3,-1],[-16,-8],[-7,-5],[-6,-8],[-6,-15],[-9,-14],[-7,-6],[-2,-4],[-4,-3],[-9,-3],[-4,-1],[-8,2],[-3,-1],[-3,0],[-2,2],[-2,4],[-1,4],[-5,7],[-2,2],[-4,1],[-3,0],[-3,-2],[-2,-3],[-2,-5],[-2,-3],[-2,-2],[-5,-3],[-2,-2],[-6,-6],[-1,-2],[-4,3],[-6,12],[-3,3],[-2,4],[-1,5],[-1,6],[0,4],[1,4],[1,5],[1,4],[2,4],[2,1],[1,1],[2,1],[0,2],[-1,2],[-1,1],[-2,3],[-7,3],[-14,1],[-5,5],[-2,4],[-2,15],[-3,9],[0,5],[0,6],[6,19],[1,10],[-2,9],[-2,2],[-1,4],[0,3],[2,4],[-13,3],[-3,-1],[-1,-2],[0,-5],[-1,-2],[-2,0],[-1,1],[-1,2],[-2,2],[-10,7],[-2,2],[-3,-3],[-2,-4],[-2,-2],[-3,3],[-1,1],[-1,5],[-1,2],[-2,1],[-15,6],[-6,-1],[-2,0],[-9,6],[-2,-1],[-10,-6],[-5,-1],[-13,2],[-7,3],[-7,5],[-4,5],[5,4],[-2,5],[1,5],[5,11],[1,4],[2,13],[1,3],[3,5],[1,3],[0,4],[-1,1],[-1,2],[1,4],[7,5],[10,16],[1,3],[1,3],[0,3],[-2,4],[0,3],[0,5],[2,9],[0,6],[-8,29],[0,7],[1,2],[2,2],[2,1],[2,1],[1,2],[3,10],[5,7],[1,5],[1,4],[-1,12],[0,3],[3,2],[9,-7],[5,-1],[4,5],[-1,6],[-6,12],[-1,5],[0,4],[0,4],[0,4],[-2,2],[-13,0],[-3,4],[-5,10],[-3,3],[-3,-1],[-2,-4],[-1,-4],[-2,-2],[-3,-1],[-1,-2],[-4,-4],[-2,-2],[-1,1],[-1,1],[-1,1],[-1,2],[0,5],[-1,1],[-1,-1],[-1,1],[-3,0],[-4,2],[-1,0],[-6,-1],[-3,0],[-3,2],[-3,5],[-1,5],[-1,4],[-3,0],[-3,0],[-3,0],[-6,3],[-12,2],[0,9],[8,22],[-2,7],[-6,0],[-1,0],[0,3],[1,1],[2,2],[1,1],[2,5],[0,5],[0,5],[-3,10],[-2,6],[-2,3],[-3,0],[-4,-1],[-1,2],[-3,13],[0,4],[2,3],[8,7],[1,2],[1,3],[0,2],[-1,1],[-7,16],[-1,5],[0,13],[-1,4],[-3,3],[-6,2],[-5,2],[-4,0],[-1,1],[-2,2],[0,2],[0,1],[1,2],[-1,20],[0,3],[1,7],[0,2],[-1,5],[-1,2],[1,2],[2,2],[3,1],[3,2],[8,10],[15,15],[3,8],[-1,8],[-2,-1],[-6,-3],[-17,-2],[-5,-4],[-7,-1],[-5,-4],[-2,-1],[-2,-2],[-3,2],[-4,3],[-7,7],[-4,2],[-7,0],[-6,0],[-3,-2],[-5,-4],[-3,-2],[-6,0],[-12,5],[-6,0],[-13,-4],[-35,-21],[-2,-2],[-7,-12],[-3,-3],[-2,-1],[-2,0],[-4,-2],[-3,-3],[-8,-13],[-4,-2],[-3,-2],[-2,-1],[-1,-1],[-2,-5],[-1,5],[-1,3],[-1,2],[-6,6],[-6,5],[-3,5],[31,48],[2,6],[1,6],[-1,3],[-2,5],[-1,3],[1,3],[1,1],[1,2],[1,2],[-1,9],[-12,7],[-1,7],[2,3],[4,0],[2,2],[0,5],[-1,3],[-3,3],[-1,3],[0,3],[-1,3],[-1,2],[-1,2],[-2,1],[-4,0],[-13,-3],[-1,2],[0,6],[4,36],[-1,33],[0,6],[11,11],[7,8],[3,3],[4,1],[6,-1],[4,0],[3,2],[1,5],[-2,4],[-6,7],[-3,8],[0,9],[0,18],[-1,10],[1,2],[3,1],[2,3],[3,7],[4,11],[4,21],[3,7],[6,-5],[2,-4],[1,-4],[2,-2],[3,0],[4,3],[7,15],[3,2],[7,5],[1,3],[3,11],[2,6],[3,3],[3,0],[0,2],[0,4],[0,10],[0,3],[-1,2],[-1,7],[0,2],[1,2],[3,4],[2,3],[1,4],[0,13],[0,3],[2,1],[13,-7],[3,-2],[4,-7],[2,-1],[4,2],[3,3],[3,2],[1,4],[3,12],[0,3],[7,12],[0,2],[0,3],[1,3],[1,2],[1,1],[1,2],[2,9],[2,5],[2,3],[4,6],[1,2],[3,0],[2,-1],[4,-4],[5,-3],[1,-1],[2,-1],[2,2],[9,10],[1,2],[1,4],[0,3],[0,3],[-1,2],[-2,1],[-1,1],[-1,5],[-6,12],[-1,3],[-2,0],[-2,0],[-2,0],[-1,4],[0,6],[0,4],[-3,10],[-1,4],[-1,5],[1,4],[2,3],[7,2],[2,2],[1,-1],[0,-9],[1,-3],[2,0],[6,7],[1,2],[0,6],[1,1],[2,2],[0,2],[0,5],[-4,12],[-2,3],[-3,-1],[-1,2],[0,5],[1,5],[2,6],[6,11],[2,4],[1,5],[0,5],[1,35],[1,9],[3,8],[2,5],[-1,6],[-1,3],[0,2],[0,2],[0,2],[-2,9],[0,5],[3,10],[0,6],[-2,4],[-4,9],[0,5],[1,3],[2,4],[0,3],[0,2],[-3,23],[1,5],[2,5],[1,5],[-1,5],[-3,3],[-2,2],[-2,1],[-1,5],[-2,17],[0,9],[1,7],[4,18],[1,9],[-2,8],[-1,1],[-1,1],[-1,0],[-1,3],[-1,23],[1,11],[2,11],[-1,5],[-1,3],[-1,3],[-2,2],[-1,1],[-2,0],[-2,-1],[-1,-2],[-2,-2],[-4,0],[-3,3],[-3,11],[-4,3],[-4,-3],[-3,4],[-9,6],[-2,1],[-2,-3],[0,-5],[0,-9],[-1,-9],[-1,-8],[-3,-7],[-6,-2],[-6,4],[-3,8],[-3,21],[-3,9],[-5,12],[-1,3],[2,6],[-1,1],[-1,2],[-1,2],[1,5],[0,4],[-1,2],[-5,6],[-3,4],[-1,5],[3,3],[3,2],[0,4],[-2,5],[-3,4],[-5,4],[-1,3],[1,6],[1,5],[1,24],[0,5],[-1,4],[-1,1]],[[7363,6156],[-9,-19],[-13,-14],[-1,0],[-4,4],[2,2],[-4,8],[0,9],[2,10],[1,2],[6,-1],[6,-12],[3,2],[5,6],[3,4],[-2,5],[3,2],[2,-5],[0,-3]],[[7133,6434],[-4,-11],[-1,-4],[-7,-13],[-2,-5],[-1,-4],[0,-2],[0,-3],[2,-8],[1,-3],[0,-1],[2,-3],[1,-1],[1,-1],[1,0],[2,-1],[3,-1],[2,0],[1,0],[2,-1],[0,-1],[1,-1],[0,-2],[-1,-1],[-1,-1],[-1,0],[-7,-4],[-1,0],[-1,-2],[-1,-2],[0,-1],[0,-2],[1,-1],[0,-1],[1,-1],[1,-2],[0,-2],[0,-2],[0,-2],[-1,-1],[-1,-3],[0,-5],[-1,-17],[-1,-4],[-1,-2],[0,-2],[-1,-1],[-1,0],[-1,-1],[-3,0],[-1,0],[-1,0],[-14,8],[-13,4],[-5,3],[-2,2],[-1,1],[-1,0],[-2,0],[-2,0]],[[7459,6746],[-3,-11],[-3,-7],[-5,-8],[-2,-2],[-5,-3],[-4,-4],[-5,-7],[-3,-5],[-3,-3],[-3,-1],[-2,0],[-3,-1],[-3,-1],[-4,-3],[-2,-4],[0,-5],[2,-2],[2,-1],[3,-1],[3,-1],[2,-2],[1,0],[0,-1],[0,-1],[1,-1],[-1,-4],[0,-2],[-1,-1],[-2,-2],[-2,-1],[-2,0],[-2,1],[-4,2],[-2,0],[-2,-2],[-2,-9],[-2,-8],[-3,-6],[-1,-2],[-1,-1],[0,-3],[0,-1],[0,-2],[0,-1],[1,-2],[0,-1],[31,-42],[1,-1],[1,-1],[1,-1],[1,0],[1,1],[2,1],[4,1],[1,1],[1,1],[5,7],[2,1],[1,1],[1,0],[1,0],[1,-1],[1,-2],[0,-2],[0,-2],[-2,-9],[0,-3],[1,-3],[5,-12],[3,-4],[3,-2],[2,-1],[2,-1],[2,-4],[1,0],[4,1],[23,0],[10,3],[4,0],[2,-1],[1,-2],[0,-2],[0,-2],[1,-2],[3,-4],[1,-2],[0,-3],[0,-3],[-1,-5],[-1,-2],[0,-4],[0,-2],[0,-2],[0,-1],[-1,-2],[0,-3],[0,-3],[0,-3],[0,-3],[1,-1],[2,-5],[2,-7],[3,-4],[1,-2],[0,-1],[0,-2],[-1,-10],[0,-3],[0,-1],[1,-2],[1,0],[1,0],[3,1],[4,1],[2,0],[2,-1],[2,0],[2,-2],[1,-1],[0,-2],[0,-5],[0,-8],[0,-2],[0,-1],[-2,-5],[0,-2],[0,-2],[1,-2],[2,-4],[1,-2],[1,-1],[4,-3],[4,-4],[1,-2],[1,-1],[1,-1],[2,-5],[0,-1],[0,-2],[1,-2]],[[7560,6405],[-7,-3],[-3,-3],[-3,-3],[-4,0],[-6,-4],[-8,-1],[-7,-6],[-3,-1],[-5,0],[-3,-2],[-3,-2],[-1,-5],[-1,-3],[1,-5],[1,-7],[-6,0],[-5,0],[-6,-5],[-3,-5],[-4,-5],[-3,-3],[-2,-3],[-1,-1],[-2,-4],[-4,-20],[-2,-6],[-3,-6],[-2,1],[-4,-1],[-4,-3],[-2,-4],[0,-5],[4,4],[2,1],[-1,-2],[-1,-2],[0,-2],[-1,-3],[2,3],[4,8],[1,1],[2,-1],[-3,-11],[-1,-11],[2,-1],[4,-9],[2,-6],[-2,-6],[-3,-7],[-3,-5],[-5,-2],[-4,2],[-3,-3],[-9,-16],[-6,-9],[-5,-7],[-4,-5],[-4,-6],[-3,-3],[-9,-11],[-2,-2],[-3,-1],[-2,-1],[0,2],[6,6],[1,2],[1,2],[1,3],[1,2],[2,2],[-4,-1],[-7,-4],[-4,-1],[1,3],[-2,4],[0,4],[-2,-2],[-3,-8],[-4,-3],[-4,-3],[-3,-1],[-8,-1],[-6,2],[-7,2],[-4,0],[-5,-3],[-5,-1],[-6,1],[-1,-3],[2,-4],[-3,-2],[-4,-4],[-3,-1],[-10,-9],[-5,-3],[-3,-2],[-2,-3],[-3,0],[-5,2],[-5,1],[-5,2],[-5,7],[-3,9],[-3,6],[-5,10],[-7,8],[-8,4],[-3,1],[-3,-1]],[[7259,6202],[-1,6],[1,1],[-1,1],[1,16],[0,4],[0,3],[0,2],[-1,2],[-2,3],[-1,2],[-2,1],[-12,7],[-1,1],[-1,1],[-1,1],[-1,2],[0,2],[0,2],[0,2],[0,2],[3,12],[1,2],[2,7],[0,2],[0,1],[0,2],[-1,2],[-2,3],[-2,1],[-1,1],[-4,-1],[-3,-1],[-1,0],[-2,0],[-1,1],[-1,0],[-4,3],[-1,0],[-1,0],[-2,0],[-1,0],[0,-1],[-1,-1],[0,-1],[0,-2],[0,-1],[0,-2],[-1,-1],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-1,1],[-1,1],[-2,3],[0,1],[-1,1],[-1,1],[-2,1],[-6,3],[-1,0],[-1,2],[0,1],[0,3],[1,2],[1,1],[0,2],[1,1],[0,2],[0,2],[-1,4],[-1,2],[0,2],[-1,1],[-5,2],[-1,1],[-1,2],[0,1],[-1,8],[-1,2],[-1,1],[-1,1],[-2,2],[-1,1],[0,5],[-1,9],[-1,7],[-2,7],[-1,3],[0,1],[0,3],[2,13],[0,2],[0,3],[-1,4],[-1,4],[0,1],[0,1],[0,1],[1,2],[1,1],[1,0],[2,0],[1,-1],[13,-9],[0,-1],[3,0],[2,0],[8,2],[2,0],[9,-2],[1,1],[1,0],[1,1],[0,1],[1,2],[0,1],[-1,1],[-1,3],[-1,2],[-1,1],[-3,2],[-1,2],[0,1],[1,2],[1,4],[0,1],[-1,2],[-2,1],[-3,1],[-6,1],[-5,2],[-2,4],[-2,7],[-3,4],[-8,8],[-17,15],[-16,8]],[[7060,6304],[-1,-8],[0,-5],[1,-16],[0,-3],[1,-3],[3,-9],[1,-3],[0,-2],[1,-2],[0,-4],[0,-3],[1,-4],[3,-3],[0,-1],[0,-3],[-1,-8],[-3,-19],[-1,-3],[0,-3],[1,-5],[1,-1],[0,-1],[1,-1],[0,-1],[1,-1],[1,-1],[1,-1],[3,-1],[2,-1],[1,-1],[1,-1],[0,-1],[1,-2],[0,-1],[0,-1],[0,-2],[0,-2],[-1,-2],[0,-1],[-1,-1],[-1,-1],[-29,-24],[-2,-3],[0,-1],[-1,-1],[-1,-3],[0,-1],[-1,-7],[0,-10],[0,-5],[1,-6],[2,-9],[2,-5],[2,-5],[2,-4],[3,-3],[3,-3],[5,-2],[4,-2],[2,-1],[2,-2],[1,-2],[2,-6],[1,-1],[0,-1],[2,-1],[1,-1],[3,-1],[2,0],[1,1],[14,4],[2,0],[1,0],[1,-1],[1,-2],[1,-1],[2,-15],[1,-3],[3,-3],[16,-2],[4,-2],[0,-1],[1,-3],[0,-1],[1,-1],[2,-2],[1,0],[0,-1],[2,-1],[2,0],[23,8],[5,3],[17,5]],[[7183,6044],[3,-2],[3,-7],[14,-37],[8,-18],[14,-22],[6,-6]],[[7231,5952],[-2,-2],[-3,-2],[-2,0],[-1,-1],[-1,-2],[-1,-3],[-1,-2],[0,-2],[-1,-4],[0,-4],[1,-1],[0,-1],[1,-2],[0,-1],[0,-2],[0,-2],[-2,-3],[-1,-2],[-1,-2],[-6,-8],[-1,-2],[-1,-2],[-1,-2],[-2,-1],[-11,-4],[-5,0],[-3,-2],[-6,-9],[-2,-4],[-1,-4],[-1,-4],[-1,-6],[-1,-2],[-1,-2],[-4,-7],[-1,-1],[0,-1],[-1,-2],[-2,-6],[-1,-3],[-2,-3],[-2,0],[-1,-1],[-3,0],[-1,0],[-2,0],[-1,1],[-7,1],[-2,0],[-12,-2],[-5,0],[-5,0],[-9,0],[-2,0],[-5,0],[-9,-2],[-4,-1],[-3,2],[-3,0],[-4,-1],[-9,1],[-6,-1],[-3,0],[-2,1],[-1,1],[-2,-1],[-2,-1],[-3,-3],[-1,-2],[-1,-2],[-1,-2],[-3,-12],[0,-1],[-1,-2],[-10,-9],[-2,-1],[0,-2],[-1,-1],[-1,-6],[-4,-9],[-3,-4],[-2,-3],[-4,-4],[0,-1],[-1,-1],[-2,-4],[-1,-2],[-4,-3],[-3,-6],[-2,-1],[-3,-3],[-1,-1],[-1,-2],[-2,-6],[-1,-1],[-1,0],[-1,1],[0,1],[-2,3],[-1,2],[-1,3],[-1,2],[-1,2],[0,7],[0,7],[-1,3],[-3,7],[-4,-5],[-1,-2],[-2,-7],[-1,-1],[-1,-1],[-2,-2],[-1,-1],[0,-1],[-1,-4],[-1,-4],[0,-1],[-6,-9],[-1,-2],[-1,-2],[0,-4],[0,-1],[1,-2],[0,-1],[1,-1],[1,-1],[1,-2],[1,0],[1,-2],[0,-2],[0,-2],[0,-2],[0,-1],[-1,0],[-4,-6],[-2,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-5,4],[-2,0],[-1,0],[-1,0],[-2,0],[0,-1],[-1,0],[-4,-2],[-6,0],[-1,-1],[-1,0],[-6,-6],[-3,-1],[0,-1],[-1,-1],[0,-5],[0,-8],[0,-2],[-1,-2],[-2,-4],[-1,-2],[-1,-2],[-6,-5],[-1,-1],[0,-2],[-1,-6],[-2,-6],[-1,-4],[-1,-1],[0,-1],[0,-5],[0,-3],[-2,-8],[-1,-3],[-3,-3],[-1,-2],[-6,-10],[-1,0],[0,-1],[-1,-1],[0,-2],[0,-2],[0,-4],[0,-2],[-1,-2],[-4,-8],[-8,-10],[0,-1],[-1,-1],[0,-1],[-1,-2],[0,-3],[-1,-1],[-2,-8],[-7,-5],[-13,-7],[-7,-2],[-4,-2],[-3,-8],[-3,-5],[-3,-5],[-2,-2],[-2,-2],[-5,-12],[-3,-4],[-1,-3],[0,-1],[1,-3],[-1,-2],[-2,-3],[-1,-2],[-1,-5],[0,-3],[-2,-2],[-3,-5],[-1,-3],[-1,-2],[0,-2],[1,-1],[0,-1],[1,-1],[1,-2],[0,-2],[1,-5],[5,-14],[2,-6],[1,-5],[0,-4],[0,-3],[1,-1],[1,-1],[1,0],[1,0],[2,1],[1,-1],[1,0],[1,-1],[1,-1],[0,-1],[1,-1],[0,-2],[1,-2],[2,-2],[1,-1],[1,-1],[0,-1],[1,-2],[0,-3],[0,-1],[1,-18]],[[6842,5393],[-10,-9],[-3,-4],[-2,-3],[-2,-3],[-1,-2],[-1,0],[-2,-1],[-1,0],[-2,1],[-1,0],[-1,1],[-1,1],[-1,3],[-1,2],[-2,7],[-4,7],[-1,1],[-1,2],[-1,1],[-4,2],[-2,0],[-2,0],[-4,-1],[-2,0],[-1,0],[-1,1],[-2,1],[-1,0],[-1,0],[0,-1],[-3,-3],[-4,-5],[-1,-1],[0,-2],[-2,-6],[0,-1],[-2,-4],[0,-1],[-3,-3],[-1,-2],[-2,-2],[-3,-2],[-4,0],[-3,-1],[-2,0],[0,1],[-1,1],[1,1],[0,1],[1,2],[0,2],[-2,3],[-4,5],[-5,6],[-3,2],[-2,1],[-1,-1],[-2,-2],[-2,0],[-3,0],[-9,3],[-2,0],[-1,0],[-6,-2],[-6,-3],[-2,-1],[-6,0],[-4,1],[-2,2],[-21,19],[-2,1],[-2,0],[-3,1],[-2,0],[-1,2],[-1,2],[-1,2],[-2,0],[-3,-1],[-2,0],[-7,3],[-2,1],[-1,-1],[-3,-2],[-1,-1],[-1,0],[-3,0],[-6,2],[-11,5],[-2,2],[-2,1],[-1,1],[0,1],[-1,4],[-1,3],[-1,3],[-2,3],[-2,3],[-2,2],[-2,2],[-2,0],[-2,-2],[-1,-1],[-1,-1],[-3,1],[-1,0],[-2,-1],[-2,0],[-1,0],[-1,1],[-2,3],[-1,1],[-1,0],[-2,0],[-5,-5],[-3,-1],[-3,0],[-10,4],[-1,0]],[[6629,6605],[-4,9],[-3,3],[-9,7],[-1,2],[-1,2],[0,1],[0,9],[0,1],[0,2],[-3,9],[-1,2],[0,1],[-1,1],[-1,1],[-3,2],[-1,1],[-3,3],[-2,4],[-6,13],[-1,2],[-1,1],[-8,8],[-5,6],[-1,2],[1,1],[0,1],[2,-1],[3,-1],[1,0],[1,0],[1,0],[1,1],[0,2],[0,5],[0,1],[2,6],[0,2],[1,1],[1,1],[1,0],[1,1],[1,0],[1,-1],[3,-2],[1,0],[2,0],[1,1],[1,0],[0,1],[1,1],[0,1],[1,2],[0,2],[-1,11],[0,4],[-1,2],[-1,2],[-5,0],[-2,1],[-1,2],[-2,3],[0,2],[0,2],[0,11],[0,2],[2,9],[0,2],[0,5],[0,3],[1,1],[0,2],[1,0],[3,4],[1,2],[1,1],[1,2],[3,11],[1,2],[2,3],[1,2],[2,1],[18,7],[5,3],[1,1],[2,2],[1,1],[0,1],[1,2],[2,45],[2,12],[1,4],[4,9],[3,4],[8,10],[4,3],[2,2],[4,1],[4,3],[2,3],[3,4],[1,2],[1,5],[4,17],[1,3],[7,11],[2,2],[1,1],[1,1],[8,3],[25,-1],[2,1],[2,2],[2,2],[3,5],[7,-8],[1,-2],[0,-3],[0,-3],[-1,-9],[0,-2],[0,-2],[5,-10],[1,-3],[2,-11],[1,-2],[3,-9],[0,-2],[1,-2],[-1,-2],[0,-3],[0,-3],[2,-11],[0,-3],[-1,-1],[-1,-1],[-1,-1],[-5,-2],[0,-1],[-1,-1],[-1,-1],[0,-3],[0,-2],[0,-1],[2,-8],[1,-2],[0,-2],[0,-2],[-1,-2],[0,-1],[-1,-6],[1,-14],[0,-2],[-1,-1],[0,-2],[0,-1],[0,-2],[2,-1],[22,1],[2,0],[10,1],[6,-2],[15,-6],[2,0],[2,1],[1,2],[0,3],[2,2],[2,2],[3,-1],[4,-1],[3,0],[1,2],[-1,3],[-4,10],[-1,4],[0,3],[2,3],[2,2],[31,14],[8,5],[17,15],[19,11],[8,8],[2,2],[4,2],[3,0],[4,0],[2,-2],[2,-3],[4,-9],[7,-12],[4,-10],[3,0],[2,0],[2,3],[3,5],[1,7],[2,3],[2,2],[8,0],[4,2],[12,18],[13,14],[3,2],[3,0],[2,-1],[1,-1],[2,-1],[1,-1],[0,-2],[2,-8],[0,-1],[1,-1],[1,-1],[2,0],[2,1],[6,4],[3,0],[3,-1],[1,-3],[1,-4],[2,-2],[3,-1],[4,0],[3,1],[5,3],[12,9],[3,2],[3,0],[3,2],[1,1],[1,2],[0,1],[1,1],[2,1],[5,2],[1,2],[1,1],[3,7],[0,2],[0,2],[-1,1],[-3,6],[-1,2],[-1,1],[0,2],[0,2],[1,4],[1,2],[2,4],[1,1],[1,2],[0,3],[-1,5],[-1,4],[-1,3],[0,1],[-5,10],[-2,5],[0,5],[0,2],[0,2],[1,4],[6,11],[2,4],[28,18],[8,3],[5,-1],[3,0],[15,3],[2,-1],[10,-4],[5,-2],[7,-1],[2,1],[1,0],[1,1],[1,1],[0,1],[1,2],[1,6],[1,9],[1,3],[0,1],[1,2],[2,2],[1,1],[4,3],[0,1],[1,1],[1,3],[1,3],[1,1],[1,2],[1,1],[1,-1],[1,-1],[0,-3],[1,-2],[7,-12],[1,0],[1,1],[4,3],[18,7],[8,4],[2,0],[1,0],[0,-2],[-1,-5],[0,-3],[1,-3],[1,-2],[5,-4],[2,-3],[3,-7],[11,-16],[6,-7],[5,-4],[1,-2],[1,-2],[0,-2],[0,-3],[0,-2],[-1,-3],[0,-2],[1,-3],[1,-3],[1,-4],[1,-2],[0,-3],[-1,-3],[-1,-2],[-4,-2],[-1,0],[-1,-2],[-1,-3],[1,-3],[2,-3],[3,-3],[10,-5],[2,-1],[1,-2],[0,-2],[-1,-6],[0,-4],[1,-4],[1,-3],[2,-7],[1,-2],[0,-2],[0,-2],[0,-3],[0,-2],[1,-2],[2,-1],[3,1],[3,1],[1,0],[1,1],[1,1],[1,2],[0,2],[1,6],[0,1],[2,2],[1,0],[4,0],[2,-2],[2,-3],[0,-3],[0,-3],[0,-5],[0,-3],[0,-1],[0,-1],[2,-3],[1,-2],[0,-3],[0,-3],[-3,-10],[-1,-2],[0,-1],[1,-2],[4,-4],[2,-3],[1,-4],[0,-4],[0,-5],[-3,-12],[-2,-6],[-2,-2],[-3,0],[-2,2],[-2,4],[-2,3],[-2,1],[-2,2],[-3,-1],[-2,-1],[-2,-6],[-1,-5],[0,-5],[1,-3],[3,-7],[2,-4],[2,-2],[1,-3],[2,-12],[2,-4],[2,-2],[3,0],[4,-1],[3,-1],[1,-2],[1,-2],[0,-3],[-1,-4],[-2,-11],[0,-2],[0,-1],[0,-8],[6,-3],[1,-4],[0,-4],[0,-9],[0,-5],[2,-7],[1,-4],[2,-2],[1,-1],[3,0],[2,-1],[0,6],[1,1],[1,2],[3,2],[7,2],[24,-1],[10,-3],[3,0],[3,1],[8,7],[4,2],[2,1],[1,0],[1,-1],[1,-1],[0,-2],[0,-3],[2,-3],[4,-2],[47,-7],[4,1],[6,2],[2,0],[1,0],[1,-1],[0,-1],[0,-2],[-1,-5],[0,-4]],[[6842,5393],[0,-3],[0,-1],[1,-9],[-1,-11],[-1,-3],[-1,-4],[-4,-13],[-1,-2],[-1,-2],[-2,-2],[-8,-5],[0,-1],[-1,-1],[-1,-1],[0,-1],[0,-1],[-3,-31],[0,-6],[0,-2],[0,-1],[1,-1],[0,-1],[1,0],[2,0],[2,2],[4,3],[4,5],[2,3],[2,5],[0,1],[1,3],[1,8],[1,2],[0,2],[2,1],[1,2],[3,0],[1,0],[4,-1],[3,0],[22,9],[12,6],[5,5],[3,3],[5,7],[1,2],[1,0],[1,1],[3,0],[10,-3],[1,0],[6,3],[19,18],[1,-1],[1,-5],[0,-3],[0,-3],[-2,-2],[-2,-2],[-4,-18],[-1,-2],[-7,4],[-4,1],[-2,-2],[-2,0],[-4,-3],[-9,-11],[-1,-2],[0,-4],[1,-1],[2,-1],[1,-2],[1,-3],[-2,-3],[-4,-2],[-15,-2],[-5,-5],[-8,-17],[-4,-5],[-6,-4],[-7,-3],[-6,0],[-6,0],[0,-1],[0,-6],[-2,-4],[-4,-4],[-7,-6],[-3,-3],[-1,-4],[-1,-5],[0,-6],[-1,-4],[-7,-1],[-2,-5],[0,-3],[2,-5],[0,-3],[0,-2],[-2,-2],[-2,0],[-2,-1],[-7,-10],[-2,-4],[-4,-2],[-3,0],[-7,1],[-2,-1],[-1,-1],[-1,-2],[-1,-2],[-2,-1],[-5,-1],[-4,-2],[-2,-4],[-5,-9],[0,-2],[-3,-8],[-1,-2],[-3,-5],[-7,-13],[-1,-2],[-3,-1],[-8,-5],[-2,-3],[0,-5],[1,-5],[1,-5],[-3,-10],[0,-12],[-2,-5],[0,-1],[8,-4],[3,-1],[5,1],[3,2],[2,1],[2,0],[3,0],[1,-1],[28,-17],[2,-1],[3,-5],[2,-4],[1,-1],[0,-1],[0,-2],[-1,-9],[0,-5],[3,-3],[0,2],[1,1],[1,1],[1,1],[1,1],[2,0],[2,0],[1,0],[3,0],[1,-1],[1,0],[4,-5],[1,-2],[10,-6],[2,-2],[1,-2],[0,-2],[0,-1],[0,-12],[0,-7],[1,-6],[0,-1],[1,-3],[1,-2],[6,-10],[3,-5],[3,-3],[2,-1],[1,-1],[13,-2],[5,0],[2,1],[2,1],[1,2],[1,4],[1,1],[2,-1],[7,-2],[5,-2],[4,-3],[1,0],[1,0],[6,3],[5,1],[12,1],[2,1],[1,1],[0,1],[2,3],[1,1],[0,1],[2,0],[1,-1],[4,-4],[2,-1],[2,1],[1,0],[1,1],[1,1],[0,1],[1,1],[2,-1],[1,-2],[2,-3],[1,-4],[1,-1],[1,-1],[3,-1]],[[7885,6110],[-2,-2],[-1,1],[0,2],[0,1],[0,1],[0,1],[0,1],[1,1],[1,0],[0,-3],[1,-3]],[[8035,6147],[-2,0],[-5,3],[-1,1],[1,2],[-1,2],[1,2],[1,0],[1,-2],[4,-4],[1,-2],[0,-2]],[[8107,6162],[0,-4],[-2,-2],[-2,-3],[-2,-1],[-2,2],[-1,2],[1,3],[1,2],[2,-1],[0,2],[-1,1],[-2,1],[-1,0],[0,2],[4,1],[1,1],[1,1],[1,-2],[2,-5]],[[7976,6188],[1,-1],[-2,-2],[-2,2],[-4,-2],[-3,-2],[-2,5],[1,4],[4,4],[5,4],[3,1],[-2,-3],[0,-2],[0,-2],[1,-6]],[[7995,6207],[2,-1],[2,0],[1,0],[0,-1],[0,-1],[-1,0],[-3,-1],[-1,0],[-1,0],[-1,-1],[-2,3],[0,1],[2,1],[2,0]],[[8032,6207],[0,-4],[-2,-3],[-6,-4],[0,2],[0,1],[1,2],[0,2],[-2,1],[-8,1],[0,1],[4,0],[10,2],[3,-1]],[[8023,6214],[-7,-2],[-9,1],[-9,3],[-4,7],[5,0],[2,0],[6,-3],[9,-2],[4,-2],[3,-2]],[[8090,6262],[0,-1],[-1,1],[-1,-3],[0,-2],[-2,1],[-1,1],[-2,3],[0,1],[0,1],[1,1],[1,-1],[2,-1],[3,-1]],[[7805,6272],[6,-2],[4,1],[2,-1],[3,-3],[1,-3],[-1,-3],[-4,0],[0,-2],[1,-1],[1,-1],[1,-2],[0,-2],[0,-6],[-2,-4],[-3,-1],[-9,1],[-2,1],[0,3],[3,5],[2,3],[2,2],[0,2],[-1,2],[-2,1],[-2,0],[-2,-1],[-2,-3],[-2,-6],[-3,-4],[-4,-2],[-1,1],[-1,1],[0,2],[0,4],[0,4],[1,1],[5,3],[1,0],[2,1],[1,2],[1,1],[0,2],[1,2],[1,2],[2,0]],[[8080,6279],[-4,-3],[-5,1],[-2,4],[0,7],[4,2],[5,-2],[3,-3],[-1,-6]],[[7714,6535],[-1,-1],[-2,1],[0,2],[1,2],[1,0],[1,2],[-1,1],[1,1],[1,0],[1,1],[0,1],[0,1],[2,-2],[1,-1],[0,-4],[-1,-2],[-3,0],[-1,-1],[0,-1]],[[8517,6636],[-4,-3],[-6,-10],[5,-7],[1,-4],[-2,-1],[-10,-1],[0,1],[-1,2],[-3,3],[-2,1],[-2,-2],[-1,-5],[0,-6],[-1,-3],[-2,-1],[-7,0],[-2,-1],[-2,-1],[-1,-3],[-1,-2],[0,-4],[0,-2],[-2,-1],[-3,1],[-1,-2],[-1,-3],[0,-1],[1,-3],[-1,-2],[-4,0],[-1,1],[-2,2],[-1,1],[-1,0],[-3,-1],[-3,1],[-2,1],[-2,0],[-3,-2],[-1,-3],[-1,-2],[-2,-2],[-2,-1],[-4,-3],[-6,-2],[-4,-2],[-4,-3],[-3,-3],[-4,-2],[-2,-2],[-4,-2],[-4,-2],[-2,-3],[0,-4],[2,-3],[2,-3],[1,-3],[-1,-3],[-2,-1],[-3,0],[-4,0],[-4,-1],[-4,1],[-2,0],[-1,1],[0,1],[-2,3],[-2,2],[0,-2],[-1,-3],[-6,-9],[-8,-10],[-3,-3],[-4,-1],[-3,-2],[-1,-5],[-2,-7],[-1,-4],[-4,-2],[-8,-2],[-2,-2],[-3,-4],[-7,-5],[-2,-3],[-1,-2],[0,-3],[0,-1],[-1,0],[-2,-1],[-1,0],[-23,-28],[-2,-3],[-2,-2],[-1,-4],[1,-8],[1,-6],[-1,-3],[-1,-3],[-8,-10],[0,-2],[-1,-4],[-1,-2],[-1,-1],[-1,0],[-1,0],[-1,0],[-11,-13],[-8,-5],[-2,-5],[-4,-2],[-4,5],[-4,-4],[-2,-2],[-2,-1],[-7,-3],[-2,-1],[-2,1],[-1,2],[-2,3],[-2,2],[-2,-1],[-2,-2],[-2,-1],[-3,-1],[-5,1],[-4,1],[-3,2],[-1,0],[-6,-5],[-9,3],[-8,7],[-4,6],[2,11],[-3,-2],[-1,-2],[-1,-4],[-1,-5],[-3,-14],[-1,-7],[-1,-2],[-4,-4],[-2,2],[0,1],[-1,1],[-1,2],[-1,1],[-3,1],[-3,-2],[-3,-3],[-6,-12],[-2,-2],[-3,2],[-1,3],[1,13],[0,2],[1,1],[0,2],[0,3],[-1,0],[-1,-1],[-1,-1],[1,-2],[-3,-6],[-4,-1],[-4,0],[-4,-2],[-2,2],[-3,5],[-2,2],[-1,-4],[-1,1],[-1,3],[0,2],[-1,-1],[-1,-1],[-1,-2],[1,-3],[2,-2],[2,-4],[0,-4],[-3,-2],[-4,2],[-2,0],[-1,-2],[0,-3],[1,-1],[2,0],[3,-2],[1,0],[1,0],[2,-2],[1,-2],[-1,-2],[-7,-6],[-8,-3],[-7,-1],[-4,7],[-1,-1],[-7,-3],[-3,0],[-2,0],[-2,1],[-1,0],[-1,-2],[-2,-1],[-2,0],[0,-2],[3,-3],[-1,-3],[-4,-7],[-3,2],[-12,-3],[-4,3],[-10,-12],[-1,-3],[-2,-1],[-10,-6],[-2,-3],[-1,-1],[-2,-1],[-1,1],[-2,2],[-2,1],[-1,-1],[-1,-5],[-8,-11],[-2,2],[-1,2],[-1,1],[-1,-1],[0,-1],[0,-1],[1,-2],[0,-2],[-1,-1],[-1,0],[-2,0],[-7,-8],[-4,-2],[-4,-1],[-5,0],[-3,-1],[-2,-4],[-5,-2],[-1,-1],[-2,-3],[-3,-3],[-2,-2],[-2,-1],[-1,-2],[-2,-4],[-1,-2],[-3,1],[0,-1],[0,-1],[-1,-1],[-1,-7],[-6,-9],[-14,-13],[0,-4],[-1,-3],[-1,-3],[0,-1],[5,-1],[3,-1],[2,-2],[-4,0],[-2,-1],[-9,-10],[-1,-1],[-2,0],[-1,0],[-1,-3],[2,-6],[-2,-2],[-9,1],[-1,-1],[-2,-2],[-1,-3],[-3,-1],[-2,1],[-2,2],[-2,1],[-3,-2],[2,-2],[2,-1],[1,-3],[1,-3],[-8,5],[-3,1],[-5,1],[2,-6],[7,-4],[2,-5],[0,-2],[-1,-3],[-3,-3],[-2,-1],[-2,1],[-6,6],[-4,9],[-2,4],[-5,3],[-3,-1],[-1,-2],[3,-3],[0,-2],[-4,1],[-5,1],[-2,-1],[-5,-3],[2,0],[1,-1],[0,-2],[0,-2],[-1,-3],[0,-1],[-3,-2],[-4,0],[-2,-1],[-1,-2],[1,-2],[4,-2],[6,0],[3,-1],[3,-3],[2,-5],[0,-5],[-1,-3],[-4,2],[-3,-3],[-12,1],[-5,-1],[-7,-8],[-1,0],[-1,-4],[-2,-1],[-17,2],[-6,-1],[-9,-7],[-5,2],[-4,1],[-3,-6],[2,0],[3,0],[-8,-13],[-3,-1],[-4,1],[-2,4],[-2,5],[-3,2],[2,3],[2,1],[0,2],[0,5],[-1,3],[-2,2],[-1,3],[0,5],[5,4],[2,3],[-1,4],[-10,0],[0,1],[1,4],[4,6],[2,2],[8,1],[2,0],[2,-3],[1,0],[2,0],[2,1],[4,1],[5,5],[5,0],[2,0],[1,3],[0,2],[-2,4],[0,3],[1,3],[3,4],[4,1],[3,0],[2,-1],[0,-2],[2,-4],[2,-1],[2,0],[4,0],[3,2],[10,7],[14,6],[7,5],[2,8],[-1,5],[-5,5],[-1,5],[-2,-1],[-4,2],[-2,3],[2,3],[0,1],[-1,3],[0,1],[4,1],[1,3],[-5,4],[-2,3],[4,3],[4,0],[1,-1],[0,-1],[2,0],[4,2],[6,6],[3,4],[0,2],[-1,3],[4,6],[2,3],[2,2],[2,0],[8,-2],[4,1],[8,7],[5,1],[-2,5],[-2,-1],[-1,-2],[-2,-2],[-3,0],[-6,-3],[-3,-1],[-13,4],[-7,-1],[2,-6],[-28,-3],[-3,1],[-6,6],[-5,23],[-4,9],[-3,2],[-3,1],[-7,1],[-3,-1],[-3,-4],[-2,-1],[-1,1],[-3,2],[-2,1],[-6,0],[-1,1],[-1,2],[1,2],[2,2],[1,0],[2,6],[5,6],[3,3],[3,1],[9,0],[11,3],[4,5],[-1,3],[5,2],[5,-9],[1,1],[0,1],[1,2],[0,1],[0,1],[-2,2],[0,1],[0,1],[2,2],[0,1],[0,1],[1,1],[1,1],[-1,2],[-1,2],[-2,-1],[-1,-1],[-1,0],[-1,2],[-3,7],[-4,5],[-1,1],[-1,1],[3,2],[2,3],[0,3],[-1,3],[-1,4],[0,2],[6,3],[4,10],[5,0],[8,3],[4,7],[8,6],[3,2],[5,-1],[3,-2],[3,1],[4,5],[1,2],[0,3],[1,2],[4,1],[3,4],[4,2],[1,2],[0,2],[-1,2],[-2,1],[-4,0],[-2,1],[9,5],[8,9],[0,7],[10,6],[2,8],[-2,8],[4,1],[3,2],[4,3],[5,5],[2,6],[1,3],[0,4],[0,2],[0,2],[0,5],[3,4],[9,7],[5,8],[-2,12],[7,0],[1,1],[0,2],[0,2],[0,2],[3,2],[2,1],[1,2],[0,4],[3,4],[-2,5],[-3,6],[-8,9],[-8,2],[-4,5],[-2,5],[5,8],[0,9],[-2,4],[-3,-5],[-3,-1],[-2,5],[-7,9],[-3,3],[-25,17],[-4,2],[-3,4],[-1,7],[-1,15],[-1,1],[-1,4],[0,4],[2,2],[1,1],[2,2],[3,6],[-1,1],[-7,-5],[-3,-4],[-5,-7],[0,-7],[-2,-5],[-1,-4],[-3,-6],[-8,-1],[-16,0],[-3,-1],[-1,1],[-7,5],[-3,4],[-5,1],[-5,0],[-1,2],[-1,2],[0,2],[-1,2],[-2,1],[-4,2],[-1,1],[-4,3],[-4,-3],[-4,-5],[-2,-3],[-3,0],[-2,1],[-1,2],[-1,3],[-2,-4],[-4,5],[-4,1],[-4,-2],[-3,-4],[-2,-2],[-2,-2],[-2,-2],[-1,-2],[-1,-1],[-4,-2],[0,-1],[0,-1],[0,-2],[0,-1],[0,-5],[-3,-2],[1,-4],[-3,-2],[-1,4],[-2,4],[-4,1],[-3,0],[-1,-1],[-2,-3],[-1,-3],[0,-3],[1,-3],[-2,-2],[-2,-2],[-2,-3],[1,-4],[3,-1],[3,1],[3,-1],[2,-2],[2,-3],[-4,-1],[-5,-1],[-4,-5],[-3,-1],[-4,-1],[-2,-1],[-3,0],[-3,1],[-4,-3],[-1,-4],[0,-5],[-2,-5],[-1,-5],[-2,-2],[-3,-2],[-11,-13],[-4,-4],[-1,-5],[-1,-3],[-1,-2],[-4,-2],[-2,0],[-3,-3],[-1,-4],[0,-5],[0,-2],[-2,-3],[-4,0],[-3,-3],[-1,-5],[2,-1],[3,1],[3,1],[1,-5],[-4,-3],[-5,-3],[-6,-5],[0,-5],[0,-4],[1,-5],[0,-6],[-2,-5],[-4,-4],[-3,-4],[-2,-2],[-7,0],[-6,0],[-4,-2],[-4,-1],[-3,-5],[-5,-4],[-2,-1],[-4,-2],[-5,-2],[-1,-1],[-1,0],[-4,-4],[-6,-3],[-28,-11],[-6,-5],[0,-7],[0,-4],[-6,0],[-4,-3]],[[7459,6746],[21,27],[2,3],[1,6],[1,3],[0,3],[1,7],[0,4],[-2,12],[-4,24],[-1,2],[-1,3],[-5,8],[0,1],[0,1],[-1,7],[0,3],[0,3],[0,2],[-1,4],[0,1],[0,1],[0,2],[0,1],[0,1],[0,1],[0,2],[0,1],[0,2],[0,1],[0,1],[0,1],[1,3],[0,2],[0,4],[0,2],[0,1],[3,4],[1,1],[0,2],[0,2],[-1,6],[0,11],[0,1],[0,1],[-1,2],[0,1],[0,2],[1,1],[0,2],[1,1],[2,3],[3,6],[1,3],[1,3],[0,3],[0,4],[0,4],[-1,3],[0,2],[0,1],[-1,1],[-1,1],[-1,0],[-5,3],[-1,0],[0,1],[-8,13],[-2,1],[-1,1],[0,1],[0,2],[0,1],[0,2],[1,1],[2,5],[1,1],[0,1],[2,3],[3,4],[3,3],[3,5],[1,1],[1,1],[1,0],[3,0],[1,0],[1,0],[2,1],[1,0],[1,2],[1,0],[1,1],[0,1],[1,0],[3,0],[3,2],[1,2],[3,5],[2,8],[1,2],[0,2],[2,0],[2,-2],[5,-4],[3,-5],[1,-3],[0,-2],[0,-3],[0,-1],[0,-1],[0,-2],[5,-5],[0,-1],[1,-2],[0,-1],[0,-2],[1,-5],[0,-1],[1,-1],[1,-2],[3,-1],[3,-1],[13,-1],[10,-4],[1,-1],[2,-1],[1,-3],[0,-2],[0,-2],[-2,-3],[-5,-4],[0,-1],[-1,-1],[0,-1],[1,-2],[0,-1],[1,-1],[11,-13],[1,-2],[0,-1],[0,-2],[0,-9],[0,-1],[1,-2],[0,-1],[0,-1],[1,0],[11,-7],[1,-2],[1,-1],[0,-2],[1,-1],[0,-3],[0,-4],[0,-1],[0,-2],[0,-1],[1,-2],[5,-7],[2,-3],[0,-1],[1,-1],[0,-1],[0,-5],[0,-7],[-1,-19],[0,-2],[0,-1],[0,-2],[1,-1],[0,-1],[1,-1],[1,-1],[3,0],[2,0],[3,0],[1,1],[1,0],[1,2],[0,1],[1,3],[1,8],[1,3],[0,3],[1,2],[6,8],[14,16],[5,9],[2,5],[1,2],[3,6],[2,1],[15,10],[3,3],[1,3],[2,2],[0,1],[3,11],[1,1],[0,2],[0,2],[-1,1],[0,3],[0,1],[0,2],[0,2],[0,1],[1,1],[0,1],[1,1],[1,0],[20,4],[2,1],[2,2],[8,8],[4,5],[1,1],[17,10],[12,9],[4,0],[0,-2],[3,-4],[2,-3],[1,-1],[4,-3],[3,0],[3,3],[55,63],[2,2],[3,1],[4,1],[3,2],[2,1],[2,0],[1,-1],[2,0],[2,0],[8,4],[1,0],[1,-1],[1,0],[1,-1],[1,-1],[1,-1],[0,-1],[1,-4],[3,-8],[2,-2],[2,-2],[1,0],[0,-1],[1,0],[5,1],[3,0],[5,0],[1,1],[1,1],[2,4],[2,2],[19,14],[1,1],[1,1],[1,3],[3,12],[0,3],[0,1],[1,7],[0,2],[1,3],[1,2],[3,3],[3,3],[13,7],[1,0],[1,0],[10,-7],[2,-1],[7,-1],[1,0],[1,-1],[11,-10],[2,-1],[2,-1],[2,0],[1,0],[16,5],[3,2],[2,3],[0,1],[1,1],[0,2],[0,1],[0,2],[0,1],[0,2],[-1,2],[-7,13],[-1,3],[-2,5],[0,2],[-1,2],[0,1],[0,2],[1,2],[0,1],[2,3],[1,0],[1,1],[14,-1],[8,-4],[1,-1],[7,-6],[25,-18],[3,-1],[3,-1],[18,2],[3,1],[1,1],[4,5],[1,1],[5,3],[1,1],[1,1],[9,-1],[3,0],[2,1],[2,0],[0,1],[10,9],[1,2],[4,8],[3,21],[2,3],[11,11],[4,3],[3,2],[7,-1],[2,0],[42,18],[1,2],[1,1],[0,7],[1,5],[2,4],[0,2],[2,4],[1,1],[0,1],[0,1],[0,1],[-1,1],[0,1],[0,2],[-1,1],[1,1],[1,1],[0,2],[1,1],[0,2],[0,1],[0,1],[0,2],[0,2],[0,1],[1,3],[1,2],[0,1],[0,1],[0,1],[3,7],[0,1],[0,1],[0,2],[0,1],[-1,1],[1,1],[-1,2]],[[8188,7296],[-1,3],[0,1],[2,11],[1,2],[0,1],[3,4],[4,10],[5,-2],[3,-1],[1,-2],[8,-10],[12,-12],[13,-16],[2,-2],[1,0],[3,0],[6,0],[1,0],[2,-1],[1,0],[2,-2],[1,-1],[4,-6],[2,-2],[2,-1],[1,0],[3,1],[2,0],[1,0],[1,-1],[3,-3],[5,-2],[1,-1],[1,-2],[1,-2],[1,-3],[0,-4],[0,-2],[0,-3],[0,-2],[0,-2],[2,-2],[1,-1],[14,-10],[3,-3],[0,-2],[1,-2],[-1,-3],[-1,-2],[-1,-2],[-5,-8],[0,-1],[0,-2],[0,-3],[1,-4],[0,-2],[1,-2],[2,-1],[6,-4],[1,-1],[-1,-1],[-2,-3],[-1,-1],[-3,-2],[-1,-1],[-1,-1],[-1,-3],[0,-1],[1,-4],[6,-1],[3,0],[1,0],[1,-1],[3,-5],[2,-2],[2,2],[4,4],[18,22],[6,10],[1,1],[0,1],[0,1],[1,3],[0,3],[1,3],[1,3],[1,2],[11,13],[3,2],[3,0],[12,1],[0,-2],[2,-2],[0,-2],[0,-2],[-1,-9],[-2,-10],[0,-4],[1,-7],[0,-4],[-2,-19],[0,-2],[0,-7],[1,-5],[0,-2],[1,-2],[0,-1],[1,-1],[1,-1],[1,0],[2,-1],[6,0],[2,-1],[1,-2],[1,-3],[1,-3],[0,-4],[1,-2],[1,-2],[0,-2],[0,-2],[-2,-7],[0,-1],[-1,-1],[-1,-2],[-1,-2],[0,-1],[-1,-3],[1,-1],[1,-1],[1,0],[1,0],[3,1],[1,0],[1,0],[1,0],[1,-1],[1,-2],[3,-7],[0,-2],[2,-1],[6,-5],[1,-2],[0,-1],[0,-2],[0,-1],[0,-2],[0,-2],[0,-3],[1,-12],[14,-18],[4,-5],[0,-2],[0,-2],[0,-1],[-1,-2],[0,-1],[-1,-1],[-3,-2],[-1,-1],[0,-2],[0,-3],[0,-1],[1,-2],[2,-1],[1,-1],[4,-2],[8,-2],[1,-1],[1,-1],[0,-1],[1,-3],[0,-2],[0,-2],[-1,-7],[0,-1],[0,-2],[0,-1],[1,-1],[1,-2],[1,-1],[1,-3],[0,-1],[1,-7],[1,-1],[1,-1],[1,0],[4,1],[0,1],[2,1],[1,1],[3,-1],[11,-4],[2,-1],[1,-1],[0,-1],[0,-1],[0,-2],[-2,-5],[-2,-4],[0,-1],[-1,-1],[-2,-2],[-1,-2],[-2,-6],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-3,-3],[-1,-1],[0,-1],[-1,-2],[0,-1],[0,-3],[-1,-1],[0,-1],[0,-1],[-1,-2],[-2,-1],[-1,-1],[-7,-5],[-1,-1],[0,-2],[2,-5],[0,-1],[0,-2],[0,-2],[-3,-15],[0,-5],[0,-2],[1,-3],[6,-15],[0,-3],[0,-2],[-1,-6],[0,-1],[-2,-6],[0,-1],[0,-1],[0,-1],[6,-3],[5,0],[2,0],[7,4],[1,0],[1,0],[1,0],[0,-1],[0,-1],[1,-4],[0,-11],[1,-8],[1,-3],[16,-44],[1,-1],[4,-6],[6,-11],[1,-2],[1,-3],[0,-2],[0,-2],[0,-3],[1,-3],[1,-1],[3,-2],[3,-5],[1,-1],[2,0],[2,-1],[2,-1],[1,-1],[1,-1],[0,-2],[0,-3],[0,-2],[0,-2],[-1,-3],[0,-2],[0,-2],[1,-1],[3,-6],[0,-1],[0,-2],[-6,-5],[-1,-1],[0,-2],[0,-4],[0,-3],[0,-2],[-2,-6],[-2,-8],[0,-2],[-1,-1],[0,-1],[-2,-2],[-1,-1],[-3,-3],[-1,-1],[-1,-1],[-1,-2],[-1,-3],[-2,-2],[-2,-3],[-1,-1],[-1,-2],[-1,0],[-2,-4],[1,-2],[1,-1],[2,0],[10,0],[2,-1],[2,-1],[1,-2],[1,-3],[1,-3],[0,-1]],[[7612,5283],[-2,0],[-1,3],[1,3],[1,3],[1,2],[1,-1],[0,-2],[1,-4],[0,-1],[0,-2],[-2,-1]],[[7942,5750],[1,0],[0,-1],[2,-2],[-5,0],[-1,0],[-1,1],[1,1],[1,1],[1,1],[0,-1],[1,0]],[[7708,5855],[0,-2],[-2,0],[-1,2],[-2,1],[-1,2],[1,8],[1,0],[3,-2],[1,-5],[0,-4]],[[7686,5866],[-1,0],[-1,2],[-1,4],[0,3],[2,0],[2,-2],[0,-4],[-1,-3]],[[7703,5872],[-1,-2],[-2,1],[-1,1],[-1,1],[-1,2],[0,1],[0,1],[2,0],[3,-2],[1,-3]],[[7711,5922],[-2,0],[-1,0],[-2,1],[-1,3],[1,3],[3,-4],[2,-1],[0,-2]],[[7467,5106],[0,4],[-1,1],[-1,1],[-1,2],[-2,1],[-1,1],[-1,0],[-2,0],[-6,-1],[-3,-1],[-12,-12],[-4,-3],[-20,1],[-9,-2],[-3,-1],[-2,-1],[-1,-1],[0,-1],[-1,-1],[0,-1],[0,-2],[0,-8],[-2,-13],[0,-2],[-1,-2],[-6,-12],[-4,-11],[0,-1],[0,-2],[0,-5],[0,-1],[0,-2],[-2,-6],[0,-2],[0,-1],[0,-1],[0,-1],[-1,0],[-2,-5],[-3,-6],[-2,-3],[-2,-2],[-1,-1],[-2,0],[-2,-1],[-1,1],[-2,0],[-9,6],[-3,0],[-3,0],[-5,-1],[-9,-4],[-1,-1],[-1,-1],[0,-1],[-1,-2],[0,-1],[-1,-1],[0,-2],[1,-3],[0,-1],[-1,-2],[0,-1],[-3,-5],[0,-2],[-1,-3],[-1,-3],[0,-20],[-1,-6],[-1,-3],[-3,-7],[-5,-5],[-3,-2],[-5,1],[-10,-2],[-8,-4],[-4,0],[-2,0],[0,2],[0,1],[1,6],[0,1],[0,2],[0,1],[-1,1],[0,1],[-3,3],[-2,5],[0,3],[0,1],[1,2],[2,3],[0,4],[0,2],[0,1],[-1,1],[-1,1],[-4,1],[-1,1],[-1,1],[-1,2],[-1,1],[0,2],[0,10],[-1,3],[-1,2],[-1,1],[-1,1],[-2,1],[-9,1],[-9,5],[-2,1],[-2,0],[-1,0],[-4,-2],[-6,-2],[-7,0],[-3,-3],[-1,-3],[1,-8],[0,-2],[-2,-15],[-1,-3],[0,-1],[0,-1],[-1,-1],[-1,0],[-7,3],[-4,0],[-3,0],[-2,-1],[-1,-1],[-11,-15],[-1,-1],[-1,-1],[-2,0],[-3,0],[-12,3],[-5,5],[-11,19],[-5,6],[-1,0],[-1,0],[-1,-1],[-6,-4],[-1,0],[-1,-1],[-3,-4],[-2,-4],[-1,-1],[0,-2],[0,-1],[0,-12],[0,-2],[-1,-1],[-1,-2],[-1,-1],[-1,-1],[-1,-1],[-1,0],[-1,1],[-2,1],[-3,3],[-2,3],[-1,4],[0,3],[-1,8],[0,2],[0,1],[0,1],[1,1],[-1,2],[0,2],[-13,38],[-3,6],[-4,7],[-3,3],[-1,1],[-2,4],[-1,5],[-1,8],[0,3],[0,1],[-2,3],[-1,2],[-2,2],[-18,21],[-2,1],[-1,-1],[0,-1],[-1,-2],[-1,-1],[-1,-1],[-3,-1],[-8,-2],[-13,3],[-2,0],[-10,-5],[-4,-1],[-5,-1],[-2,0],[-1,0],[-5,-4],[-2,-4],[-6,-13],[-1,-20],[-1,-6],[-1,-1],[-2,-3],[-1,-2],[0,-1],[0,-1],[0,-3],[1,-3],[0,-4],[-1,-4],[-1,-3]],[[7231,5952],[10,-7],[7,-3],[3,-6],[3,-5],[2,1],[3,0],[5,-4],[2,-2],[1,-4],[-1,-1],[2,-3],[3,-1],[2,1],[2,1],[2,1],[4,-2],[12,0],[15,-4],[19,-5],[4,-1],[4,-1],[3,-2],[3,-2],[4,-4],[1,-1],[1,0],[1,1],[1,1],[2,1],[2,2],[2,6],[3,4],[6,5],[18,3],[7,-1],[3,0],[3,0],[9,-8],[9,-6],[-4,-11],[2,-2],[3,-4],[2,-10],[4,-9],[9,-4],[7,-9],[4,-16],[6,-8],[9,-5],[6,-9],[2,-14],[0,-12],[-7,1],[-4,7],[-12,9],[-8,1],[-5,-5],[-2,-4],[0,-4],[-2,-10],[-3,-5],[-3,-6],[-1,-5],[0,-5],[-2,-11],[-2,-41],[1,-11],[1,-10],[2,-4],[3,-2],[4,-1],[3,-3],[2,-5],[2,-3],[10,-7],[5,-6],[23,-11],[25,-5],[5,4],[9,1],[2,0],[4,1],[16,-1],[9,1],[9,2],[1,5],[2,3],[14,14],[3,4],[-1,10],[-4,9],[-3,6],[2,5],[4,2],[8,4],[9,8],[2,2],[2,0],[8,5],[21,19],[18,22],[4,10],[-3,8],[-2,2],[-2,0],[-5,0],[-2,1],[-2,1],[-1,1],[0,1],[15,0],[9,2],[3,3],[1,0],[3,2],[6,7],[3,2],[15,4],[2,1],[4,4],[7,2],[6,3],[5,5],[6,4],[8,-1],[6,-3],[2,-1],[2,1],[3,2],[2,1],[3,-1],[5,-2],[2,-3],[-2,-5],[2,-4],[3,-3],[3,-3],[3,-1],[2,-1],[1,-2],[0,-3],[1,-2],[2,-2],[2,0],[2,1],[2,0],[7,-1],[4,-2],[2,-3],[-1,-4],[-2,-3],[0,-3],[3,-4],[-2,-3],[0,-4],[1,-4],[2,-4],[3,-1],[3,-1],[19,2],[6,3],[5,5],[-2,5],[-1,2],[3,-1],[3,-3],[3,-3],[3,-4],[-5,0],[-3,-3],[0,-5],[3,-4],[4,-4],[4,-4],[3,-6],[1,-6],[1,-2],[2,-1],[5,-1],[3,-1],[2,-2],[3,-5],[3,-1],[10,3],[4,1],[-3,4],[-4,2],[-7,-3],[1,3],[1,2],[2,2],[1,0],[3,1],[1,-1],[1,-1],[2,-1],[11,-3],[34,1],[3,-1],[0,-2],[-1,-1],[-1,-2],[0,-2],[1,-2],[1,-1],[5,1],[2,2],[-3,10],[0,2],[2,2],[4,8],[1,3],[3,2],[3,0],[2,2],[-1,5],[1,0],[2,-2],[2,-1],[2,0],[2,3],[3,-3],[2,-5],[0,-5],[-3,-3],[-1,-5],[2,-7],[4,-6],[3,-4],[3,4],[1,4],[3,2],[3,1],[3,-2],[3,-8],[3,-1],[26,0],[1,0],[0,1],[1,1],[1,0],[1,-1],[0,-2],[1,-1],[13,-2],[4,0],[1,3],[2,1],[9,-1],[2,0],[2,-1],[0,-6],[-2,-4],[-4,3],[-6,-4],[-5,-4],[-1,-1],[-2,-1],[4,-9],[0,-5],[-6,7],[-1,0],[0,-2],[2,-10],[1,-2],[4,-6],[0,-2],[1,-4],[1,-3],[1,-2],[3,-1],[0,-2],[-7,-1],[-2,-1],[-2,-3],[1,-2],[2,-2],[-1,-3],[-5,3],[-5,-1],[-5,-4],[-2,-8],[-1,0],[0,10],[0,1],[-2,1],[-1,-2],[0,-3],[-1,-5],[-1,-4],[1,-3],[0,-1],[1,-1],[1,-1],[1,-3],[-2,-3],[-6,-5],[-1,-4],[1,-4],[3,-1],[2,2],[0,5],[4,0],[8,-2],[4,2],[-2,-22],[1,-5],[-1,-3],[-1,-3],[-2,-2],[-1,2],[0,3],[1,3],[1,2],[-2,1],[-1,-2],[-3,-1],[-3,-2],[-3,0],[-1,0],[-2,1],[-1,0],[-1,0],[-1,-2],[0,-2],[1,-2],[1,-1],[1,0],[1,-2],[1,-3],[1,-2],[-1,-2],[-2,-1],[-3,-1],[-1,0],[-1,1],[0,1],[-1,0],[-1,0],[0,-1],[0,-2],[-1,-2],[-2,-3],[-1,-1],[-6,-2],[-19,6],[-3,2],[0,4],[0,5],[2,3],[12,0],[-2,2],[-7,4],[-6,6],[-2,1],[2,11],[1,5],[-3,2],[-2,-2],[-1,-6],[1,-6],[-1,-4],[-3,0],[-3,2],[-2,-1],[-1,-5],[-2,-4],[-2,-2],[-3,-2],[-2,-1],[0,5],[0,7],[0,6],[2,2],[1,1],[-1,1],[-1,1],[-2,1],[-4,0],[-7,1],[-6,1],[-2,-2],[2,-5],[4,-8],[-6,-5],[-21,-7],[-1,-2],[-4,-3],[0,-2],[-1,-2],[-1,-3],[-1,-2],[-1,-1],[-3,-1],[-7,-4],[-3,0],[0,1],[4,3],[2,1],[0,2],[-5,-1],[-3,-2],[-2,-5],[-1,-7],[2,-7],[0,-4],[-1,-1],[-2,0],[-2,2],[-1,2],[0,3],[-2,-1],[-2,0],[-2,1],[-1,-1],[-2,-2],[-2,-1],[-4,2],[-1,4],[1,3],[3,2],[3,0],[1,1],[1,1],[2,3],[1,2],[4,1],[2,2],[0,3],[-3,1],[-4,-2],[-3,-1],[-1,-2],[-2,-2],[-1,-2],[-2,-1],[-2,0],[0,2],[-1,2],[-1,1],[-4,0],[-1,-3],[1,-4],[1,-2],[1,-1],[-1,-4],[-2,-5],[-2,-1],[-2,0],[-3,0],[-4,-2],[-2,-4],[1,-4],[3,-1],[-2,-1],[-3,0],[-6,1],[-3,0],[-26,-11],[-4,-5],[-7,-9],[-1,-2],[-3,0],[-3,5],[-2,-1],[0,-2],[0,-5],[0,-2],[-1,-2],[-2,0],[-1,1],[-2,1],[-8,0],[-3,2],[1,4],[0,2],[-2,1],[-3,0],[-2,1],[-4,5],[-3,1],[-4,-2],[-9,-7],[-3,0],[-1,-2],[0,-2],[1,-1],[1,0],[-2,-6],[0,-5],[1,-4],[5,0],[2,3],[3,8],[2,4],[4,2],[3,-2],[5,-10],[1,-1],[2,0],[1,-1],[0,-4],[1,-1],[2,0],[2,2],[1,2],[1,0],[-1,-5],[-1,-3],[-2,-2],[-1,-4],[1,-2],[2,-8],[-3,0],[-2,0],[-3,-2],[-1,-3],[1,-3],[0,-2],[-1,-2],[-1,-4],[-1,-2],[-2,-3],[-1,0],[-3,2],[-1,10],[-3,2],[1,6],[-4,2],[-5,0],[-4,-1],[-1,-1],[-1,-3],[0,-1],[-1,-1],[-2,-1],[-1,-1],[-5,-11],[1,-4],[3,-6],[2,-5],[-2,-2],[-2,1],[-4,2],[-2,1],[-2,-2],[-1,-2],[1,-3],[2,-2],[-1,-4],[1,-3],[2,-3],[1,-4],[2,-17],[1,-3],[1,-5],[-1,-3],[-11,-7],[-1,0],[0,1],[-1,0],[-4,-3],[-4,1],[-3,0],[-1,-4],[-1,-2],[-4,-1],[-6,0],[-2,-1],[-5,-4],[-2,-2],[-8,-3],[-3,-2],[-2,2],[-3,2],[-2,1],[-3,0],[0,2],[3,3],[0,3],[0,3],[2,4],[2,5],[4,14],[-2,6],[-1,3],[-3,1],[-2,10],[-1,2],[-3,-2],[-2,-8],[0,-8],[4,-4],[-2,-4],[-4,2],[-3,2],[-2,0],[-1,1],[0,1],[-1,0],[0,6],[-5,0],[-7,-3],[-5,0],[0,2],[-1,2],[-2,1],[-1,-1],[0,-2],[-1,-2],[1,-1],[2,-1],[1,-3],[-1,-4],[-2,-7],[-1,-5],[1,-5],[2,-4],[2,-2],[3,-1],[3,-2],[3,-4],[0,-4],[0,-10],[1,-4],[2,-2],[2,0],[5,4],[0,-7],[2,0],[5,5],[1,1],[0,3],[1,1],[2,-2],[1,-3],[0,-2],[0,-1],[-1,-2],[-2,-3],[-7,-3],[-3,-3],[-6,-10],[-2,-3],[-1,4],[2,4],[1,3],[0,3],[-3,-2],[-1,-1],[-3,-5],[-1,-2],[-1,-1],[-4,0],[-2,0],[-7,-11],[-2,-5],[-4,-22],[-2,-8],[-6,1],[-3,6],[-2,2],[-2,-2],[-3,-3],[-1,-2],[5,-7],[1,-1],[-1,-2],[-4,-5],[-1,-2],[0,-3],[0,-2],[1,-2],[0,-3],[0,-3],[-2,-1],[-1,0],[-2,-2],[-3,-1],[-2,2],[-2,5],[1,6],[-5,-2],[-6,-15],[-5,-4],[1,6],[0,2],[-1,2],[-1,1],[-3,0],[-2,-1],[0,-2],[-1,-2],[-2,-2],[-3,-1],[-2,0],[-1,-1],[-1,-3],[-2,-7],[-4,-16],[-1,-5],[-1,-2],[-4,-7],[-1,-2],[0,-7],[-1,-3],[-1,-2],[-5,-8],[-1,-3],[-1,-2],[-6,-3],[-6,1],[-1,-1],[-1,-2],[0,-3],[0,-6],[-1,-2],[-2,-5],[-3,-12],[-3,-24],[-2,-5],[-3,-2],[-4,-1],[-5,-3]],[[7716,5956],[-1,0],[0,2],[0,1],[1,2],[2,2],[3,0],[0,-3],[-1,-1],[-1,0],[-1,0],[-1,-1],[-1,-2]],[[7735,5982],[0,-1],[-1,1],[0,-1],[-1,1],[0,2],[1,0],[1,-2]],[[7218,6126],[3,-1],[1,3],[5,-2],[-1,-4],[-3,-3],[-5,1],[-7,4],[-3,3],[3,9],[2,-4],[7,-2],[-2,-4]],[[7238,6130],[0,-4],[-8,2],[-6,3],[-6,3],[-4,1],[-2,3],[1,0],[4,-1],[9,-2],[2,-2],[10,-3]],[[7229,6140],[-1,-2],[-3,1],[-2,3],[-2,11],[-1,4],[4,1],[2,-6],[3,-12]],[[7259,6202],[-6,0],[-7,-1],[-7,-3],[-12,-14],[-9,-9],[-4,-2],[-3,1],[0,-5],[2,-1],[1,-3],[3,-3],[1,-6],[1,-5],[1,-7],[1,-5],[-6,1],[-2,0],[-4,3],[0,-2],[0,-1],[1,-1],[-21,-44],[-1,-5],[0,-5],[0,-16],[-3,-6],[0,-5],[0,-4],[-1,-4],[-1,-6]],[[7286,3607],[1,-2],[0,-5],[0,-2],[0,-2],[0,-1],[0,-2],[-1,-4],[-2,-3],[-4,-6],[-1,-2],[-1,-1],[-2,-1],[-7,-1],[-3,-3],[0,-9],[0,-7],[-1,-2],[-8,-17],[0,-1],[0,-2],[1,-2],[1,-3],[4,-6],[1,-2],[2,-2],[2,-7],[10,-7],[12,-14],[4,-3],[1,-1],[0,-2],[-1,-3],[0,-1],[1,-1],[4,-1],[0,-1],[2,-1],[1,-2],[2,-5],[1,-3],[0,-2],[0,-3],[1,-5],[1,-2],[1,-1],[2,-2],[4,-2],[4,-5],[4,-19],[2,-4],[1,-1],[1,-1],[0,-1],[1,-1],[0,-2],[0,-2],[0,-5],[-2,-10],[0,-3],[0,-2],[2,-11],[1,-2],[0,-1],[4,-6],[0,-1],[0,-2],[-1,-2],[0,-1],[-2,-1],[0,-1],[0,-1],[1,-2],[2,-2],[1,-1],[0,-1],[1,-24],[1,-7],[0,-6],[0,-1],[-1,-2],[-4,-8]],[[7687,4302],[0,-1],[-4,0],[-4,0],[-2,3],[0,2],[0,2],[2,1],[3,0],[5,-4],[0,-3]],[[7568,4314],[0,-2],[-2,0],[-5,7],[-2,2],[-5,2],[-2,1],[-1,0],[-1,1],[-1,2],[1,1],[0,1],[0,1],[0,6],[1,4],[2,3],[2,3],[-5,2],[-7,5],[-5,6],[0,6],[6,5],[5,0],[5,-5],[3,-6],[7,-25],[1,-8],[3,-12]],[[7501,5021],[-1,-1],[-3,0],[-2,4],[-2,1],[0,1],[1,1],[1,-1],[2,-1],[1,-1],[3,0],[1,-1],[-1,-2]],[[7803,4158],[-2,0],[-3,-1],[-3,-1],[-5,1],[-2,-1],[-1,-1],[-1,0],[-3,-3],[-1,-1],[-3,-1],[-1,-1],[-1,-2],[-1,-2],[-4,-11],[-1,-3],[-1,-4],[1,-9],[0,-3],[0,-1],[0,-2],[-1,-3],[0,-2],[-1,-1],[0,-3],[0,-1],[-1,-1],[-1,0],[-1,0],[-1,1],[-1,0],[-1,0],[-1,0],[-4,-4],[-1,-1],[0,-2],[0,-1],[2,-19],[0,-2],[0,-2],[0,-1],[-1,-1],[-2,-2],[-3,-1],[-12,-2],[-12,1],[-2,0],[0,-1],[-1,0],[-1,-2],[0,-1],[1,-5],[4,-7],[1,-5],[2,-13]],[[7733,4031],[-3,-4],[-1,0],[-1,-1],[-1,1],[-5,1],[-1,0],[-9,-1],[-1,-1],[-5,-3],[-2,-1],[-1,0],[-5,0],[-1,0],[-1,-1],[0,-1],[-1,-3],[1,-1],[1,-1],[0,-1],[1,-1],[0,-1],[1,-1],[1,-6],[0,-6],[0,-1],[0,-1],[-2,-1],[-9,-5],[-1,-1],[-2,0],[-3,1],[-2,-1],[-2,-3],[-7,-12],[-7,-10],[-3,11],[0,1],[-5,22],[0,2],[-1,1],[-1,0],[-2,0],[-1,-2],[-1,-1],[-1,0],[-2,-1],[-1,0],[-1,1],[-1,2],[0,2],[-1,2],[0,5],[0,1],[-1,1],[-1,0],[-8,-3],[-15,-2],[-14,6],[-12,13],[-5,8],[-10,12],[-3,5],[-1,3],[0,4],[0,7],[-1,3],[-4,4],[-2,0],[-2,1],[-5,0],[-3,-1],[-3,-1],[-2,-1],[-2,0],[-2,2],[-1,1],[-1,2],[-2,0],[-2,0],[-3,-2],[-4,-1],[-4,0],[-2,-1],[-1,-1],[-4,-7]],[[7467,5106],[-5,-2],[-4,0],[-1,-1],[-1,-1],[-1,-3],[-1,-6],[-1,-2],[-1,-5],[0,-7],[1,-7],[1,-4],[-2,-20],[0,-12],[2,-7],[-2,-5],[1,-1],[-1,-3],[0,-4],[0,-4],[2,-2],[1,2],[2,8],[1,3],[2,0],[8,-2],[4,0],[2,2],[2,2],[1,3],[2,-1],[3,-4],[2,-2],[2,-1],[5,0],[2,-1],[4,-4],[1,-4],[0,-5],[-3,-3],[13,-18],[9,-9],[2,-4],[1,-2],[6,-3],[0,-1],[0,-1],[0,-1],[1,-1],[1,-1],[5,1],[3,-1],[4,-2],[4,-2],[7,-9],[5,-3],[6,-1],[7,0],[5,-2],[7,-5],[7,-5],[9,-12],[7,-4],[19,-10],[3,-3],[1,-5],[1,-7],[1,-6],[4,-10],[2,-8],[1,-6],[1,-4],[0,-7],[4,-9],[1,-4],[1,-2],[1,-2],[1,-3],[2,-17],[4,-14],[1,-6],[0,-2],[-3,-2],[1,-3],[1,-2],[2,-2],[2,-2],[2,-6],[1,-6],[0,-4],[2,-3],[3,-3],[3,-3],[1,-4],[0,-11],[1,-10],[-2,1],[-1,0],[-1,-1],[-1,-2],[7,-10],[2,-5],[4,-12],[2,-4],[9,-14],[1,-3],[3,-11],[0,-4],[1,-20],[1,-3],[2,-4],[3,-4],[2,-2],[2,-1],[3,-1],[2,-3],[-1,-3],[0,-1],[-1,-1],[-1,0],[0,-2],[0,-1],[2,-3],[0,-1],[0,-4],[-1,-1],[-1,0],[9,-10],[3,-8],[-2,-7],[3,-1],[1,-4],[0,-10],[1,-6],[2,-1],[2,1],[3,1],[4,-2],[1,-3],[-2,-10],[1,-4],[3,-31],[-1,-9],[-4,-10],[-4,-5],[1,-9],[0,-8],[-2,2],[-1,2],[0,2],[1,1],[-1,2],[-2,-4],[0,-3],[5,-7],[7,-3],[1,-8],[6,-6],[5,-3],[7,-7],[4,-3],[4,-4],[3,-2],[2,-4],[0,-6],[1,0],[2,3],[6,-3],[3,-3],[3,-2],[4,-1],[9,-7],[14,-9],[5,-8],[2,-8],[3,-22],[0,-4],[0,-1],[0,-1],[-3,-1],[-4,-1],[-1,0],[-1,-2],[1,-1],[5,-16],[4,-1],[1,-3],[0,-5],[2,-5],[1,-1],[1,1],[1,1],[1,1],[1,-1],[1,-2],[1,-1],[2,1],[5,-1],[4,-1],[7,-4],[10,-7],[4,-5],[6,-5],[2,-2],[6,-6],[5,-6],[4,-5],[1,-7],[3,-6],[5,-11],[0,-10],[4,-10],[3,-9],[2,-7],[-3,-5],[-7,-4],[-9,0],[-11,5],[-7,3],[-5,0],[-3,3],[-8,4],[-5,4],[-4,3],[-4,1],[-2,1],[-1,3],[-1,2],[-1,1],[-3,1],[-10,8],[-16,12],[-5,2],[-10,-7],[-7,-8],[-11,-10],[-5,1],[-4,3],[-4,2],[-5,0],[-5,-2],[-4,3],[-2,5],[0,7],[0,1],[1,3],[-1,2],[-2,1],[-1,1],[-2,5],[-1,2],[-9,17],[-6,8],[-11,4],[-18,11],[-11,0],[-7,1],[-6,0],[-10,-8],[-11,-7],[-10,-14],[-5,-6],[-7,-3],[-8,0],[-7,1],[-7,4],[-6,4],[-5,5],[-5,7],[-12,24],[-1,4],[-1,4],[1,5],[1,10],[1,6],[-4,-5],[-2,4],[-2,14],[-2,4],[-4,5],[-3,3],[-4,2],[-2,0],[-4,2],[-3,0],[-8,-2],[-3,2],[-2,5],[-3,3],[-5,-1],[6,-5],[2,-2],[3,-6],[1,-3],[-1,-2],[-1,-2],[-3,-11],[-1,-4],[-2,-3],[-3,-1],[-2,-2],[3,-2],[3,1],[3,3],[2,4],[3,4],[1,-1],[2,-3],[3,-3],[4,-1],[4,0],[2,-2],[-4,-10],[0,-4],[1,-5],[2,-3],[12,-8],[2,-2],[6,-9],[5,-7],[4,-7],[3,-6],[4,-5],[6,-2],[15,-8],[7,-2],[9,1],[18,13],[13,3],[2,2],[4,2],[-1,5],[1,5],[2,1],[8,-2],[14,-7],[11,2],[3,0],[10,-5],[5,-17],[4,-11],[3,-12],[-3,-5],[-9,4],[-2,3],[-2,4],[-2,3],[1,-8],[2,-5],[3,-3],[13,-6],[11,-4],[8,-2],[6,-1],[5,-3],[9,-5],[12,-10],[11,-15],[6,-7],[12,-26],[3,-3]],[[7887,4106],[-3,-1],[-2,3],[-1,5],[-3,12],[1,2],[6,0],[2,0],[3,-2],[1,-3],[1,-5],[-1,-5],[-2,-4],[-2,-2]],[[7875,4114],[-2,-1],[-2,2],[-6,8],[-19,18],[-3,4],[1,1],[2,-1],[3,0],[12,-6],[5,-5],[4,-3],[2,-4],[2,-4],[2,-5],[-1,-4]],[[7803,4158],[4,-4],[9,-6],[5,-7],[16,-16],[14,-8],[6,-6],[9,-9],[9,-17],[16,-31],[12,-31],[4,-18],[-2,-10],[-9,-5],[-16,-1],[-12,-2],[-17,-2],[-15,-6],[-8,-5],[-6,-3],[-7,-5],[-10,-14],[-3,-3],[-9,-3]],[[7793,3946],[-2,9],[-1,5],[-3,5],[-1,1],[-1,2],[-3,2],[-1,1],[-1,0],[-1,1],[-1,0],[-2,-1],[-2,0],[-1,0],[-2,2],[-1,1],[-1,1],[-1,2],[-3,7],[-2,2],[-1,1],[-1,-1],[-1,0],[-1,-1],[-1,-1],[0,-1],[-1,-3],[-1,-1],[0,-1],[-1,-1],[-1,0],[-1,0],[-6,4],[-2,1],[0,1],[0,2],[0,1],[2,4],[0,1],[0,2],[0,1],[-2,4],[-1,1],[0,2],[1,1],[0,1],[1,3],[1,1],[0,1],[0,2],[-2,8],[0,1],[0,2],[0,3],[0,2],[0,2],[-1,2],[-1,0],[-3,1],[-2,0],[-5,0]],[[7897,4149],[-10,-5],[-6,2],[-5,5],[-9,5],[-3,3],[-4,3],[-12,4],[-7,2],[-5,6],[-4,4],[-5,3],[-13,9],[-5,6],[-5,2],[-5,3],[-2,5],[-3,8],[-10,9],[-3,5],[-3,5],[-1,2],[0,4],[3,2],[4,6],[7,3],[9,-3],[7,-3],[4,-1],[6,-5],[8,-6],[5,-6],[5,-5],[6,-4],[6,-6],[3,-4],[3,-3],[3,-3],[10,-6],[20,-6],[12,-8],[10,-10],[1,-10],[-1,-7],[-11,-5]],[[7765,3091],[0,-2],[-2,0],[-3,1],[-1,0],[0,-2],[1,-2],[-1,-1],[-2,2],[-1,3],[-1,3],[1,2],[4,2],[1,-2],[2,-2],[2,-2]],[[7778,3193],[-1,-1],[-1,1],[0,-1],[0,-4],[0,-2],[-2,0],[-2,2],[-2,0],[-1,-1],[-2,-1],[-3,0],[-1,3],[3,4],[3,1],[3,-1],[1,1],[0,1],[0,1],[1,1],[1,0],[2,1],[2,0],[0,-2],[0,-2],[-1,-1]],[[7757,3198],[1,0],[1,1],[2,0],[-1,-1],[-1,-2],[0,-1],[0,-1],[-1,-1],[-1,1],[0,2],[-1,0],[-1,0],[-2,-2],[-1,-1],[-1,-2],[-1,1],[0,1],[0,2],[1,1],[0,2],[0,1],[2,0],[0,1],[1,1],[1,0],[1,-2],[1,-1]],[[7766,3230],[3,-2],[2,-3],[-1,-2],[-2,-2],[-3,-1],[-2,0],[-2,2],[-2,1],[-3,-2],[-1,1],[-1,1],[1,3],[3,3],[1,1],[1,-1],[1,0],[5,1]],[[7794,3261],[-1,-4],[-2,0],[-1,0],[-2,0],[-1,2],[-1,-2],[0,-1],[0,-1],[1,-2],[-1,-2],[-2,1],[-1,-2],[-2,-1],[-3,-3],[-3,0],[-3,-1],[0,5],[1,3],[0,2],[-2,1],[-1,3],[-1,3],[0,2],[0,4],[-2,2],[1,1],[2,1],[5,2],[3,5],[3,5],[1,3],[0,3],[3,2],[5,-1],[2,-5],[0,-4],[-1,-3],[-2,-8],[2,-5],[3,-5]],[[7849,3368],[-1,-1],[-1,0],[-1,1],[0,1],[-1,1],[1,1],[-1,2],[1,3],[1,2],[1,0],[1,-1],[0,-3],[1,-1],[0,-2],[-1,-1],[0,-1],[0,-1]],[[7889,3532],[0,-3],[-1,-2],[-1,-2],[-2,-1],[0,1],[-2,2],[-2,2],[-2,1],[-2,0],[-1,0],[0,2],[0,2],[0,3],[1,1],[1,0],[8,-2],[2,-2],[1,-1],[0,-1]],[[7904,3526],[-3,-11],[-2,0],[-2,3],[-4,0],[2,6],[-2,4],[-3,4],[0,6],[2,3],[3,2],[4,0],[3,-2],[1,-2],[1,-2],[0,-7],[0,-3],[0,-1]],[[7954,3682],[2,0],[0,-2],[0,-1],[-4,3],[-2,-1],[-5,5],[0,1],[0,1],[0,1],[2,0],[1,-1],[1,-2],[3,-3],[2,-1]],[[7957,3697],[1,0],[0,1],[1,0],[1,-1],[0,-1],[0,-1],[1,0],[0,-1],[0,-1],[-2,0],[-1,0],[-1,-1],[-2,2],[-2,0],[-2,2],[-2,3],[-2,3],[0,1],[-1,1],[2,1],[1,1],[0,1],[1,0],[2,-2],[0,-2],[-1,-2],[1,-1],[0,-1],[5,-2]],[[7935,3693],[5,-10],[2,-6],[-4,-5],[1,5],[-1,0],[-2,-1],[0,3],[-2,-2],[-1,-1],[-1,0],[0,1],[-1,3],[0,2],[-1,2],[-1,1],[-1,2],[0,2],[-2,2],[-3,-1],[-3,-1],[0,-1],[-1,0],[-1,0],[-1,1],[0,1],[0,2],[0,3],[1,2],[1,2],[1,3],[2,3],[3,1],[2,1],[2,1],[1,-1],[1,-2],[0,-2],[0,-4],[0,-2],[1,-1],[2,-3],[1,0]],[[7912,3704],[-2,-2],[-3,1],[-1,1],[0,1],[0,4],[1,3],[7,5],[1,0],[1,-2],[0,-3],[-4,-8]],[[7963,3706],[-1,-2],[-3,1],[-3,3],[-1,2],[-3,2],[-2,5],[-1,1],[0,2],[3,3],[4,0],[2,-1],[4,-4],[0,-1],[-1,-2],[1,-6],[1,-3]],[[7961,3732],[2,0],[3,1],[1,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[-1,-1],[-4,-2],[-2,1],[-1,1],[0,2],[0,2],[1,1],[1,1],[1,-1]],[[7910,3739],[-3,-2],[-5,1],[-2,5],[2,4],[1,3],[2,1],[1,0],[0,-2],[1,0],[2,-4],[1,-3],[0,-3]],[[7968,3750],[2,-1],[5,1],[2,1],[1,0],[0,-2],[0,-2],[0,-2],[-1,-1],[-1,-1],[2,-3],[0,-3],[-2,-4],[-1,-2],[-1,-2],[0,-1],[0,-3],[2,-2],[0,-1],[0,-3],[-2,1],[-1,1],[-2,3],[-1,3],[0,2],[1,2],[1,2],[-1,3],[-1,2],[-1,2],[-3,2],[-2,2],[0,3],[0,3],[0,1],[1,1],[1,1],[1,1],[1,-4]],[[7920,3753],[0,-2],[-3,-5],[-1,2],[-1,3],[1,2],[1,0],[0,1],[1,0],[2,-1]],[[7941,3755],[-1,-2],[-5,3],[-2,1],[2,1],[3,3],[2,-3],[1,-3]],[[7977,3771],[0,-2],[0,-1],[0,-1],[2,-2],[-1,-1],[-1,0],[-1,0],[-1,-2],[0,-3],[0,-2],[-1,0],[-2,1],[0,2],[1,1],[0,1],[-1,2],[1,4],[0,2],[1,0],[3,2],[0,-1]],[[7893,3759],[-3,-2],[-2,1],[-2,1],[-2,1],[-1,3],[0,1],[0,2],[1,1],[0,1],[0,2],[0,4],[0,1],[1,3],[1,7],[1,1],[2,0],[2,-1],[1,-1],[0,-4],[2,-2],[1,0],[1,-3],[1,-5],[-2,-6],[-2,-5]],[[7901,3783],[-1,-1],[-1,1],[0,3],[-1,0],[-1,1],[-1,1],[0,1],[1,2],[3,3],[2,0],[1,-1],[1,-1],[0,-1],[-1,-1],[0,-3],[-2,-4]],[[8038,3797],[-2,0],[-1,4],[2,0],[2,-3],[-1,-1]],[[7940,3790],[1,-1],[2,1],[2,0],[4,-2],[1,-2],[1,-1],[1,-2],[1,-2],[2,0],[4,0],[1,-1],[0,-4],[1,-2],[3,-2],[1,-2],[0,-4],[-1,-1],[-2,-1],[-1,-1],[0,-3],[-1,-3],[0,-6],[-1,-5],[-2,1],[-6,8],[-2,3],[-8,4],[-6,1],[-8,4],[-3,1],[-2,0],[-3,-3],[-2,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[0,1],[0,2],[0,1],[0,3],[0,2],[-3,1],[-3,5],[0,1],[0,2],[0,2],[0,1],[1,2],[0,1],[0,5],[-2,6],[-1,3],[2,2],[18,-1],[3,-1],[2,-2],[3,-3],[1,-1],[4,0],[1,-1],[1,-4]],[[7942,3814],[0,-1],[2,1],[1,0],[0,-1],[-1,-1],[0,-2],[-1,0],[-1,-1],[-1,0],[0,-1],[0,-2],[-3,-5],[-1,1],[-2,3],[0,1],[0,7],[1,1],[3,3],[1,0],[0,-1],[1,-1],[1,0],[0,-1]],[[7920,3816],[0,-2],[0,-1],[0,-1],[-3,-3],[-2,-2],[0,1],[0,1],[1,0],[0,1],[-2,2],[-1,0],[0,1],[3,3],[1,-1],[0,1],[1,1],[1,0],[1,-1]],[[8024,3816],[-1,-5],[0,3],[-1,1],[-1,2],[0,2],[2,-2],[1,-1]],[[8017,3815],[0,-2],[-2,3],[0,2],[0,1],[1,1],[1,-1],[0,-4]],[[7977,3836],[1,-2],[0,-3],[0,-3],[-2,-1],[-2,3],[0,3],[-1,0],[-1,0],[-2,-4],[-2,-2],[-3,0],[-2,0],[-2,0],[-2,-1],[-2,0],[0,1],[1,2],[3,1],[1,2],[1,2],[1,1],[1,1],[2,0],[7,1],[3,-1]],[[7908,3852],[-1,-1],[0,-1],[0,-1],[-1,-1],[0,-3],[0,-1],[-1,-1],[-1,-1],[0,-1],[-1,4],[1,3],[1,1],[0,2],[1,1],[1,0],[0,2],[1,1],[1,-2],[-1,-1]],[[7946,3829],[-2,-2],[-2,1],[-2,1],[-6,2],[-4,2],[-7,7],[2,3],[1,1],[1,2],[1,0],[3,2],[4,0],[1,1],[2,2],[5,2],[3,2],[2,-4],[-1,-1],[0,-2],[1,-1],[2,-1],[-5,-6],[0,-1],[3,-2],[1,0],[-2,-2],[0,-2],[0,-2],[-1,-2]],[[7959,3888],[1,0],[2,0],[4,-3],[2,0],[4,5],[-1,-4],[1,-2],[2,0],[2,0],[2,-1],[1,-3],[1,-7],[-3,1],[-6,4],[-3,1],[-7,-4],[-3,0],[-2,4],[1,0],[1,1],[-1,1],[-1,2],[0,2],[0,3],[0,2],[1,1],[1,0],[1,-3]],[[7955,3900],[-1,-1],[-2,1],[1,3],[1,1],[1,-2],[0,-1],[0,-1]],[[7923,3921],[2,0],[1,0],[-1,-1],[-1,-1],[0,-1],[-1,-2],[-1,3],[-1,0],[-1,0],[-1,1],[3,0],[1,1]],[[8005,3940],[0,-1],[1,1],[0,-1],[-1,-1],[-1,0],[0,-1],[-1,0],[1,-1],[0,-1],[0,-1],[-1,2],[-1,0],[-1,0],[-1,1],[1,1],[-1,1],[1,1],[0,1],[0,1],[1,1],[0,1],[0,-1],[1,-1],[1,-1],[1,-1]],[[8041,3955],[-1,-1],[0,1],[-1,-2],[0,-1],[0,-2],[0,-1],[0,-1],[-1,0],[0,1],[-1,0],[-1,2],[-1,-1],[-1,1],[0,2],[1,0],[0,1],[0,1],[1,0],[1,0],[1,2],[1,0],[1,0],[0,-1],[1,-1]],[[7988,3953],[2,-1],[2,1],[1,1],[1,0],[3,1],[1,-1],[-1,-2],[1,-2],[-1,-1],[-5,0],[-1,0],[-2,0],[-2,-1],[-1,-1],[-2,1],[-2,0],[-1,2],[1,2],[0,4],[-1,3],[0,1],[2,-1],[3,-2],[2,-4]],[[8022,3991],[1,-2],[1,0],[1,0],[0,-1],[-1,-2],[-1,0],[-1,1],[-2,1],[0,1],[1,0],[0,2],[1,0]],[[7793,3946],[-2,0],[-7,-4],[-3,-3],[-4,-5],[-3,-2],[-2,-3],[-1,-2],[-1,-3],[-1,-2],[-1,-2],[-4,-1],[-9,-1],[-4,-4],[-4,-3],[-3,-4],[-5,-10],[-2,-9],[-1,-5],[1,-3],[1,-3],[0,-2],[-2,-4],[-1,0],[-3,-1],[-1,0],[1,-4],[1,-1],[1,-1],[0,-2],[-3,0],[-2,-1],[-6,-10],[-3,-7],[-3,-2],[-4,-1],[-3,3],[-2,6],[-2,8],[-3,5],[-5,5],[-5,2],[-8,1],[-22,-1],[-8,-4],[-3,-5],[-1,-4],[-2,-9],[-1,-8],[-2,-4],[-2,-2],[-4,2],[-4,4],[-5,2],[-5,0],[-3,-2],[-7,-15],[-8,-9],[6,0],[3,5],[5,5],[3,9],[4,2],[4,0],[3,-4],[2,-4],[4,-2],[2,0],[3,2],[2,4],[1,4],[3,7],[5,17],[4,1],[8,1],[16,-1],[5,-4],[1,-6],[4,-17],[2,-5],[5,-2],[1,-3],[-7,-9],[-4,-9],[-4,-5],[-2,-3],[1,-3],[3,-6],[5,-4],[3,-1],[4,-1],[5,2],[1,0],[1,-1],[2,-3],[2,-1],[-2,6],[-3,2],[-8,-1],[-4,1],[-4,3],[-3,5],[3,4],[6,11],[8,11],[10,-3],[3,-8],[4,-3],[6,-1],[5,5],[5,1],[1,1],[6,4],[19,19],[3,5],[3,7],[6,3],[11,3],[10,-3],[10,-4],[9,-8],[13,-19],[7,-16],[6,-13],[6,-14],[3,-6],[2,-5],[4,-4],[4,-5],[4,-1],[-1,-5],[1,0],[3,3],[3,0],[5,-2],[3,-3],[6,-3],[3,-3],[5,-2],[2,-1],[4,-8],[2,-1],[2,1],[3,0],[12,0],[2,0],[3,3],[3,2],[4,-1],[1,-5],[-3,-4],[-8,-5],[-6,-4],[-8,-3],[-2,-4],[-5,-5],[-2,-5],[-4,-5],[-3,2],[-2,-2],[-1,-4],[0,-8],[-5,-5],[-9,-10],[-10,-16],[-2,-5],[-3,-2],[-3,-2],[-3,0],[-2,-1],[-2,0],[-3,-2],[-2,0],[-3,2],[-8,-11],[-1,0],[0,4],[-1,5],[-1,1],[-2,0],[-2,-1],[-2,-2],[-1,-2],[-1,-1],[-3,-1],[0,-1],[1,-1],[1,-4],[0,-3],[-2,-2],[-2,-3],[2,-8],[0,-6],[4,1],[1,8],[1,6],[4,3],[-1,-2],[-1,-6],[4,-1],[-1,-3],[-2,-5],[-3,-1],[0,-1],[0,-1],[0,-2],[1,-3],[2,1],[2,1],[2,2],[2,3],[1,2],[1,4],[1,3],[1,3],[2,3],[2,1],[3,2],[7,3],[5,4],[0,2],[1,1],[3,3],[2,1],[2,0],[0,-1],[0,-1],[0,-2],[1,-1],[1,0],[2,1],[3,2],[0,-2],[-2,-6],[1,-4],[1,-2],[2,-2],[2,2],[3,3],[2,7],[1,3],[3,-1],[0,4],[-2,1],[-1,1],[-2,2],[-3,-2],[-2,0],[-3,0],[-1,1],[-3,-1],[1,5],[4,3],[4,7],[3,1],[3,3],[3,0],[3,3],[2,-1],[3,1],[2,3],[2,-1],[3,-6],[2,-2],[2,-1],[0,-2],[0,-7],[-1,-2],[-2,-1],[-1,-1],[1,-4],[-5,-2],[-1,-1],[0,-3],[1,-1],[3,-2],[1,-2],[-1,-2],[1,-2],[4,-8],[0,-3],[-1,-2],[-1,-2],[0,-4],[-1,3],[-2,2],[-1,-1],[-1,-2],[1,-2],[-2,-3],[-1,-2],[1,-2],[0,-5],[-1,-4],[2,-3],[1,1],[0,-3],[0,-2],[-1,-1],[-3,0],[1,-1],[0,-2],[-2,-2],[1,-4],[2,-4],[3,-1],[2,0],[2,4],[2,1],[0,-1],[2,-5],[1,-1],[-4,-1],[-2,-1],[-1,-3],[1,-6],[-2,2],[-1,-4],[0,-1],[1,-2],[-4,0],[-4,-3],[-9,-7],[-4,1],[-5,1],[1,9],[0,4],[1,7],[0,6],[1,7],[-1,4],[2,1],[1,1],[2,1],[2,0],[-2,4],[-2,0],[-2,-3],[-1,-1],[-1,3],[0,3],[1,9],[-2,0],[-1,-1],[-2,-1],[-1,-2],[2,-6],[1,-11],[-1,-11],[-2,-7],[-2,-7],[-2,-1],[-2,-4],[-3,-2],[-6,0],[-3,2],[-1,5],[-1,4],[1,14],[0,3],[2,5],[-3,2],[-2,-1],[1,-5],[-1,-5],[1,-14],[0,-6],[-3,4],[-1,6],[-3,17],[-1,2],[-1,2],[-2,-1],[0,-2],[0,-3],[2,-2],[-2,-1],[-2,0],[-4,1],[0,-2],[1,-3],[-1,-5],[-2,-5],[-2,-3],[0,-2],[1,-3],[-1,-3],[-2,-1],[-1,3],[-1,3],[-1,-2],[-2,-4],[-1,-4],[-4,3],[-2,0],[-2,-3],[6,-3],[0,-1],[-1,0],[0,-1],[3,0],[0,-2],[-2,-1],[-2,-1],[-2,-2],[-3,-3],[16,-1],[5,3],[15,0],[1,-3],[0,-4],[-1,-4],[-1,-4],[-2,-2],[-3,1],[-2,2],[-2,1],[-4,-1],[-1,-3],[1,-8],[1,0],[1,0],[1,2],[-2,3],[3,3],[10,-3],[4,3],[6,-6],[1,-3],[-2,-1],[-2,-2],[-1,-4],[1,-4],[0,-1],[1,0],[2,0],[1,-1],[0,-1],[-1,-1],[1,-1],[1,-1],[3,0],[1,-1],[-3,-3],[-2,-2],[0,-4],[-10,5],[-3,3],[-3,5],[-1,-7],[-2,-2],[-3,2],[-1,4],[-1,1],[-4,0],[-3,-2],[-1,-5],[2,2],[1,-3],[0,-2],[1,-1],[2,0],[1,-3],[3,-1],[2,-1],[3,-2],[1,1],[2,1],[2,-1],[1,-3],[1,0],[1,-1],[-1,-1],[-1,-3],[0,-1],[1,-4],[2,1],[1,0],[2,-2],[1,-1],[1,-2],[-2,-4],[-2,-1],[-1,-1],[0,-2],[4,0],[0,-2],[-2,0],[-1,-1],[-1,-2],[-1,-2],[-1,-1],[-1,0],[0,-1],[-1,-2],[1,-2],[0,-2],[0,-1],[-2,-3],[-17,-6],[-25,3],[-3,1],[-2,2],[-2,3],[-2,2],[0,1],[-1,1],[-2,1],[-1,1],[-4,0],[-1,1],[-1,2],[-1,6],[-1,1],[-1,3],[-1,0],[-1,0],[-2,1],[-3,2],[-2,2],[-1,1],[0,2],[0,1],[-2,1],[0,-2],[3,-7],[2,-1],[3,-1],[2,-1],[2,-4],[2,-4],[1,-3],[1,-2],[7,-3],[3,-5],[0,-5],[-2,-3],[-3,-1],[-2,-3],[11,4],[6,1],[3,-3],[5,4],[7,-2],[6,-7],[3,-2],[3,-9],[0,-6],[2,-8],[2,-5],[3,-7],[2,-5],[-5,-1],[-3,0],[-2,0],[-2,-3],[2,0],[4,1],[6,-1],[4,-4],[-1,-3],[-3,-3],[0,-3],[2,-3],[2,-3],[1,-6],[3,-4],[-1,-5],[1,-2],[0,-2],[1,1],[2,-1],[1,-2],[-2,-5],[-4,-9],[-2,-4],[-4,-4],[-1,1],[1,11],[-3,1],[-4,4],[-3,2],[-4,1],[-4,0],[-3,-3],[-1,-1],[-1,-1],[-1,-2],[0,-2],[-1,0],[-2,2],[-1,0],[-2,-2],[-1,-4],[1,-2],[2,0],[1,-1],[0,-4],[-2,-3],[-1,0],[-2,-1],[-2,-1],[-2,-3],[0,-3],[-1,-3],[0,-4],[2,1],[1,1],[0,-3],[0,-3],[-1,-3],[-1,-2],[-2,-2],[-1,0],[-1,0],[-1,0],[-1,1],[-3,6],[-2,1],[-1,1],[-2,7],[-3,5],[-5,3],[3,9],[-2,9],[-5,7],[1,3],[1,2],[2,-1],[3,1],[2,1],[1,3],[-6,-2],[-2,1],[-5,5],[-3,1],[-1,-2],[1,-5],[-4,-4],[-2,-10],[-7,-3],[-2,-1],[-1,6],[-2,0],[-4,-1],[-1,-1],[2,-5],[3,-2],[4,0],[7,1],[1,-4],[-1,-8],[-1,-5],[-1,-5],[-2,-4],[-2,-5],[-6,-5],[-3,-5],[-4,-6],[-1,-5],[0,-9],[-1,-7],[-2,-5],[-3,-5],[-7,-2],[-4,3],[-3,2],[-4,-1],[-6,-2],[-3,1],[-3,3],[-3,3],[-3,3],[-2,3],[-4,1],[-8,1],[-6,-1],[-3,0],[-2,4],[-1,10],[-1,6],[-3,-1],[2,-3],[1,-3],[0,-12],[0,-3],[2,-2],[2,0],[9,0],[2,-1],[6,-3],[5,-7],[2,-2],[14,-5],[2,-2],[1,-4],[1,-4],[0,-4],[1,-6],[-2,-6],[-5,-3],[-3,-3],[-2,-8],[-4,-9],[-5,-10],[-3,-5],[-3,-1],[-2,4],[-6,7],[-3,3],[0,-5],[2,-3],[4,-6],[0,-2],[1,-5],[-1,-2],[-1,-3],[1,-2],[1,0],[-2,-9],[-5,-4],[-3,-4],[-2,-4],[-1,-2],[1,-6],[2,-5],[0,-4],[3,-2],[3,-1],[1,0],[3,-2],[1,-4],[-1,-4],[-2,-4],[-2,-1],[-1,-1],[-2,-5],[0,-2],[1,-2],[1,-2],[-1,-5],[-1,-1],[-2,0],[-10,6],[-3,0],[0,-4],[-1,-6],[-2,-4],[-3,-1],[0,-2],[2,0],[3,-1],[2,-2],[0,-1],[0,-2],[-1,-2],[0,-4],[0,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[0,-2],[1,-2],[0,-4],[-1,-3],[-1,-1],[-1,-2],[2,-4],[-3,-1],[-3,-3],[-2,-1],[-1,4],[-1,6],[-1,1],[-2,-1],[-3,0],[0,-3],[0,-1]],[[9424,7327],[1,-2],[2,-3],[1,-3],[0,-12],[0,-4],[-2,-4],[-2,-2],[-1,-3],[-1,-6],[0,-10],[-1,-5],[-2,-4],[-5,-5],[-2,-4],[-2,-4],[0,-5],[1,-4],[2,-3],[0,-4],[-1,-5],[-2,-4],[-6,-5],[-1,-2],[0,-1],[-1,-2],[0,-3],[-1,-2],[-3,-1],[-2,-1],[-1,-3],[0,-3],[-1,-7],[2,-8],[3,-7],[0,-7],[-5,-4],[-5,1],[-3,-1],[-2,-2],[-1,-4],[-1,-4],[-1,-2],[-22,0],[-7,4],[-3,1],[-4,-1],[-2,-3],[-2,-4],[-2,-4],[-1,1],[-13,0],[-10,-3],[-16,-9],[-14,-12],[-4,-11],[4,-5],[5,0],[6,1],[5,-1],[4,-3],[4,-5],[3,-6],[2,-6],[0,-8],[-2,-5],[-6,-6],[-1,5],[-1,11],[-1,3],[-2,3],[-3,0],[-3,-3],[-2,-4],[3,-4],[-1,-4],[-2,-2],[0,1],[-4,3],[0,2],[0,6],[0,2],[-1,1],[-2,0],[-1,0],[-2,1],[-11,11],[-1,5],[-9,11],[-3,9],[-1,10],[3,22],[-3,10],[-7,1],[-9,0],[-7,4],[2,2],[2,4],[1,4],[1,3],[-2,3],[-5,-1],[-7,-4],[-7,-1],[-2,1],[-2,1],[-2,2],[-5,8],[-1,1],[-2,0],[-2,0],[-3,-2],[-2,-1],[1,-2],[1,-2],[1,-1],[2,-1],[-3,-1],[-5,-1],[-1,-1],[-1,-3],[0,-6],[-1,-3],[-1,-3],[-6,-19],[-1,-8],[-1,-3],[-2,-7],[-2,-5],[-1,-3],[0,-4],[0,-5],[1,-2],[2,0],[2,-3],[0,-2],[-1,-2],[-1,-2],[0,-4],[-4,-1],[-1,-3],[0,-4],[3,-1],[0,-1],[-4,-6],[-1,-9],[0,-10],[0,-10],[-5,-9],[-5,-1],[-6,2],[-7,1],[1,-4],[0,-3],[-2,-3],[-4,-2],[0,-2],[0,-2],[-1,-3],[-1,-2],[-2,0],[-1,1],[-1,3],[-1,2],[-5,3],[-1,2],[-8,8],[-2,0],[-2,-2],[-2,-1],[-1,-1],[-3,2],[-1,3],[-2,1],[-2,-1],[0,-2],[1,-2],[1,-3],[-2,-1],[-2,3],[-2,-1],[-1,-4],[-1,-5],[-1,0],[-9,-3],[-1,-1],[-1,-2],[0,-2],[0,-2],[1,-1],[1,-1],[0,-1],[-1,-4],[-2,-2],[-5,0],[0,-2],[2,0],[1,0],[1,-2],[2,-1],[-2,-2],[-1,-2],[1,-2],[-1,-2],[-1,-1],[-2,-1],[-2,-2],[0,-3],[1,-1],[4,-1],[0,-2],[0,-2],[-1,-1],[-1,-2],[-4,-4],[-4,-5],[-5,-6],[-2,-2],[-3,0],[-4,3],[0,-5],[-2,-3],[-4,-6],[-3,-2],[-4,0],[-4,-1],[-1,-4],[-2,-11],[-6,-2],[-4,1],[-10,4],[-16,1],[-2,-5],[-4,-1],[-13,1],[-1,-1],[-2,-2],[-2,-4],[-2,-1],[-2,2],[-1,0],[-7,-3],[-2,0],[-6,4],[-7,-1],[-4,4],[-4,1],[-16,2],[-27,-9],[-7,0],[-3,-2],[-3,-3],[0,-4],[3,-23],[2,-4],[1,-4],[6,-2],[1,-5],[8,-18],[1,-5],[1,-6],[4,-5],[7,-6],[4,-3],[3,-4],[2,-6],[0,-4],[3,-6],[-2,-10],[-17,-37],[-6,-8],[-7,1],[2,4],[-2,1],[-3,-3],[-4,0],[-2,3],[0,6],[-3,-2],[-1,-1],[-2,1],[0,3],[0,5],[0,4],[-2,3],[-1,-2],[-2,-2],[-1,-1],[-5,5],[-7,-1],[-3,-2],[-2,-1],[-1,-5],[-3,-1],[-3,0],[-3,3],[-4,-2],[-16,1],[-4,2],[-1,0],[-2,-4],[-1,-1],[-1,1],[-6,5],[-6,2],[-2,3],[-1,6],[-3,-2],[-2,1],[-3,2],[-3,1],[-3,-2],[-2,-1],[-3,-2],[-3,1],[-1,0],[-1,2],[-1,1],[-2,1],[-1,-1],[-3,-1],[-1,0],[-7,0],[-3,2],[-3,1],[1,1],[2,1],[1,2],[0,2],[-2,1],[-1,0],[-1,-1],[-1,0],[-3,0],[-3,4],[-3,1],[-1,-1],[-2,-5],[-1,-2],[-1,1],[-1,1],[-1,1],[-1,1],[-2,-2],[-2,0],[-1,2],[-1,1],[-1,1],[-1,0],[2,5],[3,3],[3,3],[4,1],[-2,3],[-9,4],[-3,1],[1,2],[1,1],[-5,3],[-3,2],[-1,2],[-1,4],[0,3],[2,1],[3,0],[-1,3],[-4,7],[-1,3],[-1,0],[-6,6],[-3,3],[-3,0],[-2,0],[-1,2],[0,6],[-2,1],[-3,-1],[-4,-3],[-2,-3],[-2,-7],[-9,-4],[-2,-7],[-1,-2],[-3,2],[-5,6],[-2,3],[-3,1],[-2,0],[-3,-2],[1,-3],[2,-2],[3,-2],[2,-2],[-3,-2],[-5,-6],[-2,-1],[-5,0],[-3,0],[-3,-7],[-5,-7],[0,-3],[1,-4],[1,-3],[-1,-4],[-3,-7],[-2,-12],[-6,-11],[-1,-4],[1,-6],[2,-9],[0,-6],[-5,-2],[0,2],[1,0],[0,1],[0,1],[1,1],[-5,1],[-5,-5],[-8,-12],[-2,-3],[-4,-11],[-1,-4],[-5,-5],[-1,-2],[-4,-12],[-2,-3],[-2,-3],[-19,-13],[-4,-4],[3,-5],[-2,-4],[-3,-3],[-1,-3],[0,-3],[-2,-1],[-1,-1],[-2,-1],[-1,-2],[1,-3],[-1,-3],[-4,-6],[-2,-3],[-3,0],[-3,-1],[-2,-4],[2,0],[3,0],[1,-1],[-2,-3],[-2,-1],[-5,-1],[-2,-3],[-2,-1],[-2,2],[-2,3],[-2,1],[-3,-1],[-2,-1],[-6,-6],[-2,0],[-7,4],[-1,0],[-2,0],[-1,-1],[-1,-2],[-1,-1],[-1,-1],[-5,-1],[0,-1]],[[8188,7296],[-11,2],[-3,1],[-3,4],[-1,2],[-2,2],[-1,1],[-2,1],[-6,0],[-2,1],[-1,0],[0,1],[-4,5],[-3,2],[-2,2],[-2,0],[-5,1],[-2,1],[-2,1],[-1,1],[-2,2],[0,2],[-1,2],[-1,1],[0,3],[0,1],[0,2],[0,3],[1,2],[1,2],[0,1],[1,1],[6,6],[3,1],[0,1],[1,2],[-1,3],[0,2],[0,5],[5,-5],[7,-2],[1,1],[3,5],[1,0],[0,3],[1,3],[0,5],[0,5],[0,3],[-1,2],[0,1],[-4,7],[-3,6],[-1,4],[-9,34],[-3,8],[-9,19],[-1,2],[-3,11],[0,2],[0,2],[1,2],[0,1],[1,1],[3,3],[1,3],[1,1],[0,2],[0,3],[0,2],[0,5],[-1,2],[0,2],[-1,2],[-1,1],[-1,1],[-3,2],[-7,3],[-2,2],[-1,1],[-1,1],[-1,1],[0,1],[-1,2],[-4,14],[-3,7],[-2,4],[0,2],[-1,7],[0,1],[-1,1],[0,1],[-1,1],[-7,7],[-1,1],[0,1],[0,1],[0,1],[0,3],[0,6],[1,6],[0,3],[0,2],[0,3],[0,1],[0,1],[-1,1],[-1,4],[-1,1],[-1,2],[-1,0],[-2,0],[-6,-5],[-3,-3],[-3,-5],[-9,-10],[-22,-13],[-11,-12],[-4,-3],[-2,-1],[-13,-3],[-2,-2],[-2,-2],[-1,-3],[-1,-1],[-1,-1],[-35,-19],[-9,-2],[-4,0],[-3,2],[-4,7],[4,32],[0,9],[0,8],[0,2],[-1,2],[-3,4],[-3,4],[-24,38],[-3,7],[-4,13],[-1,3],[0,3],[0,4],[1,10],[0,2],[-1,4],[-3,14],[0,3],[0,1],[2,6],[0,2],[0,1],[0,4],[0,6],[-3,26],[-2,16],[0,2],[1,4],[0,1],[1,3],[1,1],[0,1],[1,1],[1,1],[3,2],[11,4],[4,3],[8,6],[1,2],[3,4],[2,4],[0,2],[0,2],[1,4],[0,3],[-1,2],[-1,2],[-2,4],[-1,3],[1,7],[-1,2],[0,2],[-3,5],[-4,9],[-5,9],[-1,2],[-1,1],[-2,2],[-13,4],[-1,1],[-1,1],[-1,1],[0,3],[-1,1],[0,1],[-1,0],[0,1],[-2,1],[-1,2],[-1,2],[-1,3],[-1,3],[0,2],[0,2],[1,1],[0,2],[2,5],[0,1],[1,2],[0,3],[0,2],[-1,2],[-3,4],[-2,5],[-1,2],[-1,1],[-1,0],[-1,1],[-2,1],[-2,1],[-3,0],[-3,0],[-13,-6],[-1,-1],[-3,0],[-3,1],[-2,1],[-10,9],[-1,1],[-2,3],[0,1],[0,2],[0,1],[1,1],[9,7],[2,1],[0,1],[3,4],[9,20],[2,6],[1,2],[0,3],[0,4],[0,3],[-1,1],[0,2],[-2,2],[-1,2],[-1,1],[-1,3],[-1,4],[0,2],[0,1],[1,1],[1,0],[2,0],[12,-1],[3,0],[2,-1],[6,-4],[3,-1],[7,-2],[2,-1],[2,-2],[1,-2],[1,-1],[1,-1],[1,-2],[1,-3],[0,-1],[1,-1],[14,-15],[8,-4],[2,-2],[0,-1],[1,-2],[2,-3],[1,-2],[1,-1],[2,0],[1,0],[1,1],[1,0],[4,5],[12,17],[2,4],[1,6],[1,2],[1,1],[2,0],[1,-1],[1,0],[1,-1],[3,-4],[1,-2],[2,-5],[1,-2],[3,-11],[2,-7],[0,-1],[1,-2],[1,-1],[10,-9],[6,-7],[6,-6],[7,-4],[1,0],[1,0],[1,1],[2,2],[5,8],[2,3],[1,3],[0,2],[1,1],[0,4],[-1,9],[0,3],[0,4],[0,2],[1,1],[2,4],[1,3],[1,2],[0,1],[-1,9],[-1,7],[2,31],[0,1],[1,1],[1,-1],[1,0],[41,4],[1,1],[2,0],[1,2],[1,2],[1,3],[0,3],[1,1],[3,8],[1,3],[1,2],[1,2],[2,3]],[[8101,8055],[1,2],[2,2],[2,3],[2,2],[2,1],[2,1],[1,1],[2,0],[2,0],[11,-6],[5,-2],[66,6],[3,1],[14,7],[2,0],[1,-2],[1,-1],[1,-2],[2,-1],[2,1],[1,3],[0,1],[1,1],[1,1],[1,0],[2,0],[0,-1],[0,-1],[0,-2],[1,-3],[-1,-3],[0,-4],[2,-4],[-2,-4],[0,-5],[1,-4],[2,-4],[1,0],[1,1],[0,-1],[0,-3],[0,-2],[1,-2],[1,-3],[0,-3],[0,-1],[0,-3],[0,-5],[2,-6],[2,-2],[2,-1],[0,-2],[0,-3],[0,-2],[-2,-1],[-2,1],[-2,0],[-1,-3],[2,-3],[-1,-1],[-2,-2],[-1,-1],[-1,-4],[0,-3],[0,-4],[1,-2],[3,-4],[8,-7],[2,-5],[0,-3],[-3,-5],[0,-2],[1,-3],[1,-1],[1,-2],[-1,-4],[-2,-1],[-2,-1],[-2,-1],[-1,-4],[2,-1],[6,-4],[2,-1],[0,-2],[-1,-1],[-2,-1],[6,-3],[2,-2],[2,-4],[1,-2],[0,-4],[1,-1],[3,0],[2,-1],[1,-1],[-3,-4],[-1,-4],[1,-3],[5,0],[4,2],[2,3],[2,-1],[0,-6],[1,-3],[5,-3],[0,-2],[0,-2],[1,-4],[1,-3],[2,-1],[7,1],[4,-2],[1,-4],[0,-1],[-1,-3],[-1,-2],[0,-1],[1,-1],[0,-1],[1,-3],[0,-2],[1,-2],[2,-2],[3,-2],[3,1],[3,2],[4,0],[3,-1],[4,-9],[4,-2],[4,-1],[2,1],[2,1],[1,3],[0,2],[0,3],[1,2],[4,-3],[3,0],[7,1],[8,0],[2,1],[4,4],[2,0],[1,-2],[1,-3],[1,0],[1,0],[5,-1],[4,-1],[2,0],[2,2],[1,1],[1,3],[-1,1],[0,1],[-1,2],[1,2],[0,1],[1,1],[1,1],[0,5],[1,2],[1,2],[2,0],[2,-2],[1,-2],[0,-3],[3,-3],[4,-1],[8,2],[2,-2],[1,-1],[-1,-2],[0,-3],[1,-5],[0,-1],[2,-4],[3,-2],[1,-2],[0,-3],[0,-4],[0,-1],[1,1],[2,1],[22,5],[2,0],[3,-1],[2,-1],[0,-1],[1,0],[2,0],[1,1],[0,2],[1,1],[2,0],[6,-4],[3,-1],[4,3],[2,4],[2,10],[1,4],[3,2],[4,-1],[4,-2],[4,-1],[3,2],[10,7],[3,1],[6,-1],[2,1],[3,1],[2,0],[0,-2],[0,-3],[1,-5],[0,-1],[0,-5],[0,-1],[1,-4],[0,-2],[0,-3],[0,-6],[0,-3],[-1,-2],[0,-1],[0,-2],[0,-1],[0,-2],[3,-5],[1,-3],[1,-2],[2,-2],[7,-8],[1,-1],[2,-3],[0,-1],[5,-5],[11,-8],[4,-1],[6,-1],[30,-15],[2,2],[1,1],[2,0],[1,0],[4,0],[3,0],[2,1],[2,3],[3,1],[1,1],[1,3],[1,0],[1,0],[1,-1],[2,0],[1,0],[2,1],[2,2],[6,6],[2,1],[2,1],[2,1],[4,0],[1,1],[4,1],[13,3],[2,0],[9,-4],[1,-1],[1,-1],[5,-6],[1,-1],[1,-1],[5,-2],[7,-3],[2,-1],[2,-2],[2,-4],[1,-1],[1,0],[6,0],[1,0],[1,0],[1,1],[2,0],[3,0],[3,-1],[5,-2],[2,0],[1,-1],[1,-1],[0,-1],[1,-3],[2,-11],[2,-5],[7,-12],[2,-5],[3,-6],[1,-2],[1,-7],[0,-1],[0,-2],[-1,-5],[-1,-2],[-7,-3],[-1,-2],[-2,-2],[-1,-1],[-1,-3],[-1,-4],[-1,-3],[0,-3],[0,-2],[2,-5],[1,-4],[5,-10],[1,-1],[0,-6],[1,-6],[-1,-11],[0,-2],[0,-5],[1,-4],[1,-1],[2,-4],[5,1],[2,3],[1,3],[2,4],[2,4],[1,2],[2,1],[1,1],[3,0],[2,0],[1,0],[2,-2],[1,-1],[0,-1],[2,-5],[1,-1],[1,-1],[1,-1],[2,0],[2,0],[1,1],[1,1],[1,1],[4,3],[6,3],[3,1],[2,0],[5,-3],[6,-6],[1,-1],[1,0],[6,-2],[2,-1],[7,-5],[1,-1],[1,-1],[0,-1],[1,-2],[0,-1],[1,-2],[1,-2],[1,-1],[0,-1],[-1,0],[-1,-1],[-4,0],[-1,0],[-1,0],[-2,-2],[-1,-1],[-1,-1],[0,-1],[0,-1],[0,-2],[0,-1],[1,-4],[0,-1],[0,-2],[0,-1],[0,-2],[-1,-3],[-2,-7],[-1,-2],[0,-1],[1,-2],[1,-2],[4,-6],[1,-1],[3,-8],[10,-15],[0,-1],[0,-2],[0,-3],[-1,-5],[0,-2],[0,-1],[0,-1],[0,-1],[0,-1],[8,-9],[3,-3],[2,-1],[2,0],[2,-1],[0,-1],[1,-1],[0,-3],[0,-3],[4,-13],[6,-4],[11,-4],[26,11],[3,2],[2,2],[2,2],[0,2],[1,1],[0,2],[0,3],[0,19],[-1,6],[0,2],[0,2],[1,4],[1,4],[-1,4],[-1,5],[-1,4],[0,5],[2,2],[1,-1],[4,-4],[2,-1],[3,-1],[3,1],[3,3],[2,4],[2,9],[2,5],[1,3],[2,2],[9,7],[9,6],[7,3],[1,-1],[4,-5],[4,-8],[1,-1],[1,-5],[2,-7],[2,-15],[0,-7],[-3,-26],[0,-4],[1,-8],[0,-2],[1,-3],[1,-2],[1,-3],[2,-2],[7,-8],[1,-2],[1,-3],[1,-3],[1,-6],[1,-4],[1,-4],[8,-14],[5,-13],[2,-3],[7,-6],[1,-2],[2,-3],[2,-6],[1,-2],[4,-7],[1,-2],[0,-1],[1,-5],[1,-6],[-1,-8],[1,-1],[0,-2],[1,-2],[2,-3],[6,-8],[1,-3],[1,-4],[3,-10],[1,-3],[2,-3],[1,-2],[0,-1],[1,-1],[2,-1],[1,0],[7,1],[1,0],[2,-1],[3,-3],[1,-1],[1,0],[2,0],[2,0],[24,14],[8,3],[2,1],[1,1],[1,1],[0,1],[0,1],[0,1],[0,2],[-2,3],[-1,4],[0,3],[0,1],[0,2],[0,2],[0,1],[0,2],[0,2],[0,2],[0,3],[0,3],[0,2],[0,1],[0,2],[1,1],[1,3],[1,2],[2,2],[6,4],[2,0],[9,1],[2,1],[9,8],[10,5],[9,3],[35,1],[4,1],[1,1],[0,1],[1,1],[1,1],[0,2],[0,3],[1,3],[0,6],[0,4],[1,1],[0,1],[1,1],[3,2],[6,6],[3,3],[5,2],[2,-1],[3,-1],[9,-8],[1,-3],[1,-3],[0,-3],[1,-16],[0,-3],[1,-3],[0,-1],[1,-1],[0,-1],[2,-1],[2,-1],[4,-1],[2,0],[2,0],[1,1],[1,2],[5,9],[3,5],[5,5],[2,2],[7,2],[2,1],[1,1],[0,1],[1,1],[1,2],[5,18],[1,2],[1,2],[1,0],[2,-2],[0,-1],[0,-1],[1,-4],[0,-1],[-1,-3],[-2,-14],[0,-3],[0,-3],[1,-2],[1,-3],[1,-3],[2,-5],[0,-3],[0,-3],[1,-2],[0,-2],[0,-1],[0,-6],[0,-2],[1,-2],[0,-2],[1,-2],[1,-3],[4,-5],[0,-1],[1,-1],[0,-1],[0,-1],[0,-2],[-3,-7],[0,-2],[0,-2],[0,-1],[0,-2],[0,-1],[3,-1],[28,-11],[5,-3],[1,-1],[2,-4],[7,-7],[4,-3],[6,-4],[2,-2],[7,-7],[2,-2],[2,-5],[1,-2],[0,-4],[2,-3],[0,-2],[1,-1],[1,0],[1,-1],[2,0],[4,2],[2,1],[2,1],[12,15],[2,0],[2,0],[4,-2],[10,-15],[2,-2],[2,-1],[1,0],[3,1],[10,7],[4,1],[3,1]],[[7815,9932],[3,-3],[2,-3],[2,-1],[9,-6],[11,-4],[5,-3],[3,-3],[2,-2],[1,-2],[1,-1],[0,-2],[3,-12],[1,-5],[1,-2],[2,-1],[8,-4],[2,-1],[1,-1],[1,-3],[0,-1],[1,-4],[0,-2],[2,-4],[2,-3],[0,-2],[0,-1],[1,-1],[-1,-2],[0,-1],[-1,-4],[-1,-1],[-1,-1],[-2,-2],[-3,-4],[-2,-2],[-1,-2],[-3,-5],[-2,-5],[-1,-2],[-31,-35],[-54,-48],[-1,-1],[0,-1],[0,-1],[0,-2],[2,-1],[3,-2],[21,-8],[12,-8],[3,-4],[1,-1],[7,-8],[4,-3],[15,-8],[18,-6],[2,-2],[2,-2],[2,-2],[1,-1],[1,-2],[5,-12],[5,-7],[2,-2],[1,-1],[2,-1],[7,-2],[6,-1],[9,2],[5,2],[3,3],[2,1],[2,4],[9,15],[6,14],[1,2],[3,11],[3,5],[0,1],[1,1],[1,0],[2,0],[1,0],[22,-9],[1,-1],[1,-2],[1,-2],[1,-5],[1,-3],[2,-2],[2,-4],[8,-7],[1,-2],[4,-7],[1,-4],[0,-1],[2,-2],[1,-2],[0,-1],[2,-1],[9,-4],[27,-4],[1,-1],[2,-1],[3,-3],[1,-2],[0,-2],[0,-1],[0,-2],[0,-1],[-1,-2],[0,-1],[-1,-3],[-2,-2],[0,-1],[-2,-1],[-2,-2],[-5,-2],[-5,-2],[-2,0],[-1,-1],[-1,-1],[-1,-2],[0,-1],[0,-2],[0,-2],[0,-3],[19,-66],[2,-5],[0,-3],[0,-2],[0,-1],[-1,-2],[0,-1],[-1,-3],[-5,-6],[-1,-2],[-1,-2],[0,-1],[0,-2],[0,-1],[0,-2],[0,-3],[1,-2],[20,-36],[0,-1],[1,-1],[0,-2],[0,-1],[-1,-3],[0,-4],[0,-1],[0,-2],[1,-3],[2,-4],[5,-9],[11,-17],[4,-2],[6,-4],[2,-2],[6,-7],[4,-4],[2,-1],[2,-1],[3,1],[2,0],[2,2],[1,0],[1,0],[2,0],[1,-1],[1,-1],[2,-4],[3,-2],[2,-2],[2,-1],[2,-2],[2,0],[16,0],[11,1],[2,0],[2,0],[4,-1],[3,-2],[0,-1],[2,-2],[5,-8],[2,-2],[1,-1],[1,-1],[4,-1],[4,-1],[7,1],[16,5],[2,1],[1,1],[1,1],[1,1],[0,1],[0,2],[1,1],[0,5],[1,3],[1,3],[1,2],[1,1],[1,1],[1,1],[2,1],[3,0],[23,-3],[26,7],[2,0],[2,-1],[7,-4],[5,-4],[4,-3],[4,-1],[6,0],[4,1],[4,1],[5,3],[0,1],[1,1],[1,1],[0,2],[0,3],[1,3],[1,2],[0,1],[1,1],[1,1],[3,0],[3,1],[27,-7],[16,8],[9,0],[1,0],[1,1],[1,2],[2,5],[0,2],[1,1],[2,2],[1,1],[9,5],[1,1],[1,1],[0,1],[0,2],[1,3],[0,1],[0,2],[1,1],[0,2],[1,1],[1,0],[1,1],[1,0],[7,2],[2,1],[2,2],[1,2],[1,1],[0,2],[1,1],[0,2],[0,8],[0,2],[0,1],[1,1],[0,2],[1,1],[1,1],[1,0],[1,1],[1,1],[1,0],[3,0],[34,-9],[9,-5],[16,-15],[5,-6],[4,-7],[1,-3],[1,-3],[1,-6],[1,-2],[1,-2],[1,-2],[11,-12],[3,-4],[3,-7],[1,-2],[1,-5],[1,-2],[3,-4],[12,-10],[1,-1],[3,1],[4,-2],[2,-5],[0,-6],[3,-5],[3,-2],[4,-1],[2,-2],[0,-5],[5,1],[2,-1],[2,-1],[0,-1],[0,-4],[1,-4],[6,-5],[2,-4],[0,-2],[1,-3],[0,-5],[1,-2],[1,-1],[0,-2],[0,-5],[-2,-5],[-2,-4],[-3,-2],[1,-2],[0,-1],[-3,-2],[-1,-2],[0,-2],[-1,-3],[-1,-1],[-3,4],[-2,2],[-1,-1],[0,-3],[-1,-2],[-1,-2],[-1,-2],[-1,2],[-2,0],[-1,-1],[-2,-1],[1,-1],[1,-1],[2,-3],[-3,-2],[-8,-9],[-2,-3],[-2,-4],[-9,0],[-2,-4],[1,-3],[6,-8],[2,-4],[-1,-2],[-3,-4],[1,-2],[2,-8],[1,-10],[0,-10],[-3,-7],[-6,-5],[-2,-1],[-3,0],[-2,-1],[-1,-2],[-2,-5],[-1,-1],[-1,0],[-2,-1],[-2,-2],[-1,-1],[-1,-3],[-2,-1],[-8,-2],[-1,-1],[-1,-2],[0,-6],[0,-3],[-1,0],[-4,3],[-2,-3],[-1,-14],[-1,-4],[-2,-3],[-1,-2],[-2,0],[-2,-2],[-2,-2],[0,-2],[-1,-3],[-1,-2],[-1,-1],[-1,-2],[1,-2],[1,-2],[1,-2],[-3,-2],[1,-3],[-1,-3],[-3,-2],[-6,-1],[-6,-7],[2,-5],[-2,-4],[-5,-1],[-2,3],[-2,-2],[-3,-3],[-1,-3],[-1,-3],[1,0],[2,-6],[0,-1],[2,-1],[4,0],[2,-1],[-3,-3],[-3,0],[-7,1],[-1,-1],[2,-2],[2,-2],[2,-2],[1,0],[1,-1],[1,-3],[-1,-2],[-2,-2],[-1,-1],[-2,0],[-2,-1],[-2,-6],[-2,-2],[-4,-1],[-2,-1],[0,-3],[2,-2],[3,-2],[1,-2],[0,-5],[2,-3],[2,-3],[-4,-3],[2,-5],[-3,-2],[-4,-1],[-2,-4],[0,-2],[2,-2],[2,-1],[2,-1],[1,-3],[0,-3],[-1,-5],[0,-23],[0,-2],[-2,-2],[-1,-2],[-2,-1],[-1,1],[-3,4],[-2,1],[-4,-2],[1,-6],[3,-4],[2,0],[2,-1],[4,-4],[1,-2],[0,-4],[1,-3],[2,-1],[1,-1],[1,-1],[1,-4],[-1,1],[-2,-3],[-1,-3],[2,-2],[0,-3],[6,-17],[0,-3],[-3,-7],[-1,-3],[0,-3],[2,-6],[0,-3],[-1,-6],[-3,-5],[-1,-4],[2,-3],[-1,-3],[-1,-1],[-1,0],[0,-5],[0,-1],[0,-1],[1,-1],[0,-1],[0,-2],[-1,-2],[-1,-2],[-2,-2],[-1,-2],[-2,-1],[-1,-1],[-2,-6],[-1,-2],[-3,-3],[-4,-1],[-8,0],[-2,1],[-2,3],[-1,4],[-13,0],[-8,3],[-5,0],[-2,-1],[-1,-2],[-1,-2],[0,-3],[-1,-3],[-1,-2],[-2,-1],[0,-2],[0,-9],[-1,-6],[-1,-4],[-2,-4],[-2,-4],[-15,-44],[-4,-4],[0,-3],[-2,-7],[-4,-9],[-2,-5],[0,-4],[-1,-3],[0,-4],[0,-9],[-1,-4],[-1,-3],[-3,-6],[-8,-12],[-1,-4],[0,-3],[3,-7],[-3,-5],[1,-4],[1,-5],[-1,-5],[-1,-4],[-1,-12],[-1,-5],[5,-4],[2,-10],[0,-21],[-2,-8],[-1,-1],[-3,-3],[0,-2],[0,-1],[0,-1],[0,-1],[0,-8],[-1,-3],[-1,-2],[-3,-1],[-2,-2],[-1,4],[0,3],[-1,1],[0,2],[-1,2],[-1,1],[-5,4],[-1,1],[-1,1],[0,1],[0,2],[0,1],[0,5],[0,1],[0,2],[-1,1],[-1,1],[-1,1],[0,1],[0,1],[0,2],[0,1],[-1,1],[0,1],[-2,2],[0,2],[-1,2],[-1,1],[0,1],[-2,2],[-1,2],[-1,1],[-2,4],[-2,5],[-1,3],[0,3],[0,1],[1,4],[0,9],[0,2],[-2,3],[0,1],[0,2],[0,1],[0,3],[0,2],[0,1],[0,2],[-1,1],[-3,6],[-5,5],[-1,0],[-2,-1],[-25,-22],[-58,-68],[-24,-36],[-5,-5],[-10,-7],[-23,-12],[-8,-5],[-2,-1],[-1,-2],[-1,-2],[-1,-2],[-4,-14],[-3,-10],[-3,-4],[-18,-15],[-48,-30],[-13,-12],[-25,-18],[-2,-2],[-2,-3],[-5,-15],[-3,-12],[-1,-2],[-12,-14],[-2,-4],[8,-13],[6,-8],[2,-4],[6,-18],[1,-2],[5,-8],[9,-9],[3,-3],[19,-9],[2,-2],[2,-1],[2,-2],[32,-51],[5,-6],[8,-6],[8,-5],[5,-3],[5,-1],[1,1],[2,1],[6,9],[2,2],[2,2],[8,1],[1,1],[2,2],[4,11],[2,4],[2,2],[2,0],[8,-2],[3,-2],[1,-2],[0,-4],[-1,-6],[1,-2],[2,-2],[2,-1],[2,-1],[3,0],[3,0],[1,2],[1,3],[0,4],[2,4],[1,2],[1,1],[2,0],[1,-2],[3,-7],[0,-2],[-1,0],[-1,-2],[-1,-2],[0,-2],[0,-1],[5,0],[0,-1],[-1,-3],[-2,-5],[-12,-22],[-22,-24],[-1,-1],[-3,-1],[-1,-1],[-13,0],[-12,1],[-20,8],[-5,1],[-2,-1],[-3,-1],[-2,-2],[-1,0],[0,-1],[-1,-1],[0,-2],[0,-1],[-1,-2],[0,-1],[0,-3],[1,-13],[0,-5],[-1,-7],[-3,-9],[0,-2],[0,-3],[1,-4],[7,-16],[21,-33]],[[3856,7146],[54,-8],[54,-9],[66,-10],[66,-11],[67,-10],[66,-11],[24,9],[57,21],[8,0],[65,-13],[66,-13],[65,-13],[32,4],[18,-2],[19,-6],[16,-14],[24,-48],[15,-19],[10,-6],[56,-16],[57,-16],[56,-16],[5,-3],[1,0],[47,-31],[48,-31],[5,-1],[64,16],[64,15],[-1,-54],[1,-3],[16,-3],[48,0],[3,-2],[4,-4],[6,-9],[7,2],[30,39],[3,2],[9,1],[9,6],[3,1],[2,1],[7,7],[12,8],[64,40],[74,39],[73,39],[70,13],[70,14],[70,13],[21,4],[9,-1],[14,-4],[35,0],[43,-9],[5,0],[6,2],[16,11],[5,0],[43,-6],[4,0],[8,4],[25,2],[1,1],[1,1],[1,2],[1,0],[1,0],[1,1],[24,21],[40,21],[13,3],[9,-1],[2,1],[3,1],[1,2],[2,2],[2,3],[6,4],[43,22],[3,5],[4,14],[4,4],[15,15],[7,9],[5,11],[4,14],[3,5],[19,24],[22,37],[7,7],[20,14],[39,19],[11,10],[4,2],[18,2],[5,3],[5,5],[25,37],[3,2],[12,-1],[8,4],[3,1],[4,3],[2,7],[0,9],[-1,8],[-2,9],[-15,31],[-4,7],[-5,6],[-19,14],[-5,7],[-15,24],[-4,8],[-3,10],[0,10],[-2,5],[-3,4],[-10,8],[-2,5],[0,11],[2,7],[2,9],[4,7],[4,5],[2,3],[4,11],[4,6],[1,4],[1,4],[0,5],[-1,9],[1,4],[1,7],[31,72],[3,6],[5,5],[9,8],[3,2],[7,2],[4,2],[2,2],[1,2],[2,2],[2,1],[2,0],[4,0],[16,-5],[45,1],[5,-2],[5,-3],[13,-16],[7,-13],[3,-5],[5,-4],[22,-12],[37,-11],[7,-1],[14,-7],[60,-6],[3,-1],[5,-4],[2,-2],[12,-1],[5,2],[6,5],[10,13],[17,14],[8,11],[4,1],[10,1],[7,3],[7,3],[5,6],[5,8],[3,7],[2,3],[2,2],[8,6],[34,37],[9,15],[5,12],[1,6],[1,12],[1,2],[2,2],[22,10],[5,1],[6,-1],[27,-12],[6,-1],[31,5],[34,0],[22,5],[27,8],[5,3],[4,4],[12,16],[36,34],[3,5],[1,0],[9,-1],[2,0],[3,1],[8,5],[4,3],[10,16],[4,9],[-2,7],[-3,6],[-3,8],[1,7],[24,52],[27,32],[3,4],[1,5],[3,8],[3,2],[3,3],[7,3],[10,1],[2,1],[11,10],[3,5],[2,1],[2,0],[21,-6],[56,-4],[6,2],[3,6],[0,18],[2,7],[6,10],[1,3],[0,4],[-3,9],[13,3],[3,-1],[2,-1],[1,0],[8,7],[2,0],[2,-3],[4,-11],[3,-4],[8,-5],[4,-1],[16,2],[3,2],[3,4],[4,10],[3,4],[4,3],[4,2],[8,2],[5,1],[13,11],[3,1],[9,1],[2,1],[6,6],[5,4],[5,2],[6,0],[5,-1],[6,-2],[10,-6],[7,-1],[13,0],[2,1],[5,3],[2,1],[6,-2],[6,-4],[6,-2],[6,4],[6,13],[4,5],[5,2],[3,-2],[1,-4],[1,-4],[2,-4],[3,-1],[2,2],[4,5],[3,1],[3,-4],[5,-11],[4,-4],[4,-2],[42,-13],[7,1],[15,3],[8,1],[12,-3],[4,0],[4,-1],[5,-5],[4,-1],[3,1],[3,2],[4,3],[2,3],[3,5],[2,3],[2,1],[3,-2],[3,0],[3,2],[3,4],[3,5],[2,2],[1,2],[0,2],[-1,3],[-2,4],[-1,3],[1,4],[2,9],[0,5],[0,2],[0,2],[0,1],[-1,1],[0,1],[-1,1],[-1,1],[0,1],[0,3],[0,2],[1,2],[1,3],[0,2],[-2,1],[-3,0],[-2,0],[-1,2],[-1,2],[0,2],[-1,3],[-3,3],[-5,6],[-2,4],[-1,1],[0,2],[-1,3],[0,16],[-1,5],[-4,9],[-5,8],[-11,15],[-7,6],[-10,3],[-2,3],[-2,5],[-2,5],[-2,3],[-26,26],[-6,2],[1,3],[4,7],[1,2],[-2,4],[-3,2],[-6,2],[-15,7],[-4,3],[-2,3],[-1,4],[-2,19],[-1,5],[-3,4],[-3,3],[-15,6],[-33,16],[-9,10],[-18,32],[-10,14],[-11,6],[-32,2],[-4,1],[-8,6],[-4,1],[-10,0],[-9,-2],[-11,-5],[-4,-1],[-26,2],[-8,-3],[-4,-4],[-35,-51],[-9,-8],[-6,-7],[-6,-12],[-6,-9],[-7,1],[-41,41],[-3,3],[-13,5],[-19,9],[-5,1],[-12,-1],[-41,-10],[-11,0],[-31,7],[-10,-3],[-16,-12],[-18,-25],[-10,-7],[-10,6],[-41,48],[-4,6],[-2,6],[-3,16],[-5,34],[0,2],[4,5],[38,20],[5,5],[1,8],[-3,53],[0,5],[0,5],[2,5],[37,63],[3,8],[0,5],[-2,9],[1,5],[34,82],[34,82],[3,7],[34,81],[6,-6],[55,-34],[32,-13],[36,-2],[47,-27],[2,-1],[1,1],[3,1],[1,0],[2,-1],[1,-1],[2,0],[1,0],[6,1],[3,9],[2,1],[4,4],[14,8],[6,5],[3,2],[3,4],[3,4],[10,5],[3,2],[3,4],[3,4],[1,5],[2,0],[10,10],[4,2],[4,1],[3,2],[2,7],[2,2],[10,2],[3,2],[1,2],[1,5],[1,2],[1,2],[4,5],[5,4],[3,3],[4,2],[8,7],[4,2],[7,-4],[5,1],[8,4],[16,3],[2,1],[2,1],[1,1],[2,0],[2,-1],[3,-1],[4,-1],[17,2],[16,6],[3,2],[2,2],[5,6],[8,9],[2,3],[3,4],[1,4],[1,5],[1,11],[0,3],[-1,2],[-2,3],[0,1],[0,16],[1,4],[2,2],[2,1],[1,2],[-1,2],[-1,6],[-1,1],[-3,1],[-3,1],[-10,-3],[-1,1],[-2,2],[-2,1],[-1,0],[-4,-1],[-3,1],[1,3],[-1,2],[-5,0],[-1,2],[0,3],[2,3],[1,1],[2,1],[5,0],[2,0],[1,3],[5,6],[2,8],[1,1],[0,2],[0,1],[-1,0],[-1,1],[0,2],[0,1],[1,2],[1,1],[4,16],[-1,2],[2,3],[1,1],[2,1],[2,1],[2,2],[1,3],[1,2],[2,0],[2,2],[1,6],[2,1],[2,1],[2,1],[4,2],[3,3],[6,11],[1,3],[2,11],[0,6],[-3,6],[3,3],[2,5],[0,5],[-2,5],[9,11],[4,6],[2,2],[12,10],[5,6],[0,7],[3,0],[2,2],[1,3],[1,5],[0,3],[1,4],[1,4],[-1,4],[1,0],[1,1],[2,3],[-4,7],[0,4],[2,1],[5,-1],[2,0],[0,2],[-1,3],[0,3],[1,6],[1,2],[1,1],[4,1],[1,2],[4,7],[2,2],[3,2],[0,5],[-2,5],[-1,4],[8,2],[2,1],[0,2],[1,2],[1,3],[2,5],[0,3],[-1,3],[1,6],[2,4],[8,10],[2,3],[0,7],[1,5],[1,5],[3,8],[3,4],[1,1],[2,1],[5,-1],[2,1],[3,4],[22,25],[9,6],[6,7],[3,2],[4,1],[2,1],[1,2],[1,3],[1,2],[2,2],[1,0],[2,0],[2,0],[3,2],[1,2],[1,2],[2,2],[2,0],[7,0],[4,1],[2,4],[4,9],[4,5],[0,3],[1,3],[-1,3],[-1,3],[-1,3],[0,4],[2,3],[2,1],[2,1],[2,2],[1,3],[3,5],[2,3],[-1,2],[-1,2],[0,2],[1,2],[1,3],[0,1],[-1,0],[-1,2],[0,2],[-3,4],[0,2],[0,3],[1,4],[0,3],[-3,5],[-14,11],[-3,7],[0,3],[-1,1],[0,2],[0,2],[1,1],[1,2],[2,1],[1,3],[0,4],[4,7],[1,4],[0,8],[0,1],[2,4],[0,2],[0,3],[1,3],[3,6],[-3,2],[-9,5],[-7,2],[-12,7],[-7,4],[-5,5],[-2,1],[-3,-1],[-7,-4],[-4,-1],[-17,-2],[-3,-1],[-7,-4],[-4,-2],[-10,0],[-6,2],[-4,3],[-2,3],[-1,3],[-1,4],[1,5],[0,3],[3,6],[0,3],[-2,5],[1,3],[-2,7],[5,6],[15,7],[3,2],[7,7],[6,2],[2,2],[2,2],[1,2],[1,3],[2,2],[4,2],[1,2],[1,2],[1,2],[1,3],[1,1],[5,5],[10,14],[12,12],[15,11],[6,7],[10,16],[6,6],[12,8],[1,2],[-1,5],[3,3],[5,1],[30,3],[16,-4],[8,1],[8,2],[8,4],[4,5],[2,1],[3,0],[8,-2],[1,0]],[[7815,9932],[8,1],[8,3],[22,14],[40,12],[22,0],[10,0],[4,2],[6,6],[4,2],[9,2],[11,5],[4,1],[3,-2],[4,-3],[3,-5],[4,-2],[4,0],[7,3],[64,3],[23,9],[25,1],[1,1],[3,4],[4,2],[5,6],[3,2],[4,0],[5,-1],[5,-1],[5,-4],[2,-1],[6,-1],[2,-1],[7,-4],[1,-1],[1,3],[0,4],[2,5],[3,0],[3,-2],[2,-4],[-1,-1],[-1,-1],[-2,-3],[3,-2],[3,3],[5,9],[4,1],[4,-3],[6,-8],[4,-3],[5,-1],[20,-3],[4,-1],[15,-9],[3,-4],[4,-7],[1,-2],[2,-2],[4,-1],[2,-2],[5,-7],[4,-2],[3,1],[3,3],[4,3],[4,1],[4,-1],[3,-1],[4,-3],[3,-4],[2,-6],[3,-5],[0,-1],[3,-9],[3,-3],[4,-4],[4,-2],[7,-2],[8,-4],[4,-1],[19,0],[2,0],[4,-3],[2,-1],[1,-3],[0,-2],[0,-2],[0,-2],[4,-3],[4,-1],[9,2],[3,-2],[5,-9],[3,-1],[5,2],[-1,5],[-2,5],[0,5],[3,3],[3,3],[17,4],[9,0],[8,-1],[50,-30],[4,-1],[3,-2],[4,-8],[4,-2],[10,4],[6,1],[3,-4],[2,-6],[4,-5],[9,-7],[-1,-7],[-1,-2],[-1,-1],[-4,-1],[-1,-1],[-3,-4],[-3,-5],[0,-4],[4,-2],[4,1],[7,4],[16,3],[4,-2],[1,-3],[-1,-2],[0,-2],[0,-3],[0,-2],[1,-2],[18,-22],[2,0],[3,4],[2,1],[8,0],[3,-2],[3,-6],[-6,-2],[-3,-2],[-2,-3],[4,-8],[1,-4],[-2,-2],[-4,-1],[-5,-1],[-3,-3],[-1,-6],[0,-6],[3,-6],[3,-5],[3,0],[1,0],[2,1],[2,1],[0,3],[1,2],[3,0],[14,-12],[7,-4],[-1,-6],[-1,-6],[0,-6],[2,0],[5,0],[5,-1],[2,-3],[1,-4],[3,-5],[5,-7],[1,-3],[-1,-6],[-4,-11],[4,-3],[13,-4],[3,-3],[-8,-3],[-13,-10],[0,-4],[1,-3],[2,-2],[3,0],[17,-7],[7,-2],[6,-2],[4,-6],[-1,-4],[-5,-14],[-1,-3],[0,-2],[-4,-1],[-4,-2],[-3,-3],[-1,-6],[1,-4],[33,-64],[2,-2],[9,-2],[0,-2],[2,-2],[0,-2],[0,-1],[-2,-2],[-1,-1],[1,-6],[1,-4],[0,-4],[-3,-5],[-5,-7],[1,-3],[4,-4],[12,-4],[5,-3],[4,-7],[-5,-9],[-1,-4],[-1,-6],[2,-5],[4,-2],[8,0],[3,-1],[1,-2],[2,-2],[0,-4],[-2,-4],[-3,-2],[-3,0],[-3,-1],[-3,-3],[-2,-4],[-1,-4],[0,-5],[3,-7],[3,-3],[4,0],[4,5],[0,3],[-1,2],[0,1],[0,2],[1,2],[1,2],[1,1],[2,1],[3,1],[3,0],[3,-1],[1,-4],[0,-3],[-2,-4],[-3,-6],[-5,-7],[-1,-3],[-1,-4],[0,-4],[0,-7],[1,-5],[2,-10],[0,-6],[1,-6],[3,-4],[5,-5],[9,-15],[2,-1],[11,-10],[5,-7],[13,-31],[3,-3],[4,-3],[3,-4],[2,-5],[0,-2],[-1,-2],[0,-2],[-1,-1],[0,-3],[0,-1],[0,-2],[1,-2],[1,-2],[5,-8],[3,-2],[2,-6],[1,-7],[0,-7],[-1,-2],[-4,-5],[-2,-3],[-2,-7],[-1,-3],[-2,-3],[2,-4],[8,-7],[1,-3],[0,-5],[0,-3],[-1,-3],[-1,-2],[-1,-3],[-1,-3],[0,-4],[3,-7],[9,-6],[28,-15],[2,-3],[0,-6],[-1,-5],[-1,-5],[-1,-5],[-11,-18],[-3,-10],[1,-13],[5,-9],[2,-5],[-1,-4],[-1,-4],[-2,-6],[-1,-7],[1,-5],[5,-9],[17,-6],[6,-7],[1,-6],[0,-5],[0,-5],[2,-5],[4,-3],[7,-4],[4,-3],[3,-4],[3,-4],[4,-2],[9,-1],[2,0],[2,1],[1,3],[1,1],[2,1],[2,0],[4,-2],[3,-3],[6,-7],[3,-3],[4,-2],[17,0],[5,0],[3,3],[4,2],[8,-4],[4,1],[2,2],[2,4],[1,1],[2,1],[27,3],[13,-4],[1,1],[5,8],[1,1],[2,-2],[8,-5],[4,-2],[5,-1],[1,0],[1,-2],[0,-3],[0,-3],[0,-3],[-2,-1],[-2,-1],[-1,-1],[-3,-5],[0,-5],[1,-3],[5,-2],[3,1],[7,3],[5,0],[3,-2],[8,-6],[8,-2],[3,-3],[6,-14],[2,-4],[4,-3],[4,-1],[4,2],[5,7],[4,2],[4,0],[5,-1],[4,-3],[7,-8],[4,-1],[4,3],[1,5],[0,11],[1,4],[4,1],[9,-1],[4,-1],[4,-3],[2,-4],[2,-3],[0,-4],[0,-13],[2,-5],[2,-3],[3,-3],[8,-1],[8,1],[7,-1],[4,-10],[0,-9],[1,-2],[2,-3],[3,-2],[8,-1],[3,-2],[1,-3],[-1,-12],[3,-1],[4,-2],[6,-4],[-2,-6],[1,-5],[2,-4],[8,-3],[3,-3],[7,-8],[27,-24],[8,-5],[7,2],[7,4],[8,3],[9,0],[4,-2],[2,-3],[1,-4],[5,-2],[4,-1],[4,1],[10,5],[4,0],[4,-1],[0,-4],[-1,-4],[-7,-12],[-15,-42],[-1,-5],[2,-5],[4,-3],[4,-1],[3,-2],[2,-4],[0,-3],[-1,-5],[0,-3],[1,-3],[1,-5],[0,-2],[2,-1],[13,6],[5,-1],[2,-3],[0,-5],[-2,-5],[-1,-5],[0,-5],[4,-7],[1,-5],[1,-2],[2,-2],[2,-2],[2,-1],[1,-1],[1,-4],[0,-7],[-1,-3],[-8,-10],[0,-2],[-1,-3],[-2,-9],[-1,-2],[-3,-1],[-4,-4],[-5,-8],[-2,-5],[1,-3],[1,-5],[0,-6],[1,-3],[29,-33],[8,-11],[6,-17],[0,-8],[-1,-10],[1,-9],[4,-4],[3,-1],[6,-5],[4,-1],[6,0],[3,0],[4,1],[7,4],[7,4],[34,8],[3,0],[6,-2],[5,-3],[5,-5],[7,-9],[1,-1],[1,-1],[2,0],[1,0],[2,1],[1,0],[9,8],[3,0],[13,-4],[3,0],[6,1],[3,0],[2,-1],[5,-3],[1,0],[2,0],[1,0],[2,1],[4,4],[1,1],[10,2],[10,-1],[5,-2],[7,1],[5,1],[2,1],[8,7],[2,1],[11,2],[6,0],[5,-2],[9,-5],[4,-1],[8,0],[1,1],[2,2],[2,1],[3,5],[1,2],[0,2],[0,2],[-1,5],[0,2],[0,1],[1,2],[4,7],[8,11],[2,3],[1,4],[0,2],[-1,2],[-1,1],[0,2],[0,2],[0,2],[1,2],[1,1],[2,2],[3,1],[3,0],[2,-2],[4,-4],[2,-1],[3,0],[3,1],[2,1],[2,3],[3,6],[2,3],[13,9],[0,2],[13,6],[2,2],[1,1],[0,1],[1,1],[1,2],[1,4],[3,2],[2,2],[16,5],[6,0],[6,-2],[2,-1],[3,-3],[2,-1],[3,0],[9,2],[3,0],[3,-1],[6,-3],[2,-1],[10,2],[3,1],[3,3],[2,6],[1,3],[1,3],[1,2],[2,2],[3,1],[5,2],[3,2],[2,3],[4,8],[2,3],[3,2],[9,0],[3,1],[6,4],[3,1],[2,0],[9,0],[5,1],[3,2],[7,8],[2,2],[3,1],[10,2],[14,7],[27,4],[3,1],[3,-3],[8,-6],[3,-2],[3,0],[3,1],[3,2],[2,2],[5,-11],[7,-8],[8,-5],[6,-1],[3,0],[-2,-3],[-3,-8],[-1,-23],[-3,-7],[-2,-1],[-10,-11],[-4,-6],[-1,-8],[1,-6],[6,-11],[-2,-5],[2,-4],[4,-3],[3,-1],[2,-2],[2,-6],[1,-7],[0,-4],[4,-8],[12,-14],[-1,-6],[1,-2],[-8,-13],[-2,-1],[-3,-2],[-1,-5],[0,-6],[-1,-6],[-2,-3],[-7,-7],[-2,-3],[-2,-2],[-7,-13],[0,-2],[-4,-2],[-5,-7],[-3,-2],[-2,-1],[-6,1],[-3,2],[-3,0],[-2,-2],[-1,0],[-4,0],[-4,-1],[-3,-2],[-3,-3],[-3,-3],[-3,-8],[-2,-3],[-7,-5],[-3,-2],[-2,-5],[0,-6],[-2,-4],[-1,-4],[1,-5],[1,-2],[3,-5],[1,0],[1,-2],[0,-3],[-1,-5],[1,-5],[3,-5],[2,-5],[-2,-6],[-3,-3],[-8,-1],[-4,-2],[-2,-4],[-4,-15],[-1,-2],[-1,-1],[-1,-2],[0,-4],[0,-10],[-1,-6],[-7,-19],[-1,-4],[1,-3],[3,-5],[1,-4],[0,-5],[-3,-12],[-2,-12],[-1,-5],[-2,-2],[-1,-3],[-4,-4],[-7,-5],[-3,-5],[-1,-3],[0,-6],[-1,-3],[-7,-13],[0,-2],[0,-4],[1,-3],[1,-1],[2,0],[1,-1],[3,-3],[4,-4],[2,-5],[-1,-5],[-8,-5],[-3,-4],[2,-5],[2,2],[2,0],[2,-1],[1,-3],[-4,-3],[0,-3],[2,-3],[0,-5],[-2,-2],[-4,-2],[-2,-2],[1,-3],[-1,-2],[-3,-5],[-1,-1],[-2,1],[-1,4],[-1,1],[-2,-1],[-1,-2],[-1,-3],[-1,-2],[-2,-3],[-4,-5],[-3,-2],[-4,0],[-1,-2],[1,-7],[4,-10],[0,-4],[-4,-11],[-6,-23],[-2,-2],[-3,3],[-2,0],[-1,-2],[-1,-3],[0,-4],[0,-1],[-3,-3],[0,-1],[0,-1],[0,-1],[-1,-1],[-2,1],[-1,1],[0,1],[-1,1],[-4,0],[-3,-3],[-2,-4],[0,-7],[-1,-1],[-1,-1],[-2,-2],[0,-4],[1,-2],[4,-3],[1,-2],[-4,-3],[-3,-10],[-4,-5],[1,-3],[4,-2],[2,-2],[1,-3],[-2,-3],[-4,-4],[1,-1],[1,-3],[1,-1],[-3,-1],[-2,-1],[-3,-1],[-2,-4],[2,-6],[-2,-1],[-6,-1],[-2,-1],[-6,-5],[-5,-2],[-4,-3],[-5,-2],[-7,-3],[-2,-2],[-1,-3],[-7,-15],[-1,-4],[-1,-5],[0,-4],[-4,-26],[1,-6],[-2,-6],[2,-7],[2,-9],[1,-7],[0,-4],[-1,-2],[-1,-3],[-3,-4],[-4,-4],[-4,-3],[-4,-6],[-5,-2],[-4,-6],[-2,-1],[-6,1],[-13,8],[-71,24],[-71,23],[-3,1],[-3,3],[-3,3],[-2,3],[-2,5],[-2,5],[-1,4],[-3,3],[-6,-1],[-5,-8],[-10,-23],[-2,-2],[-8,0],[-3,-1],[-3,-2],[-2,-3],[-2,-6],[0,-4],[3,-6],[0,-6],[-2,-3],[-23,-25],[-1,-1],[-2,-2],[-1,-4],[-2,-2],[-2,-1],[-11,2],[-4,0],[-2,-1],[-3,-2],[-6,-7],[-3,-2],[-11,-5],[-3,0],[-3,1],[-2,2],[-3,2],[-2,-1],[-7,-2],[-1,-1],[-1,-2],[0,-4],[0,-2],[-3,-4],[-2,-1],[-3,-1],[-3,0],[-7,-3],[0,-4],[7,-14],[6,-4],[2,-3],[7,-17],[16,-83],[17,-83],[-1,-3],[-2,-1],[-2,-3],[-3,-3],[-1,-3],[0,-4],[-1,-4],[0,-4],[2,-9],[0,-5],[-4,-13],[-3,-16],[-1,-5],[1,-14],[0,-7],[0,-2],[0,-2],[2,-5],[0,-3],[0,-2],[-1,-5],[0,-1],[0,-3],[2,-5],[0,-2],[-1,-3],[-4,-7],[0,-4],[1,-3],[14,-14]],[[6147,1],[-2,-1],[0,1],[0,2],[1,1],[1,0],[0,-1],[0,-1],[0,-1]],[[6238,71],[-2,0],[0,1],[2,0],[0,-1]],[[6235,181],[0,-1],[-1,1],[1,0]],[[6213,199],[-1,-1],[-1,1],[0,1],[1,1],[1,-1],[0,-1]],[[6225,213],[-1,-1],[0,1],[1,0]],[[6397,234],[-1,0],[-1,2],[1,0],[1,-2]],[[6332,279],[-1,-1],[-1,1],[0,1],[0,1],[1,0],[0,-1],[1,-1]],[[6332,305],[0,-1],[-1,0],[0,1],[0,1],[1,0],[0,-1]]],transform:{scale:[.006117644072407241,.0037797847568756915],translate:[73.60225630700012,15.775376695000048]}},k.prototype.latLngToXY=function(a,b){return this.projection([b,a])
+},k.prototype.addLayer=function(a,b,c){var d;return d=c?this.svg.insert("g",":first-child"):this.svg.append("g"),d.attr("id",b||"").attr("class",a||"")},k.prototype.updateChoropleth=function(a){var b=this.svg;for(var c in a)if(a.hasOwnProperty(c)){var d,e=a[c];if(!c)continue;if(d="string"==typeof e?e:"string"==typeof e.color?e.color:this.options.fills[e.fillKey],e===Object(e)){this.options.data[c]=j(e,this.options.data[c]||{});{this.svg.select("."+c).attr("data-info",JSON.stringify(this.options.data[c]))}}b.selectAll("."+c).transition().style("fill",d)}},k.prototype.updatePopup=function(a,b,c){var d=this;a.on("mousemove",null),a.on("mousemove",function(){var e=l.mouse(this);l.select(d.svg[0][0].parentNode).select(".datamaps-hoverover").style("top",e[1]+30+"px").html(function(){var d=JSON.parse(a.attr("data-info"));return c.popupTemplate(b,d)}).style("left",e[0]+"px")}),l.select(d.svg[0][0].parentNode).select(".datamaps-hoverover").style("display","block")},k.prototype.addPlugin=function(a,b){"undefined"==typeof k.prototype[a]&&(k.prototype[a]=function(c,d,e,f){var g;"undefined"==typeof f&&(f=!1),"function"==typeof d&&(e=d,d=void 0),d=j(d||{},n[a+"Config"]),!f&&this.options[a+"Layer"]?(g=this.options[a+"Layer"],d=d||this.options[a+"Options"]):(g=this.addLayer(a),this.options[a+"Layer"]=g,this.options[a+"Options"]=d),b.apply(this,[g,c,d]),e&&e(g)})},"function"==typeof define&&define.amd?define("datamaps",function(a){return l=a("d3"),m=a("topojson"),k}):window.Datamap=window.Datamaps=k,window.jQuery&&(window.jQuery.fn.datamaps=function(a,b){a=a||{},a.element=this[0];var c=new k(a);return"function"==typeof b&&b(c,a),this})}();
\ No newline at end of file
diff --git a/learn/map/datamaps.world.min.js b/learn/map/datamaps.world.min.js
new file mode 100755 (executable)
index 0000000..3e140be
--- /dev/null
@@ -0,0 +1,2 @@
+!function(){function a(a,b,c){"undefined"==typeof c&&(c=b,optionsValues=void 0);var d="undefined"!=typeof a?a:b;if("undefined"==typeof d)return null;if("function"==typeof d){var e=[c];return c.geography&&(e=[c.geography,c.data]),d.apply(null,e)}return d}function b(a,b,c){return this.svg=n.select(a).append("svg").attr("width",c||a.offsetWidth).attr("data-width",c||a.offsetWidth).attr("class","datamap").attr("height",b||a.offsetHeight).style("overflow","hidden"),this.options.responsive&&(n.select(this.options.element).style({position:"relative","padding-bottom":"60%"}),n.select(this.options.element).select("svg").style({position:"absolute",width:"100%",height:"100%"}),n.select(this.options.element).select("svg").select("g").selectAll("path").style("vector-effect","non-scaling-stroke")),this.svg}function c(a,b){var c,d,e=b.width||a.offsetWidth,f=b.height||a.offsetHeight,g=this.svg;return b&&"undefined"==typeof b.scope&&(b.scope="world"),"usa"===b.scope?c=n.geo.albersUsa().scale(e).translate([e/2,f/2]):"world"===b.scope&&(c=n.geo[b.projection]().scale((e+1)/2/Math.PI).translate([e/2,f/("mercator"===b.projection?1.45:1.8)])),"orthographic"===b.projection&&(g.append("defs").append("path").datum({type:"Sphere"}).attr("id","sphere").attr("d",d),g.append("use").attr("class","stroke").attr("xlink:href","#sphere"),g.append("use").attr("class","fill").attr("xlink:href","#sphere"),c.scale(250).clipAngle(90).rotate(b.projectionConfig.rotation)),d=n.geo.path().projection(c),{path:d,projection:c}}function d(){n.select(".datamaps-style-block").empty()&&n.select("head").append("style").attr("class","datamaps-style-block").html('.datamap path.datamaps-graticule { fill: none; stroke: #777; stroke-width: 0.5px; stroke-opacity: .5; pointer-events: none; } .datamap .labels {pointer-events: none;} .datamap path {stroke: #FFFFFF; stroke-width: 1px;} .datamaps-legend dt, .datamaps-legend dd { float: left; margin: 0 3px 0 0;} .datamaps-legend dd {width: 20px; margin-right: 6px; border-radius: 3px;} .datamaps-legend {padding-bottom: 20px; z-index: 1001; position: absolute; left: 4px; font-size: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;} .datamaps-hoverover {display: none; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .hoverinfo {padding: 4px; border-radius: 1px; background-color: #FFF; box-shadow: 1px 1px 5px #CCC; font-size: 12px; border: 1px solid #CCC; } .hoverinfo hr {border:1px dotted #CCC; }')}function e(b){var c=this.options.fills,d=this.options.data||{},e=this.options.geographyConfig,f=this.svg.select("g.datamaps-subunits");f.empty()&&(f=this.addLayer("datamaps-subunits",null,!0));var g=o.feature(b,b.objects[this.options.scope]).features;e.hideAntarctica&&(g=g.filter(function(a){return"ATA"!==a.id}));var h=f.selectAll("path.datamaps-subunit").data(g);h.enter().append("path").attr("d",this.path).attr("class",function(a){return"datamaps-subunit "+a.id}).attr("data-info",function(a){return JSON.stringify(d[a.id])}).style("fill",function(b){var e,f=d[b.id];return f&&f.fillKey&&(e=c[a(f.fillKey,{data:d[b.id],geography:b})]),"undefined"==typeof e&&(e=a(f&&f.fillColor,c.defaultFill,{data:d[b.id],geography:b})),e}).style("stroke-width",e.borderWidth).style("stroke",e.borderColor)}function f(){function b(){this.parentNode.appendChild(this)}var c=this.svg,d=this,e=this.options.geographyConfig;(e.highlightOnHover||e.popupOnHover)&&c.selectAll(".datamaps-subunit").on("mouseover",function(f){var g=n.select(this),h=d.options.data[f.id]||{};if(e.highlightOnHover){var i={fill:g.style("fill"),stroke:g.style("stroke"),"stroke-width":g.style("stroke-width"),"fill-opacity":g.style("fill-opacity")};g.style("fill",a(h.highlightFillColor,e.highlightFillColor,h)).style("stroke",a(h.highlightBorderColor,e.highlightBorderColor,h)).style("stroke-width",a(h.highlightBorderWidth,e.highlightBorderWidth,h)).style("fill-opacity",a(h.highlightFillOpacity,e.highlightFillOpacity,h)).attr("data-previousAttributes",JSON.stringify(i)),/((MSIE)|(Trident))/.test||b.call(this)}e.popupOnHover&&d.updatePopup(g,f,e,c)}).on("mouseout",function(){var a=n.select(this);if(e.highlightOnHover){var b=JSON.parse(a.attr("data-previousAttributes"));for(var c in b)a.style(c,b[c])}a.on("mousemove",null),n.selectAll(".datamaps-hoverover").style("display","none")})}function g(a,b){if(b=b||{},this.options.fills){var c="<dl>",d="";b.legendTitle&&(c="<h2>"+b.legendTitle+"</h2>"+c);for(var e in this.options.fills){if("defaultFill"===e){if(!b.defaultFillName)continue;d=b.defaultFillName}else d=b.labels&&b.labels[e]?b.labels[e]:e+": ";c+="<dt>"+d+"</dt>",c+='<dd style="background-color:'+this.options.fills[e]+'">&nbsp;</dd>'}c+="</dl>",n.select(this.options.element).append("div").attr("class","datamaps-legend").html(c)}}function h(){var a=n.geo.graticule();this.svg.insert("path",".datamaps-subunits").datum(a).attr("class","datamaps-graticule").attr("d",this.path)}function i(b,c,d){var e=this;if(this.svg,!c||c&&!c.slice)throw"Datamaps Error - arcs must be an array";for(var f=0;f<c.length;f++)c[f]=l(c[f],c[f].options),delete c[f].options;"undefined"==typeof d&&(d=p.arcConfig);var g=b.selectAll("path.datamaps-arc").data(c,JSON.stringify),h=n.geo.path().projection(e.projection);g.enter().append("svg:path").attr("class","datamaps-arc").style("stroke-linecap","round").style("stroke",function(b){return a(b.strokeColor,d.strokeColor,b)}).style("fill","none").style("stroke-width",function(b){return a(b.strokeWidth,d.strokeWidth,b)}).attr("d",function(b){var c=e.latLngToXY(a(b.origin.latitude,b),a(b.origin.longitude,b)),f=e.latLngToXY(a(b.destination.latitude,b),a(b.destination.longitude,b)),g=[(c[0]+f[0])/2,(c[1]+f[1])/2];if(d.greatArc){var i=n.geo.greatArc().source(function(b){return[a(b.origin.longitude,b),a(b.origin.latitude,b)]}).target(function(b){return[a(b.destination.longitude,b),a(b.destination.latitude,b)]});return h(i(b))}var j=a(b.arcSharpness,d.arcSharpness,b);return"M"+c[0]+","+c[1]+"S"+(g[0]+50*j)+","+(g[1]-75*j)+","+f[0]+","+f[1]}).transition().delay(100).style("fill",function(b){var c=this.getTotalLength();return this.style.transition=this.style.WebkitTransition="none",this.style.strokeDasharray=c+" "+c,this.style.strokeDashoffset=c,this.getBoundingClientRect(),this.style.transition=this.style.WebkitTransition="stroke-dashoffset "+a(b.animationSpeed,d.animationSpeed,b)+"ms ease-out",this.style.strokeDashoffset="0","none"}),g.exit().transition().style("opacity",0).remove()}function j(a,b){var c=this;b=b||{};var d=this.projection([-67.707617,42.722131]);this.svg.selectAll(".datamaps-subunit").attr("data-foo",function(e){var f=c.path.centroid(e),g=7.5,h=5;["FL","KY","MI"].indexOf(e.id)>-1&&(g=-2.5),"NY"===e.id&&(g=-1),"MI"===e.id&&(h=18),"LA"===e.id&&(g=13);var i,j;i=f[0]-g,j=f[1]+h;var k=["VT","NH","MA","RI","CT","NJ","DE","MD","DC"].indexOf(e.id);if(k>-1){var l=d[1];i=d[0],j=l+k*(2+(b.fontSize||12)),a.append("line").attr("x1",i-3).attr("y1",j-5).attr("x2",f[0]).attr("y2",f[1]).style("stroke",b.labelColor||"#000").style("stroke-width",b.lineWidth||1)}return a.append("text").attr("x",i).attr("y",j).style("font-size",(b.fontSize||10)+"px").style("font-family",b.fontFamily||"Verdana").style("fill",b.labelColor||"#000").text(e.id),"bar"})}function k(b,c,d){function e(a){return"undefined"!=typeof a&&"undefined"!=typeof a.latitude&&"undefined"!=typeof a.longitude}var f=this,g=this.options.fills,h=this.svg;if(!c||c&&!c.slice)throw"Datamaps Error - bubbles must be an array";var i=b.selectAll("circle.datamaps-bubble").data(c,JSON.stringify);i.enter().append("svg:circle").attr("class","datamaps-bubble").attr("cx",function(a){var b;return e(a)?b=f.latLngToXY(a.latitude,a.longitude):a.centered&&(b=f.path.centroid(h.select("path."+a.centered).data()[0])),b?b[0]:void 0}).attr("cy",function(a){var b;return e(a)?b=f.latLngToXY(a.latitude,a.longitude):a.centered&&(b=f.path.centroid(h.select("path."+a.centered).data()[0])),b?b[1]:void 0}).attr("r",0).attr("data-info",function(a){return JSON.stringify(a)}).style("stroke",function(b){return a(b.borderColor,d.borderColor,b)}).style("stroke-width",function(b){return a(b.borderWidth,d.borderWidth,b)}).style("fill-opacity",function(b){return a(b.fillOpacity,d.fillOpacity,b)}).style("fill",function(b){var c=g[a(b.fillKey,d.fillKey,b)];return c||g.defaultFill}).on("mouseover",function(b){var c=n.select(this);if(d.highlightOnHover){var e={fill:c.style("fill"),stroke:c.style("stroke"),"stroke-width":c.style("stroke-width"),"fill-opacity":c.style("fill-opacity")};c.style("fill",a(b.highlightFillColor,d.highlightFillColor,b)).style("stroke",a(b.highlightBorderColor,d.highlightBorderColor,b)).style("stroke-width",a(b.highlightBorderWidth,d.highlightBorderWidth,b)).style("fill-opacity",a(b.highlightFillOpacity,d.highlightFillOpacity,b)).attr("data-previousAttributes",JSON.stringify(e))}d.popupOnHover&&f.updatePopup(c,b,d,h)}).on("mouseout",function(){var a=n.select(this);if(d.highlightOnHover){var b=JSON.parse(a.attr("data-previousAttributes"));for(var c in b)a.style(c,b[c])}n.selectAll(".datamaps-hoverover").style("display","none")}).transition().duration(400).attr("r",function(b){return a(b.radius,d.radius,b)}),i.exit().transition().delay(d.exitDelay).attr("r",0).remove()}function l(a){return Array.prototype.slice.call(arguments,1).forEach(function(b){if(b)for(var c in b)null==a[c]&&(a[c]=b[c])}),a}function m(a){if("undefined"==typeof n||"undefined"==typeof o)throw new Error("Include d3.js (v3.0.3 or greater) and topojson on this page before creating a new map");return this.options=l(a,p),this.options.geographyConfig=l(a.geographyConfig,p.geographyConfig),this.options.projectionConfig=l(a.projectionConfig,p.projectionConfig),this.options.bubblesConfig=l(a.bubblesConfig,p.bubblesConfig),this.options.arcConfig=l(a.arcConfig,p.arcConfig),n.select(this.options.element).select("svg").length>0&&b.call(this,this.options.element,this.options.height,this.options.width),this.addPlugin("bubbles",k),this.addPlugin("legend",g),this.addPlugin("arc",i),this.addPlugin("labels",j),this.addPlugin("graticule",h),this.options.disableDefaultStyles||d(),this.draw()}var n=window.d3,o=window.topojson,p={scope:"world",responsive:!1,setProjection:c,projection:"equirectangular",dataType:"json",data:{},done:function(){},fills:{defaultFill:"#ABDDA4"},geographyConfig:{dataUrl:null,hideAntarctica:!0,borderWidth:1,borderColor:"#FDFDFD",popupTemplate:function(a){return'<div class="hoverinfo"><strong>'+a.properties.name+"</strong></div>"},popupOnHover:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2},projectionConfig:{rotation:[97,0]},bubblesConfig:{borderWidth:2,borderColor:"#FFFFFF",popupOnHover:!0,radius:null,popupTemplate:function(a,b){return'<div class="hoverinfo"><strong>'+b.name+"</strong></div>"},fillOpacity:.75,animate:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2,highlightFillOpacity:.85,exitDelay:100},arcConfig:{strokeColor:"#DD1C77",strokeWidth:1,arcSharpness:1,animationSpeed:600}};m.prototype.resize=function(){var a=this,b=a.options;if(b.responsive){var c="-webkit-transform"in document.body.style?"-webkit-":"-moz-transform"in document.body.style?"-moz-":"-ms-transform"in document.body.style?"-ms-":"",d=b.element.clientWidth,e=n.select(b.element).select("svg").attr("data-width");n.select(b.element).select("svg").selectAll("g").style(c+"transform","scale("+d/e+")")}},m.prototype.draw=function(){function a(a){b.options.dataUrl&&n[b.options.dataType](b.options.dataUrl,function(a){if("csv"===b.options.dataType&&a&&a.slice){for(var c={},d=0;d<a.length;d++)c[a[d].id]=a[d];a=c}Datamaps.prototype.updateChoropleth.call(b,a)}),e.call(b,a),f.call(b),(b.options.geographyConfig.popupOnHover||b.options.bubblesConfig.popupOnHover)&&(hoverover=n.select(b.options.element).append("div").attr("class","datamaps-hoverover").style("z-index",10001).style("position","absolute")),b.options.done(b)}var b=this,c=b.options,d=c.setProjection.apply(b,[c.element,c]);return this.path=d.path,this.projection=d.projection,c.geographyConfig.dataUrl?n.json(c.geographyConfig.dataUrl,function(c,d){if(c)throw new Error(c);b.customTopo=d,a(d)}):a(this[c.scope+"Topo"]||c.geographyConfig.dataJson),this},m.prototype.worldTopo={type:"Topology",objects:{world:{type:"GeometryCollection",geometries:[{type:"Polygon",properties:{name:"Afghanistan"},id:"AFG",arcs:[[0,1,2,3,4,5]]},{type:"MultiPolygon",properties:{name:"Angola"},id:"AGO",arcs:[[[6,7,8,9]],[[10,11,12]]]},{type:"Polygon",properties:{name:"Albania"},id:"ALB",arcs:[[13,14,15,16,17]]},{type:"Polygon",properties:{name:"United Arab Emirates"},id:"ARE",arcs:[[18,19,20,21,22]]},{type:"MultiPolygon",properties:{name:"Argentina"},id:"ARG",arcs:[[[23,24]],[[25,26,27,28,29,30]]]},{type:"Polygon",properties:{name:"Armenia"},id:"ARM",arcs:[[31,32,33,34,35]]},{type:"MultiPolygon",properties:{name:"Antarctica"},id:"ATA",arcs:[[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42]],[[43]]]},{type:"Polygon",properties:{name:"French Southern and Antarctic Lands"},id:"ATF",arcs:[[44]]},{type:"MultiPolygon",properties:{name:"Australia"},id:"AUS",arcs:[[[45]],[[46]]]},{type:"Polygon",properties:{name:"Austria"},id:"AUT",arcs:[[47,48,49,50,51,52,53]]},{type:"MultiPolygon",properties:{name:"Azerbaijan"},id:"AZE",arcs:[[[54,-35]],[[55,56,-33,57,58]]]},{type:"Polygon",properties:{name:"Burundi"},id:"BDI",arcs:[[59,60,61]]},{type:"Polygon",properties:{name:"Belgium"},id:"BEL",arcs:[[62,63,64,65,66]]},{type:"Polygon",properties:{name:"Benin"},id:"BEN",arcs:[[67,68,69,70,71]]},{type:"Polygon",properties:{name:"Burkina Faso"},id:"BFA",arcs:[[72,73,74,-70,75,76]]},{type:"Polygon",properties:{name:"Bangladesh"},id:"BGD",arcs:[[77,78,79]]},{type:"Polygon",properties:{name:"Bulgaria"},id:"BGR",arcs:[[80,81,82,83,84,85]]},{type:"MultiPolygon",properties:{name:"The Bahamas"},id:"BHS",arcs:[[[86]],[[87]],[[88]]]},{type:"Polygon",properties:{name:"Bosnia and Herzegovina"},id:"BIH",arcs:[[89,90,91]]},{type:"Polygon",properties:{name:"Belarus"},id:"BLR",arcs:[[92,93,94,95,96]]},{type:"Polygon",properties:{name:"Belize"},id:"BLZ",arcs:[[97,98,99]]},{type:"Polygon",properties:{name:"Bolivia"},id:"BOL",arcs:[[100,101,102,103,-31]]},{type:"Polygon",properties:{name:"Brazil"},id:"BRA",arcs:[[-27,104,-103,105,106,107,108,109,110,111,112]]},{type:"Polygon",properties:{name:"Brunei"},id:"BRN",arcs:[[113,114]]},{type:"Polygon",properties:{name:"Bhutan"},id:"BTN",arcs:[[115,116]]},{type:"Polygon",properties:{name:"Botswana"},id:"BWA",arcs:[[117,118,119,120]]},{type:"Polygon",properties:{name:"Central African Republic"},id:"CAF",arcs:[[121,122,123,124,125,126,127]]},{type:"MultiPolygon",properties:{name:"Canada"},id:"CAN",arcs:[[[128]],[[129]],[[130]],[[131]],[[132]],[[133]],[[134]],[[135]],[[136]],[[137]],[[138,139,140,141]],[[142]],[[143]],[[144]],[[145]],[[146]],[[147]],[[148]],[[149]],[[150]],[[151]],[[152]],[[153]],[[154]],[[155]],[[156]],[[157]],[[158]],[[159]],[[160]]]},{type:"Polygon",properties:{name:"Switzerland"},id:"CHE",arcs:[[-51,161,162,163]]},{type:"MultiPolygon",properties:{name:"Chile"},id:"CHL",arcs:[[[-24,164]],[[-30,165,166,-101]]]},{type:"MultiPolygon",properties:{name:"China"},id:"CHN",arcs:[[[167]],[[168,169,170,171,172,173,-117,174,175,176,177,-4,178,179,180,181,182,183]]]},{type:"Polygon",properties:{name:"Ivory Coast"},id:"CIV",arcs:[[184,185,186,187,-73,188]]},{type:"Polygon",properties:{name:"Cameroon"},id:"CMR",arcs:[[189,190,191,192,193,194,-128,195]]},{type:"Polygon",properties:{name:"Democratic Republic of the Congo"},id:"COD",arcs:[[196,197,-60,198,199,-10,200,-13,201,-126,202]]},{type:"Polygon",properties:{name:"Republic of the Congo"},id:"COG",arcs:[[-12,203,204,-196,-127,-202]]},{type:"Polygon",properties:{name:"Colombia"},id:"COL",arcs:[[205,206,207,208,209,-107,210]]},{type:"Polygon",properties:{name:"Costa Rica"},id:"CRI",arcs:[[211,212,213,214]]},{type:"Polygon",properties:{name:"Cuba"},id:"CUB",arcs:[[215]]},{type:"Polygon",properties:{name:"Northern Cyprus"},id:"-99",arcs:[[216,217]]},{type:"Polygon",properties:{name:"Cyprus"},id:"CYP",arcs:[[218,-218]]},{type:"Polygon",properties:{name:"Czech Republic"},id:"CZE",arcs:[[-53,219,220,221]]},{type:"Polygon",properties:{name:"Germany"},id:"DEU",arcs:[[222,223,-220,-52,-164,224,225,-64,226,227,228]]},{type:"Polygon",properties:{name:"Djibouti"},id:"DJI",arcs:[[229,230,231,232]]},{type:"MultiPolygon",properties:{name:"Denmark"},id:"DNK",arcs:[[[233]],[[-229,234]]]},{type:"Polygon",properties:{name:"Dominican Republic"},id:"DOM",arcs:[[235,236]]},{type:"Polygon",properties:{name:"Algeria"},id:"DZA",arcs:[[237,238,239,240,241,242,243,244]]},{type:"Polygon",properties:{name:"Ecuador"},id:"ECU",arcs:[[245,-206,246]]},{type:"Polygon",properties:{name:"Egypt"},id:"EGY",arcs:[[247,248,249,250,251]]},{type:"Polygon",properties:{name:"Eritrea"},id:"ERI",arcs:[[252,253,254,-233]]},{type:"Polygon",properties:{name:"Spain"},id:"ESP",arcs:[[255,256,257,258]]},{type:"Polygon",properties:{name:"Estonia"},id:"EST",arcs:[[259,260,261]]},{type:"Polygon",properties:{name:"Ethiopia"},id:"ETH",arcs:[[-232,262,263,264,265,266,267,-253]]},{type:"Polygon",properties:{name:"Finland"},id:"FIN",arcs:[[268,269,270,271]]},{type:"MultiPolygon",properties:{name:"Fiji"},id:"FJI",arcs:[[[272]],[[273,274]],[[275,-275]]]},{type:"Polygon",properties:{name:"Falkland Islands"},id:"FLK",arcs:[[276]]},{type:"MultiPolygon",properties:{name:"France"},id:"FRA",arcs:[[[277]],[[278,-225,-163,279,280,-257,281,-66]]]},{type:"Polygon",properties:{name:"French Guiana"},id:"GUF",arcs:[[282,283,284,285,-111]]},{type:"Polygon",properties:{name:"Gabon"},id:"GAB",arcs:[[286,287,-190,-205]]},{type:"MultiPolygon",properties:{name:"United Kingdom"},id:"GBR",arcs:[[[288,289]],[[290]]]},{type:"Polygon",properties:{name:"Georgia"},id:"GEO",arcs:[[291,292,-58,-32,293]]},{type:"Polygon",properties:{name:"Ghana"},id:"GHA",arcs:[[294,-189,-77,295]]},{type:"Polygon",properties:{name:"Guinea"},id:"GIN",arcs:[[296,297,298,299,300,301,-187]]},{type:"Polygon",properties:{name:"Gambia"},id:"GMB",arcs:[[302,303]]},{type:"Polygon",properties:{name:"Guinea Bissau"},id:"GNB",arcs:[[304,305,-300]]},{type:"Polygon",properties:{name:"Equatorial Guinea"},id:"GNQ",arcs:[[306,-191,-288]]},{type:"MultiPolygon",properties:{name:"Greece"},id:"GRC",arcs:[[[307]],[[308,-15,309,-84,310]]]},{type:"Polygon",properties:{name:"Greenland"},id:"GRL",arcs:[[311]]},{type:"Polygon",properties:{name:"Guatemala"},id:"GTM",arcs:[[312,313,-100,314,315,316]]},{type:"Polygon",properties:{name:"Guyana"},id:"GUY",arcs:[[317,318,-109,319]]},{type:"Polygon",properties:{name:"Honduras"},id:"HND",arcs:[[320,321,-316,322,323]]},{type:"Polygon",properties:{name:"Croatia"},id:"HRV",arcs:[[324,-92,325,326,327,328]]},{type:"Polygon",properties:{name:"Haiti"},id:"HTI",arcs:[[-237,329]]},{type:"Polygon",properties:{name:"Hungary"},id:"HUN",arcs:[[-48,330,331,332,333,-329,334]]},{type:"MultiPolygon",properties:{name:"Indonesia"},id:"IDN",arcs:[[[335]],[[336,337]],[[338]],[[339]],[[340]],[[341]],[[342]],[[343]],[[344,345]],[[346]],[[347]],[[348,349]],[[350]]]},{type:"Polygon",properties:{name:"India"},id:"IND",arcs:[[-177,351,-175,-116,-174,352,-80,353,354]]},{type:"Polygon",properties:{name:"Ireland"},id:"IRL",arcs:[[355,-289]]},{type:"Polygon",properties:{name:"Iran"},id:"IRN",arcs:[[356,-6,357,358,359,360,-55,-34,-57,361]]},{type:"Polygon",properties:{name:"Iraq"},id:"IRQ",arcs:[[362,363,364,365,366,367,-360]]},{type:"Polygon",properties:{name:"Iceland"},id:"ISL",arcs:[[368]]},{type:"Polygon",properties:{name:"Israel"},id:"ISR",arcs:[[369,370,371,-252,372,373,374]]},{type:"MultiPolygon",properties:{name:"Italy"},id:"ITA",arcs:[[[375]],[[376]],[[377,378,-280,-162,-50]]]},{type:"Polygon",properties:{name:"Jamaica"},id:"JAM",arcs:[[379]]},{type:"Polygon",properties:{name:"Jordan"},id:"JOR",arcs:[[-370,380,-366,381,382,-372,383]]},{type:"MultiPolygon",properties:{name:"Japan"},id:"JPN",arcs:[[[384]],[[385]],[[386]]]},{type:"Polygon",properties:{name:"Kazakhstan"},id:"KAZ",arcs:[[387,388,389,390,-181,391]]},{type:"Polygon",properties:{name:"Kenya"},id:"KEN",arcs:[[392,393,394,395,-265,396]]},{type:"Polygon",properties:{name:"Kyrgyzstan"},id:"KGZ",arcs:[[-392,-180,397,398]]},{type:"Polygon",properties:{name:"Cambodia"},id:"KHM",arcs:[[399,400,401,402]]},{type:"Polygon",properties:{name:"South Korea"},id:"KOR",arcs:[[403,404]]},{type:"Polygon",properties:{name:"Kosovo"},id:"-99",arcs:[[-18,405,406,407]]},{type:"Polygon",properties:{name:"Kuwait"},id:"KWT",arcs:[[408,409,-364]]},{type:"Polygon",properties:{name:"Laos"},id:"LAO",arcs:[[410,411,-172,412,-401]]},{type:"Polygon",properties:{name:"Lebanon"},id:"LBN",arcs:[[-374,413,414]]},{type:"Polygon",properties:{name:"Liberia"},id:"LBR",arcs:[[415,416,-297,-186]]},{type:"Polygon",properties:{name:"Libya"},id:"LBY",arcs:[[417,-245,418,419,-250,420,421]]},{type:"Polygon",properties:{name:"Sri Lanka"},id:"LKA",arcs:[[422]]},{type:"Polygon",properties:{name:"Lesotho"},id:"LSO",arcs:[[423]]},{type:"Polygon",properties:{name:"Lithuania"},id:"LTU",arcs:[[424,425,426,-93,427]]},{type:"Polygon",properties:{name:"Luxembourg"},id:"LUX",arcs:[[-226,-279,-65]]},{type:"Polygon",properties:{name:"Latvia"},id:"LVA",arcs:[[428,-262,429,-94,-427]]},{type:"Polygon",properties:{name:"Morocco"},id:"MAR",arcs:[[-242,430,431]]},{type:"Polygon",properties:{name:"Moldova"},id:"MDA",arcs:[[432,433]]},{type:"Polygon",properties:{name:"Madagascar"},id:"MDG",arcs:[[434]]},{type:"Polygon",properties:{name:"Mexico"},id:"MEX",arcs:[[435,-98,-314,436,437]]},{type:"Polygon",properties:{name:"Macedonia"},id:"MKD",arcs:[[-408,438,-85,-310,-14]]},{type:"Polygon",properties:{name:"Mali"},id:"MLI",arcs:[[439,-239,440,-74,-188,-302,441]]},{type:"Polygon",properties:{name:"Myanmar"},id:"MMR",arcs:[[442,-78,-353,-173,-412,443]]},{type:"Polygon",properties:{name:"Montenegro"},id:"MNE",arcs:[[444,-326,-91,445,-406,-17]]},{type:"Polygon",properties:{name:"Mongolia"},id:"MNG",arcs:[[446,-183]]},{type:"Polygon",properties:{name:"Mozambique"},id:"MOZ",arcs:[[447,448,449,450,451,452,453,454]]},{type:"Polygon",properties:{name:"Mauritania"},id:"MRT",arcs:[[455,456,457,-240,-440]]},{type:"Polygon",properties:{name:"Malawi"},id:"MWI",arcs:[[-455,458,459]]},{type:"MultiPolygon",properties:{name:"Malaysia"},id:"MYS",arcs:[[[460,461]],[[-349,462,-115,463]]]},{type:"Polygon",properties:{name:"Namibia"},id:"NAM",arcs:[[464,-8,465,-119,466]]},{type:"Polygon",properties:{name:"New Caledonia"},id:"NCL",arcs:[[467]]},{type:"Polygon",properties:{name:"Niger"},id:"NER",arcs:[[-75,-441,-238,-418,468,-194,469,-71]]},{type:"Polygon",properties:{name:"Nigeria"},id:"NGA",arcs:[[470,-72,-470,-193]]},{type:"Polygon",properties:{name:"Nicaragua"},id:"NIC",arcs:[[471,-324,472,-213]]},{type:"Polygon",properties:{name:"Netherlands"},id:"NLD",arcs:[[-227,-63,473]]},{type:"MultiPolygon",properties:{name:"Norway"},id:"NOR",arcs:[[[474,-272,475,476]],[[477]],[[478]],[[479]]]},{type:"Polygon",properties:{name:"Nepal"},id:"NPL",arcs:[[-352,-176]]},{type:"MultiPolygon",properties:{name:"New Zealand"},id:"NZL",arcs:[[[480]],[[481]]]},{type:"MultiPolygon",properties:{name:"Oman"},id:"OMN",arcs:[[[482,483,-22,484]],[[-20,485]]]},{type:"Polygon",properties:{name:"Pakistan"},id:"PAK",arcs:[[-178,-355,486,-358,-5]]},{type:"Polygon",properties:{name:"Panama"},id:"PAN",arcs:[[487,-215,488,-208]]},{type:"Polygon",properties:{name:"Peru"},id:"PER",arcs:[[-167,489,-247,-211,-106,-102]]},{type:"MultiPolygon",properties:{name:"Philippines"},id:"PHL",arcs:[[[490]],[[491]],[[492]],[[493]],[[494]],[[495]],[[496]]]},{type:"MultiPolygon",properties:{name:"Papua New Guinea"},id:"PNG",arcs:[[[497]],[[498]],[[-345,499]],[[500]]]},{type:"Polygon",properties:{name:"Poland"},id:"POL",arcs:[[-224,501,502,-428,-97,503,504,-221]]},{type:"Polygon",properties:{name:"Puerto Rico"},id:"PRI",arcs:[[505]]},{type:"Polygon",properties:{name:"North Korea"},id:"PRK",arcs:[[506,507,-405,508,-169]]},{type:"Polygon",properties:{name:"Portugal"},id:"PRT",arcs:[[-259,509]]},{type:"Polygon",properties:{name:"Paraguay"},id:"PRY",arcs:[[-104,-105,-26]]},{type:"Polygon",properties:{name:"Qatar"},id:"QAT",arcs:[[510,511]]},{type:"Polygon",properties:{name:"Romania"},id:"ROU",arcs:[[512,-434,513,514,-81,515,-333]]},{type:"MultiPolygon",properties:{name:"Russia"},id:"RUS",arcs:[[[516]],[[-503,517,-425]],[[518,519]],[[520]],[[521]],[[522]],[[523]],[[524]],[[525]],[[526,-507,-184,-447,-182,-391,527,-59,-293,528,529,-95,-430,-261,530,-269,-475,531,-520]],[[532]],[[533]],[[534]]]},{type:"Polygon",properties:{name:"Rwanda"},id:"RWA",arcs:[[535,-61,-198,536]]},{type:"Polygon",properties:{name:"Western Sahara"},id:"ESH",arcs:[[-241,-458,537,-431]]},{type:"Polygon",properties:{name:"Saudi Arabia"},id:"SAU",arcs:[[538,-382,-365,-410,539,-512,540,-23,-484,541]]},{type:"Polygon",properties:{name:"Sudan"},id:"SDN",arcs:[[542,543,-123,544,-421,-249,545,-254,-268,546]]},{type:"Polygon",properties:{name:"South Sudan"},id:"SSD",arcs:[[547,-266,-396,548,-203,-125,549,-543]]},{type:"Polygon",properties:{name:"Senegal"},id:"SEN",arcs:[[550,-456,-442,-301,-306,551,-304]]},{type:"MultiPolygon",properties:{name:"Solomon Islands"},id:"SLB",arcs:[[[552]],[[553]],[[554]],[[555]],[[556]]]},{type:"Polygon",properties:{name:"Sierra Leone"},id:"SLE",arcs:[[557,-298,-417]]},{type:"Polygon",properties:{name:"El Salvador"},id:"SLV",arcs:[[558,-317,-322]]},{type:"Polygon",properties:{name:"Somaliland"},id:"-99",arcs:[[-263,-231,559,560]]},{type:"Polygon",properties:{name:"Somalia"},id:"SOM",arcs:[[-397,-264,-561,561]]},{type:"Polygon",properties:{name:"Republic of Serbia"},id:"SRB",arcs:[[-86,-439,-407,-446,-90,-325,-334,-516]]},{type:"Polygon",properties:{name:"Suriname"},id:"SUR",arcs:[[562,-285,563,-283,-110,-319]]},{type:"Polygon",properties:{name:"Slovakia"},id:"SVK",arcs:[[-505,564,-331,-54,-222]]},{type:"Polygon",properties:{name:"Slovenia"},id:"SVN",arcs:[[-49,-335,-328,565,-378]]},{type:"Polygon",properties:{name:"Sweden"},id:"SWE",arcs:[[-476,-271,566]]},{type:"Polygon",properties:{name:"Swaziland"},id:"SWZ",arcs:[[567,-451]]},{type:"Polygon",properties:{name:"Syria"},id:"SYR",arcs:[[-381,-375,-415,568,569,-367]]},{type:"Polygon",properties:{name:"Chad"},id:"TCD",arcs:[[-469,-422,-545,-122,-195]]},{type:"Polygon",properties:{name:"Togo"},id:"TGO",arcs:[[570,-296,-76,-69]]},{type:"Polygon",properties:{name:"Thailand"},id:"THA",arcs:[[571,-462,572,-444,-411,-400]]},{type:"Polygon",properties:{name:"Tajikistan"},id:"TJK",arcs:[[-398,-179,-3,573]]},{type:"Polygon",properties:{name:"Turkmenistan"},id:"TKM",arcs:[[-357,574,-389,575,-1]]},{type:"Polygon",properties:{name:"East Timor"},id:"TLS",arcs:[[576,-337]]},{type:"Polygon",properties:{name:"Trinidad and Tobago"},id:"TTO",arcs:[[577]]},{type:"Polygon",properties:{name:"Tunisia"},id:"TUN",arcs:[[-244,578,-419]]},{type:"MultiPolygon",properties:{name:"Turkey"},id:"TUR",arcs:[[[-294,-36,-361,-368,-570,579]],[[-311,-83,580]]]},{type:"Polygon",properties:{name:"Taiwan"},id:"TWN",arcs:[[581]]},{type:"Polygon",properties:{name:"United Republic of Tanzania"},id:"TZA",arcs:[[-394,582,-448,-460,583,-199,-62,-536,584]]},{type:"Polygon",properties:{name:"Uganda"},id:"UGA",arcs:[[-537,-197,-549,-395,-585]]},{type:"Polygon",properties:{name:"Ukraine"},id:"UKR",arcs:[[-530,585,-514,-433,-513,-332,-565,-504,-96]]},{type:"Polygon",properties:{name:"Uruguay"},id:"URY",arcs:[[-113,586,-28]]},{type:"MultiPolygon",properties:{name:"United States of America"},id:"USA",arcs:[[[587]],[[588]],[[589]],[[590]],[[591]],[[592,-438,593,-139]],[[594]],[[595]],[[596]],[[-141,597]]]},{type:"Polygon",properties:{name:"Uzbekistan"},id:"UZB",arcs:[[-576,-388,-399,-574,-2]]},{type:"Polygon",properties:{name:"Venezuela"},id:"VEN",arcs:[[598,-320,-108,-210]]},{type:"Polygon",properties:{name:"Vietnam"},id:"VNM",arcs:[[599,-402,-413,-171]]},{type:"MultiPolygon",properties:{name:"Vanuatu"},id:"VUT",arcs:[[[600]],[[601]]]},{type:"Polygon",properties:{name:"West Bank"},id:"PSE",arcs:[[-384,-371]]},{type:"Polygon",properties:{name:"Yemen"},id:"YEM",arcs:[[602,-542,-483]]},{type:"Polygon",properties:{name:"South Africa"},id:"ZAF",arcs:[[-467,-118,603,-452,-568,-450,604],[-424]]},{type:"Polygon",properties:{name:"Zambia"},id:"ZMB",arcs:[[-459,-454,605,-120,-466,-7,-200,-584]]},{type:"Polygon",properties:{name:"Zimbabwe"},id:"ZWE",arcs:[[-604,-121,-606,-453]]}]}},arcs:[[[6700,7164],[28,-23],[21,8],[6,27],[22,9],[15,18],[6,47],[23,11],[5,21],[13,-15],[8,-2]],[[6847,7265],[16,-1],[20,-12]],[[6883,7252],[9,-7],[20,19],[9,-12],[9,27],[17,-1],[4,9],[3,24],[12,20],[15,-13],[-3,-18],[9,-3],[-3,-50],[11,-19],[10,12],[12,6],[17,27],[19,-5],[29,0]],[[7082,7268],[5,-17]],[[7087,7251],[-16,-6],[-14,-11],[-32,-7],[-30,-13],[-16,-25],[6,-25],[4,-30],[-14,-25],[1,-22],[-8,-22],[-26,2],[11,-39],[-18,-15],[-12,-35],[2,-36],[-11,-16],[-10,5],[-22,-8],[-3,-16],[-20,0],[-16,-34],[-1,-50],[-36,-24],[-19,5],[-6,-13],[-16,7],[-28,-8],[-47,30]],[[6690,6820],[25,53],[-2,38],[-21,10],[-2,38],[-9,47],[12,32],[-12,9],[7,43],[12,74]],[[5664,4412],[3,-18],[-4,-29],[5,-28],[-4,-22],[3,-20],[-58,1],[-2,-188],[19,-49],[18,-37]],[[5644,4022],[-51,-24],[-67,9],[-19,28],[-113,-3],[-4,-4],[-17,27],[-18,2],[-16,-10],[-14,-12]],[[5325,4035],[-2,38],[4,51],[9,55],[2,25],[9,53],[6,24],[16,39],[9,26],[3,44],[-1,34],[-9,21],[-7,36],[-7,35],[2,12],[8,24],[-8,57],[-6,39],[-14,38],[3,11]],[[5342,4697],[11,8],[8,-1],[10,7],[82,-1],[7,-44],[8,-35],[6,-19],[11,-31],[18,5],[9,8],[16,-8],[4,14],[7,35],[17,2],[2,10],[14,1],[-3,-22],[34,1],[1,-37],[5,-23],[-4,-36],[2,-36],[9,-22],[-1,-70],[7,5],[12,-1],[17,8],[13,-3]],[[5338,4715],[-8,45]],[[5330,4760],[12,25],[8,10],[10,-20]],[[5360,4775],[-10,-12],[-4,-16],[-1,-25],[-7,-7]],[[5571,7530],[-3,-20],[4,-25],[11,-15]],[[5583,7470],[0,-15],[-9,-9],[-2,-19],[-13,-29]],[[5559,7398],[-5,5],[0,13],[-15,19],[-3,29],[2,40],[4,18],[-4,10]],[[5538,7532],[-2,18],[12,29],[1,-11],[8,6]],[[5557,7574],[6,-16],[7,-6],[1,-22]],[[6432,6490],[5,3],[1,-16],[22,9],[23,-2],[17,-1],[19,39],[20,38],[18,37]],[[6557,6597],[5,-20]],[[6562,6577],[4,-47]],[[6566,6530],[-14,0],[-3,-39],[5,-8],[-12,-12],[0,-24],[-8,-24],[-1,-24]],[[6533,6399],[-6,-12],[-83,29],[-11,60],[-1,14]],[[3140,1814],[-17,2],[-30,0],[0,132]],[[3093,1948],[11,-27],[14,-45],[36,-35],[39,-15],[-13,-30],[-26,-2],[-14,20]],[[3258,3743],[51,-96],[23,-9],[34,-44],[29,-23],[4,-26],[-28,-90],[28,-16],[32,-9],[22,10],[25,45],[4,52]],[[3482,3537],[14,11],[14,-34],[-1,-47],[-23,-33],[-19,-24],[-31,-57],[-37,-81]],[[3399,3272],[-7,-47],[-7,-61],[0,-58],[-6,-14],[-2,-38]],[[3377,3054],[-2,-31],[35,-50],[-4,-41],[18,-26],[-2,-29],[-26,-75],[-42,-32],[-55,-12],[-31,6],[6,-36],[-6,-44],[5,-30],[-16,-20],[-29,-8],[-26,21],[-11,-15],[4,-59],[18,-18],[16,19],[8,-31],[-26,-18],[-22,-37],[-4,-59],[-7,-32],[-26,0],[-22,-31],[-8,-44],[28,-43],[26,-12],[-9,-53],[-33,-33],[-18,-70],[-25,-23],[-12,-28],[9,-61],[19,-34],[-12,3]],[[3095,1968],[-26,9],[-67,8],[-11,34],[0,45],[-18,-4],[-10,21],[-3,63],[22,26],[9,37],[-4,30],[15,51],[10,78],[-3,35],[12,11],[-3,22],[-13,12],[10,25],[-13,22],[-6,68],[11,12],[-5,72],[7,61],[7,52],[17,22],[-9,58],[0,54],[21,38],[-1,50],[16,57],[0,55],[-7,11],[-13,102],[17,60],[-2,58],[10,53],[18,56],[20,36],[-9,24],[6,19],[-1,98],[30,29],[10,62],[-3,14]],[[3136,3714],[23,54],[36,-15],[16,-42],[11,47],[32,-2],[4,-13]],[[6210,7485],[39,9]],[[6249,7494],[5,-15],[11,-10],[-6,-15],[15,-21],[-8,-18],[12,-16],[13,-10],[0,-41]],[[6291,7348],[-10,-2]],[[6281,7346],[-11,34],[0,10],[-12,-1],[-9,16],[-5,-1]],[[6244,7404],[-11,17],[-21,15],[3,28],[-5,21]],[[3345,329],[-8,-30],[-8,-27],[-59,8],[-62,-3],[-34,20],[0,2],[-16,17],[63,-2],[60,-6],[20,24],[15,21],[29,-24]],[[577,361],[-53,-8],[-36,21],[-17,21],[-1,3],[-18,16],[17,22],[52,-9],[28,-18],[21,-21],[7,-27]],[[3745,447],[35,-26],[12,-36],[3,-25],[1,-30],[-43,-19],[-45,-15],[-52,-14],[-59,-11],[-65,3],[-37,20],[5,24],[59,16],[24,20],[18,26],[12,22],[17,20],[18,25],[14,0],[41,12],[42,-12]],[[1633,715],[36,-9],[33,10],[-16,-20],[-26,-15],[-39,4],[-27,21],[6,20],[33,-11]],[[1512,716],[43,-23],[-17,3],[-36,5],[-38,17],[20,12],[28,-14]],[[2250,808],[31,-8],[30,7],[17,-34],[-22,5],[-34,-2],[-34,2],[-38,-4],[-28,12],[-15,24],[18,11],[35,-8],[40,-5]],[[3098,866],[4,-27],[-5,-23],[-8,-22],[-33,-8],[-31,-12],[-36,1],[14,24],[-33,-9],[-31,-8],[-21,18],[-2,24],[30,23],[20,7],[32,-2],[8,30],[1,22],[0,47],[16,28],[25,9],[15,-22],[6,-22],[12,-26],[10,-26],[7,-26]],[[3371,1268],[-11,-13],[-21,9],[-23,-6],[-19,-14],[-20,-15],[-14,-17],[-4,-23],[2,-22],[13,-20],[-19,-14],[-26,-4],[-15,-20],[-17,-19],[-17,-25],[-4,-22],[9,-24],[15,-19],[23,-14],[21,-18],[12,-23],[6,-22],[8,-24],[13,-19],[8,-22],[4,-55],[8,-22],[2,-23],[9,-23],[-4,-31],[-15,-24],[-17,-20],[-37,-8],[-12,-21],[-17,-20],[-42,-22],[-37,-9],[-35,-13],[-37,-13],[-22,-24],[-45,-2],[-49,2],[-44,-4],[-47,0],[9,-24],[42,-10],[31,-16],[18,-21],[-31,-19],[-48,6],[-40,-15],[-2,-24],[-1,-23],[33,-20],[6,-22],[35,-22],[59,-9],[50,-16],[40,-19],[50,-18],[70,-10],[68,-16],[47,-17],[52,-20],[27,-28],[13,-22],[34,21],[46,17],[48,19],[58,15],[49,16],[69,1],[68,-8],[56,-14],[18,26],[39,17],[70,1],[55,13],[52,13],[58,8],[62,10],[43,15],[-20,21],[-12,21],[0,22],[-54,-2],[-57,-10],[-54,0],[-8,22],[4,44],[12,13],[40,14],[47,14],[34,17],[33,18],[25,23],[38,10],[38,8],[19,5],[43,2],[41,8],[34,12],[34,14],[30,14],[39,18],[24,20],[26,17],[9,24],[-30,13],[10,25],[18,18],[29,12],[31,14],[28,18],[22,23],[13,28],[21,16],[33,-3],[13,-20],[34,-2],[1,22],[14,23],[30,-6],[7,-22],[33,-3],[36,10],[35,7],[31,-3],[12,-25],[31,20],[28,10],[31,9],[31,8],[29,14],[31,9],[24,13],[17,20],[20,-15],[29,8],[20,-27],[16,-21],[32,11],[12,24],[28,16],[37,-4],[11,-22],[22,22],[30,7],[33,3],[29,-2],[31,-7],[30,-3],[13,-20],[18,-17],[31,10],[32,3],[32,0],[31,1],[28,8],[29,7],[25,16],[26,11],[28,5],[21,17],[15,32],[16,20],[29,-10],[11,-21],[24,-13],[29,4],[19,-21],[21,-15],[28,14],[10,26],[25,10],[29,20],[27,8],[33,11],[22,13],[22,14],[22,13],[26,-7],[25,21],[18,16],[26,-1],[23,14],[6,21],[23,16],[23,11],[28,10],[25,4],[25,-3],[26,-6],[22,-16],[3,-26],[24,-19],[17,-17],[33,-7],[19,-16],[23,-16],[26,-3],[23,11],[24,24],[26,-12],[27,-7],[26,-7],[27,-5],[28,0],[23,-61],[-1,-15],[-4,-27],[-26,-15],[-22,-22],[4,-23],[31,1],[-4,-23],[-14,-22],[-13,-24],[21,-19],[32,-6],[32,11],[15,23],[10,22],[15,18],[17,18],[7,21],[15,29],[18,5],[31,3],[28,7],[28,9],[14,23],[8,22],[19,22],[27,15],[23,12],[16,19],[15,11],[21,9],[27,-6],[25,6],[28,7],[30,-4],[20,17],[14,39],[11,-16],[13,-28],[23,-12],[27,-4],[26,7],[29,-5],[26,-1],[17,6],[24,-4],[21,-12],[25,8],[30,0],[25,8],[29,-8],[19,19],[14,20],[19,16],[35,44],[18,-8],[21,-16],[18,-21],[36,-36],[27,-1],[25,0],[30,7],[30,8],[23,16],[19,18],[31,2],[21,13],[22,-12],[14,-18],[19,-19],[31,2],[19,-15],[33,-15],[35,-5],[29,4],[21,19],[19,18],[25,5],[25,-8],[29,-6],[26,9],[25,0],[24,-6],[26,-5],[25,10],[30,9],[28,3],[32,0],[25,5],[25,5],[8,29],[1,24],[17,-16],[5,-27],[10,-24],[11,-20],[23,-10],[32,4],[36,1],[25,3],[37,0],[26,1],[36,-2],[31,-5],[20,-18],[-5,-22],[18,-18],[30,-13],[31,-15],[35,-11],[38,-9],[28,-9],[32,-2],[18,20],[24,-16],[21,-19],[25,-13],[34,-6],[32,-7],[13,-23],[32,-14],[21,-21],[31,-9],[32,1],[30,-4],[33,1],[34,-4],[31,-8],[28,-14],[29,-12],[20,-17],[-3,-23],[-15,-21],[-13,-27],[-9,-21],[-14,-24],[-36,-9],[-16,-21],[-36,-13],[-13,-23],[-19,-22],[-20,-18],[-11,-25],[-7,-22],[-3,-26],[0,-22],[16,-23],[6,-22],[13,-21],[52,-8],[11,-26],[-50,-9],[-43,-13],[-52,-2],[-24,-34],[-5,-27],[-12,-22],[-14,-22],[37,-20],[14,-24],[24,-22],[33,-20],[39,-19],[42,-18],[64,-19],[14,-29],[80,-12],[5,-5],[21,-17],[77,15],[63,-19],[48,-14],[-9997,-1],[24,35],[50,-19],[3,2],[30,19],[4,0],[3,-1],[40,-25],[35,25],[7,3],[81,11],[27,-14],[13,-7],[41,-20],[79,-15],[63,-18],[107,-14],[80,16],[118,-11],[67,-19],[73,17],[78,17],[6,27],[-110,3],[-89,14],[-24,23],[-74,12],[5,27],[10,24],[10,22],[-5,25],[-46,16],[-22,21],[-43,18],[68,-3],[64,9],[40,-20],[50,18],[45,22],[23,19],[-10,25],[-36,16],[-41,17],[-57,4],[-50,8],[-54,6],[-18,22],[-36,18],[-21,21],[-9,67],[14,-6],[25,-18],[45,6],[44,8],[23,-26],[44,6],[37,13],[35,16],[32,20],[41,5],[-1,22],[-9,22],[8,21],[36,11],[16,-20],[42,12],[32,15],[40,1],[38,6],[37,13],[30,13],[34,13],[22,-4],[19,-4],[41,8],[37,-10],[38,1],[37,8],[37,-6],[41,-6],[39,3],[40,-2],[42,-1],[38,3],[28,17],[34,9],[35,-13],[33,11],[30,21],[18,-19],[9,-21],[18,-19],[29,17],[33,-22],[38,-7],[32,-16],[39,3],[36,11],[41,-3],[38,-8],[38,-10],[15,25],[-18,20],[-14,21],[-36,5],[-15,22],[-6,22],[-10,43],[21,-8],[36,-3],[36,3],[33,-9],[28,-17],[12,-21],[38,-4],[36,9],[38,11],[34,7],[28,-14],[37,5],[24,45],[23,-27],[32,-10],[34,6],[23,-23],[37,-3],[33,-7],[34,-12],[21,22],[11,20],[28,-23],[38,6],[28,-13],[19,-19],[37,5],[29,13],[29,15],[33,8],[39,7],[36,8],[27,13],[16,19],[7,25],[-3,24],[-9,24],[-10,23],[-9,23],[-7,21],[-1,23],[2,23],[13,22],[11,24],[5,23],[-6,26],[-3,23],[14,27],[15,17],[18,22],[19,19],[22,17],[11,25],[15,17],[18,15],[26,3],[18,19],[19,11],[23,7],[20,15],[16,19],[22,7],[16,-15],[-10,-20],[-29,-17]],[[6914,2185],[18,-19],[26,-7],[1,-11],[-7,-27],[-43,-4],[-1,31],[4,25],[2,12]],[[9038,2648],[27,-21],[15,8],[22,12],[16,-4],[2,-70],[-9,-21],[-3,-47],[-10,16],[-19,-41],[-6,3],[-17,2],[-17,50],[-4,39],[-16,52],[1,27],[18,-5]],[[8987,4244],[10,-46],[18,22],[9,-25],[13,-23],[-3,-26],[6,-51],[5,-29],[7,-7],[7,-51],[-3,-30],[9,-40],[31,-31],[19,-28],[19,-26],[-4,-14],[16,-37],[11,-64],[11,13],[11,-26],[7,9],[5,-63],[19,-36],[13,-22],[22,-48],[8,-48],[1,-33],[-2,-37],[13,-50],[-2,-52],[-5,-28],[-7,-52],[1,-34],[-6,-43],[-12,-53],[-21,-29],[-10,-46],[-9,-29],[-8,-51],[-11,-30],[-7,-44],[-4,-41],[2,-18],[-16,-21],[-31,-2],[-26,-24],[-13,-23],[-17,-26],[-23,27],[-17,10],[5,31],[-15,-11],[-25,-43],[-24,16],[-15,9],[-16,4],[-27,17],[-18,37],[-5,45],[-7,30],[-13,24],[-27,7],[9,28],[-7,44],[-13,-41],[-25,-11],[14,33],[5,34],[10,29],[-2,44],[-22,-50],[-18,-21],[-10,-47],[-22,25],[1,31],[-18,43],[-14,22],[5,14],[-36,35],[-19,2],[-27,29],[-50,-6],[-36,-21],[-31,-20],[-27,4],[-29,-30],[-24,-14],[-6,-31],[-10,-24],[-23,-1],[-18,-5],[-24,10],[-20,-6],[-19,-3],[-17,-31],[-8,2],[-14,-16],[-13,-19],[-21,2],[-18,0],[-30,38],[-15,11],[1,34],[14,8],[4,14],[-1,21],[4,41],[-3,35],[-15,60],[-4,33],[1,34],[-11,38],[-1,18],[-12,23],[-4,47],[-16,46],[-4,26],[13,-26],[-10,55],[14,-17],[8,-23],[0,30],[-14,47],[-3,18],[-6,18],[3,34],[6,15],[4,29],[-3,35],[11,42],[2,-45],[12,41],[22,20],[14,25],[21,22],[13,4],[7,-7],[22,22],[17,6],[4,13],[8,6],[15,-2],[29,18],[15,26],[7,31],[17,30],[1,24],[1,32],[19,50],[12,-51],[12,12],[-10,28],[9,29],[12,-13],[3,45],[15,29],[7,23],[14,10],[0,17],[13,-7],[0,15],[12,8],[14,8],[20,-27],[16,-35],[17,0],[18,-6],[-6,33],[13,47],[13,15],[-5,15],[12,34],[17,21],[14,-7],[24,11],[-1,30],[-20,19],[15,9],[18,-15],[15,-24],[23,-15],[8,6],[17,-18],[17,17],[10,-5],[7,11],[12,-29],[-7,-32],[-11,-24],[-9,-2],[3,-23],[-8,-30],[-10,-29],[2,-17],[22,-32],[21,-19],[15,-20],[20,-35],[8,0],[14,-15],[4,-19],[27,-20],[18,20],[6,32],[5,26],[4,33],[8,47],[-4,28],[2,17],[-3,34],[4,45],[5,12],[-4,20],[7,31],[5,32],[1,17],[10,22],[8,-29],[2,-37],[7,-7],[1,-25],[10,-30],[2,-33],[-1,-22]],[[5471,7900],[-2,-24],[-16,0],[6,-13],[-9,-38]],[[5450,7825],[-6,-10],[-24,-1],[-14,-13],[-23,4]],[[5383,7805],[-40,15],[-6,21],[-27,-10],[-4,-12],[-16,9]],[[5290,7828],[-15,1],[-12,11],[4,15],[-1,10]],[[5266,7865],[8,3],[14,-16],[4,16],[25,-3],[20,11],[13,-2],[9,-12],[2,10],[-4,38],[10,8],[10,27]],[[5377,7945],[21,-19],[15,24],[10,5],[22,-18],[13,3],[13,-12]],[[5471,7928],[-3,-7],[3,-21]],[[6281,7346],[-19,8],[-14,27],[-4,23]],[[6349,7527],[15,-31],[14,-42],[13,-2],[8,-16],[-23,-5],[-5,-46],[-4,-21],[-11,-13],[1,-30]],[[6357,7321],[-7,-3],[-17,31],[10,30],[-9,17],[-10,-4],[-33,-44]],[[6249,7494],[6,10],[21,-17],[15,-4],[4,7],[-14,32],[7,9]],[[6288,7531],[8,-2],[19,-36],[13,-4],[4,15],[17,23]],[[5814,4792],[-1,71],[-7,27]],[[5806,4890],[17,-5],[8,34],[15,-4]],[[5846,4915],[1,-23],[6,-14],[1,-19],[-7,-12],[-11,-31],[-10,-22],[-12,-2]],[[5092,8091],[20,-5],[26,12],[17,-25],[16,-14]],[[5171,8059],[-4,-40]],[[5167,8019],[-7,-2],[-3,-33]],[[5157,7984],[-24,26],[-14,-4],[-20,28],[-13,23],[-13,1],[-4,21]],[[5069,8079],[23,12]],[[5074,5427],[-23,-7]],[[5051,5420],[-7,41],[2,136],[-6,12],[-1,29],[-10,21],[-8,17],[3,31]],[[5024,5707],[10,7],[6,26],[13,5],[6,18]],[[5059,5763],[10,17],[10,0],[21,-34]],[[5100,5746],[-1,-19],[6,-35],[-6,-24],[3,-16],[-13,-37],[-9,-18],[-5,-37],[1,-38],[-2,-95]],[[4921,5627],[-19,15],[-13,-2],[-10,-15],[-12,13],[-5,19],[-13,13]],[[4849,5670],[-1,34],[7,26],[-1,20],[23,48],[4,41],[7,14],[14,-8],[11,12],[4,16],[22,26],[5,19],[26,24],[15,9],[7,-12],[18,0]],[[5010,5939],[-2,-28],[3,-27],[16,-39],[1,-28],[32,-14],[-1,-40]],[[5024,5707],[-24,1]],[[5e3,5708],[-13,5],[-9,-9],[-12,4],[-48,-3],[-1,-33],[4,-45]],[[7573,6360],[0,-43],[-10,9],[2,-47]],[[7565,6279],[-8,30],[-1,31],[-6,28],[-11,34],[-26,3],[3,-25],[-9,-32],[-12,12],[-4,-11],[-8,6],[-11,5]],[[7472,6360],[-4,49],[-10,45],[5,35],[-17,16],[6,22],[18,22],[-20,31],[9,40],[22,-26],[14,-3],[2,-41],[26,-8],[26,1],[16,-10],[-13,-50],[-12,-3],[-9,-34],[16,-31],[4,38],[8,0],[14,-93]],[[5629,7671],[8,-25],[11,5],[21,-9],[41,-4],[13,16],[33,13],[20,-21],[17,-6]],[[5793,7640],[-15,-25],[-10,-42],[9,-34]],[[5777,7539],[-24,8],[-28,-18]],[[5725,7529],[0,-30],[-26,-5],[-19,20],[-22,-16],[-21,2]],[[5637,7500],[-2,39],[-14,19]],[[5621,7558],[5,8],[-3,7],[4,19],[11,18],[-14,26],[-2,21],[7,14]],[[2846,6461],[-7,-3],[-7,34],[-10,17],[6,38],[8,-3],[10,-49],[0,-34]],[[2838,6628],[-30,-10],[-2,22],[13,5],[18,-2],[1,-15]],[[2861,6628],[-5,-42],[-5,8],[0,31],[-12,23],[0,7],[22,-27]],[[5527,7708],[10,0],[-7,-26],[14,-23],[-4,-28],[-7,-2]],[[5533,7629],[-5,-6],[-9,-13],[-4,-33]],[[5515,7577],[-25,23],[-10,24],[-11,13],[-12,22],[-6,19],[-14,27],[6,25],[10,-14],[6,12],[13,2],[24,-10],[19,1],[12,-13]],[[5652,8242],[27,0],[30,22],[6,34],[23,19],[-3,26]],[[5735,8343],[17,10],[30,23]],[[5782,8376],[29,-15],[4,-15],[15,7],[27,-14],[3,-27],[-6,-16],[17,-39],[12,-11],[-2,-11],[19,-10],[8,-16],[-11,-13],[-23,2],[-5,-5],[7,-20],[6,-37]],[[5882,8136],[-23,-4],[-9,-13],[-2,-30],[-11,6],[-25,-3],[-7,14],[-11,-10],[-10,8],[-22,1],[-31,15],[-28,4],[-22,-1],[-15,-16],[-13,-2]],[[5653,8105],[-1,26],[-8,27],[17,12],[0,24],[-8,22],[-1,26]],[[2524,6110],[-1,8],[4,3],[5,-7],[10,36],[5,0]],[[2547,6150],[0,-8],[5,-1],[0,-16],[-5,-25],[3,-9],[-3,-21],[2,-6],[-4,-30],[-5,-16],[-5,-1],[-6,-21]],[[2529,5996],[-8,0],[2,67],[1,47]],[[3136,3714],[-20,-8],[-11,82],[-15,66],[9,57],[-15,25],[-4,43],[-13,40]],[[3067,4019],[17,64],[-12,49],[7,20],[-5,22],[10,30],[1,50],[1,41],[6,20],[-24,96]],[[3068,4411],[21,-5],[14,1],[6,18],[25,24],[14,22],[37,10],[-3,-44],[3,-23],[-2,-40],[30,-53],[31,-9],[11,-23],[19,-11],[11,-17],[18,0],[16,-17],[1,-34],[6,-18],[0,-25],[-8,-1],[11,-69],[53,-2],[-4,-35],[3,-23],[15,-16],[6,-37],[-4,-47],[-8,-26],[3,-33],[-9,-12]],[[3384,3866],[-1,18],[-25,30],[-26,1],[-49,-17],[-13,-52],[-1,-32],[-11,-71]],[[3482,3537],[6,34],[3,35],[1,32],[-10,11],[-11,-9],[-10,2],[-4,23],[-2,54],[-5,18],[-19,16],[-11,-12],[-30,11],[2,81],[-8,33]],[[3068,4411],[-15,-11],[-13,7],[2,90],[-23,-35],[-24,2],[-11,31],[-18,4],[5,25],[-15,36],[-11,53],[7,11],[0,25],[17,17],[-3,32],[7,20],[2,28],[32,40],[22,11],[4,9],[25,-2]],[[3058,4804],[13,162],[0,25],[-4,34],[-12,22],[0,42],[15,10],[6,-6],[1,23],[-16,6],[-1,37],[54,-2],[10,21],[7,-19],[6,-35],[5,8]],[[3142,5132],[15,-32],[22,4],[5,18],[21,14],[11,10],[4,25],[19,17],[-1,12],[-24,5],[-3,37],[1,40],[-13,15],[5,6],[21,-8],[22,-15],[8,14],[20,9],[31,23],[10,22],[-3,17]],[[3313,5365],[14,2],[7,-13],[-4,-26],[9,-9],[7,-28],[-8,-20],[-4,-51],[7,-30],[2,-27],[17,-28],[14,-3],[3,12],[8,3],[13,10],[9,16],[15,-5],[7,2]],[[3429,5170],[15,-5],[3,12],[-5,12],[3,17],[11,-5],[13,6],[16,-13]],[[3485,5194],[12,-12],[9,16],[6,-3],[4,-16],[13,4],[11,22],[8,44],[17,54]],[[3565,5303],[9,3],[7,-33],[16,-103],[14,-10],[1,-41],[-21,-48],[9,-18],[49,-9],[1,-60],[21,39],[35,-21],[46,-36],[14,-35],[-5,-32],[33,18],[54,-32],[41,3],[41,-49],[36,-66],[21,-17],[24,-3],[10,-18],[9,-76],[5,-35],[-11,-98],[-14,-39],[-39,-82],[-18,-67],[-21,-51],[-7,-1],[-7,-43],[2,-111],[-8,-91],[-3,-39],[-9,-23],[-5,-79],[-28,-77],[-5,-61],[-22,-26],[-7,-35],[-30,0],[-44,-23],[-19,-26],[-31,-18],[-33,-47],[-23,-58],[-5,-44],[5,-33],[-5,-60],[-6,-28],[-20,-33],[-31,-104],[-24,-47],[-19,-27],[-13,-57],[-18,-33]],[[3517,3063],[-8,33],[13,28],[-16,40],[-22,33],[-29,38],[-10,-2],[-28,46],[-18,-7]],[[8172,5325],[11,22],[23,32]],[[8206,5379],[-1,-29],[-2,-37],[-13,1],[-6,-20],[-12,31]],[[7546,6698],[12,-19],[-2,-36],[-23,-2],[-23,4],[-18,-9],[-25,22],[-1,12]],[[7466,6670],[19,44],[15,15],[20,-14],[14,-1],[12,-16]],[[5817,3752],[-39,-43],[-25,-44],[-10,-40],[-8,-22],[-15,-4],[-5,-29],[-3,-18],[-17,-14],[-23,3],[-13,17],[-12,7],[-14,-14],[-6,-28],[-14,-18],[-13,-26],[-20,-6],[-6,20],[2,36],[-16,56],[-8,9]],[[5552,3594],[0,173],[27,2],[1,210],[21,2],[43,21],[10,-24],[18,23],[9,0],[15,13]],[[5696,4014],[5,-4]],[[5701,4010],[11,-48],[5,-10],[9,-34],[32,-65],[12,-7],[0,-20],[8,-38],[21,-9],[18,-27]],[[5424,5496],[23,4],[5,16],[5,-2],[7,-13],[34,23],[12,23],[15,20],[-3,21],[8,6],[27,-4],[26,27],[20,65],[14,24],[18,10]],[[5635,5716],[3,-26],[16,-36],[0,-25],[-5,-24],[2,-18],[10,-18]],[[5661,5569],[21,-25]],[[5682,5544],[15,-24],[0,-19],[19,-31],[12,-26],[7,-35],[20,-24],[5,-18]],[[5760,5367],[-9,-7],[-18,2],[-21,6],[-10,-5],[-5,-14],[-9,-2],[-10,12],[-31,-29],[-13,6],[-4,-5],[-8,-35],[-21,11],[-20,6],[-18,22],[-23,20],[-15,-19],[-10,-30],[-3,-41]],[[5512,5265],[-18,3],[-19,10],[-16,-32],[-15,-55]],[[5444,5191],[-3,18],[-1,27],[-13,19],[-10,30],[-2,21],[-13,31],[2,18],[-3,25],[2,45],[7,11],[14,60]],[[3231,7808],[20,-8],[26,1],[-14,-24],[-10,-4],[-35,25],[-7,20],[10,18],[10,-28]],[[3283,7958],[-14,-1],[-36,19],[-26,28],[10,5],[37,-15],[28,-25],[1,-11]],[[1569,7923],[-14,-8],[-46,27],[-8,21],[-25,21],[-5,16],[-28,11],[-11,32],[2,14],[30,-13],[17,-9],[26,-6],[9,-21],[14,-28],[28,-24],[11,-33]],[[3440,8052],[-18,-52],[18,20],[19,-12],[-10,-21],[25,-16],[12,14],[28,-18],[-8,-43],[19,10],[4,-32],[8,-36],[-11,-52],[-13,-2],[-18,11],[6,48],[-8,8],[-32,-52],[-17,2],[20,28],[-27,14],[-30,-3],[-54,2],[-4,17],[17,21],[-12,16],[24,36],[28,94],[18,33],[24,21],[13,-3],[-6,-16],[-15,-37]],[[1313,8250],[27,5],[-8,-67],[24,-48],[-11,0],[-17,27],[-10,27],[-14,19],[-5,26],[1,19],[13,-8]],[[2798,8730],[-11,-31],[-12,5],[-8,17],[2,4],[10,18],[12,-1],[7,-12]],[[2725,8762],[-33,-32],[-19,1],[-6,16],[20,27],[38,0],[0,-12]],[[2634,8936],[5,-26],[15,9],[16,-15],[30,-20],[32,-19],[2,-28],[21,5],[20,-20],[-25,-18],[-43,14],[-16,26],[-27,-31],[-40,-31],[-9,35],[-38,-6],[24,30],[4,46],[9,54],[20,-5]],[[2892,9024],[-31,-3],[-7,29],[12,34],[26,8],[21,-17],[1,-25],[-4,-8],[-18,-18]],[[2343,9140],[-17,-21],[-38,18],[-22,-6],[-38,26],[24,19],[19,25],[30,-16],[17,-11],[8,-11],[17,-23]],[[3135,7724],[-18,33],[0,81],[-13,17],[-18,-10],[-10,16],[-21,-45],[-8,-46],[-10,-27],[-12,-9],[-9,-3],[-3,-15],[-51,0],[-42,0],[-12,-11],[-30,-42],[-3,-5],[-9,-23],[-26,0],[-27,0],[-12,-10],[4,-11],[2,-18],[0,-6],[-36,-30],[-29,-9],[-32,-31],[-7,0],[-10,9],[-3,8],[1,6],[6,21],[13,33],[8,35],[-5,51],[-6,53],[-29,28],[3,11],[-4,7],[-8,0],[-5,9],[-2,14],[-5,-6],[-7,2],[1,6],[-6,6],[-3,15],[-21,19],[-23,20],[-27,23],[-26,21],[-25,-17],[-9,0],[-34,15],[-23,-8],[-27,19],[-28,9],[-19,4],[-9,10],[-5,32],[-9,0],[-1,-23],[-57,0],[-95,0],[-94,0],[-84,0],[-83,0],[-82,0],[-85,0],[-27,0],[-82,0],[-79,0]],[[1588,7952],[-4,0],[-54,58],[-20,26],[-50,24],[-15,53],[3,36],[-35,25],[-5,48],[-34,43],[0,30]],[[1374,8295],[15,29],[0,37],[-48,37],[-28,68],[-17,42],[-26,27],[-19,24],[-14,31],[-28,-20],[-27,-33],[-25,39],[-19,26],[-27,16],[-28,2],[0,337],[1,219]],[[1084,9176],[51,-14],[44,-29],[29,-5],[24,24],[34,19],[41,-7],[42,26],[45,14],[20,-24],[20,14],[6,27],[20,-6],[47,-53],[37,40],[3,-45],[34,10],[11,17],[34,-3],[42,-25],[65,-22],[38,-10],[28,4],[37,-30],[-39,-29],[50,-13],[75,7],[24,11],[29,-36],[31,30],[-29,25],[18,20],[34,3],[22,6],[23,-14],[28,-32],[31,5],[49,-27],[43,9],[40,-1],[-3,37],[25,10],[43,-20],[0,-56],[17,47],[23,-1],[12,59],[-30,36],[-32,24],[2,65],[33,43],[37,-9],[28,-26],[38,-67],[-25,-29],[52,-12],[-1,-60],[38,46],[33,-38],[-9,-44],[27,-40],[29,43],[21,51],[1,65],[40,-5],[41,-8],[37,-30],[2,-29],[-21,-31],[20,-32],[-4,-29],[-54,-41],[-39,-9],[-29,18],[-8,-30],[-27,-50],[-8,-26],[-32,-40],[-40,-4],[-22,-25],[-2,-38],[-32,-7],[-34,-48],[-30,-67],[-11,-46],[-1,-69],[40,-10],[13,-55],[13,-45],[39,12],[51,-26],[28,-22],[20,-28],[35,-17],[29,-24],[46,-4],[30,-6],[-4,-51],[8,-59],[21,-66],[41,-56],[21,19],[15,61],[-14,93],[-20,31],[45,28],[31,41],[16,41],[-3,40],[-19,50],[-33,44],[32,62],[-12,54],[-9,92],[19,14],[48,-16],[29,-6],[23,15],[25,-20],[35,-34],[8,-23],[50,-4],[-1,-50],[9,-74],[25,-10],[21,-35],[40,33],[26,65],[19,28],[21,-53],[36,-75],[31,-71],[-11,-37],[37,-33],[25,-34],[44,-15],[18,-19],[11,-50],[22,-8],[11,-22],[2,-67],[-20,-22],[-20,-21],[-46,-21],[-35,-48],[-47,-10],[-59,13],[-42,0],[-29,-4],[-23,-43],[-35,-26],[-40,-78],[-32,-54],[23,9],[45,78],[58,49],[42,6],[24,-29],[-26,-40],[9,-63],[9,-45],[36,-29],[46,8],[28,67],[2,-43],[17,-22],[-34,-38],[-61,-36],[-28,-23],[-31,-43],[-21,4],[-1,50],[48,49],[-44,-2],[-31,-7]],[[1829,9377],[-14,-27],[61,17],[39,-29],[31,30],[26,-20],[23,-58],[14,25],[-20,60],[24,9],[28,-9],[31,-24],[17,-58],[9,-41],[47,-30],[50,-28],[-3,-26],[-46,-4],[18,-23],[-9,-22],[-51,9],[-48,16],[-32,-3],[-52,-20],[-70,-9],[-50,-6],[-15,28],[-38,16],[-24,-6],[-35,47],[19,6],[43,10],[39,-3],[36,11],[-54,13],[-59,-4],[-39,1],[-15,22],[64,23],[-42,-1],[-49,16],[23,44],[20,24],[74,36],[29,-12]],[[2097,9395],[-24,-39],[-44,41],[10,9],[37,2],[21,-13]],[[2879,9376],[3,-16],[-30,2],[-30,1],[-30,-8],[-8,3],[-31,32],[1,21],[14,4],[63,-6],[48,-33]],[[2595,9379],[22,-36],[26,47],[70,24],[48,-61],[-4,-38],[55,17],[26,23],[62,-30],[38,-28],[3,-25],[52,13],[29,-38],[67,-23],[24,-24],[26,-55],[-51,-28],[66,-38],[44,-13],[40,-55],[44,-3],[-9,-42],[-49,-69],[-34,26],[-44,57],[-36,-8],[-3,-34],[29,-34],[38,-27],[11,-16],[18,-58],[-9,-43],[-35,16],[-70,47],[39,-51],[29,-35],[5,-21],[-76,24],[-59,34],[-34,29],[10,17],[-42,30],[-40,29],[0,-18],[-80,-9],[-23,20],[18,44],[52,1],[57,7],[-9,21],[10,30],[36,57],[-8,27],[-11,20],[-42,29],[-57,20],[18,15],[-29,36],[-25,4],[-22,20],[-14,-18],[-51,-7],[-101,13],[-59,17],[-45,9],[-23,21],[29,27],[-39,0],[-9,60],[21,53],[29,24],[72,16],[-21,-39]],[[2212,9420],[33,-12],[50,7],[7,-17],[-26,-28],[42,-26],[-5,-53],[-45,-23],[-27,5],[-19,23],[-69,45],[0,19],[57,-7],[-31,38],[33,29]],[[2411,9357],[-30,-45],[-32,3],[-17,52],[1,29],[14,25],[28,16],[58,-2],[53,-14],[-42,-53],[-33,-11]],[[1654,9275],[-73,-29],[-15,26],[-64,31],[12,25],[19,43],[24,39],[-27,36],[94,10],[39,-13],[71,-3],[27,-17],[30,-25],[-35,-15],[-68,-41],[-34,-42],[0,-25]],[[2399,9487],[-15,-23],[-40,5],[-34,15],[15,27],[40,16],[24,-21],[10,-19]],[[2264,9590],[21,-27],[1,-31],[-13,-44],[-46,-6],[-30,10],[1,34],[-45,-4],[-2,45],[30,-2],[41,21],[40,-4],[2,8]],[[1994,9559],[11,-21],[25,10],[29,-2],[5,-29],[-17,-28],[-94,-10],[-70,-25],[-43,-2],[-3,20],[57,26],[-125,-7],[-39,10],[38,58],[26,17],[78,-20],[50,-35],[48,-5],[-40,57],[26,21],[29,-7],[9,-28]],[[2370,9612],[30,-19],[55,0],[24,-19],[-6,-22],[32,-14],[17,-14],[38,-2],[40,-5],[44,13],[57,5],[45,-5],[30,-22],[6,-24],[-17,-16],[-42,-13],[-35,8],[-80,-10],[-57,-1],[-45,8],[-74,19],[-9,32],[-4,29],[-27,26],[-58,7],[-32,19],[10,24],[58,-4]],[[1772,9645],[-4,-46],[-21,-20],[-26,-3],[-52,-26],[-44,-9],[-38,13],[47,44],[57,39],[43,-1],[38,9]],[[2393,9637],[-13,-2],[-52,4],[-7,17],[56,-1],[19,-11],[-3,-7]],[[1939,9648],[-52,-17],[-41,19],[23,19],[40,6],[39,-10],[-9,-17]],[[1954,9701],[-34,-11],[-46,0],[0,8],[29,18],[14,-3],[37,-12]],[[2338,9669],[-41,-12],[-23,13],[-12,23],[-2,24],[36,-2],[16,-4],[33,-21],[-7,-21]],[[2220,9685],[11,-25],[-45,7],[-46,19],[-62,2],[27,18],[-34,14],[-2,22],[55,-8],[75,-21],[21,-28]],[[2583,9764],[33,-20],[-38,-17],[-51,-45],[-50,-4],[-57,8],[-30,24],[0,21],[22,16],[-50,0],[-31,19],[-18,27],[20,26],[19,18],[28,4],[-12,14],[65,3],[35,-32],[47,-12],[46,-11],[22,-39]],[[3097,9967],[74,-4],[60,-8],[51,-16],[-2,-16],[-67,-25],[-68,-12],[-25,-14],[61,1],[-66,-36],[-45,-17],[-48,-48],[-57,-10],[-18,-12],[-84,-6],[39,-8],[-20,-10],[23,-29],[-26,-21],[-43,-16],[-13,-24],[-39,-17],[4,-14],[48,3],[0,-15],[-74,-35],[-73,16],[-81,-9],[-42,7],[-52,3],[-4,29],[52,13],[-14,43],[17,4],[74,-26],[-38,38],[-45,11],[23,23],[49,14],[8,21],[-39,23],[-12,31],[76,-3],[22,-6],[43,21],[-62,7],[-98,-4],[-49,20],[-23,24],[-32,17],[-6,21],[41,11],[32,2],[55,9],[41,22],[34,-3],[30,-16],[21,32],[37,9],[50,7],[85,2],[14,-6],[81,10],[60,-4],[60,-4]],[[5290,7828],[-3,-24],[-12,-10],[-20,7],[-6,-24],[-14,-2],[-5,10],[-15,-20],[-13,-3],[-12,13]],[[5190,7775],[-10,25],[-13,-9],[0,27],[21,33],[-1,15],[12,-5],[8,10]],[[5207,7871],[24,-1],[5,13],[30,-18]],[[3140,1814],[-10,-24],[-23,-18],[-14,2],[-16,5],[-21,18],[-29,8],[-35,33],[-28,32],[-38,66],[23,-12],[39,-40],[36,-21],[15,27],[9,41],[25,24],[20,-7]],[[3095,1968],[-25,0],[-13,-14],[-25,-22],[-5,-55],[-11,-1],[-32,19],[-32,41],[-34,34],[-9,37],[8,35],[-14,39],[-4,101],[12,57],[30,45],[-43,18],[27,52],[9,98],[31,-21],[15,123],[-19,15],[-9,-73],[-17,8],[9,84],[9,110],[13,40],[-8,58],[-2,66],[11,2],[17,96],[20,94],[11,88],[-6,89],[8,49],[-3,72],[16,73],[5,114],[9,123],[9,132],[-2,96],[-6,84]],[[3045,3974],[14,15],[8,30]],[[8064,6161],[-24,-28],[-23,18],[0,51],[13,26],[31,17],[16,-1],[6,-23],[-12,-26],[-7,-34]],[[8628,7562],[-18,35],[-11,-33],[-43,-26],[4,-31],[-24,2],[-13,19],[-19,-42],[-30,-32],[-23,-38]],[[8451,7416],[-39,-17],[-20,-27],[-30,-17],[15,28],[-6,23],[22,40],[-15,30],[-24,-20],[-32,-41],[-17,-39],[-27,-2],[-14,-28],[15,-40],[22,-10],[1,-26],[22,-17],[31,42],[25,-23],[18,-2],[4,-31],[-39,-16],[-13,-32],[-27,-30],[-14,-41],[30,-33],[11,-58],[17,-54],[18,-45],[0,-44],[-17,-16],[6,-32],[17,-18],[-5,-48],[-7,-47],[-15,-5],[-21,-64],[-22,-78],[-26,-70],[-38,-55],[-39,-50],[-31,-6],[-17,-27],[-10,20],[-15,-30],[-39,-29],[-29,-9],[-10,-63],[-15,-3],[-8,43],[7,22],[-37,19],[-13,-9]],[[8001,6331],[-28,15],[-14,24],[5,34],[-26,11],[-13,22],[-24,-31],[-27,-7],[-22,0],[-15,-14]],[[7837,6385],[-14,-9],[4,-68],[-15,2],[-2,14]],[[7810,6324],[-1,24],[-20,-17],[-12,11],[-21,22],[8,49],[-18,12],[-6,54],[-30,-10],[4,70],[26,50],[1,48],[-1,46],[-12,14],[-9,35],[-16,-5]],[[7703,6727],[-30,9],[9,25],[-13,36],[-20,-24],[-23,14],[-32,-37],[-25,-44],[-23,-8]],[[7466,6670],[-2,47],[-17,-13]],[[7447,6704],[-32,6],[-32,14],[-22,26],[-22,11],[-9,29],[-16,8],[-28,39],[-22,18],[-12,-14]],[[7252,6841],[-38,41],[-28,37],[-7,65],[20,-7],[1,30],[-12,30],[3,48],[-30,69]],[[7161,7154],[-45,24],[-8,46],[-21,27]],[[7082,7268],[-4,34],[1,23],[-17,13],[-9,-6],[-7,55]],[[7046,7387],[8,13],[-4,14],[26,28],[20,12],[29,-8],[11,38],[35,7],[10,23],[44,32],[4,13]],[[7229,7559],[-2,34],[19,15],[-25,103],[55,24],[14,13],[20,106],[55,-20],[15,27],[2,59],[23,6],[21,39]],[[7426,7965],[11,5]],[[7437,7970],[7,-41],[23,-32],[40,-22],[19,-47],[-10,-70],[10,-25],[33,-10],[37,-8],[33,-37],[18,-7],[12,-54],[17,-35],[30,1],[58,-13],[36,8],[28,-9],[41,-36],[34,0],[12,-18],[32,32],[45,20],[42,2],[32,21],[20,32],[20,20],[-5,19],[-9,23],[15,38],[15,-5],[29,-12],[28,31],[42,23],[20,39],[20,17],[40,8],[22,-7],[3,21],[-25,41],[-22,19],[-22,-22],[-27,10],[-16,-8],[-7,24],[20,59],[13,45]],[[8240,8005],[34,-23],[39,38],[-1,26],[26,62],[15,19],[0,33],[-16,14],[23,29],[35,11],[37,2],[41,-18],[25,-22],[17,-59],[10,-26],[10,-36],[10,-58],[49,-19],[32,-42],[12,-55],[42,0],[24,23],[46,17],[-15,-53],[-11,-21],[-9,-65],[-19,-58],[-33,11],[-24,-21],[7,-51],[-4,-69],[-14,-2],[0,-30]],[[4920,5353],[-12,-1],[-20,12],[-18,-1],[-33,-10],[-19,-18],[-27,-21],[-6,1]],[[4785,5315],[2,49],[3,7],[-1,24],[-12,24],[-8,4],[-8,17],[6,26],[-3,28],[1,18]],[[4765,5512],[5,0],[1,25],[-2,12],[3,8],[10,7],[-7,47],[-6,25],[2,20],[5,4]],[[4776,5660],[4,6],[8,-9],[21,-1],[5,18],[5,-1],[8,6],[4,-25],[7,7],[11,9]],[[4921,5627],[7,-84],[-11,-50],[-8,-66],[12,-51],[-1,-23]],[[5363,5191],[-4,4],[-16,-8],[-17,8],[-13,-4]],[[5313,5191],[-45,1]],[[5268,5192],[4,47],[-11,39],[-13,10],[-6,27],[-7,8],[1,16]],[[5236,5339],[7,42],[13,57],[8,1],[17,34],[10,1],[16,-24],[19,20],[2,25],[7,23],[4,30],[15,25],[5,41],[6,13],[4,31],[7,37],[24,46],[1,20],[3,10],[-11,24]],[[5393,5795],[1,19],[8,3]],[[5402,5817],[11,-38],[2,-39],[-1,-39],[15,-54],[-15,1],[-8,-4],[-13,6],[-6,-28],[16,-35],[13,-10],[3,-24],[9,-41],[-4,-16]],[[5444,5191],[-2,-31],[-22,14],[-22,15],[-35,2]],[[5856,5265],[-2,-69],[11,-8],[-9,-21],[-10,-16],[-11,-31],[-6,-27],[-1,-48],[-7,-22],[0,-45]],[[5821,4978],[-8,-16],[-1,-35],[-4,-5],[-2,-32]],[[5814,4792],[5,-55],[-2,-30],[5,-35],[16,-33],[15,-74]],[[5853,4565],[-11,6],[-37,-10],[-7,-7],[-8,-38],[6,-26],[-5,-70],[-3,-59],[7,-11],[19,-23],[8,11],[2,-64],[-21,1],[-11,32],[-10,25],[-22,9],[-6,31],[-17,-19],[-22,8],[-10,27],[-17,6],[-13,-2],[-2,19],[-9,1]],[[5342,4697],[-4,18]],[[5360,4775],[8,-6],[9,23],[15,-1],[2,-17],[11,-10],[16,37],[16,29],[7,19],[-1,48],[12,58],[13,30],[18,29],[3,18],[1,22],[5,21],[-2,33],[4,52],[5,37],[8,32],[2,36]],[[5760,5367],[17,-49],[12,-7],[8,10],[12,-4],[16,12],[6,-25],[25,-39]],[[5330,4760],[-22,62]],[[5308,4822],[21,33],[-11,39],[10,15],[19,7],[2,26],[15,-28],[24,-2],[9,27],[3,40],[-3,46],[-13,35],[12,68],[-7,12],[-21,-5],[-7,31],[2,25]],[[2906,5049],[-12,14],[-14,19],[-7,-9],[-24,8],[-7,25],[-5,-1],[-28,34]],[[2809,5139],[-3,18],[10,5],[-1,29],[6,22],[14,4],[12,37],[10,31],[-10,14],[5,34],[-6,54],[6,16],[-4,50],[-12,31]],[[2836,5484],[4,29],[9,-4],[5,17],[-6,35],[3,9]],[[2851,5570],[14,-2],[21,41],[12,6],[0,20],[5,50],[16,27],[17,1],[3,13],[21,-5],[22,30],[11,13],[14,28],[9,-3],[8,-16],[-6,-20]],[[3018,5753],[-18,-10],[-7,-29],[-10,-17],[-8,-22],[-4,-42],[-8,-35],[15,-4],[3,-27],[6,-13],[3,-24],[-4,-22],[1,-12],[7,-5],[7,-20],[36,5],[16,-7],[19,-51],[11,6],[20,-3],[16,7],[10,-10],[-5,-32],[-6,-20],[-2,-42],[5,-40],[8,-17],[1,-13],[-14,-30],[10,-13],[8,-21],[8,-58]],[[3058,4804],[-14,31],[-8,1],[18,61],[-21,27],[-17,-5],[-10,10],[-15,-15],[-21,7],[-16,62],[-13,15],[-9,28],[-19,28],[-7,-5]],[[2695,5543],[-15,14],[-6,12],[4,10],[-1,13],[-8,14],[-11,12],[-10,8],[-1,17],[-8,10],[2,-17],[-5,-14],[-7,17],[-9,5],[-4,12],[1,18],[3,19],[-8,8],[7,12]],[[2619,5713],[4,7],[18,-15],[7,7],[9,-5],[4,-12],[8,-4],[7,13]],[[2676,5704],[7,-32],[11,-24],[13,-25]],[[2707,5623],[-11,-6],[0,-23],[6,-9],[-4,-7],[1,-11],[-2,-12],[-2,-12]],[[2715,6427],[23,-4],[22,0],[26,-21],[11,-21],[26,6],[10,-13],[24,-37],[17,-27],[9,1],[17,-12],[-2,-17],[20,-2],[21,-24],[-3,-14],[-19,-7],[-18,-3],[-19,4],[-40,-5],[18,32],[-11,16],[-18,4],[-9,17],[-7,33],[-16,-2],[-26,16],[-8,12],[-36,10],[-10,11],[11,15],[-28,3],[-20,-31],[-11,-1],[-4,-14],[-14,-7],[-12,6],[15,18],[6,22],[13,13],[14,11],[21,6],[7,6]],[[5909,7133],[2,1],[4,14],[20,-1],[25,18],[-19,-25],[2,-11]],[[5943,7129],[-3,2],[-5,-5],[-4,1],[-2,-2],[0,6],[-2,4],[-6,0],[-7,-5],[-5,3]],[[5943,7129],[1,-5],[-28,-24],[-14,8],[-7,23],[14,2]],[[5377,7945],[-16,25],[-14,15],[-3,25],[-5,17],[21,13],[10,15],[20,11],[7,11],[7,-6],[13,6]],[[5417,8077],[13,-19],[21,-5],[-2,-17],[15,-12],[4,15],[19,-6],[3,-19],[20,-3],[13,-29]],[[5523,7982],[-8,0],[-4,-11],[-7,-3],[-2,-13],[-5,-3],[-1,-5],[-9,-7],[-12,1],[-4,-13]],[[5275,8306],[1,-23],[28,-14],[-1,-21],[29,11],[15,16],[32,-23],[13,-19]],[[5392,8233],[6,-30],[-8,-16],[11,-21],[6,-31],[-2,-21],[12,-37]],[[5207,7871],[3,42],[14,40],[-40,11],[-13,16]],[[5171,7980],[2,26],[-6,13]],[[5171,8059],[-5,62],[17,0],[7,22],[6,54],[-5,20]],[[5191,8217],[6,13],[23,3],[5,-13],[19,29],[-6,22],[-2,34]],[[5236,8305],[21,-8],[18,9]],[[6196,5808],[7,-19],[-1,-24],[-16,-14],[12,-16]],[[6198,5735],[-10,-32]],[[6188,5703],[-7,11],[-6,-5],[-16,1],[0,18],[-2,17],[9,27],[10,26]],[[6176,5798],[12,-5],[8,15]],[[5352,8343],[-17,-48],[-29,33],[-4,25],[41,19],[9,-29]],[[5236,8305],[-11,32],[-1,61],[5,16],[8,17],[24,4],[10,16],[22,17],[-1,-30],[-8,-20],[4,-16],[15,-9],[-7,-22],[-8,6],[-20,-42],[7,-29]],[[3008,6222],[3,10],[22,0],[16,-15],[8,1],[5,-21],[15,1],[-1,-17],[12,-2],[14,-22],[-10,-24],[-14,13],[-12,-3],[-9,3],[-5,-11],[-11,-3],[-4,14],[-10,-8],[-11,-41],[-7,10],[-1,17]],[[3008,6124],[0,16],[-7,17],[7,10],[2,23],[-2,32]],[[5333,6444],[-95,-112],[-81,-117],[-39,-26]],[[5118,6189],[-31,-6],[0,38],[-13,10],[-17,16],[-7,28],[-94,129],[-93,129]],[[4863,6533],[-105,143]],[[4758,6676],[1,11],[0,4]],[[4759,6691],[0,70],[44,44],[28,9],[23,16],[11,29],[32,24],[1,44],[16,5],[13,22],[36,9],[5,23],[-7,13],[-10,62],[-1,36],[-11,38]],[[4939,7135],[27,32],[30,11],[17,24],[27,18],[47,11],[46,4],[14,-8],[26,23],[30,0],[11,-13],[19,3]],[[5233,7240],[-5,-30],[4,-56],[-6,-49],[-18,-33],[3,-45],[23,-35],[0,-14],[17,-24],[12,-106]],[[5263,6848],[9,-52],[1,-28],[-5,-48],[2,-27],[-3,-32],[2,-37],[-11,-25],[17,-43],[1,-25],[10,-33],[13,11],[22,-28],[12,-37]],[[2769,4856],[15,45],[-6,25],[-11,-27],[-16,26],[5,16],[-4,54],[9,9],[5,37],[11,38],[-2,24],[15,13],[19,23]],[[2906,5049],[4,-45],[-9,-39],[-30,-62],[-33,-23],[-17,-51],[-6,-40],[-15,-24],[-12,29],[-11,7],[-12,-5],[-1,22],[8,14],[-3,24]],[[5969,6800],[-7,-23],[-6,-45],[-8,-31],[-6,-10],[-10,19],[-12,26],[-20,85],[-3,-5],[12,-63],[17,-59],[21,-92],[10,-32],[9,-34],[25,-65],[-6,-10],[1,-39],[33,-53],[4,-12]],[[6023,6357],[-110,0],[-107,0],[-112,0]],[[5694,6357],[0,218],[0,210],[-8,47],[7,37],[-5,25],[10,29]],[[5698,6923],[37,0],[27,-15],[28,-18],[13,-9],[21,19],[11,17],[25,5],[20,-8],[7,-29],[7,19],[22,-14],[22,-3],[13,15]],[[5951,6902],[18,-102]],[[6176,5798],[-10,20],[-11,34],[-12,19],[-8,21],[-24,23],[-19,1],[-7,12],[-16,-14],[-17,27],[-8,-44],[-33,13]],[[6011,5910],[-3,23],[12,87],[3,39],[9,18],[20,10],[14,34]],[[6066,6121],[16,-69],[8,-54],[15,-29],[38,-55],[16,-34],[15,-34],[8,-20],[14,-18]],[[4749,7532],[1,42],[-11,25],[39,43],[34,-11],[37,1],[30,-10],[23,3],[45,-2]],[[4947,7623],[11,-23],[51,-27],[10,13],[31,-27],[32,8]],[[5082,7567],[2,-35],[-26,-39],[-36,-12],[-2,-20],[-18,-33],[-10,-48],[11,-34],[-16,-26],[-6,-39],[-21,-11],[-20,-46],[-35,-1],[-27,1],[-17,-21],[-11,-22],[-13,5],[-11,20],[-8,34],[-26,9]],[[4792,7249],[-2,20],[10,22],[4,16],[-9,17],[7,39],[-11,36],[12,5],[1,27],[5,9],[0,46],[13,16],[-8,30],[-16,2],[-5,-8],[-16,0],[-7,29],[-11,-8],[-10,-15]],[[5675,8472],[3,35],[-10,-8],[-18,21],[-2,34],[35,17],[35,8],[30,-10],[29,2]],[[5777,8571],[4,-10],[-20,-34],[8,-55],[-12,-19]],[[5757,8453],[-22,0],[-24,22],[-13,7],[-23,-10]],[[6188,5703],[-6,-21],[10,-32],[10,-29],[11,-21],[90,-70],[24,0]],[[6327,5530],[-79,-177],[-36,-3],[-25,-41],[-17,-1],[-8,-19]],[[6162,5289],[-19,0],[-11,20],[-26,-25],[-8,-24],[-18,4],[-6,7],[-7,-1],[-9,0],[-35,50],[-19,0],[-10,20],[0,33],[-14,10]],[[5980,5383],[-17,64],[-12,14],[-5,23],[-14,29],[-17,4],[9,34],[15,2],[4,18]],[[5943,5571],[0,53]],[[5943,5624],[8,62],[13,16],[3,24],[12,45],[17,30],[11,58],[4,51]],[[5794,9138],[-4,-42],[42,-39],[-26,-45],[33,-67],[-19,-51],[25,-43],[-11,-39],[41,-40],[-11,-31],[-25,-34],[-60,-75]],[[5779,8632],[-50,-5],[-49,-21],[-45,-13],[-16,32],[-27,20],[6,58],[-14,53],[14,35],[25,37],[63,64],[19,12],[-3,25],[-39,28]],[[5663,8957],[-9,23],[-1,91],[-43,40],[-37,29]],[[5573,9140],[17,16],[30,-32],[37,3],[30,-14],[26,26],[14,44],[43,20],[35,-24],[-11,-41]],[[9954,4033],[9,-17],[-4,-31],[-17,-8],[-16,7],[-2,26],[10,21],[13,-8],[7,10]],[[0,4079],[9981,-14],[-17,-13],[-4,23],[14,12],[9,3],[-9983,18]],[[0,4108],[0,-29]],[[0,4108],[6,3],[-4,-28],[-2,-4]],[[3300,1994],[33,36],[24,-15],[16,24],[22,-27],[-8,-21],[-37,-17],[-13,20],[-23,-26],[-14,26]],[[5265,7548],[-9,-46],[-13,12],[-6,40],[5,22],[18,22],[5,-50]],[[5157,7984],[6,-6],[8,2]],[[5190,7775],[-2,-17],[9,-22],[-10,-18],[7,-46],[15,-8],[-3,-25]],[[5206,7639],[-25,-34],[-55,16],[-40,-19],[-4,-35]],[[4947,7623],[14,35],[5,118],[-28,62],[-21,30],[-42,23],[-3,43],[36,12],[47,-15],[-9,67],[26,-25],[65,46],[8,48],[24,12]],[[3485,5194],[7,25],[3,27]],[[3495,5246],[4,26],[-10,34]],[[3489,5306],[-3,41],[15,51]],[[3501,5398],[9,-7],[21,-14],[29,-50],[5,-24]],[[5308,4822],[-29,60],[-18,49],[-17,61],[1,19],[6,19],[7,43],[5,44]],[[5263,5117],[10,4],[40,-1],[0,71]],[[4827,8240],[-21,12],[-17,-1],[6,32],[-6,32]],[[4789,8315],[23,2],[30,-37],[-15,-40]],[[4916,8521],[-30,-63],[29,8],[30,-1],[-7,-48],[-25,-53],[29,-4],[2,-6],[25,-69],[19,-10],[17,-67],[8,-24],[33,-11],[-3,-38],[-14,-17],[11,-30],[-25,-31],[-37,0],[-48,-16],[-13,12],[-18,-28],[-26,7],[-19,-23],[-15,12],[41,62],[25,13],[-1,0],[-43,9],[-8,24],[29,18],[-15,32],[5,39],[42,-6],[4,35],[-19,36],[0,1],[-34,10],[-7,16],[10,27],[-9,16],[-15,-28],[-1,57],[-14,30],[10,61],[21,48],[23,-4],[33,4]],[[6154,7511],[4,26],[-7,40],[-16,22],[-16,6],[-10,19]],[[6109,7624],[4,6],[23,-10],[41,-9],[38,-28],[5,-11],[17,9],[25,-13],[9,-24],[17,-13]],[[6210,7485],[-27,29],[-29,-3]],[[5029,5408],[-44,-35],[-15,-20],[-25,-17],[-25,17]],[[5e3,5708],[-2,-18],[12,-30],[0,-43],[2,-47],[7,-21],[-6,-54],[2,-29],[8,-37],[6,-21]],[[4765,5512],[-8,1],[-5,-24],[-8,1],[-6,12],[2,24],[-11,36],[-8,-7],[-6,-1]],[[4715,5554],[-7,-3],[0,21],[-4,16],[0,17],[-6,25],[-7,21],[-23,0],[-6,-11],[-8,-1],[-4,-13],[-4,-17],[-14,-26]],[[4632,5583],[-13,35],[-10,24],[-8,7],[-6,12],[-4,26],[-4,13],[-8,10]],[[4579,5710],[13,29],[8,-2],[7,10],[6,0],[5,8],[-3,20],[3,6],[1,20]],[[4619,5801],[13,-1],[20,-14],[6,1],[3,7],[15,-5],[4,4]],[[4680,5793],[1,-22],[5,0],[7,8],[5,-2],[7,-15],[12,-5],[8,13],[9,8],[6,8],[6,-1],[6,-13],[3,-17],[12,-24],[-6,-16],[-1,-19],[6,6],[3,-7],[-1,-17],[8,-18]],[[4532,5834],[3,27]],[[4535,5861],[31,1],[6,14],[9,1],[11,-14],[8,-1],[9,10],[6,-17],[-12,-13],[-12,1],[-12,13],[-10,-14],[-5,-1],[-7,-8],[-25,1]],[[4579,5710],[-15,24],[-11,4],[-7,17],[1,9],[-9,13],[-2,12]],[[4536,5789],[15,10],[9,-2],[8,7],[51,-3]],[[5263,5117],[-5,9],[10,66]],[[5658,7167],[15,-20],[22,3],[20,-4],[0,-10],[15,7],[-4,-18],[-40,-5],[1,10],[-34,12],[5,25]],[[5723,7469],[-17,2],[-14,6],[-34,-16],[19,-33],[-14,-10],[-15,0],[-15,31],[-5,-13],[6,-36],[14,-27],[-10,-13],[15,-27],[14,-18],[0,-33],[-25,16],[8,-30],[-18,-7],[11,-52],[-19,-1],[-23,26],[-10,47],[-5,40],[-11,27],[-14,34],[-2,16]],[[5583,7470],[18,6],[11,13],[15,-2],[5,11],[5,2]],[[5725,7529],[13,-16],[-8,-37],[-7,-7]],[[3701,9939],[93,35],[97,-2],[36,21],[98,6],[222,-7],[174,-47],[-52,-23],[-106,-3],[-150,-5],[14,-11],[99,7],[83,-21],[54,18],[23,-21],[-30,-34],[71,22],[135,23],[83,-12],[15,-25],[-113,-42],[-16,-14],[-88,-10],[64,-3],[-32,-43],[-23,-38],[1,-66],[33,-38],[-43,-3],[-46,-19],[52,-31],[6,-50],[-30,-6],[36,-50],[-61,-5],[32,-24],[-9,-20],[-39,-10],[-39,0],[35,-40],[0,-26],[-55,24],[-14,-15],[37,-15],[37,-36],[10,-48],[-49,-11],[-22,22],[-34,34],[10,-40],[-33,-31],[73,-2],[39,-3],[-75,-52],[-75,-46],[-81,-21],[-31,0],[-29,-23],[-38,-62],[-60,-42],[-19,-2],[-37,-15],[-40,-13],[-24,-37],[0,-41],[-15,-39],[-45,-47],[11,-47],[-12,-48],[-14,-58],[-39,-4],[-41,49],[-56,0],[-27,32],[-18,58],[-49,73],[-14,39],[-3,53],[-39,54],[10,44],[-18,21],[27,69],[42,22],[11,25],[6,46],[-32,-21],[-15,-9],[-25,-8],[-34,19],[-2,40],[11,31],[25,1],[57,-15],[-48,37],[-24,20],[-28,-8],[-23,15],[31,55],[-17,22],[-22,41],[-34,62],[-35,23],[0,25],[-74,34],[-59,5],[-74,-3],[-68,-4],[-32,19],[-49,37],[73,19],[56,3],[-119,15],[-62,24],[3,23],[106,28],[101,29],[11,21],[-75,22],[24,23],[97,41],[40,7],[-12,26],[66,16],[86,9],[85,1],[30,-19],[74,33],[66,-22],[39,-5],[58,-19],[-66,32],[4,25]],[[2497,5869],[-14,10],[-17,1],[-13,12],[-15,24]],[[2438,5916],[1,18],[3,13],[-4,12],[13,48],[36,0],[1,20],[-5,4],[-3,12],[-10,14],[-11,20],[13,0],[0,33],[26,0],[26,0]],[[2529,5996],[10,-11],[2,9],[8,-7]],[[2549,5987],[-13,-23],[-13,-16],[-2,-12],[2,-11],[-5,-15]],[[2518,5910],[-7,-4],[2,-7],[-6,-6],[-9,-15],[-1,-9]],[[3340,5552],[18,-22],[17,-38],[1,-31],[10,-1],[15,-29],[11,-21]],[[3412,5410],[-4,-53],[-17,-15],[1,-14],[-5,-31],[13,-42],[9,-1],[3,-33],[17,-51]],[[3313,5365],[-19,45],[7,16],[0,27],[17,10],[7,11],[-10,22],[3,21],[22,35]],[[2574,5825],[-5,18],[-8,5]],[[2561,5848],[2,24],[-4,6],[-6,4],[-12,-7],[-1,8],[-8,10],[-6,12],[-8,5]],[[2549,5987],[3,-3],[6,11],[8,1],[3,-5],[4,3],[13,-6],[13,2],[9,6],[3,7],[9,-3],[6,-4],[8,1],[5,5],[13,-8],[4,-1],[9,-11],[8,-13],[10,-9],[7,-17]],[[2690,5943],[-9,2],[-4,-8],[-10,-8],[-7,0],[-6,-8],[-6,3],[-4,9],[-3,-2],[-4,-14],[-3,1],[0,-12],[-10,-17],[-5,-7],[-3,-7],[-8,12],[-6,-16],[-6,1],[-6,-2],[0,-29],[-4,0],[-3,-14],[-9,-2]],[[5522,7770],[7,-23],[9,-17],[-11,-22]],[[5515,7577],[-3,-10]],[[5512,7567],[-26,22],[-16,21],[-26,18],[-23,43],[6,5],[-13,25],[-1,19],[-17,10],[-9,-26],[-8,20],[0,21],[1,1]],[[5380,7746],[20,-2],[5,9],[9,-9],[11,-1],[0,16],[10,6],[2,24],[23,16]],[[5460,7805],[8,-7],[21,-26],[23,-11],[10,9]],[[3008,6124],[-19,10],[-13,-5],[-17,5],[-13,-11],[-15,18],[3,19],[25,-8],[21,-5],[10,13],[-12,26],[0,23],[-18,9],[7,16],[17,-3],[24,-9]],[[5471,7900],[14,-15],[10,-6],[24,7],[2,12],[11,2],[14,9],[3,-4],[13,8],[6,13],[9,4],[30,-18],[6,6]],[[5613,7918],[15,-16],[2,-16]],[[5630,7886],[-17,-12],[-13,-40],[-17,-40],[-22,-11]],[[5561,7783],[-17,2],[-22,-15]],[[5460,7805],[-6,20],[-4,0]],[[8352,4453],[-11,-2],[-37,42],[26,11],[14,-18],[10,-17],[-2,-16]],[[8471,4532],[2,-11],[1,-18]],[[8474,4503],[-18,-45],[-24,-13],[-3,8],[2,20],[12,36],[28,23]],[[8274,4579],[10,-16],[17,5],[7,-25],[-32,-12],[-19,-8],[-15,1],[10,34],[15,0],[7,21]],[[8413,4579],[-4,-32],[-42,-17],[-37,7],[0,22],[22,12],[18,-18],[18,5],[25,21]],[[8017,4657],[53,-6],[6,25],[51,-29],[10,-38],[42,-11],[34,-35],[-31,-23],[-31,24],[-25,-1],[-29,4],[-26,11],[-32,22],[-21,6],[-11,-7],[-51,24],[-5,25],[-25,5],[19,56],[34,-3],[22,-23],[12,-5],[4,-21]],[[8741,4690],[-14,-40],[-3,45],[5,21],[6,20],[7,-17],[-1,-29]],[[8534,4853],[-11,-19],[-19,10],[-5,26],[28,3],[7,-20]],[[8623,4875],[10,-45],[-23,24],[-23,5],[-16,-4],[-19,2],[6,33],[35,2],[30,-17]],[[8916,4904],[0,-193],[1,-192]],[[8917,4519],[-25,48],[-28,12],[-7,-17],[-35,-1],[12,48],[17,16],[-7,64],[-14,50],[-53,50],[-23,5],[-42,54],[-8,-28],[-11,-5],[-6,21],[0,26],[-21,29],[29,21],[20,-1],[-2,16],[-41,0],[-11,35],[-25,11],[-11,29],[37,14],[14,20],[45,-25],[4,-22],[8,-95],[29,-35],[23,62],[32,36],[25,0],[23,-21],[21,-21],[30,-11]],[[8478,5141],[-22,-58],[-21,-12],[-27,12],[-46,-3],[-24,-8],[-4,-45],[24,-53],[15,27],[52,20],[-2,-27],[-12,9],[-12,-35],[-25,-23],[27,-76],[-5,-20],[25,-68],[-1,-39],[-14,-17],[-11,20],[13,49],[-27,-23],[-7,16],[3,23],[-20,35],[3,57],[-19,-18],[2,-69],[1,-84],[-17,-9],[-12,18],[8,54],[-4,57],[-12,1],[-9,40],[12,39],[4,47],[14,89],[5,24],[24,44],[22,-18],[35,-8],[32,3],[27,43],[5,-14]],[[8574,5124],[-2,-51],[-14,6],[-4,-36],[11,-32],[-8,-7],[-11,38],[-8,75],[6,47],[9,22],[2,-32],[16,-5],[3,-25]],[[8045,5176],[5,-39],[19,-34],[18,12],[18,-4],[16,30],[13,5],[26,-17],[23,13],[14,82],[11,21],[10,67],[32,0],[24,-10]],[[8274,5302],[-16,-53],[20,-56],[-5,-28],[32,-54],[-33,-7],[-10,-40],[2,-54],[-27,-40],[-1,-59],[-10,-91],[-5,21],[-31,-26],[-11,36],[-20,3],[-14,19],[-33,-21],[-10,29],[-18,-4],[-23,7],[-4,79],[-14,17],[-13,50],[-4,52],[3,55],[16,39]],[[7939,4712],[-31,-1],[-24,49],[-35,48],[-12,36],[-21,48],[-14,44],[-21,83],[-24,49],[-9,51],[-10,46],[-25,37],[-14,51],[-21,33],[-29,65],[-3,30],[18,-2],[43,-12],[25,-57],[21,-40],[16,-25],[26,-63],[28,-1],[23,-41],[16,-49],[22,-27],[-12,-49],[16,-20],[10,-2],[5,-41],[10,-33],[20,-5],[14,-37],[-7,-74],[-1,-91]],[[7252,6841],[-17,-27],[-11,-55],[27,-23],[26,-29],[36,-33],[38,-8],[16,-30],[22,-5],[33,-14],[23,1],[4,23],[-4,38],[2,25]],[[7703,6727],[2,-22],[-10,-11],[2,-36],[-19,10],[-36,-41],[0,-33],[-15,-50],[-1,-29],[-13,-48],[-21,13],[-1,-61],[-7,-20],[3,-25],[-14,-14]],[[7472,6360],[-4,-21],[-19,1],[-34,-13],[2,-44],[-15,-35],[-40,-40],[-31,-69],[-21,-38],[-28,-38],[0,-27],[-13,-15],[-26,-21],[-12,-3],[-9,-45],[6,-77],[1,-49],[-11,-56],[0,-101],[-15,-2],[-12,-46],[8,-19],[-25,-17],[-10,-40],[-11,-17],[-26,55],[-13,83],[-11,60],[-9,28],[-15,56],[-7,74],[-5,37],[-25,81],[-12,115],[-8,75],[0,72],[-5,55],[-41,-35],[-19,7],[-36,71],[13,22],[-8,23],[-33,50]],[[6893,6457],[19,40],[61,-1],[-6,51],[-15,30],[-4,46],[-18,26],[31,62],[32,-4],[29,61],[18,60],[27,60],[-1,42],[24,34],[-23,29],[-9,40],[-10,52],[14,25],[42,-14],[31,9],[26,49]],[[4827,8240],[5,-42],[-21,-53],[-49,-35],[-40,9],[23,62],[-15,60],[38,46],[21,28]],[[6497,7255],[25,12],[19,33],[19,-1],[12,11],[20,-6],[31,-30],[22,-6],[31,-53],[21,-2],[3,-49]],[[6690,6820],[14,-31],[11,-36],[27,-26],[1,-52],[13,-10],[2,-27],[-40,-30],[-10,-69]],[[6708,6539],[-53,18],[-30,13],[-31,8],[-12,73],[-13,10],[-22,-11],[-28,-28],[-34,20],[-28,45],[-27,17],[-18,56],[-21,79],[-15,-10],[-17,20],[-11,-24]],[[6348,6825],[-15,32],[0,31],[-9,0],[5,43],[-15,45],[-34,32],[-19,56],[6,46],[14,21],[-2,34],[-18,18],[-18,70]],[[6243,7253],[-15,48],[5,18],[-8,68],[19,17]],[[6357,7321],[9,-43],[26,-13],[20,-29],[39,-10],[44,15],[2,14]],[[6348,6825],[-16,3]],[[6332,6828],[-19,5],[-20,-56]],[[6293,6777],[-52,4],[-78,119],[-41,41],[-34,16]],[[6088,6957],[-11,72]],[[6077,7029],[61,62],[11,71],[-3,43],[16,15],[14,37]],[[6176,7257],[12,9],[32,-8],[10,-15],[13,10]],[[4597,8984],[-7,-39],[31,-40],[-36,-45],[-80,-41],[-24,-10],[-36,8],[-78,19],[28,26],[-61,29],[49,12],[-1,17],[-58,14],[19,38],[42,9],[43,-40],[42,32],[35,-17],[45,32],[47,-4]],[[5992,6990],[-5,-19]],[[5987,6971],[-10,8],[-6,-39],[7,-7],[-7,-8],[-1,-15],[13,8]],[[5983,6918],[0,-23],[-14,-95]],[[5951,6902],[8,19],[-2,4],[8,27],[5,45],[4,15],[1,0]],[[5975,7012],[9,0],[3,11],[7,0]],[[5994,7023],[1,-24],[-4,-9],[1,0]],[[5431,7316],[-10,-46],[4,-19],[-6,-30],[-21,22],[-14,7],[-39,30],[4,30],[32,-6],[28,7],[22,5]],[[5255,7492],[17,-42],[-4,-78],[-13,4],[-11,-20],[-10,16],[-2,71],[-6,34],[15,-3],[14,18]],[[5383,7805],[-3,-29],[7,-25]],[[5387,7751],[-22,8],[-23,-20],[1,-30],[-3,-17],[9,-30],[26,-29],[14,-49],[31,-48],[22,0],[7,-13],[-8,-11],[25,-22],[20,-18],[24,-30],[3,-11],[-5,-22],[-16,28],[-24,10],[-12,-39],[20,-21],[-3,-31],[-11,-4],[-15,-50],[-12,-5],[0,18],[6,32],[6,12],[-11,35],[-8,29],[-12,8],[-8,25],[-18,11],[-12,24],[-21,4],[-21,26],[-26,39],[-19,34],[-8,58],[-14,7],[-23,20],[-12,-8],[-16,-28],[-12,-4]],[[2845,6150],[19,-5],[14,-15],[5,-16],[-19,-1],[-9,-10],[-15,10],[-16,21],[3,14],[12,4],[6,-2]],[[5992,6990],[31,-24],[54,63]],[[6088,6957],[-5,-8],[-56,-30],[28,-59],[-9,-10],[-5,-20],[-21,-8],[-7,-21],[-12,-19],[-31,10]],[[5970,6792],[-1,8]],[[5983,6918],[4,17],[0,36]],[[8739,7075],[4,-20],[-16,-36],[-11,19],[-15,-14],[-7,-34],[-18,16],[0,28],[15,36],[16,-7],[12,25],[20,-13]],[[8915,7252],[-10,-47],[4,-30],[-14,-42],[-35,-27],[-49,-4],[-40,-67],[-19,22],[-1,44],[-48,-13],[-33,-27],[-32,-2],[28,-43],[-19,-101],[-18,-24],[-13,23],[7,53],[-18,17],[-11,41],[26,18],[15,37],[28,30],[20,41],[55,17],[30,-12],[29,105],[19,-28],[40,59],[16,23],[18,72],[-5,67],[11,37],[30,11],[15,-82],[-1,-48],[-25,-59],[0,-61]],[[8997,7667],[19,-12],[20,25],[6,-67],[-41,-16],[-25,-59],[-43,41],[-15,-65],[-31,-1],[-4,59],[14,46],[29,3],[8,82],[9,46],[32,-62],[22,-20]],[[6970,7554],[-15,-10],[-37,-42],[-12,-42],[-11,0],[-7,28],[-36,2],[-5,48],[-14,0],[2,60],[-33,43],[-48,-5],[-32,-8],[-27,53],[-22,22],[-43,43],[-6,5],[-71,-35],[1,-218]],[[6554,7498],[-14,-3],[-20,46],[-18,17],[-32,-12],[-12,-20]],[[6458,7526],[-2,14],[7,25],[-5,21],[-32,20],[-13,53],[-15,15],[-1,19],[27,-6],[1,44],[23,9],[25,-9],[5,58],[-5,36],[-28,-2],[-24,14],[-32,-26],[-26,-12]],[[6363,7799],[-14,9],[3,31],[-18,39],[-20,-2],[-24,40],[16,45],[-8,12],[22,65],[29,-34],[3,43],[58,64],[43,2],[61,-41],[33,-24],[30,25],[44,1],[35,-30],[8,17],[39,-2],[7,28],[-45,40],[27,29],[-5,16],[26,15],[-20,41],[13,20],[104,21],[13,14],[70,22],[25,24],[50,-12],[9,-61],[29,14],[35,-20],[-2,-32],[27,3],[69,56],[-10,-19],[35,-46],[62,-150],[15,31],[39,-34],[39,16],[16,-11],[13,-34],[20,-12],[11,-25],[36,8],[15,-36]],[[7229,7559],[-17,9],[-14,21],[-42,6],[-46,2],[-10,-6],[-39,24],[-16,-12],[-4,-35],[-46,21],[-18,-9],[-7,-26]],[[6155,4958],[-20,-24],[-7,-24],[-10,-4],[-4,-42],[-9,-24],[-5,-39],[-12,-20]],[[6088,4781],[-40,59],[-1,35],[-101,120],[-5,6]],[[5941,5001],[0,63],[8,24],[14,39],[10,43],[-13,68],[-3,30],[-13,41]],[[5944,5309],[17,35],[19,39]],[[6162,5289],[-24,-67],[0,-215],[17,-49]],[[7046,7387],[-53,-9],[-34,19],[-30,-4],[3,34],[30,-10],[10,18]],[[6972,7435],[21,-6],[36,43],[-33,31],[-20,-15],[-21,22],[24,39],[-9,5]],[[7849,5777],[-7,72],[18,49],[36,11],[26,-8]],[[7922,5901],[23,-23],[12,40],[25,-21]],[[7982,5897],[6,-40],[-3,-71],[-47,-45],[13,-36],[-30,-4],[-24,-24]],[[7897,5677],[-23,9],[-11,30],[-14,61]],[[8564,7339],[24,-70],[7,-38],[0,-68],[-10,-33],[-25,-11],[-22,-25],[-25,-5],[-3,32],[5,45],[-13,61],[21,10],[-19,51]],[[8504,7288],[2,5],[12,-2],[11,27],[20,2],[11,4],[4,15]],[[5557,7574],[5,13]],[[5562,7587],[7,4],[4,20],[5,3],[4,-8],[5,-4],[3,-10],[5,-2],[5,-11],[4,0],[-3,-14],[-3,-7],[1,-5]],[[5599,7553],[-6,-2],[-17,-9],[-1,-12],[-4,0]],[[6332,6828],[6,-26],[-3,-13],[9,-45]],[[6344,6744],[-19,-1],[-7,28],[-25,6]],[[7922,5901],[9,26],[1,50],[-22,52],[-2,58],[-21,48],[-21,4],[-6,-20],[-16,-2],[-8,10],[-30,-35],[0,53],[7,62],[-19,3],[-2,36],[-12,18]],[[7780,6264],[6,21],[24,39]],[[7837,6385],[17,-47],[12,-54],[34,0],[11,-52],[-18,-15],[-8,-21],[34,-36],[23,-70],[17,-52],[21,-41],[7,-41],[-5,-59]],[[5975,7012],[10,49],[14,41],[0,2]],[[5999,7104],[13,-3],[4,-23],[-15,-22],[-7,-33]],[[4785,5315],[-7,0],[-29,28],[-25,45],[-24,32],[-18,38]],[[4682,5458],[6,19],[2,17],[12,33],[13,27]],[[5412,6408],[-20,-22],[-15,33],[-44,25]],[[5263,6848],[13,14],[3,25],[-3,24],[19,23],[8,19],[14,17],[2,45]],[[5319,7015],[32,-20],[12,5],[23,-10],[37,-26],[13,-53],[25,-11],[39,-25],[30,-29],[13,15],[13,27],[-6,45],[9,29],[20,28],[19,8],[37,-12],[10,-27],[10,0],[9,-10],[28,-7],[6,-19]],[[5694,6357],[0,-118],[-32,0],[0,-25]],[[5662,6214],[-111,113],[-111,113],[-28,-32]],[[7271,5502],[-4,-62],[-12,-16],[-24,-14],[-13,47],[-5,85],[13,96],[19,-33],[13,-42],[13,-61]],[[5804,3347],[10,-18],[-9,-29],[-4,-19],[-16,-9],[-5,-19],[-10,-6],[-21,46],[15,37],[15,23],[13,12],[12,-18]],[[5631,8267],[-2,15],[3,16],[-13,10],[-29,10]],[[5590,8318],[-6,50]],[[5584,8368],[32,18],[47,-4],[27,6],[4,-12],[15,-4],[26,-29]],[[5652,8242],[-7,19],[-14,6]],[[5584,8368],[1,44],[14,37],[26,20],[22,-44],[22,1],[6,46]],[[5757,8453],[14,-14],[2,-28],[9,-35]],[[4759,6691],[-4,0],[0,-31],[-17,-2],[-9,-14],[-13,0],[-10,8],[-23,-6],[-9,-46],[-9,-5],[-13,-74],[-38,-64],[-9,-81],[-12,-27],[-3,-21],[-63,-5]],[[4527,6323],[1,27],[11,17],[9,30],[-2,20],[10,42],[15,38],[9,9],[8,35],[0,31],[10,37],[19,21],[18,60],[0,1],[14,23],[26,6],[22,41],[14,16],[23,49],[-7,73],[10,51],[4,31],[18,40],[28,27],[21,25],[18,61],[9,36],[20,0],[17,-25],[26,4],[29,-13],[12,-1]],[[5739,7906],[6,9],[19,6],[20,-19],[12,-2],[12,-16],[-2,-20],[11,-9],[4,-25],[9,-15],[-2,-9],[5,-6],[-7,-4],[-16,1],[-3,9],[-6,-5],[2,-11],[-7,-19],[-5,-20],[-7,-6]],[[5784,7745],[-5,27],[3,25],[-1,26],[-16,35],[-9,25],[-9,17],[-8,6]],[[6376,4321],[7,-25],[7,-39],[4,-71],[7,-28],[-2,-28],[-5,-18],[-10,35],[-5,-18],[5,-43],[-2,-25],[-8,-14],[-1,-50],[-11,-69],[-14,-81],[-17,-112],[-11,-82],[-12,-69],[-23,-14],[-24,-25],[-16,15],[-22,21],[-8,31],[-2,53],[-10,47],[-2,42],[5,43],[13,10],[0,20],[13,45],[2,37],[-6,28],[-5,38],[-2,54],[9,33],[4,38],[14,2],[15,12],[11,10],[12,1],[16,34],[23,36],[8,30],[-4,25],[12,-7],[15,41],[1,36],[9,26],[10,-25]],[[2301,6586],[-10,-52],[-5,-43],[-2,-79],[-3,-29],[5,-32],[9,-29],[5,-45],[19,-44],[6,-34],[11,-29],[29,-16],[12,-25],[24,17],[21,6],[21,11],[18,10],[17,24],[7,34],[2,50],[5,17],[19,16],[29,13],[25,-2],[17,5],[6,-12],[-1,-29],[-15,-35],[-6,-36],[5,-10],[-4,-26],[-7,-46],[-7,15],[-6,-1]],[[2438,5916],[-32,64],[-14,19],[-23,16],[-15,-5],[-22,-22],[-14,-6],[-20,16],[-21,11],[-26,27],[-21,8],[-31,28],[-23,28],[-7,16],[-16,3],[-28,19],[-12,27],[-30,34],[-14,37],[-6,29],[9,5],[-3,17],[7,16],[0,20],[-10,27],[-2,23],[-9,30],[-25,59],[-28,46],[-13,37],[-24,24],[-5,14],[4,37],[-14,13],[-17,29],[-7,41],[-14,5],[-17,31],[-13,29],[-1,19],[-15,44],[-10,45],[1,23],[-20,23],[-10,-2],[-15,16],[-5,-24],[5,-28],[2,-45],[10,-24],[21,-41],[4,-14],[4,-4],[4,-20],[5,1],[6,-38],[8,-15],[6,-21],[17,-30],[10,-55],[8,-26],[8,-28],[1,-31],[13,-2],[12,-27],[10,-26],[-1,-11],[-12,-21],[-5,0],[-7,36],[-18,33],[-20,29],[-14,15],[1,43],[-5,32],[-13,19],[-19,26],[-4,-8],[-7,16],[-17,14],[-16,34],[2,5],[11,-4],[11,22],[1,27],[-22,42],[-16,17],[-10,36],[-11,39],[-12,47],[-12,54]],[[1746,6980],[32,4],[35,7],[-2,-12],[41,-29],[64,-41],[55,0],[22,0],[0,24],[48,0],[10,-20],[15,-19],[16,-26],[9,-31],[7,-32],[15,-18],[23,-18],[17,47],[23,1],[19,-24],[14,-40],[10,-35],[16,-34],[6,-41],[8,-28],[22,-18],[20,-13],[10,2]],[[5599,7553],[9,4],[13,1]],[[4661,5921],[10,11],[4,35],[9,1],[20,-16],[15,11],[11,-4],[4,13],[112,1],[6,42],[-5,7],[-13,255],[-14,255],[43,1]],[[5118,6189],[0,-136],[-15,-39],[-2,-37],[-25,-9],[-38,-5],[-10,-21],[-18,-3]],[[4680,5793],[1,18],[-2,23],[-11,16],[-5,34],[-2,37]],[[7737,5644],[-3,44],[9,45],[-10,35],[3,65],[-12,30],[-9,71],[-5,75],[-12,49],[-18,-30],[-32,-42],[-15,5],[-17,14],[9,73],[-6,56],[-21,68],[3,21],[-16,7],[-20,49]],[[7780,6264],[-16,-14],[-16,-26],[-20,-2],[-12,-64],[-12,-11],[14,-52],[17,-43],[12,-39],[-11,-51],[-9,-11],[6,-30],[19,-47],[3,-33],[0,-27],[11,-54],[-16,-55],[-13,-61]],[[5538,7532],[-6,4],[-8,19],[-12,12]],[[5533,7629],[8,-10],[4,-9],[9,-6],[10,-12],[-2,-5]],[[7437,7970],[29,10],[53,51],[42,28],[24,-18],[29,-1],[19,-28],[28,-2],[40,-15],[27,41],[-11,35],[28,61],[31,-24],[26,-7],[32,-15],[6,-44],[39,-25],[26,11],[36,7],[27,-7],[28,-29],[16,-30],[26,1],[35,-10],[26,15],[36,9],[41,42],[17,-6],[14,-20],[33,5]],[[5959,4377],[21,5],[34,-17],[7,8],[19,1],[10,18],[17,-1],[30,23],[22,34]],[[6119,4448],[5,-26],[-1,-59],[3,-52],[1,-92],[5,-29],[-8,-43],[-11,-41],[-18,-36],[-25,-23],[-31,-28],[-32,-64],[-10,-11],[-20,-42],[-11,-13],[-3,-42],[14,-45],[5,-35],[0,-17],[5,3],[-1,-58],[-4,-28],[6,-10],[-4,-25],[-11,-21],[-23,-20],[-34,-32],[-12,-21],[3,-25],[7,-4],[-3,-31]],[[5911,3478],[-21,0]],[[5890,3478],[-2,26],[-4,27]],[[5884,3531],[-3,21],[5,66],[-7,42],[-13,83]],[[5866,3743],[29,67],[7,43],[5,5],[3,35],[-5,17],[1,44],[6,41],[0,75],[-15,19],[-13,4],[-6,15],[-13,12],[-23,-1],[-2,22]],[[5840,4141],[-2,42],[84,49]],[[5922,4232],[16,-28],[8,5],[11,-15],[1,-23],[-6,-28],[2,-42],[19,-36],[8,41],[12,12],[-2,76],[-12,43],[-10,19],[-10,-1],[-7,77],[7,45]],[[4661,5921],[-18,41],[-17,43],[-18,16],[-13,17],[-16,-1],[-13,-12],[-14,5],[-10,-19]],[[4542,6011],[-2,32],[8,29],[3,55],[-3,59],[-3,29],[2,30],[-7,28],[-14,25]],[[4526,6298],[6,20],[108,-1],[-5,86],[7,30],[26,5],[-1,152],[91,-4],[0,90]],[[5922,4232],[-15,15],[9,55],[9,21],[-6,49],[6,48],[5,16],[-7,50],[-14,26]],[[5909,4512],[28,-11],[5,-16],[10,-28],[7,-80]],[[7836,5425],[7,-5],[16,-36],[12,-40],[2,-39],[-3,-27],[2,-21],[2,-35],[10,-16],[11,-52],[-1,-20],[-19,-4],[-27,44],[-32,47],[-4,30],[-16,39],[-4,49],[-10,32],[4,43],[-7,25]],[[7779,5439],[5,11],[23,-26],[2,-30],[18,7],[9,24]],[[8045,5176],[21,-20],[21,11],[6,50],[12,11],[33,13],[20,47],[14,37]],[[8206,5379],[22,41],[14,47],[11,0],[14,-30],[1,-26],[19,-16],[23,-18],[-2,-23],[-19,-3],[5,-29],[-20,-20]],[[5453,3369],[-20,45],[-11,43],[-6,58],[-7,42],[-9,91],[-1,71],[-3,32],[-11,25],[-15,48],[-14,71],[-6,37],[-23,58],[-2,45]],[[5644,4022],[23,14],[18,-4],[11,-13],[0,-5]],[[5552,3594],[0,-218],[-25,-30],[-15,-4],[-17,11],[-13,4],[-4,25],[-11,17],[-14,-30]],[[9604,3812],[23,-36],[14,-28],[-10,-14],[-16,16],[-19,27],[-18,31],[-19,42],[-4,20],[12,-1],[16,-20],[12,-20],[9,-17]],[[5412,6408],[7,-92],[10,-15],[1,-19],[11,-20],[-6,-25],[-11,-120],[-1,-77],[-35,-56],[-12,-78],[11,-22],[0,-38],[18,-1],[-3,-28]],[[5393,5795],[-5,-1],[-19,64],[-6,3],[-22,-33],[-21,17],[-15,3],[-8,-8],[-17,2],[-16,-25],[-14,-2],[-34,31],[-13,-15],[-14,1],[-10,23],[-28,22],[-30,-7],[-7,-13],[-4,-34],[-8,-24],[-2,-53]],[[5236,5339],[-29,-21],[-11,3],[-10,-13],[-23,1],[-15,37],[-9,43],[-19,39],[-21,-1],[-25,0]],[[2619,5713],[-10,18],[-13,24],[-6,20],[-12,19],[-13,26],[3,9],[4,-9],[2,5]],[[2690,5943],[-2,-5],[-2,-13],[3,-22],[-6,-20],[-3,-24],[-1,-26],[1,-15],[1,-27],[-4,-6],[-3,-25],[2,-15],[-6,-16],[2,-16],[4,-9]],[[5092,8091],[14,16],[24,87],[38,25],[23,-2]],[[5863,9167],[-47,-24],[-22,-5]],[[5573,9140],[-17,-2],[-4,-39],[-53,9],[-7,-33],[-27,1],[-18,-42],[-28,-66],[-43,-83],[10,-20],[-10,-24],[-27,1],[-18,-55],[2,-79],[17,-29],[-9,-70],[-23,-40],[-12,-34]],[[5306,8535],[-19,36],[-55,-69],[-37,-13],[-38,30],[-10,63],[-9,137],[26,38],[73,49],[55,61],[51,82],[66,115],[47,44],[76,74],[61,26],[46,-3],[42,49],[51,-3],[50,12],[87,-43],[-36,-16],[30,-37]],[[5686,9657],[-62,-24],[-49,13],[19,16],[-16,19],[57,11],[11,-22],[40,-13]],[[5506,9766],[92,-44],[-70,-23],[-15,-44],[-25,-11],[-13,-49],[-34,-2],[-59,36],[25,21],[-42,17],[-54,50],[-21,46],[75,21],[16,-20],[39,0],[11,21],[40,2],[35,-21]],[[5706,9808],[55,-21],[-41,-32],[-81,-7],[-82,10],[-5,16],[-40,1],[-30,27],[86,17],[40,-14],[28,17],[70,-14]],[[9805,2640],[6,-24],[20,24],[8,-25],[0,-25],[-10,-27],[-18,-44],[-14,-24],[10,-28],[-22,-1],[-23,-22],[-8,-39],[-16,-60],[-21,-26],[-14,-17],[-26,1],[-18,20],[-30,4],[-5,22],[15,43],[35,59],[18,11],[20,22],[24,31],[16,31],[13,44],[10,15],[5,33],[19,27],[6,-25]],[[9849,2922],[20,-63],[1,41],[13,-16],[4,-45],[22,-19],[19,-5],[16,22],[14,-6],[-7,-53],[-8,-34],[-22,1],[-7,-18],[3,-25],[-4,-11],[-11,-32],[-14,-41],[-21,-23],[-5,15],[-12,9],[16,48],[-9,33],[-30,23],[1,22],[20,20],[5,46],[-1,38],[-12,40],[1,10],[-13,25],[-22,52],[-12,42],[11,4],[15,-33],[21,-15],[8,-52]],[[6475,6041],[-9,41],[-22,98]],[[6444,6180],[83,59],[19,118],[-13,42]],[[6566,6530],[12,-40],[16,-22],[20,-8],[17,-10],[12,-34],[8,-20],[10,-7],[0,-13],[-10,-36],[-5,-16],[-12,-19],[-10,-41],[-13,3],[-5,-14],[-5,-30],[4,-39],[-3,-7],[-13,0],[-17,-22],[-3,-29],[-6,-12],[-18,0],[-10,-15],[0,-24],[-14,-16],[-15,5],[-19,-19],[-12,-4]],[[6557,6597],[8,20],[3,-5],[-2,-25],[-4,-10]],[[6893,6457],[-20,15],[-9,43],[-21,45],[-51,-12],[-45,-1],[-39,-8]],[[2836,5484],[-9,17],[-6,32],[7,16],[-7,4],[-5,20],[-14,16],[-12,-4],[-6,-20],[-11,-15],[-6,-2],[-3,-13],[13,-32],[-7,-7],[-4,-9],[-13,-3],[-5,35],[-4,-10],[-9,4],[-5,24],[-12,3],[-7,7],[-12,0],[-1,-13],[-3,9]],[[2707,5623],[10,-22],[-1,-12],[11,-3],[3,5],[8,-14],[13,4],[12,15],[17,12],[9,17],[16,-3],[-1,-6],[15,-2],[12,-10],[10,-18],[10,-16]],[[3045,3974],[-28,33],[-2,25],[-55,59],[-50,65],[-22,36],[-11,49],[4,17],[-23,77],[-28,109],[-26,118],[-11,27],[-9,43],[-21,39],[-20,24],[9,26],[-14,57],[9,41],[22,37]],[[8510,5555],[2,-40],[2,-33],[-9,-54],[-11,60],[-13,-30],[9,-43],[-8,-28],[-32,35],[-8,42],[8,28],[-17,28],[-9,-24],[-13,2],[-21,-33],[-4,17],[11,50],[17,17],[15,22],[10,-27],[21,17],[5,26],[19,1],[-1,46],[22,-28],[3,-30],[2,-21]],[[8443,5665],[-10,-20],[-9,-37],[-8,-17],[-17,40],[5,16],[7,17],[3,36],[16,4],[-5,-40],[21,57],[-3,-56]],[[8291,5608],[-37,-56],[14,41],[20,37],[16,41],[15,58],[5,-48],[-18,-33],[-15,-40]],[[8385,5760],[16,-18],[18,0],[0,-25],[-13,-25],[-18,-18],[-1,28],[2,30],[-4,28]],[[8485,5776],[8,-66],[-21,16],[0,-20],[7,-37],[-13,-13],[-1,42],[-9,3],[-4,36],[16,-5],[0,22],[-17,45],[27,-1],[7,-22]],[[8375,5830],[-7,-51],[-12,29],[-15,45],[24,-2],[10,-21]],[[8369,6151],[17,-17],[9,15],[2,-15],[-4,-24],[9,-43],[-7,-49],[-16,-19],[-5,-48],[7,-47],[14,-7],[13,7],[34,-32],[-2,-32],[9,-15],[-3,-27],[-22,29],[-10,31],[-7,-22],[-18,36],[-25,-9],[-14,13],[1,25],[9,15],[-8,13],[-4,-21],[-14,34],[-4,26],[-1,56],[11,-19],[3,92],[9,54],[17,0]],[[9329,4655],[-8,-6],[-12,22],[-12,38],[-6,45],[4,6],[3,-18],[8,-13],[14,-38],[13,-20],[-4,-16]],[[9221,4734],[-15,-5],[-4,-17],[-15,-14],[-15,-14],[-14,0],[-23,18],[-16,16],[2,18],[25,-8],[15,4],[5,29],[4,1],[2,-31],[16,4],[8,20],[16,21],[-4,35],[17,1],[6,-9],[-1,-33],[-9,-36]],[[8916,4904],[48,-41],[51,-34],[19,-30],[16,-30],[4,-34],[46,-37],[7,-31],[-25,-7],[6,-39],[25,-39],[18,-62],[15,2],[-1,-27],[22,-10],[-9,-11],[30,-25],[-3,-17],[-18,-4],[-7,16],[-24,6],[-28,9],[-22,38],[-16,32],[-14,52],[-36,26],[-24,-17],[-17,-20],[4,-43],[-22,-20],[-16,9],[-28,3]],[[9253,4792],[-9,-16],[-5,35],[-6,23],[-13,19],[-16,25],[-20,18],[8,14],[15,-17],[9,-13],[12,-14],[11,-25],[11,-19],[3,-30]],[[5392,8233],[19,18],[43,27],[35,20],[28,-10],[2,-14],[27,-1]],[[5546,8273],[34,-7],[51,1]],[[5653,8105],[14,-52],[-3,-17],[-14,-6],[-25,-50],[7,-26],[-6,3]],[[5626,7957],[-26,23],[-20,-8],[-13,6],[-17,-13],[-14,21],[-11,-8],[-2,4]],[[3159,6151],[14,-5],[5,-12],[-7,-15],[-21,1],[-17,-2],[-1,25],[4,9],[23,-1]],[[8628,7562],[4,-10]],[[8632,7552],[-11,3],[-12,-20],[-8,-20],[1,-42],[-14,-13],[-5,-11],[-11,-17],[-18,-10],[-12,-16],[-1,-25],[-3,-7],[11,-9],[15,-26]],[[8504,7288],[-13,11],[-4,-11],[-8,-5],[-1,11],[-7,5],[-8,10],[8,26],[7,7],[-3,11],[7,31],[-2,10],[-16,7],[-13,15]],[[4792,7249],[-11,-15],[-14,8],[-15,-6],[5,46],[-3,36],[-12,6],[-7,22],[2,39],[11,21],[2,24],[6,36],[-1,25],[-5,21],[-1,20]],[[6411,6520],[-2,43],[7,31],[8,6],[8,-18],[1,-35],[-6,-35]],[[6427,6512],[-8,-4],[-8,12]],[[5630,7886],[12,13],[17,-7],[18,0],[13,-14],[10,9],[20,5],[7,14],[12,0]],[[5784,7745],[12,-11],[13,9],[13,-10]],[[5822,7733],[0,-15],[-13,-13],[-9,6],[-7,-71]],[[5629,7671],[-5,10],[6,10],[-7,7],[-8,-13],[-17,17],[-2,25],[-17,14],[-3,18],[-15,24]],[[8989,8056],[28,-105],[-41,19],[-17,-85],[27,-61],[-1,-41],[-21,36],[-18,-46],[-5,50],[3,57],[-3,64],[6,45],[2,79],[-17,58],[3,80],[25,28],[-11,27],[13,8],[7,-39],[10,-57],[-1,-58],[11,-59]],[[5546,8273],[6,26],[38,19]],[[0,9132],[68,-45],[73,-59],[-3,-37],[19,-15],[-6,43],[75,-8],[55,-56],[-28,-26],[-46,-6],[0,-57],[-11,-13],[-26,2],[-22,21],[-36,17],[-7,26],[-28,9],[-31,-7],[-16,20],[6,22],[-33,-14],[13,-28],[-16,-25]],[[0,8896],[0,236]],[[0,9282],[9999,-40],[-30,-3],[-5,19],[-9964,24]],[[0,9282],[4,3],[23,0],[40,-17],[-2,-8],[-29,-14],[-36,-4],[0,40]],[[8988,9383],[-42,-1],[-57,7],[-5,3],[27,23],[34,6],[40,-23],[3,-15]],[[9186,9493],[-32,-23],[-44,5],[-52,23],[7,20],[51,-9],[70,-16]],[[9029,9522],[-22,-44],[-102,1],[-46,-14],[-55,39],[15,40],[37,11],[73,-2],[100,-31]],[[6598,9235],[-17,-5],[-91,8],[-7,26],[-50,16],[-4,32],[28,13],[-1,32],[55,50],[-25,7],[66,52],[-7,27],[62,31],[91,38],[93,11],[48,22],[54,8],[19,-23],[-19,-19],[-98,-29],[-85,-28],[-86,-57],[-42,-57],[-43,-57],[5,-49],[54,-49]],[[0,8896],[9963,-26],[-36,4],[25,-31],[17,-49],[13,-16],[3,-24],[-7,-16],[-52,13],[-78,-44],[-25,-7],[-42,-42],[-40,-36],[-11,-27],[-39,41],[-73,-46],[-12,22],[-27,-26],[-37,8],[-9,-38],[-33,-58],[1,-24],[31,-13],[-4,-86],[-25,-2],[-12,-49],[11,-26],[-48,-30],[-10,-67],[-41,-15],[-9,-60],[-40,-55],[-10,41],[-12,86],[-15,131],[13,82],[23,35],[2,28],[43,13],[50,75],[47,60],[50,48],[23,83],[-34,-5],[-17,-49],[-70,-65],[-23,73],[-72,-20],[-69,-99],[23,-36],[-62,-16],[-43,-6],[2,43],[-43,9],[-35,-29],[-85,10],[-91,-18],[-90,-115],[-106,-139],[43,-8],[14,-37],[27,-13],[18,30],[30,-4],[40,-65],[1,-50],[-21,-59],[-3,-71],[-12,-94],[-42,-86],[-9,-41],[-38,-69],[-38,-68],[-18,-35],[-37,-34],[-17,-1],[-17,29],[-38,-44],[-4,-19]],[[6363,7799],[-12,-35],[-27,-10],[-28,-61],[25,-56],[-2,-40],[30,-70]],[[6109,7624],[-35,49],[-32,23],[-24,34],[20,10],[23,49],[-15,24],[41,24],[-1,13],[-25,-10]],[[6061,7840],[1,26],[14,17],[27,4],[5,20],[-7,33],[12,30],[-1,18],[-41,19],[-16,-1],[-17,28],[-21,-9],[-35,20],[0,12],[-10,26],[-22,3],[-2,18],[7,12],[-18,33],[-29,-5],[-8,3],[-7,-14],[-11,3]],[[5777,8571],[31,33],[-29,28]],[[5863,9167],[29,20],[46,-35],[76,-14],[105,-67],[21,-28],[2,-40],[-31,-31],[-45,-15],[-124,44],[-21,-7],[45,-43],[2,-28],[2,-60],[36,-18],[22,-15],[3,28],[-17,26],[18,22],[67,-37],[24,15],[-19,43],[65,58],[25,-4],[26,-20],[16,40],[-23,35],[14,36],[-21,36],[78,-18],[16,-34],[-35,-7],[0,-33],[22,-20],[43,13],[7,38],[58,28],[97,50],[20,-3],[-27,-35],[35,-7],[19,21],[52,1],[42,25],[31,-36],[32,39],[-29,35],[14,19],[82,-18],[39,-18],[100,-68],[19,31],[-28,31],[-1,13],[-34,6],[10,28],[-15,46],[-1,19],[51,53],[18,54],[21,11],[74,-15],[5,-33],[-26,-48],[17,-19],[9,-41],[-6,-81],[31,-36],[-12,-40],[-55,-84],[32,-8],[11,21],[31,15],[7,29],[24,29],[-16,33],[13,39],[-31,5],[-6,33],[22,59],[-36,48],[50,40],[-7,42],[14,2],[15,-33],[-11,-57],[29,-11],[-12,43],[46,23],[58,3],[51,-34],[-25,49],[-2,63],[48,12],[67,-2],[60,7],[-23,31],[33,39],[31,2],[54,29],[74,8],[9,16],[73,6],[23,-14],[62,32],[51,-1],[8,25],[26,25],[66,25],[48,-19],[-38,-15],[63,-9],[7,-29],[25,14],[82,-1],[62,-29],[23,-22],[-7,-30],[-31,-18],[-73,-33],[-21,-17],[35,-8],[41,-15],[25,11],[14,-38],[12,15],[44,10],[90,-10],[6,-28],[116,-9],[2,46],[59,-11],[44,1],[45,-32],[13,-37],[-17,-25],[35,-47],[44,-24],[27,62],[44,-26],[48,16],[53,-18],[21,16],[45,-8],[-20,55],[37,25],[251,-38],[24,-35],[72,-45],[112,11],[56,-10],[23,-24],[-4,-44],[35,-16],[37,12],[49,1],[52,-11],[53,6],[49,-52],[34,19],[-23,37],[13,27],[88,-17],[58,4],[80,-29],[-9960,-25]],[[7918,9684],[-157,-23],[51,77],[23,7],[21,-4],[70,-33],[-8,-24]],[[6420,9816],[-37,-8],[-25,-4],[-4,-10],[-33,-10],[-30,14],[16,19],[-62,2],[54,10],[43,1],[5,-16],[16,14],[26,10],[42,-13],[-11,-9]],[[7775,9718],[-60,-8],[-78,17],[-46,23],[-21,42],[-38,12],[72,40],[60,14],[54,-30],[64,-57],[-7,-53]],[[5844,4990],[11,-33],[-1,-35],[-8,-7]],[[5821,4978],[7,-6],[16,18]],[[4526,6298],[1,25]],[[6188,6023],[-4,26],[-8,17],[-2,24],[-15,21],[-15,50],[-7,48],[-20,40],[-12,10],[-18,56],[-4,41],[2,35],[-16,66],[-13,23],[-15,12],[-10,34],[2,13],[-8,31],[-8,13],[-11,44],[-17,48],[-14,40],[-14,0],[5,33],[1,20],[3,24]],[[6344,6744],[11,-51],[14,-13],[5,-21],[18,-25],[2,-24],[-3,-20],[4,-20],[8,-16],[4,-20],[4,-14]],[[6427,6512],[5,-22]],[[6444,6180],[-80,-23],[-26,-26],[-20,-62],[-13,-10],[-7,20],[-11,-3],[-27,6],[-5,5],[-32,-1],[-7,-5],[-12,15],[-7,-29],[3,-25],[-12,-19]],[[5943,5617],[-4,1],[0,29],[-3,20],[-14,24],[-4,42],[4,44],[-13,4],[-2,-13],[-17,-3],[7,-17],[2,-36],[-15,-32],[-14,-43],[-14,-6],[-23,34],[-11,-12],[-3,-17],[-14,-11],[-1,-12],[-28,0],[-3,12],[-20,2],[-10,-10],[-8,5],[-14,34],[-5,17],[-20,-9],[-8,-27],[-7,-53],[-10,-11],[-8,-6]],[[5663,5567],[-2,2]],[[5635,5716],[0,14],[-10,17],[-1,35],[-5,23],[-10,-4],[3,22],[7,25],[-3,24],[9,18],[-6,14],[7,36],[13,44],[24,-4],[-1,234]],[[6023,6357],[9,-58],[-6,-10],[4,-61],[11,-71],[10,-14],[15,-22]],[[5943,5624],[0,-7]],[[5943,5617],[0,-46]],[[5944,5309],[-17,-28],[-20,1],[-22,-14],[-18,13],[-11,-16]],[[5682,5544],[-19,23]],[[4535,5861],[-11,46],[-14,21],[12,11],[14,41],[6,31]],[[4536,5789],[-4,45]],[[9502,4438],[8,-20],[-19,0],[-11,37],[17,-15],[5,-2]],[[9467,4474],[-11,-1],[-17,6],[-5,9],[1,23],[19,-9],[9,-12],[4,-16]],[[9490,4490],[-4,-11],[-21,52],[-5,35],[9,0],[10,-47],[11,-29]],[[9440,4565],[1,-12],[-22,25],[-15,21],[-10,20],[4,6],[13,-14],[23,-27],[6,-19]],[[9375,4623],[-5,-3],[-13,14],[-11,24],[1,10],[17,-25],[11,-20]],[[4682,5458],[-8,5],[-20,24],[-14,31],[-5,22],[-3,43]],[[2561,5848],[-3,-14],[-16,1],[-10,6],[-12,12],[-15,3],[-8,13]],[[6198,5735],[9,-11],[5,-25],[13,-24],[14,-1],[26,16],[30,7],[25,18],[13,4],[10,11],[16,2]],[[6359,5732],[0,-1],[0,-25],[0,-59],[0,-31],[-13,-36],[-19,-50]],[[6359,5732],[9,1],[13,9],[14,6],[14,20],[10,0],[1,-16],[-3,-35],[0,-31],[-6,-21],[-7,-64],[-14,-66],[-17,-75],[-24,-87],[-23,-66],[-33,-81],[-28,-48],[-42,-58],[-25,-45],[-31,-72],[-6,-31],[-6,-14]],[[3412,5410],[34,-11],[2,10],[23,4],[30,-15]],[[3489,5306],[10,-35],[-4,-25]],[[5626,7957],[-8,-15],[-5,-24]],[[5380,7746],[7,5]],[[5663,8957],[-47,-17],[-27,-41],[4,-36],[-44,-48],[-54,-50],[-20,-84],[20,-41],[26,-33],[-25,-67],[-29,-14],[-11,-99],[-15,-55],[-34,6],[-16,-47],[-32,-3],[-9,56],[-23,67],[-21,84]],[[5890,3478],[-5,-26],[-17,-6],[-16,32],[0,20],[7,22],[3,17],[8,5],[14,-11]],[[5999,7104],[-2,45],[7,25]],[[6004,7174],[7,13],[7,13],[2,33],[9,-12],[31,17],[14,-12],[23,1],[32,22],[15,-1],[32,9]],[[5051,5420],[-22,-12]],[[7849,5777],[-25,28],[-24,-2],[4,47],[-24,0],[-2,-65],[-15,-87],[-10,-52],[2,-43],[18,-2],[12,-53],[5,-52],[15,-33],[17,-7],[14,-31]],[[7779,5439],[-11,23],[-4,29],[-15,34],[-14,28],[-4,-35],[-5,33],[3,37],[8,56]],[[6883,7252],[16,60],[-6,44],[-20,14],[7,26],[23,-3],[13,33],[9,38],[37,13],[-6,-27],[4,-17],[12,2]],[[6497,7255],[-5,42],[4,62],[-22,20],[8,40],[-19,4],[6,49],[26,-14],[25,19],[-20,35],[-8,34],[-23,-15],[-3,-43],[-8,38]],[[6554,7498],[31,1],[-4,29],[24,21],[23,34],[37,-31],[3,-47],[11,-12],[30,2],[9,-10],[14,-61],[32,-41],[18,-28],[29,-29],[37,-25],[-1,-36]],[[8471,4532],[3,14],[24,13],[19,2],[9,8],[10,-8],[-10,-16],[-29,-25],[-23,-17]],[[3286,5693],[16,8],[6,-2],[-1,-44],[-23,-7],[-5,6],[8,16],[-1,23]],[[5233,7240],[31,24],[19,-7],[-1,-30],[24,22],[2,-12],[-14,-29],[0,-27],[9,-15],[-3,-51],[-19,-29],[6,-33],[14,-1],[7,-28],[11,-9]],[[6004,7174],[-11,27],[11,22],[-17,-5],[-23,13],[-19,-34],[-43,-6],[-22,31],[-30,2],[-6,-24],[-20,-7],[-26,31],[-31,-1],[-16,59],[-21,33],[14,46],[-18,28],[31,56],[43,3],[12,45],[53,-8],[33,38],[32,17],[46,1],[49,-42],[40,-22],[32,9],[24,-6],[33,31]],[[5777,7539],[3,-23],[25,-19],[-5,-14],[-33,-3],[-12,-19],[-23,-31],[-9,27],[0,12]],[[8382,6499],[-17,-95],[-12,-49],[-14,50],[-4,44],[17,58],[22,45],[13,-18],[-5,-35]],[[6088,4781],[-12,-73],[1,-33],[18,-22],[1,-15],[-8,-36],[2,-18],[-2,-28],[10,-37],[11,-58],[10,-13]],[[5909,4512],[-15,18],[-18,10],[-11,10],[-12,15]],[[5844,4990],[10,8],[31,-1],[56,4]],[[6061,7840],[-22,-5],[-18,-19],[-26,-3],[-24,-22],[1,-37],[14,-14],[28,4],[-5,-21],[-31,-11],[-37,-34],[-16,12],[6,28],[-30,17],[5,12],[26,19],[-8,14],[-43,15],[-2,22],[-25,-8],[-11,-32],[-21,-44]],[[3517,3063],[-12,-38],[-31,-32],[-21,11],[-15,-6],[-26,25],[-18,-1],[-17,32]],[[679,6185],[-4,-10],[-7,8],[1,17],[-4,21],[1,7],[5,10],[-2,11],[1,6],[3,-1],[10,-10],[5,-5],[5,-8],[7,-21],[-1,-3],[-11,-13],[-9,-9]],[[664,6277],[-9,-4],[-5,12],[-3,5],[0,4],[3,5],[9,-6],[8,-9],[-3,-7]],[[646,6309],[-1,-7],[-15,2],[2,7],[14,-2]],[[621,6317],[-2,-3],[-2,1],[-9,2],[-4,13],[-1,2],[7,8],[3,-3],[8,-20]],[[574,6356],[-4,-6],[-9,11],[1,4],[5,6],[6,-1],[1,-14]],[[3135,7724],[5,-19],[-30,-29],[-29,-20],[-29,-18],[-15,-35],[-4,-13],[-1,-31],[10,-32],[11,-1],[-3,21],[8,-13],[-2,-17],[-19,-9],[-13,1],[-20,-10],[-12,-3],[-17,-3],[-23,-17],[41,11],[8,-11],[-39,-18],[-17,0],[0,7],[-8,-16],[8,-3],[-6,-43],[-20,-45],[-2,15],[-6,3],[-9,15],[5,-32],[7,-10],[1,-23],[-9,-23],[-16,-47],[-2,3],[8,40],[-14,22],[-3,49],[-5,-25],[5,-38],[-18,10],[19,-19],[1,-57],[8,-4],[3,-20],[4,-59],[-17,-44],[-29,-18],[-18,-34],[-14,-4],[-14,-22],[-4,-20],[-31,-38],[-16,-28],[-13,-35],[-4,-42],[5,-41],[9,-51],[13,-41],[0,-26],[13,-69],[-1,-39],[-1,-23],[-7,-36],[-8,-8],[-14,7],[-4,26],[-11,14],[-15,51],[-13,45],[-4,23],[6,39],[-8,33],[-22,49],[-10,9],[-28,-27],[-5,3],[-14,28],[-17,14],[-32,-7],[-24,7],[-21,-5],[-12,-9],[5,-15],[0,-24],[5,-12],[-5,-8],[-10,9],[-11,-11],[-20,2],[-20,31],[-25,-8],[-20,14],[-17,-4],[-24,-14],[-25,-44],[-27,-25],[-16,-28],[-6,-27],[0,-41],[1,-28],[5,-20]],[[1746,6980],[-4,30],[-18,34],[-13,7],[-3,17],[-16,3],[-10,16],[-26,6],[-7,9],[-3,32],[-27,60],[-23,82],[1,14],[-13,19],[-21,50],[-4,48],[-15,32],[6,49],[-1,51],[-8,45],[10,56],[4,53],[3,54],[-5,79],[-9,51],[-8,27],[4,12],[40,-20],[15,-56],[7,15],[-5,49],[-9,48]],[[750,8432],[-28,-23],[-14,15],[-4,28],[25,21],[15,9],[18,-4],[12,-18],[-24,-28]],[[401,8597],[-18,-9],[-18,11],[-17,16],[28,10],[22,-6],[3,-22]],[[230,8826],[17,-12],[17,6],[23,-15],[27,-8],[-2,-7],[-21,-12],[-21,13],[-11,11],[-24,-4],[-7,5],[2,23]],[[1374,8295],[-15,22],[-25,19],[-8,52],[-36,47],[-15,56],[-26,4],[-44,2],[-33,17],[-57,61],[-27,11],[-49,21],[-38,-5],[-55,27],[-33,25],[-30,-12],[5,-41],[-15,-4],[-32,-12],[-25,-20],[-30,-13],[-4,35],[12,58],[30,18],[-8,15],[-35,-33],[-19,-39],[-40,-42],[20,-29],[-26,-42],[-30,-25],[-28,-18],[-7,-26],[-43,-31],[-9,-28],[-32,-25],[-20,5],[-25,-17],[-29,-20],[-23,-20],[-47,-16],[-5,9],[31,28],[27,18],[29,33],[35,6],[14,25],[38,35],[6,12],[21,21],[5,44],[14,35],[-32,-18],[-9,11],[-15,-22],[-18,30],[-8,-21],[-10,29],[-28,-23],[-17,0],[-3,35],[5,21],[-17,22],[-37,-12],[-23,28],[-19,14],[0,34],[-22,25],[11,34],[23,33],[10,30],[22,4],[19,-9],[23,28],[20,-5],[21,19],[-5,27],[-16,10],[21,23],[-17,-1],[-30,-13],[-8,-13],[-22,13],[-39,-6],[-41,14],[-12,24],[-35,34],[39,25],[62,29],[23,0],[-4,-30],[59,2],[-23,37],[-34,23],[-20,29],[-26,25],[-38,19],[15,31],[49,2],[35,27],[7,29],[28,28],[28,6],[52,27],[26,-4],[42,31],[42,-12],[21,-27],[12,11],[47,-3],[-2,-14],[43,-10],[28,6],[59,-18],[53,-6],[21,-8],[37,10],[42,-18],[31,-8]],[[3018,5753],[-1,-14],[-16,-7],[9,-26],[0,-31],[-12,-35],[10,-47],[12,4],[6,43],[-8,21],[-2,45],[35,24],[-4,27],[10,19],[10,-41],[19,-1],[18,-33],[1,-20],[25,0],[30,6],[16,-27],[21,-7],[16,18],[0,15],[34,4],[34,1],[-24,-18],[10,-28],[22,-4],[21,-29],[4,-48],[15,2],[11,-14]],[[8001,6331],[-37,-51],[-24,-56],[-6,-41],[22,-62],[25,-77],[26,-37],[17,-47],[12,-109],[-3,-104],[-24,-39],[-31,-38],[-23,-49],[-35,-55],[-10,37],[8,40],[-21,34]],[[9661,4085],[-9,-8],[-9,26],[1,16],[17,-34]],[[9641,4175],[4,-47],[-7,7],[-6,-3],[-4,16],[0,45],[13,-18]],[[6475,6041],[-21,-16],[-5,-26],[-1,-20],[-27,-25],[-45,-28],[-24,-41],[-13,-3],[-8,3],[-16,-25],[-18,-11],[-23,-3],[-7,-3],[-6,-16],[-8,-4],[-4,-15],[-14,1],[-9,-8],[-19,3],[-7,35],[1,32],[-5,17],[-5,44],[-8,24],[5,3],[-2,27],[3,12],[-1,25]],[[5817,3752],[11,0],[14,-10],[9,7],[15,-6]],[[5911,3478],[-7,-43],[-3,-49],[-7,-27],[-19,-30],[-5,-8],[-12,-30],[-8,-31],[-16,-42],[-31,-61],[-20,-36],[-21,-26],[-29,-23],[-14,-3],[-3,-17],[-17,9],[-14,-11],[-30,11],[-17,-7],[-12,3],[-28,-23],[-24,-10],[-17,-22],[-13,-1],[-11,21],[-10,1],[-12,26],[-1,-8],[-4,16],[0,34],[-9,40],[9,11],[0,45],[-19,55],[-14,50],[0,1],[-20,76]],[[5840,4141],[-21,-8],[-15,-23],[-4,-21],[-10,-4],[-24,-49],[-15,-38],[-10,-2],[-9,7],[-31,7]]],transform:{scale:[.036003600360036005,.016927109510951093],translate:[-180,-85.609038]}},m.prototype.usaTopo="__USA__",m.prototype.latLngToXY=function(a,b){return this.projection([b,a])
+},m.prototype.addLayer=function(a,b,c){var d;return d=c?this.svg.insert("g",":first-child"):this.svg.append("g"),d.attr("id",b||"").attr("class",a||"")},m.prototype.updateChoropleth=function(a){var b=this.svg;for(var c in a)if(a.hasOwnProperty(c)){var d,e=a[c];if(!c)continue;d="string"==typeof e?e:"string"==typeof e.color?e.color:this.options.fills[e.fillKey],e===Object(e)&&(this.options.data[c]=l(e,this.options.data[c]||{}),this.svg.select("."+c).attr("data-info",JSON.stringify(this.options.data[c]))),b.selectAll("."+c).transition().style("fill",d)}},m.prototype.updatePopup=function(a,b,c){var d=this;a.on("mousemove",null),a.on("mousemove",function(){var e=n.mouse(d.options.element);n.select(d.svg[0][0].parentNode).select(".datamaps-hoverover").style("top",e[1]+30+"px").html(function(){var d=JSON.parse(a.attr("data-info"));return c.popupTemplate(b,d)}).style("left",e[0]+"px")}),n.select(d.svg[0][0].parentNode).select(".datamaps-hoverover").style("display","block")},m.prototype.addPlugin=function(a,b){var c=this;"undefined"==typeof m.prototype[a]&&(m.prototype[a]=function(d,e,f,g){var h;"undefined"==typeof g&&(g=!1),"function"==typeof e&&(f=e,e=void 0),e=l(e||{},c.options[a+"Config"]),!g&&this.options[a+"Layer"]?(h=this.options[a+"Layer"],e=e||this.options[a+"Options"]):(h=this.addLayer(a),this.options[a+"Layer"]=h,this.options[a+"Options"]=e),b.apply(this,[h,d,e]),f&&f(h)})},"function"==typeof define&&define.amd?define("datamaps",function(a){return n=a("d3"),o=a("topojson"),m}):window.Datamap=window.Datamaps=m,window.jQuery&&(window.jQuery.fn.datamaps=function(a,b){a=a||{},a.element=this[0];var c=new m(a);return"function"==typeof b&&b(c,a),this})}();
\ No newline at end of file
diff --git a/learn/map/topojson.min.js b/learn/map/topojson.min.js
new file mode 100644 (file)
index 0000000..73f9a8e
--- /dev/null
@@ -0,0 +1 @@
+!function(){function t(n,t){function r(t){var r,e=n.arcs[0>t?~t:t],o=e[0];return n.transform?(r=[0,0],e.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=e[e.length-1],0>t?[r,o]:[o,r]}function e(n,t){for(var r in n){var e=n[r];delete t[e.start],delete e.start,delete e.end,e.forEach(function(n){o[0>n?~n:n]=1}),f.push(e)}}var o={},i={},u={},f=[],c=-1;return t.forEach(function(r,e){var o,i=n.arcs[0>r?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++c],t[c]=r,t[e]=o)}),t.forEach(function(n){var t,e,o=r(n),f=o[0],c=o[1];if(t=u[f])if(delete u[t.end],t.push(n),t.end=c,e=i[c]){delete i[e.start];var a=e===t?t:t.concat(e);i[a.start=t.start]=u[a.end=e.end]=a}else i[t.start]=u[t.end]=t;else if(t=i[c])if(delete i[t.start],t.unshift(n),t.start=f,e=u[f]){delete u[e.end];var s=e===t?t:e.concat(t);i[s.start=e.start]=u[s.end=t.end]=s}else i[t.start]=u[t.end]=t;else t=[n],i[t.start=f]=u[t.end=c]=t}),e(u,i),e(i,u),t.forEach(function(n){o[0>n?~n:n]||f.push([n])}),f}function r(n,r,e){function o(n){var t=0>n?~n:n;(s[t]||(s[t]=[])).push({i:n,g:a})}function i(n){n.forEach(o)}function u(n){n.forEach(i)}function f(n){"GeometryCollection"===n.type?n.geometries.forEach(f):n.type in l&&(a=n,l[n.type](n.arcs))}var c=[];if(arguments.length>1){var a,s=[],l={LineString:i,MultiLineString:u,Polygon:u,MultiPolygon:function(n){n.forEach(u)}};f(r),s.forEach(arguments.length<3?function(n){c.push(n[0].i)}:function(n){e(n[0].g,n[n.length-1].g)&&c.push(n[0].i)})}else for(var h=0,p=n.arcs.length;p>h;++h)c.push(h);return{type:"MultiLineString",arcs:t(n,c)}}function e(r,e){function o(n){n.forEach(function(t){t.forEach(function(t){(f[t=0>t?~t:t]||(f[t]=[])).push(n)})}),c.push(n)}function i(n){return l(u(r,{type:"Polygon",arcs:[n]}).coordinates[0])>0}var f={},c=[],a=[];return e.forEach(function(n){"Polygon"===n.type?o(n.arcs):"MultiPolygon"===n.type&&n.arcs.forEach(o)}),c.forEach(function(n){if(!n._){var t=[],r=[n];for(n._=1,a.push(t);n=r.pop();)t.push(n),n.forEach(function(n){n.forEach(function(n){f[0>n?~n:n].forEach(function(n){n._||(n._=1,r.push(n))})})})}}),c.forEach(function(n){delete n._}),{type:"MultiPolygon",arcs:a.map(function(e){var o=[];if(e.forEach(function(n){n.forEach(function(n){n.forEach(function(n){f[0>n?~n:n].length<2&&o.push(n)})})}),o=t(r,o),(n=o.length)>1)for(var u,c=i(e[0][0]),a=0;n>a;++a)if(c===i(o[a])){u=o[0],o[0]=o[a],o[a]=u;break}return o})}}function o(n,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return i(n,t)})}:i(n,t)}function i(n,t){var r={type:"Feature",id:t.id,properties:t.properties||{},geometry:u(n,t)};return null==t.id&&delete r.id,r}function u(n,t){function r(n,t){t.length&&t.pop();for(var r,e=s[0>n?~n:n],o=0,i=e.length;i>o;++o)t.push(r=e[o].slice()),a(r,o);0>n&&f(t,i)}function e(n){return n=n.slice(),a(n,0),n}function o(n){for(var t=[],e=0,o=n.length;o>e;++e)r(n[e],t);return t.length<2&&t.push(t[0].slice()),t}function i(n){for(var t=o(n);t.length<4;)t.push(t[0].slice());return t}function u(n){return n.map(i)}function c(n){var t=n.type;return"GeometryCollection"===t?{type:t,geometries:n.geometries.map(c)}:t in l?{type:t,coordinates:l[t](n)}:null}var a=v(n.transform),s=n.arcs,l={Point:function(n){return e(n.coordinates)},MultiPoint:function(n){return n.coordinates.map(e)},LineString:function(n){return o(n.arcs)},MultiLineString:function(n){return n.arcs.map(o)},Polygon:function(n){return u(n.arcs)},MultiPolygon:function(n){return n.arcs.map(u)}};return c(t)}function f(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function c(n,t){for(var r=0,e=n.length;e>r;){var o=r+e>>>1;n[o]<t?r=o+1:e=o}return r}function a(n){function t(n,t){n.forEach(function(n){0>n&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in u&&u[n.type](n.arcs,t)}var o={},i=n.map(function(){return[]}),u={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var f in o)for(var a=o[f],s=a.length,l=0;s>l;++l)for(var h=l+1;s>h;++h){var p,g=a[l],v=a[h];(p=i[g])[f=c(p,v)]!==v&&p.splice(f,0,v),(p=i[v])[f=c(p,g)]!==g&&p.splice(f,0,g)}return i}function s(n,t){function r(n){i.remove(n),n[1][2]=t(n),i.push(n)}var e=v(n.transform),o=m(n.transform),i=g();return t||(t=h),n.arcs.forEach(function(n){for(var u,f,c=[],a=0,s=0,l=n.length;l>s;++s)f=n[s],e(n[s]=[f[0],f[1],1/0],s);for(var s=1,l=n.length-1;l>s;++s)u=n.slice(s-1,s+2),u[1][2]=t(u),c.push(u),i.push(u);for(var s=0,l=c.length;l>s;++s)u=c[s],u.previous=c[s-1],u.next=c[s+1];for(;u=i.pop();){var h=u.previous,p=u.next;u[1][2]<a?u[1][2]=a:a=u[1][2],h&&(h.next=p,h[2]=u[2],r(h)),p&&(p.previous=h,p[0]=u[0],r(p))}n.forEach(o)}),n}function l(n){for(var t,r=-1,e=n.length,o=n[e-1],i=0;++r<e;)t=o,o=n[r],i+=t[0]*o[1]-t[1]*o[0];return.5*i}function h(n){var t=n[0],r=n[1],e=n[2];return Math.abs((t[0]-e[0])*(r[1]-t[1])-(t[0]-r[0])*(e[1]-t[1]))}function p(n,t){return n[1][2]-t[1][2]}function g(){function n(n,t){for(;t>0;){var r=(t+1>>1)-1,o=e[r];if(p(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(o>i&&p(e[i],f)<0&&(f=e[u=i]),o>r&&p(e[r],f)<0&&(f=e[u=r]),u===t)break;e[f._=t]=f,e[n._=t=u]=n}}var r={},e=[],o=0;return r.push=function(t){return n(e[t._=o]=t,o++),o},r.pop=function(){if(!(0>=o)){var n,r=e[0];return--o>0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(p(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function v(n){if(!n)return y;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0),n[0]=(t+=n[0])*e+i,n[1]=(r+=n[1])*o+u}}function m(n){if(!n)return y;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0);var c=(n[0]-i)/e|0,a=(n[1]-u)/o|0;n[0]=c-t,n[1]=a-r,t=c,r=a}}function y(){}var d={version:"1.6.19",mesh:function(n){return u(n,r.apply(this,arguments))},meshArcs:r,merge:function(n){return u(n,e.apply(this,arguments))},mergeArcs:e,feature:o,neighbors:a,presimplify:s};"function"==typeof define&&define.amd?define(d):"object"==typeof module&&module.exports?module.exports=d:this.topojson=d}();
\ No newline at end of file
diff --git a/learn/map/world.html b/learn/map/world.html
new file mode 100755 (executable)
index 0000000..53590ac
--- /dev/null
@@ -0,0 +1,19 @@
+<html>\r
+<head>\r
+<script src="d3.min.js"></script>\r
+<script src="topojson.min.js"></script>\r
+<script src="datamaps.world.min.js"></script>\r
+\r
+</head>\r
+\r
+<body>\r
+\r
+<div id="basic" style="position: relative; width: 1200px; height: 1000px;"></div>\r
+<script>\r
+var basic = new Datamap({\r
+  element: document.getElementById("basic"),\r
+  projection: 'mercator',\r
+});\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/learn/markdown/macdown_help.md b/learn/markdown/macdown_help.md
new file mode 100644 (file)
index 0000000..01cf7f9
--- /dev/null
@@ -0,0 +1,342 @@
+# MacDown
+
+![MacDown logo](http://macdown.uranusjr.com/static/base/img/logo-160.png)
+
+Hello there! I’m **MacDown**, the open source Markdown editor for OS X.
+
+Let me introduce myself.
+
+
+
+## Markdown and I
+
+**Markdown** is a plain text formatting syntax created by John Gruber, aiming to provide a easy-to-read and feasible markup. The original Markdown syntax specification can be found [here](http://daringfireball.net/projects/markdown/syntax).
+
+**MacDown** is created as a simple-to-use editor for Markdown documents. I render your Markdown contents real-time into HTML, and display them in a preview panel.
+
+![MacDown Screenshot](http://d.pr/i/10UGP+)
+
+I support all the original Markdown syntaxes. But I can do so much more! Various popular but non-standard syntaxes can be turned on/off from the [**Markdown** preference pane](#markdown-pane).
+
+You can specify extra HTML rendering options through the [**Rendering** preference pane](#rendering-pane).
+
+You can customize the editor window to you liking in the [**Editor** preferences pane](#editor-pane):
+
+You can configure various application (that's me!) behaviors in the [**General** preference pane](#general-pane).
+
+## The Basics
+Before I tell you about all the extra syntaxes and capabilities I have, I'll introduce you to the basics of standard markdown. If you already know markdown, and want to jump straight to learning about the fancier things I can do, I suggest you skip to the [**Markdown** preference pane](#markdown-pane). Lets jump right in.  
+
+### Line Breaks
+To force a line break, put two spaces and a newline (return) at the end of the line.
+
+       These lines
+       won't break
+
+       These lines  
+       will break
+
+
+### Strong and Emphasize
+
+**Strong**: `**Strong**` or `__Strong__` (Command-B)  
+*Emphasize*: `*Emphasize*` or `_Emphasize_`[^emphasize] (Command-I)
+
+### Headers (like this one!)
+
+       Header 1
+       ========
+
+       Header 2
+       --------
+
+or
+
+       # Header 1
+       ## Header 2
+       ### Header 3
+       #### Header 4
+       ##### Header 5
+       ###### Header 6
+
+
+
+### Links and Email
+#### Inline
+Just put angle brackets around an email and it becomes clickable: <uranusjr@gmail.com>  
+`<uranusjr@gmail.com>`  
+
+Same thing with urls: <http://macdown.uranusjr.com>  
+` <http://macdown.uranusjr.com>`  
+
+Perhaps you want to some link text like this: [Macdown Website](http://macdown.uranusjr.com "Title")  
+`[Macdown Website](http://macdown.uranusjr.com "Title")` (The title is optional)  
+
+
+#### Reference style
+Sometimes it looks too messy to include big long urls inline, or you want to keep all your urls together.  
+
+Make [a link][arbitrary_id] `[a link][arbitrary_id]` then on it's own line anywhere else in the file:  
+`[arbitrary_id]: http://macdown.uranusjr.com "Title"`
+  
+If the link text itself would make a good id, you can link [like this][] `[like this][]`, then on it's own line anywhere else in the file:  
+`[like this]: http://macdown.uranusjr.com`  
+
+[arbitrary_id]: http://macdown.uranusjr.com "Title"
+[like this]: http://macdown.uranusjr.com  
+
+
+### Images
+#### Inline
+`![Alt Image Text](path/or/url/to.jpg "Optional Title")`
+#### Reference style
+`![Alt Image Text][image-id]`  
+on it's own line elsewhere:  
+`[image-id]: path/or/url/to.jpg "Optional Title"`
+
+
+### Lists
+
+* Lists must be preceded by a blank line (or block element)
+* Unordered lists start each item with a `*`
+- `-` works too
+       * Indent a level to make a nested list
+               1. Ordered lists are supported.
+               2. Start each item (number-period-space) like `1. `
+               42. It doesn't matter what number you use, I will render them sequentially
+               1. So you might want to start each line with `1.` and let me sort it out
+
+Here is the code:
+
+```
+* Lists must be preceded by a blank line (or block element)
+* Unordered lists start each item with a `*`
+- `-` works too
+       * Indent a level to make a nested list
+               1. Ordered lists are supported.
+               2. Start each item (number-period-space) like `1. `
+               42. It doesn't matter what number you use, I will render them sequentially
+               1. So you might want to start each line with `1.` and let me sort it out
+```
+
+
+
+### Block Quote
+
+> Angle brackets `>` are used for block quotes.  
+Technically not every line needs to start with a `>` as long as
+there are no empty lines between paragraphs.  
+> Looks kinda ugly though.
+> > Block quotes can be nested.  
+> > > Multiple Levels
+>
+> Most markdown syntaxes work inside block quotes.
+>
+> * Lists
+> * [Links][arbitrary_id]
+> * Etc.
+
+Here is the code:
+
+```
+> Angle brackets `>` are used for block quotes.  
+Technically not every line needs to start with a `>` as long as
+there are no empty lines between paragraphs.  
+> Looks kinda ugly though.
+> > Block quotes can be nested.  
+> > > Multiple Levels
+>
+> Most markdown syntaxes work inside block quotes.
+>
+> * Lists
+> * [Links][arbitrary_id]
+> * Etc.
+```
+  
+  
+### Inline Code
+`Inline code` is indicated by surrounding it with backticks:  
+`` `Inline code` ``
+
+If your ``code has `backticks` `` that need to be displayed, you can use double backticks:  
+```` ``Code with `backticks` `` ````  (mind the spaces preceding the final set of backticks)
+
+
+### Block Code
+If you indent at least four spaces or one tab, I'll display a code block.
+
+       print('This is a code block')
+       print('The block must be preceded by a blank line')
+       print('Then indent at least 4 spaces or 1 tab')
+               print('Nesting does nothing. Your code is displayed Literally')
+
+I also know how to do something called [Fenced Code Blocks](#fenced-code-block) which I will tell you about later.
+
+### Horizontal Rules
+If you type three asterisks `***` or three dashes `---` on a line, I'll display a horizontal rule:
+
+***
+
+
+## <a name="markdown-pane"></a>The Markdown Preference Pane
+This is where I keep all preferences related to how I parse markdown into html.  
+![Markdown preferences pane](http://d.pr/i/RQEi+)
+
+### Document Formatting
+The ***Smartypants*** extension automatically transforms straight quotes (`"` and `'`) in your text into typographer’s quotes (`“`, `”`, `‘`, and `’`) according to the context. Very useful if you’re a typography freak like I am. Quote and Smartypants are syntactically incompatible. If both are enabled, Quote takes precedence.
+
+
+### Block Formatting
+
+#### Table
+
+This is a table:
+
+First Header  | Second Header
+------------- | -------------
+Content Cell  | Content Cell
+Content Cell  | Content Cell
+
+You can align cell contents with syntax like this:
+
+| Left Aligned  | Center Aligned  | Right Aligned |
+|:------------- |:---------------:| -------------:|
+| col 3 is      | some wordy text |         $1600 |
+| col 2 is      | centered        |           $12 |
+| zebra stripes | are neat        |            $1 |
+
+The left- and right-most pipes (`|`) are only aesthetic, and can be omitted. The spaces don’t matter, either. Alignment depends solely on `:` marks.
+
+#### <a name="fenced-code-block">Fenced Code Block</a>
+
+This is a fenced code block:
+
+```
+print ('Hello world!)'
+```
+
+You can also use waves (`~`) instead of back ticks (`` ` ``):
+
+~~~
+print('Hello world!')
+~~~
+
+
+You can add an optional language ID at the end of the first line. The language ID will only be used to highlight the code inside if you tick the ***Enable highlighting in code blocks*** option. This is what happens if you enable it:
+
+![Syntax highlighting example](http://d.pr/i/9HM6+)
+
+I support many popular languages as well as some generic syntax descriptions that can be used if your language of choice is not supported. See [relevant sections on the official site](http://macdown.uranusjr.com/features/) for a full list of supported syntaxes.
+
+
+### Inline Formatting
+
+The following is a list of optional inline markups supported:
+
+Option name         | Markup           | Result if enabled     |
+--------------------|------------------|-----------------------|
+Intra-word emphasis | So A\*maz\*ing   | So A<em>maz</em>ing   |
+Strikethrough       | \~~Much wow\~~   | <del>Much wow</del>   |
+Underline [^under]  | \_So doge\_      | <u>So doge</u>        |
+Quote [^quote]      | \"Such editor\"  | <q>Such editor</q>    |
+Highlight           | \==So good\==    | <mark>So good</mark>  |
+Superscript         | hoge\^(fuga)     | hoge<sup>fuga</sup>   |
+Autolink            | http://t.co      | <http://t.co>         |
+Footnotes           | [\^4] and [\^4]: | [^4] and footnote 4   |
+
+[^4]: You don't have to use a number. Arbitrary things like `[^footy note4]` and `[^footy note4]:` will also work. But they will *render* as numbered footnotes. Also, no need to keep your footnotes in order, I will sort out the order for you so they appear in the same order they were referenced in the text body. You can even keep some footnotes near where you referenced them, and collect others at the bottom of the file in the traditional place for footnotes. 
+
+
+
+
+## <a name="rendering-pane"></a>The Rendering Preference Pane
+This is where I keep preferences relating to how I render and style the parsed markdown in the preview window.  
+![Rendering preferences pane](http://d.pr/i/rT4d+)
+
+### CSS
+You can choose different css files for me to use to render your html. You can even customize or add your own custom css files.
+
+### Syntax Highlighting
+You have already seen how I can syntax highlight your fenced code blocks. See the [Fenced Code Block](#fenced-code-block) section if you haven’t! You can also choose different themes for syntax highlighting.
+
+### TeX-like Math Syntax
+I can also render TeX-like math syntaxes, if you allow me to.[^math] I can do inline math like this: \\( 1 + 1 \\) or this (in MathML): <math><mn>1</mn><mo>+</mo><mn>1</mn></math>, and block math:
+
+\\[
+    A^T_S = B
+\\]
+
+or (in MathML)
+
+<math display="block">
+    <msubsup><mi>A</mi> <mi>S</mi> <mi>T</mi></msubsup>
+    <mo>=</mo>
+    <mi>B</mi>
+</math>
+
+
+
+### Task List Syntax
+1. [x] I can render checkbox list syntax
+       * [x] I support nesting
+       * [x] I support ordered *and* unordered lists
+2. [ ] I don't support clicking checkboxes directly in the html window
+
+
+### Jekyll front-matter
+If you like, I can display Jekyll front-matter in a nice table. Just make sure you put the front-matter at the very beginning of the file, and fence it with `---`. For example:
+
+```
+---
+title: "Macdown is my friend"
+date: 2014-06-06 20:00:00
+---
+```
+
+### Render newline literally
+Normally I require you to put two spaces and a newline (aka return) at the end of a line in order to create a line break. If you like, I can render a newline any time you end a line with a newline. However, if you enable this, markdown that looks lovely when I render it might look pretty funky when you let some *other* program render it.
+
+
+
+
+
+## <a name="general-pane"></a>The General Preferences Pane
+
+This is where I keep preferences related to application behavior.  
+![General preferences pane](http://d.pr/i/rvwu+)
+
+The General Preferences Pane allows you to tell me how you want me to behave. For example, do you want me to make sure there is a document open when I launch? You can also tell me if I should constantly update the preview window as you type, or wait for you to hit `command-R` instead. Maybe you prefer your editor window on the right? Or to see the word-count as you type. This is also the place to tell me if you are interested in pre-releases of me, or just want to stick to better-tested official releases.  
+
+## <a name="editor-pane"></a>The Editor Preference Pane
+This is where I keep preferences related to the behavior and styling of the editing window.  
+![Editor preferences pane](http://d.pr/i/6OL5+)
+
+
+### Styling
+
+My editor provides syntax highlighting. You can edit the base font and the coloring/sizing theme. I provided some default themes (courtesy of [Mou](http://mouapp.com)’s creator, Chen Luo) if you don’t know where to start.
+
+You can also edit, or even add new themes if you want to! Just click the ***Reveal*** button, and start moving things around. Remember to use the correct file extension (`.styles`), though. I’m picky about that.
+
+I offer auto-completion and other functions to ease your editing experience. If you don’t like it, however, you can turn them off.
+
+
+
+
+
+## Hack On
+
+That’s about it. Thanks for listening. I’ll be quiet from now on (unless there’s an update about the app—I’ll remind you for that!).
+
+Happy writing!
+
+
+[^emphasize]: If **Underlines** is turned on, `_this notation_` will render as underlined instead of emphasized 
+
+[^under]: If **Underline** is disabled `_this_` will be rendered as *emphasized* instead of being underlined.
+
+[^quote]: **Quote** replaces literal `"` characters with html `<q>` tags. **Quote** and **Smartypants** are syntactically incompatible. If both are enabled, **Quote** takes precedence. Note that **Quote** is different from *blockquote*, which is part of standard Markdown.
+
+[^math]: Internet connection required.
+
+
diff --git a/learn/markdown/mou.md b/learn/markdown/mou.md
new file mode 100644 (file)
index 0000000..339b129
--- /dev/null
@@ -0,0 +1,236 @@
+# Mou
+
+![Mou icon](http://25.io/mou/Mou_128.png)
+
+## Overview
+
+**Mou**, the missing Markdown editor for *web developers*.
+
+### Syntax
+
+#### Strong and Emphasize 
+
+**strong** or __strong__ ( Cmd + B )
+
+*emphasize* or _emphasize_ ( Cmd + I )
+
+**Sometimes I want a lot of text to be bold.
+Like, seriously, a _LOT_ of text**
+
+#### Blockquotes
+
+> Right angle brackets &gt; are used for block quotes.
+
+#### Links and Email
+
+An email <example@example.com> link.
+
+Simple inline link <http://chenluois.com>, another inline link [Smaller](http://25.io/smaller/), one more inline link with title [Resize](http://resizesafari.com "a Safari extension").
+
+A [reference style][id] link. Input id, then anywhere in the doc, define the link with corresponding id:
+
+[id]: http://25.io/mou/ "Markdown editor on Mac OS X"
+
+Titles ( or called tool tips ) in the links are optional.
+
+#### Images
+
+An inline image ![Smaller icon](http://25.io/smaller/favicon.ico "Title here"), title is optional.
+
+A ![Resize icon][2] reference style image.
+
+[2]: http://resizesafari.com/favicon.ico "Title"
+
+#### Inline code and Block code
+
+Inline code are surround by `backtick` key. To create a block code:
+
+       Indent each line by at least 1 tab, or 4 spaces.
+    var Mou = exactlyTheAppIwant; 
+
+####  Ordered Lists
+
+Ordered lists are created using "1." + Space:
+
+1. Ordered list item
+2. Ordered list item
+3. Ordered list item
+
+#### Unordered Lists
+
+Unordered list are created using "*" + Space:
+
+* Unordered list item
+* Unordered list item
+* Unordered list item 
+
+Or using "-" + Space:
+
+- Unordered list item
+- Unordered list item
+- Unordered list item
+
+#### Hard Linebreak
+
+End a line with two or more spaces will create a hard linebreak, called `<br />` in HTML. ( Control + Return )  
+Above line ended with 2 spaces.
+
+#### Horizontal Rules
+
+Three or more asterisks or dashes:
+
+***
+
+---
+
+- - - -
+
+#### Headers
+
+Setext-style:
+
+This is H1
+==========
+
+This is H2
+----------
+
+atx-style:
+
+# This is H1
+## This is H2
+### This is H3
+#### This is H4
+##### This is H5
+###### This is H6
+
+
+### Extra Syntax
+
+#### Footnotes
+
+Footnotes work mostly like reference-style links. A footnote is made of two things: a marker in the text that will become a superscript number; a footnote definition that will be placed in a list of footnotes at the end of the document. A footnote looks like this:
+
+That's some text with a footnote.[^1]
+
+[^1]: And that's the footnote.
+
+
+#### Strikethrough
+
+Wrap with 2 tilde characters:
+
+~~Strikethrough~~
+
+
+#### Fenced Code Blocks
+
+Start with a line containing 3 or more backticks, and ends with the first line with the same number of backticks:
+
+```
+Fenced code blocks are like Stardard Markdown’s regular code
+blocks, except that they’re not indented and instead rely on
+a start and end fence lines to delimit the code block.
+```
+
+#### Tables
+
+A simple table looks like this:
+
+First Header | Second Header | Third Header
+------------ | ------------- | ------------
+Content Cell | Content Cell  | Content Cell
+Content Cell | Content Cell  | Content Cell
+
+If you wish, you can add a leading and tailing pipe to each line of the table:
+
+| First Header | Second Header | Third Header |
+| ------------ | ------------- | ------------ |
+| Content Cell | Content Cell  | Content Cell |
+| Content Cell | Content Cell  | Content Cell |
+
+Specify alignment for each column by adding colons to separator lines:
+
+First Header | Second Header | Third Header
+:----------- | :-----------: | -----------:
+Left         | Center        | Right
+Left         | Center        | Right
+
+
+### Shortcuts
+
+#### View
+
+* Toggle live preview: Shift + Cmd + I
+* Toggle Words Counter: Shift + Cmd + W
+* Toggle Transparent: Shift + Cmd + T
+* Toggle Floating: Shift + Cmd + F
+* Left/Right = 1/1: Cmd + 0
+* Left/Right = 3/1: Cmd + +
+* Left/Right = 1/3: Cmd + -
+* Toggle Writing orientation: Cmd + L
+* Toggle fullscreen: Control + Cmd + F
+
+#### Actions
+
+* Copy HTML: Option + Cmd + C
+* Strong: Select text, Cmd + B
+* Emphasize: Select text, Cmd + I
+* Inline Code: Select text, Cmd + K
+* Strikethrough: Select text, Cmd + U
+* Link: Select text, Control + Shift + L
+* Image: Select text, Control + Shift + I
+* Select Word: Control + Option + W
+* Select Line: Shift + Cmd + L
+* Select All: Cmd + A
+* Deselect All: Cmd + D
+* Convert to Uppercase: Select text, Control + U
+* Convert to Lowercase: Select text, Control + Shift + U
+* Convert to Titlecase: Select text, Control + Option + U
+* Convert to List: Select lines, Control + L
+* Convert to Blockquote: Select lines, Control + Q
+* Convert to H1: Cmd + 1
+* Convert to H2: Cmd + 2
+* Convert to H3: Cmd + 3
+* Convert to H4: Cmd + 4
+* Convert to H5: Cmd + 5
+* Convert to H6: Cmd + 6
+* Convert Spaces to Tabs: Control + [
+* Convert Tabs to Spaces: Control + ]
+* Insert Current Date: Control + Shift + 1
+* Insert Current Time: Control + Shift + 2
+* Insert entity <: Control + Shift + ,
+* Insert entity >: Control + Shift + .
+* Insert entity &: Control + Shift + 7
+* Insert entity Space: Control + Shift + Space
+* Insert Scriptogr.am Header: Control + Shift + G
+* Shift Line Left: Select lines, Cmd + [
+* Shift Line Right: Select lines, Cmd + ]
+* New Line: Cmd + Return
+* Comment: Cmd + /
+* Hard Linebreak: Control + Return
+
+#### Edit
+
+* Auto complete current word: Esc
+* Find: Cmd + F
+* Close find bar: Esc
+
+#### Post
+
+* Post on Scriptogr.am: Control + Shift + S
+* Post on Tumblr: Control + Shift + T
+
+#### Export
+
+* Export HTML: Option + Cmd + E
+* Export PDF:  Option + Cmd + P
+
+
+### And more?
+
+Don't forget to check Preferences, lots of useful options are there.
+
+Follow [@Mou](https://twitter.com/mou) on Twitter for the latest news.
+
+For feedback, use the menu `Help` - `Send Feedback`
\ No newline at end of file
index a274def19e80ecc6540475603227b6d63ba5572c..988c0ad6e6a177464452e8d507f6f3a84d39b5f7 100644 (file)
@@ -1,11 +1,11 @@
 /*
  *--------------------------------------------------------------------------
- *   File Name:        Mine.cc
+ *   File Name: Mine.cc
  * 
- *      Author:        Zhao Yanbai [zhaoyanbai@126.com]
- *                     Sat Feb 26 19:41:52 2011
+ *      Author: Zhao Yanbai [zhaoyanbai@126.com]
+ *              Sat Feb 26 19:41:52 2011
  * 
- * Description:        none
+ * Description: none
  * 
  *--------------------------------------------------------------------------
  */
 using namespace std;
 typedef struct
 {
-       bool    isMine;
-       bool    isOpen;
-       int     Neghbors;
+    bool    isMine;
+    bool    isOpen;
+    int     Neghbors;
 } Mine;
-       
+    
 const int maxrow = 100;
 const int maxcol = 100;
 Mine map[maxrow][maxcol];
-int    R, C, N;
+int    R, C, N;
 
 
 bool isMine(int row, int col)
 {
-       if(row<0 || col <0 || row>=R || col>=C) return false;
-       return map[row][col].isMine;
+    if(row<0 || col <0 || row>=R || col>=C) return false;
+    return map[row][col].isMine;
 }
 void Mark()
 {
-       for(int i=0; i<R; i++)
-       {
-               for(int j=0; j<C; j++)
-               {
-                       if(map[i][j].isMine) continue;
-                       int count=0;
-                       for(int m=i-1; m<=i+1; m++)
-                       {
-                               for(int n=j-1; n<=j+1; n++)
-                               {
-                                       if(isMine(m, n))
-                                       {
-                                               count++;
-                                       }
-                               }
-                       }
-                       map[i][j].Neghbors = count;
-               }
-       }
+    for(int i=0; i<R; i++)
+    {
+        for(int j=0; j<C; j++)
+        {
+            if(map[i][j].isMine) continue;
+            int count=0;
+            for(int m=i-1; m<=i+1; m++)
+            {
+                for(int n=j-1; n<=j+1; n++)
+                {
+                    if(isMine(m, n))
+                    {
+                        count++;
+                    }
+                }
+            }
+            map[i][j].Neghbors = count;
+        }
+    }
 }
 
 void CreateMap(const int row, const int col, const int n)
 {
-       int r, c;
-
-       for(int i=0; i<row; i++)
-       {
-               for(int j=0; j<col; j++)
-               {
-                       map[i][j].isMine = false;
-                       map[i][j].isOpen = false;
-                       map[i][j].Neghbors = 0;
-               }
-       }
-
-       srand(time(NULL));
-
-       for(int i=0; i<n; i++)
-       {
-               while(true)
-               {
-                       r = rand() % row;
-                       c = rand() % col;
-                       if(map[r][c].isMine) continue;
-                       map[r][c].isMine = true;
-                       break;
-               }
-       }
-
-       Mark();
+    int r, c;
+
+    for(int i=0; i<row; i++)
+    {
+        for(int j=0; j<col; j++)
+        {
+            map[i][j].isMine = false;
+            map[i][j].isOpen = false;
+            map[i][j].Neghbors = 0;
+        }
+    }
+
+    srand(time(NULL));
+
+    for(int i=0; i<n; i++)
+    {
+        while(true)
+        {
+            r = rand() % row;
+            c = rand() % col;
+            if(map[r][c].isMine) continue;
+            map[r][c].isMine = true;
+            break;
+        }
+    }
+
+    Mark();
 }
 
 void PrintMap()
 {
-       cout<<" ";
-       for(int i=0; i<C; i++)
-               cout<<" "<<i;
-       cout<<endl;
-       for(int i=0; i<R; i++)
-       {
-               cout<<i<<" ";
-               for(int j=0; j<C; j++)
-               {
-                       if(!map[i][j].isOpen)
-                       {
-                               cout<<"# ";
-                               continue;
-                       }
-
-                       if(map[i][j].isMine)
-                       {
-                               cout<<"* ";
-                       }
-                       else
-                       {
-                               if(map[i][j].Neghbors>0)
-                                       cout<<map[i][j].Neghbors<<" ";
-                               else
-                               {
-                                       cout<<"  ";
-                               }
-                       }
-               }
-               cout<<endl;
-       }
+    cout<<" ";
+    for(int i=0; i<C; i++)
+        cout<<" "<<i;
+    cout<<endl;
+    for(int i=0; i<R; i++)
+    {
+        cout<<i<<" ";
+        for(int j=0; j<C; j++)
+        {
+            if(!map[i][j].isOpen)
+            {
+                cout<<"# ";
+                continue;
+            }
+
+            if(map[i][j].isMine)
+            {
+                cout<<"* ";
+            }
+            else
+            {
+                if(map[i][j].Neghbors>0)
+                    cout<<map[i][j].Neghbors<<" ";
+                else
+                {
+                    cout<<"  ";
+                }
+            }
+        }
+        cout<<endl;
+    }
 }
 
 
 void EraseZeroGrid(int row, int col)
 {
-       if(row<0 || row>=R || col<0 || col >=C) return;
+    if(row<0 || row>=R || col<0 || col >=C) return;
 
-       if(map[row][col].isOpen) return;
-       map[row][col].isOpen = true;
-       if(map[row][col].Neghbors>0) return;
+    if(map[row][col].isOpen) return;
+    map[row][col].isOpen = true;
+    if(map[row][col].Neghbors>0) return;
 
 
-       for(int i=row-1; i<=row+1; i++)
-               for(int j=col-1; j<=col+1; j++)
-               {
-                       if(i==row && j==col) continue;
-                       EraseZeroGrid(i, j);
-               }
+    for(int i=row-1; i<=row+1; i++)
+        for(int j=col-1; j<=col+1; j++)
+        {
+            if(i==row && j==col) continue;
+            EraseZeroGrid(i, j);
+        }
 
 
 }
 
 bool Click(int row, int col)
 {
-       if(map[row][col].isMine) return false;
+    if(map[row][col].isMine) return false;
 
-       EraseZeroGrid(row, col);
+    EraseZeroGrid(row, col);
 
 
-       return true;
+    return true;
 }
 
 void PrintRawMap(int r, int c)
 {
-       cout<<" ";
-       for(int i=0; i<C; i++)
-               cout<<" "<<i;
-       cout<<endl;
-       for(int i=0; i<R; i++)
-       {
-               cout<<i<<" ";
-               for(int j=0; j<C; j++)
-               {
-                       if(i==r && j==c)
-                       {
-                               cout<<"X ";
-                               continue;
-                       }
-                       if(map[i][j].isMine)
-                               cout<<"* ";
-                       else
-                       {
-                               if(map[i][j].Neghbors>0)
-                                       cout<<map[i][j].Neghbors<<" ";
-                               else
-                                       cout<<"  ";
-                       }
-               }
-               cout<<endl;
-       }
+    cout<<" ";
+    for(int i=0; i<C; i++)
+        cout<<" "<<i;
+    cout<<endl;
+    for(int i=0; i<R; i++)
+    {
+        cout<<i<<" ";
+        for(int j=0; j<C; j++)
+        {
+            if(i==r && j==c)
+            {
+                cout<<"X ";
+                continue;
+            }
+            if(map[i][j].isMine)
+                cout<<"* ";
+            else
+            {
+                if(map[i][j].Neghbors>0)
+                    cout<<map[i][j].Neghbors<<" ";
+                else
+                    cout<<"  ";
+            }
+        }
+        cout<<endl;
+    }
 }
 
 bool isWin()
 {
-       int count=0;
-       for(int i=0; i<R; i++)
-               for(int j=0; j<C; j++)
-                       if(!map[i][j].isOpen)
-                               count++;
-       return count==N;
+    int count=0;
+    for(int i=0; i<R; i++)
+        for(int j=0; j<C; j++)
+            if(!map[i][j].isOpen)
+                count++;
+    return count==N;
 }
 
 int main()
 {
-       int     row, col;
-       R=C=N=10;
-
-
-       CreateMap(R, C, N);
-       
-       while(true)
-       {
-               PrintMap();
-               cout<<">>";
-               cin>>row>>col;
-               if(!Click(row, col))
-               {
-                       PrintRawMap(row, col);
-                       break;
-               }
-               if(isWin())
-               {
-                       cout<<"Win..."<<endl;
-                       break;
-               }
-       }
-
-
-       return 0;
+    int row, col;
+    R=C=N=10;
+
+    CreateMap(R, C, N);
+    
+    bool bWin = false;
+    while(true)
+    {
+        PrintMap();
+        cout<<">>";
+        cin>>row>>col;
+
+        if(row >= R || col >= C || row < 0 || col < 0)
+        {
+            continue;
+        }
+
+        if(!Click(row, col))
+        {
+            PrintRawMap(row, col);
+            break;
+        }
+        if(isWin())
+        {
+            bWin = true;
+            break;
+        }
+    }
+
+
+    cout << (bWin ? "Win..." : "Lose...") << endl;
+
+    return 0;
 }