{ "cells": [ { "cell_type": "code", "execution_count": 131, "id": "78dba395", "metadata": {}, "outputs": [], "source": [ "import csv\n", "import pickle\n", "import statistics as stat" ] }, { "cell_type": "code", "execution_count": 132, "id": "a2566b68", "metadata": {}, "outputs": [], "source": [ "m_names = {\n", " 'acc':'avg-acc',\n", " 'best-acc':'best-acc',\n", " 'discrete acc darts':'disc-acc',\n", " 'best_nwot':'best_zc(nwot)',\n", " 'best_synflow':'best_zc(synflow)',\n", " 'dartspt':'darts-pt',\n", " 'zc pt':'zc-pt(nwot)',\n", " 'discrete zc':'disc-zc(nwot)',\n", " #'alpha':'darts-100',\n", " 'alpha-60':'darts',\n", " 'tenaspt':'tenas',\n", " 'synflow':'zc-pt(synflow)',\n", " 'synflow_disc':'disc-zc(synflow)',\n", " 'zc-pt-post':'zc-pt-post',\n", " 'zc-disc-post':'zc-disc-post'\n", "}" ] }, { "cell_type": "code", "execution_count": 133, "id": "7cc2961d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['none', 'skip_connect', 'nor_conv_1x1', 'nor_conv_3x3', 'avg_pool_3x3']\n" ] } ], "source": [ "ops=[]\n", "edge = 0\n", "num_edges = 6\n", "op_strengths = []\n", "for e in range(num_edges):\n", " op_strengths.append({})\n", "\n", "with open('op_strength_src.csv') as csv_file:\n", " csv_reader = csv.reader(csv_file, delimiter=',')\n", " line_count = 0\n", " for row in csv_reader:\n", " if line_count == 0:\n", " ops = row[1:-1]\n", " line_count += 1\n", " else:\n", " #print(row)\n", " if row == ['', '', '', '', '', '', '']:\n", " edge += 1\n", " line_count += 1\n", " continue\n", " #parse row\n", " if row[0] not in m_names:\n", " continue\n", " method = m_names[row[0]]\n", " op_strengths[edge][method] = []\n", " for r in row[1:-1]:\n", " if '±' in r:\n", " r1 = r.split('±')[0]\n", " r2 = r.split('±')[1]\n", " r=r1\n", " metric = float(r)\n", " op_strengths[edge][method].append(metric)\n", " line_count += 1\n", "print(ops)" ] }, { "cell_type": "code", "execution_count": 134, "id": "7ececab5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'avg-acc': [77.36, 83.81, 86.38, 87.32, 81.02],\n", " 'disc-acc': [83.42, 84.1, 72.0, 76.35, 39.66],\n", " 'darts-pt': [85.43, 17.02, 78.13, 59.09, 85.34],\n", " 'zc-pt(nwot)': [3455.233646,\n", " 3449.898772,\n", " 3449.538363,\n", " 3441.815563,\n", " 3461.179476],\n", " 'disc-zc(nwot)': [3331.007285,\n", " 3445.489455,\n", " 3366.877065,\n", " 3437.551079,\n", " 3423.180255],\n", " 'best-acc': [94.15, 94.18, 94.44, 94.68, 93.86],\n", " 'darts': [0.1387, 0.4758, 0.1296, 0.181, 0.0748],\n", " 'tenas': [38.5, 48.0, 31.0, 6.0, 37.5],\n", " 'zc-pt(synflow)': [1.9286723850908796e+31,\n", " 7.990282869734622e+30,\n", " 1.2421187150331997e+30,\n", " 9.438907569335487e+26,\n", " 8.191504786187086e+30],\n", " 'disc-zc(synflow)': [4.639162000716631e+21,\n", " 1.4975281050055959e+26,\n", " 4.2221622054263117e+30,\n", " 1.9475517523688712e+36,\n", " 1.5075022033622535e+26],\n", " 'best_zc(nwot)': [1702.1967536035393,\n", " 1773.1779654806287,\n", " 1793.8140278364453,\n", " 1792.8682630835763,\n", " 1761.1262357119376],\n", " 'best_zc(synflow)': [5.784248799475683e+39,\n", " 1.4769546208886953e+44,\n", " 6.658953754065702e+49,\n", " 5.1987025703231504e+39,\n", " 1.9928388494681343e+35],\n", " 'zc-pt-post': [3067.0476, 3055.9404, 3059.8901, 3060.4536, 3073.5583],\n", " 'zc-disc-post': [2942.267, 3068.6416, 3009.5847, 3028.1794, 3031.4248]},\n", " {'avg-acc': [80.03, 83.11, 85.23, 85.99, 81.52],\n", " 'disc-acc': [85.12, 83.39, 76.72, 81.34, 84.38],\n", " 'darts-pt': [85.52, 36.1, 84.39, 80.95, 85.49],\n", " 'zc-pt(nwot)': [3452.145851,\n", " 3448.696318,\n", " 3441.809174,\n", " 3440.652631,\n", " 3453.739943],\n", " 'disc-zc(nwot)': [3429.074707,\n", " 3435.750274,\n", " 3407.872847,\n", " 3434.584512,\n", " 3421.442414],\n", " 'best-acc': [94.24, 94.16, 94.49, 94.68, 94.09],\n", " 'darts': [0.1236, 0.5535, 0.11, 0.1249, 0.088],\n", " 'tenas': [7.0, 55.0, 10.0, 15.0, 39.0],\n", " 'zc-pt(synflow)': [3.116079880492518e+30,\n", " 2.5018418732419554e+30,\n", " 1.4274537256246266e+30,\n", " 3.138287824323275e+29,\n", " 2.5693894962958226e+30],\n", " 'disc-zc(synflow)': [5.615386425664938e+28,\n", " 2.340336657109326e+29,\n", " 1.9258305801684058e+30,\n", " 3.012759514473006e+32,\n", " 2.2897138361934977e+29],\n", " 'best_zc(nwot)': [1765.3743820515451,\n", " 1770.8436009213751,\n", " 1791.917305624048,\n", " 1793.8140278364453,\n", " 1763.877253730585],\n", " 'best_zc(synflow)': [1.9424580089849912e+49,\n", " 2.764587447411338e+49,\n", " 6.658953754065702e+49,\n", " 2.0353792445711388e+49,\n", " 1.4435653786128956e+49],\n", " 'zc-pt-post': [3067.0476, 3058.9197, 3048.8745, 3051.2664, 3066.668],\n", " 'zc-disc-post': [3020.0203, 3052.1936, 3026.2217, 3022.0935, 3029.2]},\n", " {'avg-acc': [82.9, 82.44, 84.05, 84.49, 81.98],\n", " 'disc-acc': [85.96, 85.18, 54.02, 78.41, 84.88],\n", " 'darts-pt': [85.51, 80.29, 81.86, 77.68, 85.32],\n", " 'zc-pt(nwot)': [3446.521007,\n", " 3447.612434,\n", " 3435.455206,\n", " 3436.396744,\n", " 3449.275466],\n", " 'disc-zc(nwot)': [3428.795464,\n", " 3423.361285,\n", " 3440.925616,\n", " 3437.286935,\n", " 3416.891544],\n", " 'best-acc': [94.25, 94.43, 94.49, 94.68, 94.19],\n", " 'darts': [0.2403, 0.3297, 0.1495, 0.1748, 0.1056],\n", " 'tenas': [31.5, 10.0, 30.0, 16.5, 36.5],\n", " 'zc-pt(synflow)': [1.0312338471669537e+31,\n", " 4.9191575008661263e+30,\n", " 1.4241158958667068e+30,\n", " 1.0282498082879338e+28,\n", " 5.038622256524752e+30],\n", " 'disc-zc(synflow)': [1.6980829611704765e+25,\n", " 3.3199508659283994e+27,\n", " 3.3825056097270114e+30,\n", " 1.2059727722928161e+35,\n", " 3.279653417965715e+27],\n", " 'best_zc(nwot)': [1764.51075805859,\n", " 1764.116749555202,\n", " 1793.8140278364453,\n", " 1792.8239766388833,\n", " 1764.1848313456592],\n", " 'best_zc(synflow)': [8.376122028137071e+41,\n", " 1.0615041036082487e+45,\n", " 6.658953754065702e+49,\n", " 8.399427750574918e+41,\n", " 2.5270360875229e+39],\n", " 'zc-pt-post': [3067.0476, 3068.708, 3056.3506, 3047.9695, 3071.3577],\n", " 'zc-disc-post': [3044.023, 3033.0627, 3032.825, 3052.0688, 3023.2302]},\n", " {'avg-acc': [74.02, 85.17, 87.3, 88.28, 81.38],\n", " 'disc-acc': [66.18, 85.38, 78.8, 81.59, 82.89],\n", " 'darts-pt': [85.49, 9.86, 81.79, 59.18, 85.48],\n", " 'zc-pt(nwot)': [3453.805194,\n", " 3435.985406,\n", " 3444.044047,\n", " 3445.595326,\n", " 3447.067855],\n", " 'disc-zc(nwot)': [3408.990502,\n", " 3464.050741,\n", " 3359.888463,\n", " 3382.1755,\n", " 3431.805571],\n", " 'best-acc': [94.16, 94.68, 94.03, 94.04, 93.85],\n", " 'darts': [0.0636, 0.6513, 0.0826, 0.1335, 0.0691],\n", " 'tenas': [34.0, 44.0, 53.5, 23.0, 30.0],\n", " 'zc-pt(synflow)': [2.0042808467776213e+30,\n", " 1.9513599734483263e+30,\n", " 1.5188352495143643e+30,\n", " 7.704103863066581e+29,\n", " 1.9536326167605112e+30],\n", " 'disc-zc(synflow)': [4.3050000047616484e+29,\n", " 7.635399455155384e+29,\n", " 1.5949429556375966e+30,\n", " 1.4519088590209463e+31,\n", " 7.345232988374157e+29],\n", " 'best_zc(nwot)': [1766.5481959337162,\n", " 1769.1683503033412,\n", " 1793.8140278364453,\n", " 1792.8682630835763,\n", " 1765.1445530390838],\n", " 'best_zc(synflow)': [5.90523769961745e+49,\n", " 6.344766865099622e+49,\n", " 6.571181309028854e+49,\n", " 6.57509920946309e+49,\n", " 6.658953754065702e+49],\n", " 'zc-pt-post': [3067.0476, 3032.6658, 3058.9646, 3059.2861, 3047.1965],\n", " 'zc-disc-post': [2975.976, 3130.7397, 3008.5625, 3009.341, 3086.3398]},\n", " {'avg-acc': [80.14, 83.05, 85.09, 85.7, 81.89],\n", " 'disc-acc': [86.44, 84.75, 80.23, 80.46, 80.13],\n", " 'darts-pt': [85.45, 51.15, 78.84, 64.64, 85.14],\n", " 'zc-pt(nwot)': [3451.055723,\n", " 3449.796894,\n", " 3442.625354,\n", " 3441.131751,\n", " 3453.311493],\n", " 'disc-zc(nwot)': [3433.98773,\n", " 3435.573458,\n", " 3424.470031,\n", " 3431.143217,\n", " 3423.153213],\n", " 'best-acc': [94.29, 94.18, 94.56, 94.68, 94.23],\n", " 'darts': [0.1183, 0.48, 0.1305, 0.1732, 0.0979],\n", " 'tenas': [32.0, 32.5, 36.5, 32.0, 52.0],\n", " 'zc-pt(synflow)': [3.165975343348193e+30,\n", " 2.4302742111297496e+30,\n", " 1.4853908452542004e+30,\n", " 2.868307126123347e+29,\n", " 2.6891361283692336e+30],\n", " 'disc-zc(synflow)': [5.5202846896598e+28,\n", " 2.4896852024898197e+29,\n", " 2.1810394989246777e+30,\n", " 2.9482018739806336e+32,\n", " 2.2732178076450144e+29],\n", " 'best_zc(nwot)': [1752.024924623228,\n", " 1793.8140278364453,\n", " 1786.3402409418215,\n", " 1785.0294182838636,\n", " 1781.9741301640186],\n", " 'best_zc(synflow)': [1.8865959738805548e+49,\n", " 2.593134717306188e+49,\n", " 6.658953754065702e+49,\n", " 2.021273089103704e+49,\n", " 1.6187260144154453e+49],\n", " 'zc-pt-post': [3067.0476, 3060.9983, 3057.1006, 3054.3428, 3066.2087],\n", " 'zc-disc-post': [3037.8726, 3055.4219, 3027.6638, 3024.3271, 3037.8108]},\n", " {'avg-acc': [77.61, 83.43, 86.18, 86.95, 81.74],\n", " 'disc-acc': [86.28, 82.69, 77.13, 76.8, 81.99],\n", " 'darts-pt': [85.54, 32.43, 81.04, 72.75, 85.51],\n", " 'zc-pt(nwot)': [3450.967554,\n", " 3448.211459,\n", " 3440.79926,\n", " 3443.240243,\n", " 3452.989921],\n", " 'disc-zc(nwot)': [3434.421701,\n", " 3437.661196,\n", " 3418.572637,\n", " 3397.51709,\n", " 3424.166157],\n", " 'best-acc': [94.05, 94.16, 94.68, 94.56, 94.1],\n", " 'darts': [0.1648, 0.4853, 0.1223, 0.1397, 0.088],\n", " 'tenas': [38.5, 16.0, 20.0, 17.0, 27.5],\n", " 'zc-pt(synflow)': [1.9460309216168614e+31,\n", " 8.014786854561015e+30,\n", " 1.1851807660289746e+30,\n", " 8.96867143875011e+26,\n", " 7.75842932776677e+30],\n", " 'disc-zc(synflow)': [4.777733726551756e+21,\n", " 1.4572459237815469e+26,\n", " 3.8590321292364994e+30,\n", " 1.8898449210848245e+36,\n", " 1.5222938895812008e+26],\n", " 'best_zc(nwot)': [1761.8789642379636,\n", " 1769.103803678444,\n", " 1793.8140278364453,\n", " 1792.8239766388833,\n", " 1761.9145207476113],\n", " 'best_zc(synflow)': [5.776473195639679e+39,\n", " 1.4672616553030765e+44,\n", " 6.658953754065702e+49,\n", " 5.480408193532999e+39,\n", " 1.9606567871518125e+35],\n", " 'zc-pt-post': [3067.0476, 3063.1135, 3058.818, 3064.5405, 3070.7593],\n", " 'zc-disc-post': [3061.6133, 3063.294, 3038.05, 3012.938, 3042.5535]}]" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "op_strengths" ] }, { "cell_type": "code", "execution_count": 135, "id": "566fe377", "metadata": {}, "outputs": [], "source": [ "#override disc_acc with results from lukasz\n", "disc_accuracy_stage_0 = {(100, 0, 0): 83.267998,\n", " (100, 0, 1): 82.239998,\n", " (100, 0, 2): 64.995995,\n", " (100, 0, 3): 71.755997,\n", " (100, 0, 4): 54.307999,\n", " (100, 1, 0): 84.935997,\n", " (100, 1, 1): 83.231995,\n", " (100, 1, 2): 73.231995,\n", " (100, 1, 3): 76.771996,\n", " (100, 1, 4): 83.451996,\n", " (100, 2, 0): 83.867996,\n", " (100, 2, 1): 83.727997,\n", " (100, 2, 2): 77.332001,\n", " (100, 2, 3): 76.832001,\n", " (100, 2, 4): 83.251999,\n", " (100, 3, 0): 65.767998,\n", " (100, 3, 1): 84.444,\n", " (100, 3, 2): 75.816002,\n", " (100, 3, 3): 78.68,\n", " (100, 3, 4): 62.703999,\n", " (100, 4, 0): 83.571999,\n", " (100, 4, 1): 82.028,\n", " (100, 4, 2): 75.023994,\n", " (100, 4, 3): 76.087997,\n", " (100, 4, 4): 82.563995,\n", " (100, 5, 0): 83.947998,\n", " (100, 5, 1): 82.447998,\n", " (100, 5, 2): 66.692001,\n", " (100, 5, 3): 71.363998,\n", " (100, 5, 4): 80.311996}\n", "\n", "for e in range(6):\n", " for o in range(5):\n", " op_strengths[e]['disc-acc'][o] = disc_accuracy_stage_0[(100,e,o)]" ] }, { "cell_type": "code", "execution_count": 136, "id": "c9d1fcc3", "metadata": {}, "outputs": [], "source": [ "flat_op_strengths = {}\n", "for k in op_strengths[0].keys():\n", " flat_op_strengths[k] = []\n", "for e in op_strengths:\n", " for k,v in e.items():\n", " if 'pt' in k or 'tenas' in k:\n", " flat_op_strengths[k].extend([-vv for vv in v])\n", " else:\n", " flat_op_strengths[k].extend(v)" ] }, { "cell_type": "code", "execution_count": 137, "id": "b5a2757c", "metadata": {}, "outputs": [], "source": [ "sq_op_strengths = {}\n", "for k in op_strengths[0].keys():\n", " sq_op_strengths[k] = []\n", "for e in op_strengths:\n", " for k,v in e.items():\n", " if 'pt' in k or 'tenas' in k:\n", " sq_op_strengths[k].append([-vv for vv in v])\n", " else:\n", " sq_op_strengths[k].append(v)" ] }, { "cell_type": "code", "execution_count": 138, "id": "efeb1742", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'avg-acc': [77.36, 83.81, 86.38, 87.32, 81.02], 'disc-acc': [83.267998, 82.239998, 64.995995, 71.755997, 54.307999], 'darts-pt': [-85.43, -17.02, -78.13, -59.09, -85.34], 'zc-pt(nwot)': [-3455.233646, -3449.898772, -3449.538363, -3441.815563, -3461.179476], 'disc-zc(nwot)': [3331.007285, 3445.489455, 3366.877065, 3437.551079, 3423.180255], 'best-acc': [94.15, 94.18, 94.44, 94.68, 93.86], 'darts': [0.1387, 0.4758, 0.1296, 0.181, 0.0748], 'tenas': [-38.5, -48.0, -31.0, -6.0, -37.5], 'zc-pt(synflow)': [-1.9286723850908796e+31, -7.990282869734622e+30, -1.2421187150331997e+30, -9.438907569335487e+26, -8.191504786187086e+30], 'disc-zc(synflow)': [4.639162000716631e+21, 1.4975281050055959e+26, 4.2221622054263117e+30, 1.9475517523688712e+36, 1.5075022033622535e+26], 'best_zc(nwot)': [1702.1967536035393, 1773.1779654806287, 1793.8140278364453, 1792.8682630835763, 1761.1262357119376], 'best_zc(synflow)': [5.784248799475683e+39, 1.4769546208886953e+44, 6.658953754065702e+49, 5.1987025703231504e+39, 1.9928388494681343e+35], 'zc-pt-post': [-3067.0476, -3055.9404, -3059.8901, -3060.4536, -3073.5583], 'zc-disc-post': [2942.267, 3068.6416, 3009.5847, 3028.1794, 3031.4248]}\n", "{'avg-acc': [80.03, 83.11, 85.23, 85.99, 81.52], 'disc-acc': [84.935997, 83.231995, 73.231995, 76.771996, 83.451996], 'darts-pt': [-85.52, -36.1, -84.39, -80.95, -85.49], 'zc-pt(nwot)': [-3452.145851, -3448.696318, -3441.809174, -3440.652631, -3453.739943], 'disc-zc(nwot)': [3429.074707, 3435.750274, 3407.872847, 3434.584512, 3421.442414], 'best-acc': [94.24, 94.16, 94.49, 94.68, 94.09], 'darts': [0.1236, 0.5535, 0.11, 0.1249, 0.088], 'tenas': [-7.0, -55.0, -10.0, -15.0, -39.0], 'zc-pt(synflow)': [-3.116079880492518e+30, -2.5018418732419554e+30, -1.4274537256246266e+30, -3.138287824323275e+29, -2.5693894962958226e+30], 'disc-zc(synflow)': [5.615386425664938e+28, 2.340336657109326e+29, 1.9258305801684058e+30, 3.012759514473006e+32, 2.2897138361934977e+29], 'best_zc(nwot)': [1765.3743820515451, 1770.8436009213751, 1791.917305624048, 1793.8140278364453, 1763.877253730585], 'best_zc(synflow)': [1.9424580089849912e+49, 2.764587447411338e+49, 6.658953754065702e+49, 2.0353792445711388e+49, 1.4435653786128956e+49], 'zc-pt-post': [-3067.0476, -3058.9197, -3048.8745, -3051.2664, -3066.668], 'zc-disc-post': [3020.0203, 3052.1936, 3026.2217, 3022.0935, 3029.2]}\n", "{'avg-acc': [82.9, 82.44, 84.05, 84.49, 81.98], 'disc-acc': [83.867996, 83.727997, 77.332001, 76.832001, 83.251999], 'darts-pt': [-85.51, -80.29, -81.86, -77.68, -85.32], 'zc-pt(nwot)': [-3446.521007, -3447.612434, -3435.455206, -3436.396744, -3449.275466], 'disc-zc(nwot)': [3428.795464, 3423.361285, 3440.925616, 3437.286935, 3416.891544], 'best-acc': [94.25, 94.43, 94.49, 94.68, 94.19], 'darts': [0.2403, 0.3297, 0.1495, 0.1748, 0.1056], 'tenas': [-31.5, -10.0, -30.0, -16.5, -36.5], 'zc-pt(synflow)': [-1.0312338471669537e+31, -4.9191575008661263e+30, -1.4241158958667068e+30, -1.0282498082879338e+28, -5.038622256524752e+30], 'disc-zc(synflow)': [1.6980829611704765e+25, 3.3199508659283994e+27, 3.3825056097270114e+30, 1.2059727722928161e+35, 3.279653417965715e+27], 'best_zc(nwot)': [1764.51075805859, 1764.116749555202, 1793.8140278364453, 1792.8239766388833, 1764.1848313456592], 'best_zc(synflow)': [8.376122028137071e+41, 1.0615041036082487e+45, 6.658953754065702e+49, 8.399427750574918e+41, 2.5270360875229e+39], 'zc-pt-post': [-3067.0476, -3068.708, -3056.3506, -3047.9695, -3071.3577], 'zc-disc-post': [3044.023, 3033.0627, 3032.825, 3052.0688, 3023.2302]}\n", "{'avg-acc': [74.02, 85.17, 87.3, 88.28, 81.38], 'disc-acc': [65.767998, 84.444, 75.816002, 78.68, 62.703999], 'darts-pt': [-85.49, -9.86, -81.79, -59.18, -85.48], 'zc-pt(nwot)': [-3453.805194, -3435.985406, -3444.044047, -3445.595326, -3447.067855], 'disc-zc(nwot)': [3408.990502, 3464.050741, 3359.888463, 3382.1755, 3431.805571], 'best-acc': [94.16, 94.68, 94.03, 94.04, 93.85], 'darts': [0.0636, 0.6513, 0.0826, 0.1335, 0.0691], 'tenas': [-34.0, -44.0, -53.5, -23.0, -30.0], 'zc-pt(synflow)': [-2.0042808467776213e+30, -1.9513599734483263e+30, -1.5188352495143643e+30, -7.704103863066581e+29, -1.9536326167605112e+30], 'disc-zc(synflow)': [4.3050000047616484e+29, 7.635399455155384e+29, 1.5949429556375966e+30, 1.4519088590209463e+31, 7.345232988374157e+29], 'best_zc(nwot)': [1766.5481959337162, 1769.1683503033412, 1793.8140278364453, 1792.8682630835763, 1765.1445530390838], 'best_zc(synflow)': [5.90523769961745e+49, 6.344766865099622e+49, 6.571181309028854e+49, 6.57509920946309e+49, 6.658953754065702e+49], 'zc-pt-post': [-3067.0476, -3032.6658, -3058.9646, -3059.2861, -3047.1965], 'zc-disc-post': [2975.976, 3130.7397, 3008.5625, 3009.341, 3086.3398]}\n", "{'avg-acc': [80.14, 83.05, 85.09, 85.7, 81.89], 'disc-acc': [83.571999, 82.028, 75.023994, 76.087997, 82.563995], 'darts-pt': [-85.45, -51.15, -78.84, -64.64, -85.14], 'zc-pt(nwot)': [-3451.055723, -3449.796894, -3442.625354, -3441.131751, -3453.311493], 'disc-zc(nwot)': [3433.98773, 3435.573458, 3424.470031, 3431.143217, 3423.153213], 'best-acc': [94.29, 94.18, 94.56, 94.68, 94.23], 'darts': [0.1183, 0.48, 0.1305, 0.1732, 0.0979], 'tenas': [-32.0, -32.5, -36.5, -32.0, -52.0], 'zc-pt(synflow)': [-3.165975343348193e+30, -2.4302742111297496e+30, -1.4853908452542004e+30, -2.868307126123347e+29, -2.6891361283692336e+30], 'disc-zc(synflow)': [5.5202846896598e+28, 2.4896852024898197e+29, 2.1810394989246777e+30, 2.9482018739806336e+32, 2.2732178076450144e+29], 'best_zc(nwot)': [1752.024924623228, 1793.8140278364453, 1786.3402409418215, 1785.0294182838636, 1781.9741301640186], 'best_zc(synflow)': [1.8865959738805548e+49, 2.593134717306188e+49, 6.658953754065702e+49, 2.021273089103704e+49, 1.6187260144154453e+49], 'zc-pt-post': [-3067.0476, -3060.9983, -3057.1006, -3054.3428, -3066.2087], 'zc-disc-post': [3037.8726, 3055.4219, 3027.6638, 3024.3271, 3037.8108]}\n", "{'avg-acc': [77.61, 83.43, 86.18, 86.95, 81.74], 'disc-acc': [83.947998, 82.447998, 66.692001, 71.363998, 80.311996], 'darts-pt': [-85.54, -32.43, -81.04, -72.75, -85.51], 'zc-pt(nwot)': [-3450.967554, -3448.211459, -3440.79926, -3443.240243, -3452.989921], 'disc-zc(nwot)': [3434.421701, 3437.661196, 3418.572637, 3397.51709, 3424.166157], 'best-acc': [94.05, 94.16, 94.68, 94.56, 94.1], 'darts': [0.1648, 0.4853, 0.1223, 0.1397, 0.088], 'tenas': [-38.5, -16.0, -20.0, -17.0, -27.5], 'zc-pt(synflow)': [-1.9460309216168614e+31, -8.014786854561015e+30, -1.1851807660289746e+30, -8.96867143875011e+26, -7.75842932776677e+30], 'disc-zc(synflow)': [4.777733726551756e+21, 1.4572459237815469e+26, 3.8590321292364994e+30, 1.8898449210848245e+36, 1.5222938895812008e+26], 'best_zc(nwot)': [1761.8789642379636, 1769.103803678444, 1793.8140278364453, 1792.8239766388833, 1761.9145207476113], 'best_zc(synflow)': [5.776473195639679e+39, 1.4672616553030765e+44, 6.658953754065702e+49, 5.480408193532999e+39, 1.9606567871518125e+35], 'zc-pt-post': [-3067.0476, -3063.1135, -3058.818, -3064.5405, -3070.7593], 'zc-disc-post': [3061.6133, 3063.294, 3038.05, 3012.938, 3042.5535]}\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
avg-accdisc-accdarts-ptzc-pt(nwot)disc-zc(nwot)best-accdartstenaszc-pt(synflow)disc-zc(synflow)best_zc(nwot)best_zc(synflow)zc-pt-postzc-disc-post
avg-acc1.000000-0.4833330.6666670.8333330.0333330.6500000.3166670.3004330.9333330.9166670.8166670.4166670.683333-0.033333
best-acc0.650000-0.3166670.4166670.7666670.1000001.0000000.2000000.4350650.6333330.6000000.5333330.2500000.583333-0.250000
best_zc(nwot)0.816667-0.4666670.5500000.7833330.0666670.5333330.2166670.0991340.7500000.7333331.0000000.4666670.583333-0.100000
best_zc(synflow)0.416667-0.3500000.4000000.5333330.1666670.2500000.3666670.2252160.3833330.3333330.4666671.0000000.6500000.100000
darts0.3166670.3500000.6500000.4500000.5000000.2000001.0000000.1350650.2166670.1500000.2166670.3666670.4000000.400000
darts-pt0.666667-0.2166671.0000000.5833330.4000000.4166670.6500000.1752160.6833330.6333330.5500000.4000000.6333330.400000
disc-acc-0.4833331.000000-0.216667-0.3166670.116667-0.3166670.350000-0.157684-0.550000-0.600000-0.466667-0.350000-0.4000000.200000
disc-zc(nwot)0.0333330.1166670.4000000.2166671.0000000.1000000.5000000.077814-0.050000-0.0833330.0666670.1666670.2666670.633333
disc-zc(synflow)0.916667-0.6000000.6333330.716667-0.0833330.6000000.1500000.3171000.9833331.0000000.7333330.3333330.516667-0.150000
tenas0.300433-0.1576840.1752160.2436150.0778140.4350650.1350651.0000000.2837660.3171000.0991340.2252160.083766-0.108550
zc-disc-post-0.0333330.2000000.400000-0.0666670.633333-0.2500000.400000-0.108550-0.133333-0.150000-0.1000000.1000000.2166671.000000
zc-pt(nwot)0.833333-0.3166670.5833331.0000000.2166670.7666670.4500000.2436150.7500000.7166670.7833330.5333330.800000-0.066667
zc-pt(synflow)0.933333-0.5500000.6833330.750000-0.0500000.6333330.2166670.2837661.0000000.9833330.7500000.3833330.583333-0.133333
zc-pt-post0.683333-0.4000000.6333330.8000000.2666670.5833330.4000000.0837660.5833330.5166670.5833330.6500001.0000000.216667
\n", "
" ], "text/plain": [ " avg-acc disc-acc darts-pt zc-pt(nwot) disc-zc(nwot) \\\n", "avg-acc 1.000000 -0.483333 0.666667 0.833333 0.033333 \n", "best-acc 0.650000 -0.316667 0.416667 0.766667 0.100000 \n", "best_zc(nwot) 0.816667 -0.466667 0.550000 0.783333 0.066667 \n", "best_zc(synflow) 0.416667 -0.350000 0.400000 0.533333 0.166667 \n", "darts 0.316667 0.350000 0.650000 0.450000 0.500000 \n", "darts-pt 0.666667 -0.216667 1.000000 0.583333 0.400000 \n", "disc-acc -0.483333 1.000000 -0.216667 -0.316667 0.116667 \n", "disc-zc(nwot) 0.033333 0.116667 0.400000 0.216667 1.000000 \n", "disc-zc(synflow) 0.916667 -0.600000 0.633333 0.716667 -0.083333 \n", "tenas 0.300433 -0.157684 0.175216 0.243615 0.077814 \n", "zc-disc-post -0.033333 0.200000 0.400000 -0.066667 0.633333 \n", "zc-pt(nwot) 0.833333 -0.316667 0.583333 1.000000 0.216667 \n", "zc-pt(synflow) 0.933333 -0.550000 0.683333 0.750000 -0.050000 \n", "zc-pt-post 0.683333 -0.400000 0.633333 0.800000 0.266667 \n", "\n", " best-acc darts tenas zc-pt(synflow) \\\n", "avg-acc 0.650000 0.316667 0.300433 0.933333 \n", "best-acc 1.000000 0.200000 0.435065 0.633333 \n", "best_zc(nwot) 0.533333 0.216667 0.099134 0.750000 \n", "best_zc(synflow) 0.250000 0.366667 0.225216 0.383333 \n", "darts 0.200000 1.000000 0.135065 0.216667 \n", "darts-pt 0.416667 0.650000 0.175216 0.683333 \n", "disc-acc -0.316667 0.350000 -0.157684 -0.550000 \n", "disc-zc(nwot) 0.100000 0.500000 0.077814 -0.050000 \n", "disc-zc(synflow) 0.600000 0.150000 0.317100 0.983333 \n", "tenas 0.435065 0.135065 1.000000 0.283766 \n", "zc-disc-post -0.250000 0.400000 -0.108550 -0.133333 \n", "zc-pt(nwot) 0.766667 0.450000 0.243615 0.750000 \n", "zc-pt(synflow) 0.633333 0.216667 0.283766 1.000000 \n", "zc-pt-post 0.583333 0.400000 0.083766 0.583333 \n", "\n", " disc-zc(synflow) best_zc(nwot) best_zc(synflow) \\\n", "avg-acc 0.916667 0.816667 0.416667 \n", "best-acc 0.600000 0.533333 0.250000 \n", "best_zc(nwot) 0.733333 1.000000 0.466667 \n", "best_zc(synflow) 0.333333 0.466667 1.000000 \n", "darts 0.150000 0.216667 0.366667 \n", "darts-pt 0.633333 0.550000 0.400000 \n", "disc-acc -0.600000 -0.466667 -0.350000 \n", "disc-zc(nwot) -0.083333 0.066667 0.166667 \n", "disc-zc(synflow) 1.000000 0.733333 0.333333 \n", "tenas 0.317100 0.099134 0.225216 \n", "zc-disc-post -0.150000 -0.100000 0.100000 \n", "zc-pt(nwot) 0.716667 0.783333 0.533333 \n", "zc-pt(synflow) 0.983333 0.750000 0.383333 \n", "zc-pt-post 0.516667 0.583333 0.650000 \n", "\n", " zc-pt-post zc-disc-post \n", "avg-acc 0.683333 -0.033333 \n", "best-acc 0.583333 -0.250000 \n", "best_zc(nwot) 0.583333 -0.100000 \n", "best_zc(synflow) 0.650000 0.100000 \n", "darts 0.400000 0.400000 \n", "darts-pt 0.633333 0.400000 \n", "disc-acc -0.400000 0.200000 \n", "disc-zc(nwot) 0.266667 0.633333 \n", "disc-zc(synflow) 0.516667 -0.150000 \n", "tenas 0.083766 -0.108550 \n", "zc-disc-post 0.216667 1.000000 \n", "zc-pt(nwot) 0.800000 -0.066667 \n", "zc-pt(synflow) 0.583333 -0.133333 \n", "zc-pt-post 1.000000 0.216667 " ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "all_corr = []\n", "for e in range(6):\n", " d = {}\n", " for k,v in sq_op_strengths.items():\n", " d[k] = v[e]\n", " print(d)\n", " df = pd.DataFrame(d)\n", " all_corr.append(df.corr(method='spearman'))\n", "df = pd.concat(all_corr)\n", "df_mean = df.groupby(level=0).mean()\n", "df_mean" ] }, { "cell_type": "code", "execution_count": 149, "id": "4c7c0062", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " best-acc avg-acc disc-acc best_zc(nwot) \\\n", "best-acc 1.000000 0.650000 -0.316667 0.533333 \n", "avg-acc 0.650000 1.000000 -0.483333 0.816667 \n", "disc-acc -0.316667 -0.483333 1.000000 -0.466667 \n", "best_zc(nwot) 0.533333 0.816667 -0.466667 1.000000 \n", "best_zc(synflow) 0.250000 0.416667 -0.350000 0.466667 \n", "disc-zc(synflow) 0.600000 0.916667 -0.600000 0.733333 \n", "zc-pt(synflow) 0.633333 0.933333 -0.550000 0.750000 \n", "disc-zc(nwot) 0.100000 0.033333 0.116667 0.066667 \n", "zc-pt(nwot) 0.766667 0.833333 -0.316667 0.783333 \n", "\n", " best_zc(synflow) disc-zc(synflow) zc-pt(synflow) \\\n", "best-acc 0.250000 0.600000 0.633333 \n", "avg-acc 0.416667 0.916667 0.933333 \n", "disc-acc -0.350000 -0.600000 -0.550000 \n", "best_zc(nwot) 0.466667 0.733333 0.750000 \n", "best_zc(synflow) 1.000000 0.333333 0.383333 \n", "disc-zc(synflow) 0.333333 1.000000 0.983333 \n", "zc-pt(synflow) 0.383333 0.983333 1.000000 \n", "disc-zc(nwot) 0.166667 -0.083333 -0.050000 \n", "zc-pt(nwot) 0.533333 0.716667 0.750000 \n", "\n", " disc-zc(nwot) zc-pt(nwot) \n", "best-acc 0.100000 0.766667 \n", "avg-acc 0.033333 0.833333 \n", "disc-acc 0.116667 -0.316667 \n", "best_zc(nwot) 0.066667 0.783333 \n", "best_zc(synflow) 0.166667 0.533333 \n", "disc-zc(synflow) -0.083333 0.716667 \n", "zc-pt(synflow) -0.050000 0.750000 \n", "disc-zc(nwot) 1.000000 0.216667 \n", "zc-pt(nwot) 0.216667 1.000000 \n", "(5, 8)\n", "(5, 8)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy8AAAH5CAYAAACI1QErAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADxmklEQVR4nOzdd3hTVR8H8G/SJt17l24KhW72KrKlIiBTNggoWxBEWS4UVBTFF5ClyFRUkA2CLBmFllVWS6HQvfduOtK8fwQCIV1gSxP4fp6nj+Tcc27Ouaa3+d2zBDKZTAYiIiIiIiI1J2zoChAREREREdUGgxciIiIiItIIDF6IiIiIiEgjMHghIiIiIiKNwOCFiIiIiIg0AoMXIiIiIiLSCAxeiIiIiIhII2g3dAVIM9xYOruhq6C2fBetAAAcuhTewDVRX6+38UTEuq8buhpqq9mU+QCA5ItnGrgm6suu7SsI+25RQ1dDrXm9vxQ3v/6goauhtnzmfwsAyI6LbuCaqC8zJ1dcnj2yoauhtlqv+K2hq0BgzwsREREREWkIBi9ERERERKQRGLwQEREREZFGYPBCREREREQagcELERERERFpBAYvRERERESkERi8EBERERGRRmDwQkREREREGoHBCxERERERaQQGL0REREREpBEYvBARERERkUZg8EJERERERBqBwQsREREREWkEBi9ERERERKQRGLwQEREREZFGYPBCREREREQagcELERERERFpBAYvRERERESkERi8EBERERGRRmDwQkREREREGoHBCxERERERaQQGL0REREREpBEYvBARERERkUZg8EJERERERBqBwQsREREREWkEBi9ERERERKQRGLwQEREREZFG0G7oCqib+fPnIzExEdu2bWvoqrzwxKYWsH91IAyc3SGTliMvMhzJx/dCWlxUc2GhEFbtusHMtw3EphaoKClGUXI8Ynf+AlmFFADg0HcEzP3aqhRNPPoXMi+fq+vm1Kur58/i+P6dyEhNgam5JboE9kOnXq9VW0ZSXIzfN6xCQkwU8nOzIRKLYevghB79BqO5X0tFvvioezh/8iiiIsKRk5UBQ2MTePj4I3DwCBibmtV30/4TkZEJbDr1gn4jJ8ikUhTE3kPq+ROoKJFUW86ydQAsWweopGdeC0F68CnFa6t2XWHg5AaRoTEEQiFK83KQE34NOWFX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R5Hz2LKw5cWFkEqKYdmqE7T0DFBRVorS3Cwk/3u4xt5BdWCgp4fvF7yPVdt/x+LVG6CtpYWOLXwxfdSwanf4zsrNw71Y+ZPxz1avVzn+MMjR19WFgZ4etu47hOy8PGgJteDu5IDPZkxG13bqu0pdTSpKSxDz5y+w6/Y6HPoOAyoqkH8/Ain/1rxhYnlhPqL/+Bm2Xfug0WtDAACF8VFIOPC7Wg8xrEpFaQmid6yHXc/+cHxjNFAhRd6920g+vr/GsuWF+Yj6bS3suveDQ9/h8vt03H3E7d0OaVGhIo+0uAjWnXpA28AIFaUlKMnKQMLhP5ETFlrfzas3BgYGWP3t11ixZh0+WvIVtLW1EdC+Hd6bOrna3z0AiIqNxcIvliqlPXz94/JlaKVhwUtFSTHurlkKx4Fj4TZ2JmRSKXLCriJ+77ZalTdq3BxiUwvE79tebT5T37YQimveA4ZeDAJZpcv1ECm7sXR2zZleUr6LVgAADl3SzF20n4fX23giYt3XNWd8STWbMh8AkHzxTA05X152bV9B2HeLGroaas3r/aW4+fUHDV0NteUzXz6nMDuuYfc5U2dmTq64PHtkQ1dDbbVe8VtDV4HAOS9ERERERKQhGLwQEREREZFGYPBCREREREQagcELERERERFpBAYvRERERESkERi8EBERERGRRmDwQkREREREGoHBCxERERERaQQGL0REREREpBEYvBARERERkUZg8EJERERERBqBwQsREREREWkEBi9ERERERKQRGLwQEREREZFGYPBCREREREQagcELERERERFpBAYvRERERESkERi8EBERERGRRmDwQkREREREGoHBCxERERERaQQGL0REREREpBEYvBARERERkUZg8EJERERERBqBwQsREREREWkEBi9ERERERKQRGLwQEREREZFGYPBCREREREQagcELERERERFpBAYvRERERESkERi8EBERERGRRhDIZDJZQ1eCiIiIiIioJtoNXQGiF8WPh883dBXU1vQ+HREydUBDV0NttVu7FwAQtWtzg9ZDnbkNeQvnhgc0dDXUWsDv53DuzU4NXQ21FfBnEAAgLzOjgWuivowtLBEyqV9DV0NttdtwoKGrQOCwMSIiIiIi0hAMXoiIiIiISCMweCEiIiIiIo3A4IWIiIiIiDQCgxciIiIiItIIDF6IiIiIiEgjMHgh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Bi9ERERERBqoQiar1U9tvfXWWwgNDcXq1asRFRWF7du348iRI5g4caIiz7FjxxAYGIjU1FQAgKGhId588018//33OHPmDCIiIjB37lxYWlqiT58+dd5mDhsjIiIiItJAzzofpSp+fn5YuXIlVqxYgXXr1sHOzg5LlixBt27dFHny8/MRHR2NsrIyRdr8+fOhra2NDz/8EEVFRWjVqhV++eUX6Onp1Wn9AAYvREREREQa6Wl6VWqrZ8+e6NmzZ5XHBw0ahEGDBimlicViLFy4EAsXLqzz+jyJwQsRERERkQaqqKj74EXdcc4LERERERFpBPa8EBERERFpoPoYNqbuGLwQEREREWmgl3HYGIMXIiIiIiINxJ4XIiIiIiLSCC9f6MLghYiIiIhII7HnhYiIiIiINEJdb1KpCQSyl7HVREREREQa7k58Sq3yeTja1nNNnh/u80JERERERBqBw8aIiNRE5LYfG7oKaqvJmOm4Om98Q1dDrbVctglX5o5p6GqorVbLtwEAcpITG7gm6svUrhEuzRrW0NVQW23+90dDV0HFyziAisELEREREZEGknKfFyIiIiIi0gTseSEiIiIiIo3wEna8MHghIiIiItJEspdwm0oGL0REREREGojDxoiIiIiISCNw2BgREREREWmEioqKhq7Cc8dNKomIiIiISCOw54WIiIiISANxnxciIiIiItIIFZywT0REREREmoCrjRERERERkUZ4CWMXBi9ERERERJqIw8aIiIiIiEgjyMDghYiIiIiINMDLuNoY93khIiIiIiKNwJ4XIiIiIiINxNXGiIiIiIhII7yMw8YYvBARERERaSD2vBARERERkUZ4CTteGLwQEREREWki9rwQEREREZFG4CaVRERERESkERi8EBERERGRRngZgxduUklERERERBqBPS9ERERERBqo4iVcbozBCxERERGRBnoZh4099+Bl/vz5SExMxLZt2573W9e76dOnw9vbG1OnTm3oqqiIj4/HkCFDsH//ftjY2DR0dYjoOUjJzsX6f07jZkwitLWEaNvEFW/36gxjfb1anyM1Jw/T1m1HSXk5Ns8cD0tjI0X6xNWbqyy3ddZEmBsZ/Ncm1DuxuRUc+42EYeNmkEnLkXv7OhIO7oC0qLDaci2XbaryWMSPX6AoLgoAYP/aUJh4+EJsZg4IhCjNSkdGyGmkB58E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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from string import ascii_letters\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from pandas import DataFrame\n", "import pathlib\n", "\n", "sns.set_theme(style=\"white\")\n", "#plt.figure(figsize=(16,10))\n", "#if 'zc' in flat_op_strengths:\n", "# flat_op_strengths.pop('zc')\n", "df = df_mean\n", "# df=df.reindex([\"best-acc\", \"avg-acc\", \"disc-acc\", \"darts\", \"darts-pt\", 'tenas','disc-zc(synflow)','zc-pt(synflow)', \"disc-zc(nwot)\", \"zc-pt(nwot)\"])\n", "# df = df[[\"best-acc\", \"avg-acc\", \"disc-acc\", \"darts\", \"darts-pt\",'tenas' ,'disc-zc(synflow)','zc-pt(synflow)', \"disc-zc(nwot)\", \"zc-pt(nwot)\"]]\n", "#print(df)\n", "# df=df.reindex([\"best-acc\", \"avg-acc\", \"disc-acc\", 'best_zc(nwot)', \"disc-zc(nwot)\", \"zc-pt(nwot)\"])\n", "# df = df[[\"best-acc\", \"avg-acc\", \"disc-acc\",'best_zc(nwot)' , \"disc-zc(nwot)\", \"zc-pt(nwot)\"]]\n", "# df=df.reindex([\"best-acc\", \"avg-acc\", \"disc-acc\", 'best_zc(synflow)','disc-zc(synflow)','zc-pt(synflow)'])\n", "# df = df[[\"best-acc\", \"avg-acc\", \"disc-acc\", 'best_zc(synflow)','disc-zc(synflow)','zc-pt(synflow)']]\n", "df=df.reindex([\"best-acc\", \"avg-acc\", \"disc-acc\", 'best_zc(nwot)', 'best_zc(synflow)', 'disc-zc(synflow)','zc-pt(synflow)',\"disc-zc(nwot)\", \"zc-pt(nwot)\"])\n", "df = df[[\"best-acc\", \"avg-acc\", \"disc-acc\",'best_zc(nwot)' , 'best_zc(synflow)', 'disc-zc(synflow)','zc-pt(synflow)',\"disc-zc(nwot)\", \"zc-pt(nwot)\"]]\n", "\n", "\n", "# Compute the correlation matrix\n", "#corr = df.corr(method='spearman')\n", "corr=df\n", "print(corr)\n", "\n", "# Generate a mask for the upper triangle\n", "mask = np.tril(np.ones_like(corr, dtype=bool))\n", "\n", "for i in range(5,9):\n", " for j in range(0,9):\n", " mask[i][j]=True\n", "\n", "masked_corr = corr.loc[~np.all(mask, axis=1), ~np.all(mask, axis=0)]\n", "masked_mask = mask[0:5,1:9]\n", "print(np.shape(masked_corr))\n", "print(np.shape(masked_mask))\n", "\n", "\n", "# Set up the matplotlib figure\n", "f, ax = plt.subplots(figsize=(13, 13))\n", "sns.set(font_scale=1.3)\n", "# Generate a custom diverging colormap\n", "cmap = sns.diverging_palette(230, 20, as_cmap=True)\n", "\n", "# Draw the heatmap with the mask and correct aspect ratio\n", "g = sns.heatmap(masked_corr, mask=masked_mask, cmap=cmap, center=0,\n", " square=True, linewidths=.5, cbar_kws={\"shrink\": .267}, annot=True)\n", "\n", "g.set_yticklabels(labels=g.get_yticklabels(), va='center', fontsize = 14.5)\n", "g.set_xticklabels(g.get_xmajorticklabels(), fontsize = 14.5, rotation=70)\n", "\n", "f.savefig(pathlib.Path('metric_correlation').with_suffix('.pdf'), bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": null, "id": "abd8548a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 10, "id": "b1f23258", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " best-acc avg-acc disc-acc darts-pt disc-zc zc-pt darts\n", "best-acc 1.000000 0.650000 -0.316667 0.416667 0.100000 0.766667 0.200000\n", "avg-acc 0.650000 1.000000 -0.483333 0.666667 0.033333 0.833333 0.316667\n", "disc-acc -0.316667 -0.483333 1.000000 -0.216667 0.116667 -0.316667 0.350000\n", "darts-pt 0.416667 0.666667 -0.216667 1.000000 0.400000 0.583333 0.650000\n", "disc-zc 0.100000 0.033333 0.116667 0.400000 1.000000 0.216667 0.500000\n", "zc-pt 0.766667 0.833333 -0.316667 0.583333 0.216667 1.000000 0.450000\n", "darts 0.200000 0.316667 0.350000 0.650000 0.500000 0.450000 1.000000\n", "(6, 3)\n", "(6, 3)\n" ] }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from string import ascii_letters\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from pandas import DataFrame\n", "import pathlib\n", "\n", "sns.set_theme(style=\"white\")\n", "plt.figure(figsize=(8,5))\n", "#if 'zc' in flat_op_strengths:\n", "# flat_op_strengths.pop('zc')\n", "df = df_mean\n", "df=df.reindex([\"best-acc\", \"avg-acc\", \"disc-acc\", \"darts-pt\", \"disc-zc\", \"zc-pt\", \"darts\"])\n", "df = df[[\"best-acc\", \"avg-acc\", \"disc-acc\", \"darts-pt\", \"disc-zc\", \"zc-pt\", \"darts\"]]\n", "#print(df)\n", "\n", "# Compute the correlation matrix\n", "#corr = df.corr(method='spearman')\n", "corr = df\n", "print(corr)\n", "\n", "# Generate a mask for the upper triangle\n", "mask = np.triu(np.ones_like(corr, dtype=bool))\n", "\n", "for i in range(3,7):\n", " for j in range(0,7):\n", " mask[j][i]=True\n", "\n", "masked_corr = df.loc[~np.all(mask, axis=1), ~np.all(mask, axis=0)]\n", "masked_mask = mask[1:7,0:3]\n", "print(np.shape(masked_corr))\n", "print(np.shape(masked_mask))\n", "\n", "\n", "# Set up the matplotlib figure\n", "f, ax = plt.subplots(figsize=(11, 9))\n", "sns.set(font_scale=1.3)\n", "# Generate a custom diverging colormap\n", "cmap = sns.diverging_palette(230, 20, as_cmap=True)\n", "\n", "# Draw the heatmap with the mask and correct aspect ratio\n", "g = sns.heatmap(masked_corr, mask=masked_mask, cmap=cmap, center=0,\n", " square=True, linewidths=.5, cbar_kws={\"shrink\": .5}, annot=True)\n", "\n", "g.set_yticklabels(labels=g.get_yticklabels(), va='center', fontsize = 14.5)\n", "g.set_xticklabels(g.get_xmajorticklabels(), fontsize = 14.5)\n", "\n", "f.savefig(pathlib.Path('metric_correlation_vert').with_suffix('.pdf'), bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 35, "id": "82964512", "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'acc_d' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mbest_archs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 22\u001b[0;31m \u001b[0macc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0macc_d\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mbop\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'acc_d' is not defined" ] } ], "source": [ "plot_data = []\n", "metrics = op_strengths[0].keys()\n", "best_archs = {}\n", "for m in metrics:\n", " best_archs[m] = []\n", " plot_data.append([m,{}])\n", "for j,edge in enumerate(op_strengths):\n", " bop = -1\n", " bm = -1\n", " for i,m in enumerate(metrics):\n", " if 'pt' in m:\n", " bm = min(edge[m])\n", " else:\n", " bm = max(edge[m])\n", " bop = edge[m].index(bm)\n", " #print(m,ops[bop],bm)\n", " best_archs[m].append(bop)\n", " \n", "i=0\n", "for k,v in best_archs.items():\n", "\n", " acc = stat.mean(acc_d[tuple(v)])\n", " \n", " for j,bop in enumerate(v):\n", " plot_data[i][1][j]=ops[bop]\n", " plot_data[i][1]['acc']=acc\n", " \n", " i+=1\n", " print(k,v,acc)\n", "print(ops)" ] }, { "cell_type": "code", "execution_count": 477, "id": "d7221f6c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[['avg-acc',\n", " {0: 'nor_conv_3x3',\n", " 1: 'nor_conv_3x3',\n", " 2: 'nor_conv_3x3',\n", " 3: 'nor_conv_3x3',\n", " 4: 'nor_conv_3x3',\n", " 5: 'nor_conv_3x3',\n", " 'acc': 93.76}],\n", " ['disc-acc',\n", " {0: 'none',\n", " 1: 'none',\n", " 2: 'none',\n", " 3: 'skip_connect',\n", " 4: 'none',\n", " 5: 'none',\n", " 'acc': 86.45333333333333}],\n", " ['darts-pt',\n", " {0: 'skip_connect',\n", " 1: 'skip_connect',\n", " 2: 'nor_conv_3x3',\n", " 3: 'skip_connect',\n", " 4: 'skip_connect',\n", " 5: 'skip_connect',\n", " 'acc': 80.57}],\n", " ['zc-pt',\n", " {0: 'nor_conv_3x3',\n", " 1: 'nor_conv_3x3',\n", " 2: 'nor_conv_1x1',\n", " 3: 'skip_connect',\n", " 4: 'nor_conv_3x3',\n", " 5: 'nor_conv_1x1',\n", " 'acc': 94.195}],\n", " ['disc-zc',\n", " {0: 'skip_connect',\n", " 1: 'skip_connect',\n", " 2: 'nor_conv_1x1',\n", " 3: 'skip_connect',\n", " 4: 'skip_connect',\n", " 5: 'skip_connect',\n", " 'acc': 77.04333333333334}],\n", " ['best-acc',\n", " {0: 'nor_conv_3x3',\n", " 1: 'nor_conv_3x3',\n", " 2: 'nor_conv_3x3',\n", " 3: 'skip_connect',\n", " 4: 'nor_conv_3x3',\n", " 5: 'nor_conv_1x1',\n", " 'acc': 94.37333333333333}],\n", " ['darts',\n", " {0: 'skip_connect',\n", " 1: 'skip_connect',\n", " 2: 'skip_connect',\n", " 3: 'skip_connect',\n", " 4: 'skip_connect',\n", " 5: 'skip_connect',\n", " 'acc': 54.29666666666667}]]" ] }, "execution_count": 477, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_data" ] }, { "cell_type": "code", "execution_count": 478, "id": "dbeb6e7c", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", "/*!\n", " * Copyright (c) Facebook, Inc. and its affiliates.\n", " * \n", " * This source code is licensed under the MIT license found in the\n", " * LICENSE file in the root directory of this source tree.\n", " */\n", "var hiplot=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=62)}([function(t,e,r){\"use strict\";t.exports=r(43)},function(t,e,r){\"use strict\";r.r(e),r.d(e,\"version\",(function(){return n})),r.d(e,\"bisect\",(function(){return s})),r.d(e,\"bisectRight\",(function(){return l})),r.d(e,\"bisectLeft\",(function(){return h})),r.d(e,\"ascending\",(function(){return i})),r.d(e,\"bisector\",(function(){return o})),r.d(e,\"cross\",(function(){return p})),r.d(e,\"descending\",(function(){return u})),r.d(e,\"deviation\",(function(){return g})),r.d(e,\"extent\",(function(){return b})),r.d(e,\"histogram\",(function(){return A})),r.d(e,\"thresholdFreedmanDiaconis\",(function(){return z})),r.d(e,\"thresholdScott\",(function(){return L})),r.d(e,\"thresholdSturges\",(function(){return N})),r.d(e,\"max\",(function(){return I})),r.d(e,\"mean\",(function(){return O})),r.d(e,\"median\",(function(){return P})),r.d(e,\"merge\",(function(){return R})),r.d(e,\"min\",(function(){return F})),r.d(e,\"pairs\",(function(){return d})),r.d(e,\"permute\",(function(){return U})),r.d(e,\"quantile\",(function(){return j})),r.d(e,\"range\",(function(){return w})),r.d(e,\"scan\",(function(){return H})),r.d(e,\"shuffle\",(function(){return B})),r.d(e,\"sum\",(function(){return W})),r.d(e,\"ticks\",(function(){return T})),r.d(e,\"tickIncrement\",(function(){return E})),r.d(e,\"tickStep\",(function(){return D})),r.d(e,\"transpose\",(function(){return Y})),r.d(e,\"variance\",(function(){return f})),r.d(e,\"zip\",(function(){return G})),r.d(e,\"axisTop\",(function(){return et})),r.d(e,\"axisRight\",(function(){return rt})),r.d(e,\"axisBottom\",(function(){return nt})),r.d(e,\"axisLeft\",(function(){return it})),r.d(e,\"brush\",(function(){return Ci})),r.d(e,\"brushX\",(function(){return Si})),r.d(e,\"brushY\",(function(){return Mi})),r.d(e,\"brushSelection\",(function(){return wi})),r.d(e,\"chord\",(function(){return Ii})),r.d(e,\"ribbon\",(function(){return Xi})),r.d(e,\"nest\",(function(){return Ji})),r.d(e,\"set\",(function(){return lo})),r.d(e,\"map\",(function(){return Ki})),r.d(e,\"keys\",(function(){return ho})),r.d(e,\"values\",(function(){return so})),r.d(e,\"entries\",(function(){return co})),r.d(e,\"color\",(function(){return Ye})),r.d(e,\"rgb\",(function(){return Qe})),r.d(e,\"hsl\",(function(){return er})),r.d(e,\"lab\",(function(){return go})),r.d(e,\"hcl\",(function(){return So})),r.d(e,\"lch\",(function(){return wo})),r.d(e,\"gray\",(function(){return fo})),r.d(e,\"cubehelix\",(function(){return jo})),r.d(e,\"contours\",(function(){return Bo})),r.d(e,\"contourDensity\",(function(){return Qo})),r.d(e,\"dispatch\",(function(){return ct})),r.d(e,\"drag\",(function(){return ea})),r.d(e,\"dragDisable\",(function(){return Ce})),r.d(e,\"dragEnable\",(function(){return Te})),r.d(e,\"dsvFormat\",(function(){return ha})),r.d(e,\"csvParse\",(function(){return da})),r.d(e,\"csvParseRows\",(function(){return ca})),r.d(e,\"csvFormat\",(function(){return pa})),r.d(e,\"csvFormatBody\",(function(){return ua})),r.d(e,\"csvFormatRows\",(function(){return ma})),r.d(e,\"csvFormatRow\",(function(){return fa})),r.d(e,\"csvFormatValue\",(function(){return ga})),r.d(e,\"tsvParse\",(function(){return _a})),r.d(e,\"tsvParseRows\",(function(){return xa})),r.d(e,\"tsvFormat\",(function(){return va})),r.d(e,\"tsvFormatBody\",(function(){return ka})),r.d(e,\"tsvFormatRows\",(function(){return ya})),r.d(e,\"tsvFormatRow\",(function(){return wa})),r.d(e,\"tsvFormatValue\",(function(){return Sa})),r.d(e,\"autoType\",(function(){return Ma})),r.d(e,\"easeLinear\",(function(){return Ta})),r.d(e,\"easeQuad\",(function(){return Na})),r.d(e,\"easeQuadIn\",(function(){return Ea})),r.d(e,\"easeQuadOut\",(function(){return Da})),r.d(e,\"easeQuadInOut\",(function(){return Na})),r.d(e,\"easeCubic\",(function(){return Vn})),r.d(e,\"easeCubicIn\",(function(){return qn})),r.d(e,\"easeCubicOut\",(function(){return Gn})),r.d(e,\"easeCubicInOut\",(function(){return Vn})),r.d(e,\"easePoly\",(function(){return za})),r.d(e,\"easePolyIn\",(function(){return Aa})),r.d(e,\"easePolyOut\",(function(){return ja})),r.d(e,\"easePolyInOut\",(function(){return za})),r.d(e,\"easeSin\",(function(){return Ra})),r.d(e,\"easeSinIn\",(function(){return Oa})),r.d(e,\"easeSinOut\",(function(){return Pa})),r.d(e,\"easeSinInOut\",(function(){return Ra})),r.d(e,\"easeExp\",(function(){return Ba})),r.d(e,\"easeExpIn\",(function(){return Ua})),r.d(e,\"easeExpOut\",(function(){return Ha})),r.d(e,\"easeExpInOut\",(function(){return Ba})),r.d(e,\"easeCircle\",(function(){return qa})),r.d(e,\"easeCircleIn\",(function(){return Wa})),r.d(e,\"easeCircleOut\",(function(){return Ya})),r.d(e,\"easeCircleInOut\",(function(){return qa})),r.d(e,\"easeBounce\",(function(){return Va})),r.d(e,\"easeBounceIn\",(function(){return Ga})),r.d(e,\"easeBounceOut\",(function(){return Va})),r.d(e,\"easeBounceInOut\",(function(){return Qa})),r.d(e,\"easeBack\",(function(){return $a})),r.d(e,\"easeBackIn\",(function(){return Xa})),r.d(e,\"easeBackOut\",(function(){return Za})),r.d(e,\"easeBackInOut\",(function(){return $a})),r.d(e,\"easeElastic\",(function(){return tl})),r.d(e,\"easeElasticIn\",(function(){return Ja})),r.d(e,\"easeElasticOut\",(function(){return tl})),r.d(e,\"easeElasticInOut\",(function(){return el})),r.d(e,\"blob\",(function(){return nl})),r.d(e,\"buffer\",(function(){return ol})),r.d(e,\"dsv\",(function(){return sl})),r.d(e,\"csv\",(function(){return dl})),r.d(e,\"tsv\",(function(){return cl})),r.d(e,\"image\",(function(){return pl})),r.d(e,\"json\",(function(){return ml})),r.d(e,\"text\",(function(){return ll})),r.d(e,\"xml\",(function(){return gl})),r.d(e,\"html\",(function(){return bl})),r.d(e,\"svg\",(function(){return _l})),r.d(e,\"forceCenter\",(function(){return xl})),r.d(e,\"forceCollide\",(function(){return jl})),r.d(e,\"forceLink\",(function(){return Il})),r.d(e,\"forceManyBody\",(function(){return Ul})),r.d(e,\"forceRadial\",(function(){return Hl})),r.d(e,\"forceSimulation\",(function(){return Fl})),r.d(e,\"forceX\",(function(){return Bl})),r.d(e,\"forceY\",(function(){return Wl})),r.d(e,\"formatDefaultLocale\",(function(){return oh})),r.d(e,\"format\",(function(){return $l})),r.d(e,\"formatPrefix\",(function(){return Kl})),r.d(e,\"formatLocale\",(function(){return ih})),r.d(e,\"formatSpecifier\",(function(){return Vl})),r.d(e,\"FormatSpecifier\",(function(){return Ql})),r.d(e,\"precisionFixed\",(function(){return ah})),r.d(e,\"precisionPrefix\",(function(){return lh})),r.d(e,\"precisionRound\",(function(){return hh})),r.d(e,\"geoArea\",(function(){return Jh})),r.d(e,\"geoBounds\",(function(){return qs})),r.d(e,\"geoCentroid\",(function(){return nd})),r.d(e,\"geoCircle\",(function(){return md})),r.d(e,\"geoClipAntimeridian\",(function(){return Cd})),r.d(e,\"geoClipCircle\",(function(){return Td})),r.d(e,\"geoClipExtent\",(function(){return jd})),r.d(e,\"geoClipRectangle\",(function(){return Ed})),r.d(e,\"geoContains\",(function(){return Zd})),r.d(e,\"geoDistance\",(function(){return Hd})),r.d(e,\"geoGraticule\",(function(){return Jd})),r.d(e,\"geoGraticule10\",(function(){return tc})),r.d(e,\"geoInterpolate\",(function(){return oc})),r.d(e,\"geoLength\",(function(){return Rd})),r.d(e,\"geoPath\",(function(){return np})),r.d(e,\"geoAlbers\",(function(){return yp})),r.d(e,\"geoAlbersUsa\",(function(){return wp})),r.d(e,\"geoAzimuthalEqualArea\",(function(){return Tp})),r.d(e,\"geoAzimuthalEqualAreaRaw\",(function(){return Cp})),r.d(e,\"geoAzimuthalEquidistant\",(function(){return Dp})),r.d(e,\"geoAzimuthalEquidistantRaw\",(function(){return Ep})),r.d(e,\"geoConicConformal\",(function(){return Ip})),r.d(e,\"geoConicConformalRaw\",(function(){return Lp})),r.d(e,\"geoConicEqualArea\",(function(){return kp})),r.d(e,\"geoConicEqualAreaRaw\",(function(){return vp})),r.d(e,\"geoConicEquidistant\",(function(){return Fp})),r.d(e,\"geoConicEquidistantRaw\",(function(){return Rp})),r.d(e,\"geoEqualEarth\",(function(){return Gp})),r.d(e,\"geoEqualEarthRaw\",(function(){return qp})),r.d(e,\"geoEquirectangular\",(function(){return Pp})),r.d(e,\"geoEquirectangularRaw\",(function(){return Op})),r.d(e,\"geoGnomonic\",(function(){return Qp})),r.d(e,\"geoGnomonicRaw\",(function(){return Vp})),r.d(e,\"geoIdentity\",(function(){return Xp})),r.d(e,\"geoProjection\",(function(){return bp})),r.d(e,\"geoProjectionMutator\",(function(){return _p})),r.d(e,\"geoMercator\",(function(){return Ap})),r.d(e,\"geoMercatorRaw\",(function(){return Np})),r.d(e,\"geoNaturalEarth1\",(function(){return $p})),r.d(e,\"geoNaturalEarth1Raw\",(function(){return Zp})),r.d(e,\"geoOrthographic\",(function(){return Jp})),r.d(e,\"geoOrthographicRaw\",(function(){return Kp})),r.d(e,\"geoStereographic\",(function(){return eu})),r.d(e,\"geoStereographicRaw\",(function(){return tu})),r.d(e,\"geoTransverseMercator\",(function(){return nu})),r.d(e,\"geoTransverseMercatorRaw\",(function(){return ru})),r.d(e,\"geoRotation\",(function(){return cd})),r.d(e,\"geoStream\",(function(){return qh})),r.d(e,\"geoTransform\",(function(){return ip})),r.d(e,\"cluster\",(function(){return lu})),r.d(e,\"hierarchy\",(function(){return su})),r.d(e,\"pack\",(function(){return Lu})),r.d(e,\"packSiblings\",(function(){return Eu})),r.d(e,\"packEnclose\",(function(){return fu})),r.d(e,\"partition\",(function(){return Uu})),r.d(e,\"stratify\",(function(){return qu})),r.d(e,\"tree\",(function(){return Ku})),r.d(e,\"treemap\",(function(){return nm})),r.d(e,\"treemapBinary\",(function(){return im})),r.d(e,\"treemapDice\",(function(){return Fu})),r.d(e,\"treemapSlice\",(function(){return Ju})),r.d(e,\"treemapSliceDice\",(function(){return om})),r.d(e,\"treemapSquarify\",(function(){return rm})),r.d(e,\"treemapResquarify\",(function(){return am})),r.d(e,\"interpolate\",(function(){return Er})),r.d(e,\"interpolateArray\",(function(){return _r})),r.d(e,\"interpolateBasis\",(function(){return or})),r.d(e,\"interpolateBasisClosed\",(function(){return ar})),r.d(e,\"interpolateDate\",(function(){return vr})),r.d(e,\"interpolateDiscrete\",(function(){return lm})),r.d(e,\"interpolateHue\",(function(){return hm})),r.d(e,\"interpolateNumber\",(function(){return kr})),r.d(e,\"interpolateNumberArray\",(function(){return gr})),r.d(e,\"interpolateObject\",(function(){return yr})),r.d(e,\"interpolateRound\",(function(){return sm})),r.d(e,\"interpolateString\",(function(){return Tr})),r.d(e,\"interpolateTransformCss\",(function(){return pn})),r.d(e,\"interpolateTransformSvg\",(function(){return un})),r.d(e,\"interpolateZoom\",(function(){return pm})),r.d(e,\"interpolateRgb\",(function(){return pr})),r.d(e,\"interpolateRgbBasis\",(function(){return mr})),r.d(e,\"interpolateRgbBasisClosed\",(function(){return fr})),r.d(e,\"interpolateHsl\",(function(){return mm})),r.d(e,\"interpolateHslLong\",(function(){return fm})),r.d(e,\"interpolateLab\",(function(){return gm})),r.d(e,\"interpolateHcl\",(function(){return _m})),r.d(e,\"interpolateHclLong\",(function(){return xm})),r.d(e,\"interpolateCubehelix\",(function(){return km})),r.d(e,\"interpolateCubehelixLong\",(function(){return ym})),r.d(e,\"piecewise\",(function(){return wm})),r.d(e,\"quantize\",(function(){return Sm})),r.d(e,\"path\",(function(){return Wi})),r.d(e,\"polygonArea\",(function(){return Mm})),r.d(e,\"polygonCentroid\",(function(){return Cm})),r.d(e,\"polygonHull\",(function(){return Dm})),r.d(e,\"polygonContains\",(function(){return Nm})),r.d(e,\"polygonLength\",(function(){return Am})),r.d(e,\"quadtree\",(function(){return Cl})),r.d(e,\"randomUniform\",(function(){return zm})),r.d(e,\"randomNormal\",(function(){return Lm})),r.d(e,\"randomLogNormal\",(function(){return Im})),r.d(e,\"randomBates\",(function(){return Pm})),r.d(e,\"randomIrwinHall\",(function(){return Om})),r.d(e,\"randomExponential\",(function(){return Rm})),r.d(e,\"scaleBand\",(function(){return Gm})),r.d(e,\"scalePoint\",(function(){return Qm})),r.d(e,\"scaleIdentity\",(function(){return sf})),r.d(e,\"scaleLinear\",(function(){return hf})),r.d(e,\"scaleLog\",(function(){return _f})),r.d(e,\"scaleSymlog\",(function(){return yf})),r.d(e,\"scaleOrdinal\",(function(){return qm})),r.d(e,\"scaleImplicit\",(function(){return Ym})),r.d(e,\"scalePow\",(function(){return Tf})),r.d(e,\"scaleSqrt\",(function(){return Ef})),r.d(e,\"scaleQuantile\",(function(){return Df})),r.d(e,\"scaleQuantize\",(function(){return Nf})),r.d(e,\"scaleThreshold\",(function(){return Af})),r.d(e,\"scaleTime\",(function(){return m_})),r.d(e,\"scaleUtc\",(function(){return S_})),r.d(e,\"scaleSequential\",(function(){return T_})),r.d(e,\"scaleSequentialLog\",(function(){return E_})),r.d(e,\"scaleSequentialPow\",(function(){return N_})),r.d(e,\"scaleSequentialSqrt\",(function(){return A_})),r.d(e,\"scaleSequentialSymlog\",(function(){return D_})),r.d(e,\"scaleSequentialQuantile\",(function(){return j_})),r.d(e,\"scaleDiverging\",(function(){return L_})),r.d(e,\"scaleDivergingLog\",(function(){return I_})),r.d(e,\"scaleDivergingPow\",(function(){return P_})),r.d(e,\"scaleDivergingSqrt\",(function(){return R_})),r.d(e,\"scaleDivergingSymlog\",(function(){return O_})),r.d(e,\"tickFormat\",(function(){return af})),r.d(e,\"schemeCategory10\",(function(){return U_})),r.d(e,\"schemeAccent\",(function(){return H_})),r.d(e,\"schemeDark2\",(function(){return B_})),r.d(e,\"schemePaired\",(function(){return W_})),r.d(e,\"schemePastel1\",(function(){return Y_})),r.d(e,\"schemePastel2\",(function(){return q_})),r.d(e,\"schemeSet1\",(function(){return G_})),r.d(e,\"schemeSet2\",(function(){return V_})),r.d(e,\"schemeSet3\",(function(){return Q_})),r.d(e,\"schemeTableau10\",(function(){return X_})),r.d(e,\"interpolateBrBG\",(function(){return K_})),r.d(e,\"schemeBrBG\",(function(){return $_})),r.d(e,\"interpolatePRGn\",(function(){return tx})),r.d(e,\"schemePRGn\",(function(){return J_})),r.d(e,\"interpolatePiYG\",(function(){return rx})),r.d(e,\"schemePiYG\",(function(){return ex})),r.d(e,\"interpolatePuOr\",(function(){return ix})),r.d(e,\"schemePuOr\",(function(){return nx})),r.d(e,\"interpolateRdBu\",(function(){return ax})),r.d(e,\"schemeRdBu\",(function(){return ox})),r.d(e,\"interpolateRdGy\",(function(){return hx})),r.d(e,\"schemeRdGy\",(function(){return lx})),r.d(e,\"interpolateRdYlBu\",(function(){return dx})),r.d(e,\"schemeRdYlBu\",(function(){return sx})),r.d(e,\"interpolateRdYlGn\",(function(){return px})),r.d(e,\"schemeRdYlGn\",(function(){return cx})),r.d(e,\"interpolateSpectral\",(function(){return mx})),r.d(e,\"schemeSpectral\",(function(){return ux})),r.d(e,\"interpolateBuGn\",(function(){return gx})),r.d(e,\"schemeBuGn\",(function(){return fx})),r.d(e,\"interpolateBuPu\",(function(){return _x})),r.d(e,\"schemeBuPu\",(function(){return bx})),r.d(e,\"interpolateGnBu\",(function(){return vx})),r.d(e,\"schemeGnBu\",(function(){return xx})),r.d(e,\"interpolateOrRd\",(function(){return yx})),r.d(e,\"schemeOrRd\",(function(){return kx})),r.d(e,\"interpolatePuBuGn\",(function(){return Sx})),r.d(e,\"schemePuBuGn\",(function(){return wx})),r.d(e,\"interpolatePuBu\",(function(){return Cx})),r.d(e,\"schemePuBu\",(function(){return Mx})),r.d(e,\"interpolatePuRd\",(function(){return Ex})),r.d(e,\"schemePuRd\",(function(){return Tx})),r.d(e,\"interpolateRdPu\",(function(){return Nx})),r.d(e,\"schemeRdPu\",(function(){return Dx})),r.d(e,\"interpolateYlGnBu\",(function(){return jx})),r.d(e,\"schemeYlGnBu\",(function(){return Ax})),r.d(e,\"interpolateYlGn\",(function(){return Lx})),r.d(e,\"schemeYlGn\",(function(){return zx})),r.d(e,\"interpolateYlOrBr\",(function(){return Ox})),r.d(e,\"schemeYlOrBr\",(function(){return Ix})),r.d(e,\"interpolateYlOrRd\",(function(){return Rx})),r.d(e,\"schemeYlOrRd\",(function(){return Px})),r.d(e,\"interpolateBlues\",(function(){return Ux})),r.d(e,\"schemeBlues\",(function(){return Fx})),r.d(e,\"interpolateGreens\",(function(){return Bx})),r.d(e,\"schemeGreens\",(function(){return Hx})),r.d(e,\"interpolateGreys\",(function(){return Yx})),r.d(e,\"schemeGreys\",(function(){return Wx})),r.d(e,\"interpolatePurples\",(function(){return Gx})),r.d(e,\"schemePurples\",(function(){return qx})),r.d(e,\"interpolateReds\",(function(){return Qx})),r.d(e,\"schemeReds\",(function(){return Vx})),r.d(e,\"interpolateOranges\",(function(){return Zx})),r.d(e,\"schemeOranges\",(function(){return Xx})),r.d(e,\"interpolateCividis\",(function(){return $x})),r.d(e,\"interpolateCubehelixDefault\",(function(){return Kx})),r.d(e,\"interpolateRainbow\",(function(){return rv})),r.d(e,\"interpolateWarm\",(function(){return Jx})),r.d(e,\"interpolateCool\",(function(){return tv})),r.d(e,\"interpolateSinebow\",(function(){return av})),r.d(e,\"interpolateTurbo\",(function(){return lv})),r.d(e,\"interpolateViridis\",(function(){return sv})),r.d(e,\"interpolateMagma\",(function(){return dv})),r.d(e,\"interpolateInferno\",(function(){return cv})),r.d(e,\"interpolatePlasma\",(function(){return pv})),r.d(e,\"create\",(function(){return uv})),r.d(e,\"creator\",(function(){return ne})),r.d(e,\"local\",(function(){return fv})),r.d(e,\"matcher\",(function(){return gt})),r.d(e,\"mouse\",(function(){return jr})),r.d(e,\"namespace\",(function(){return St})),r.d(e,\"namespaces\",(function(){return wt})),r.d(e,\"clientPoint\",(function(){return Nr})),r.d(e,\"select\",(function(){return we})),r.d(e,\"selectAll\",(function(){return bv})),r.d(e,\"selection\",(function(){return ye})),r.d(e,\"selector\",(function(){return ut})),r.d(e,\"selectorAll\",(function(){return ft})),r.d(e,\"style\",(function(){return It})),r.d(e,\"touch\",(function(){return Ar})),r.d(e,\"touches\",(function(){return _v})),r.d(e,\"window\",(function(){return At})),r.d(e,\"event\",(function(){return se})),r.d(e,\"customEvent\",(function(){return fe})),r.d(e,\"arc\",(function(){return Fv})),r.d(e,\"area\",(function(){return qv})),r.d(e,\"line\",(function(){return Yv})),r.d(e,\"pie\",(function(){return Qv})),r.d(e,\"areaRadial\",(function(){return tk})),r.d(e,\"radialArea\",(function(){return tk})),r.d(e,\"lineRadial\",(function(){return Jv})),r.d(e,\"radialLine\",(function(){return Jv})),r.d(e,\"pointRadial\",(function(){return ek})),r.d(e,\"linkHorizontal\",(function(){return sk})),r.d(e,\"linkVertical\",(function(){return dk})),r.d(e,\"linkRadial\",(function(){return ck})),r.d(e,\"symbol\",(function(){return Dk})),r.d(e,\"symbols\",(function(){return Ek})),r.d(e,\"symbolCircle\",(function(){return pk})),r.d(e,\"symbolCross\",(function(){return uk})),r.d(e,\"symbolDiamond\",(function(){return gk})),r.d(e,\"symbolSquare\",(function(){return kk})),r.d(e,\"symbolStar\",(function(){return vk})),r.d(e,\"symbolTriangle\",(function(){return wk})),r.d(e,\"symbolWye\",(function(){return Tk})),r.d(e,\"curveBasisClosed\",(function(){return Ik})),r.d(e,\"curveBasisOpen\",(function(){return Pk})),r.d(e,\"curveBasis\",(function(){return zk})),r.d(e,\"curveBundle\",(function(){return Fk})),r.d(e,\"curveCardinalClosed\",(function(){return Yk})),r.d(e,\"curveCardinalOpen\",(function(){return Gk})),r.d(e,\"curveCardinal\",(function(){return Bk})),r.d(e,\"curveCatmullRomClosed\",(function(){return $k})),r.d(e,\"curveCatmullRomOpen\",(function(){return Jk})),r.d(e,\"curveCatmullRom\",(function(){return Xk})),r.d(e,\"curveLinearClosed\",(function(){return ey})),r.d(e,\"curveLinear\",(function(){return Hv})),r.d(e,\"curveMonotoneX\",(function(){return sy})),r.d(e,\"curveMonotoneY\",(function(){return dy})),r.d(e,\"curveNatural\",(function(){return uy})),r.d(e,\"curveStep\",(function(){return fy})),r.d(e,\"curveStepAfter\",(function(){return by})),r.d(e,\"curveStepBefore\",(function(){return gy})),r.d(e,\"stack\",(function(){return ky})),r.d(e,\"stackOffsetExpand\",(function(){return yy})),r.d(e,\"stackOffsetDiverging\",(function(){return wy})),r.d(e,\"stackOffsetNone\",(function(){return _y})),r.d(e,\"stackOffsetSilhouette\",(function(){return Sy})),r.d(e,\"stackOffsetWiggle\",(function(){return My})),r.d(e,\"stackOrderAppearance\",(function(){return Cy})),r.d(e,\"stackOrderAscending\",(function(){return Ey})),r.d(e,\"stackOrderDescending\",(function(){return Ny})),r.d(e,\"stackOrderInsideOut\",(function(){return Ay})),r.d(e,\"stackOrderNone\",(function(){return xy})),r.d(e,\"stackOrderReverse\",(function(){return jy})),r.d(e,\"timeInterval\",(function(){return Lf})),r.d(e,\"timeMillisecond\",(function(){return fg})),r.d(e,\"timeMilliseconds\",(function(){return gg})),r.d(e,\"utcMillisecond\",(function(){return fg})),r.d(e,\"utcMilliseconds\",(function(){return gg})),r.d(e,\"timeSecond\",(function(){return pg})),r.d(e,\"timeSeconds\",(function(){return ug})),r.d(e,\"utcSecond\",(function(){return pg})),r.d(e,\"utcSeconds\",(function(){return ug})),r.d(e,\"timeMinute\",(function(){return sg})),r.d(e,\"timeMinutes\",(function(){return dg})),r.d(e,\"timeHour\",(function(){return ag})),r.d(e,\"timeHours\",(function(){return lg})),r.d(e,\"timeDay\",(function(){return ng})),r.d(e,\"timeDays\",(function(){return ig})),r.d(e,\"timeWeek\",(function(){return Bf})),r.d(e,\"timeWeeks\",(function(){return Xf})),r.d(e,\"timeSunday\",(function(){return Bf})),r.d(e,\"timeSundays\",(function(){return Xf})),r.d(e,\"timeMonday\",(function(){return Wf})),r.d(e,\"timeMondays\",(function(){return Zf})),r.d(e,\"timeTuesday\",(function(){return Yf})),r.d(e,\"timeTuesdays\",(function(){return $f})),r.d(e,\"timeWednesday\",(function(){return qf})),r.d(e,\"timeWednesdays\",(function(){return Kf})),r.d(e,\"timeThursday\",(function(){return Gf})),r.d(e,\"timeThursdays\",(function(){return Jf})),r.d(e,\"timeFriday\",(function(){return Vf})),r.d(e,\"timeFridays\",(function(){return tg})),r.d(e,\"timeSaturday\",(function(){return Qf})),r.d(e,\"timeSaturdays\",(function(){return eg})),r.d(e,\"timeMonth\",(function(){return Ff})),r.d(e,\"timeMonths\",(function(){return Uf})),r.d(e,\"timeYear\",(function(){return Of})),r.d(e,\"timeYears\",(function(){return Pf})),r.d(e,\"utcMinute\",(function(){return y_})),r.d(e,\"utcMinutes\",(function(){return w_})),r.d(e,\"utcHour\",(function(){return x_})),r.d(e,\"utcHours\",(function(){return v_})),r.d(e,\"utcDay\",(function(){return zg})),r.d(e,\"utcDays\",(function(){return Lg})),r.d(e,\"utcWeek\",(function(){return _g})),r.d(e,\"utcWeeks\",(function(){return Mg})),r.d(e,\"utcSunday\",(function(){return _g})),r.d(e,\"utcSundays\",(function(){return Mg})),r.d(e,\"utcMonday\",(function(){return xg})),r.d(e,\"utcMondays\",(function(){return Cg})),r.d(e,\"utcTuesday\",(function(){return vg})),r.d(e,\"utcTuesdays\",(function(){return Tg})),r.d(e,\"utcWednesday\",(function(){return kg})),r.d(e,\"utcWednesdays\",(function(){return Eg})),r.d(e,\"utcThursday\",(function(){return yg})),r.d(e,\"utcThursdays\",(function(){return Dg})),r.d(e,\"utcFriday\",(function(){return wg})),r.d(e,\"utcFridays\",(function(){return Ng})),r.d(e,\"utcSaturday\",(function(){return Sg})),r.d(e,\"utcSaturdays\",(function(){return Ag})),r.d(e,\"utcMonth\",(function(){return g_})),r.d(e,\"utcMonths\",(function(){return b_})),r.d(e,\"utcYear\",(function(){return Og})),r.d(e,\"utcYears\",(function(){return Pg})),r.d(e,\"timeFormatDefaultLocale\",(function(){return d_})),r.d(e,\"timeFormat\",(function(){return Wg})),r.d(e,\"timeParse\",(function(){return Yg})),r.d(e,\"utcFormat\",(function(){return qg})),r.d(e,\"utcParse\",(function(){return Gg})),r.d(e,\"timeFormatLocale\",(function(){return Hg})),r.d(e,\"isoFormat\",(function(){return zy})),r.d(e,\"isoParse\",(function(){return Ly})),r.d(e,\"now\",(function(){return Hr})),r.d(e,\"timer\",(function(){return Yr})),r.d(e,\"timerFlush\",(function(){return qr})),r.d(e,\"timeout\",(function(){return Xr})),r.d(e,\"interval\",(function(){return Iy})),r.d(e,\"transition\",(function(){return Bn})),r.d(e,\"active\",(function(){return $n})),r.d(e,\"interrupt\",(function(){return ln})),r.d(e,\"voronoi\",(function(){return vw})),r.d(e,\"zoom\",(function(){return Lw})),r.d(e,\"zoomTransform\",(function(){return Mw})),r.d(e,\"zoomIdentity\",(function(){return Sw}));var n=\"5.16.0\",i=function(t,e){return te?1:t>=e?0:NaN},o=function(t){var e;return 1===t.length&&(e=t,t=function(t,r){return i(e(t),r)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[o],r)<0?n=o+1:i=o}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[o],r)>0?i=o:n=o+1}return n}}};var a=o(i),l=a.right,h=a.left,s=l,d=function(t,e){null==e&&(e=c);for(var r=0,n=t.length-1,i=t[0],o=new Array(n<0?0:n);rt?1:e>=t?0:NaN},m=function(t){return null===t?NaN:+t},f=function(t,e){var r,n,i=t.length,o=0,a=-1,l=0,h=0;if(null==e)for(;++a1)return h/(o-1)},g=function(t,e){var r=f(t,e);return r?Math.sqrt(r):r},b=function(t,e){var r,n,i,o=t.length,a=-1;if(null==e){for(;++a=r)for(n=i=r;++ar&&(n=r),i=r)for(n=i=r;++ar&&(n=r),i0)return[t];if((n=e0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(i=Math.ceil(e-t+1));++l=0?(o>=S?10:o>=M?5:o>=C?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=S?10:o>=M?5:o>=C?2:1)}function D(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),o=n/i;return o>=S?i*=10:o>=M?i*=5:o>=C&&(i*=2),ec;)p.pop(),--u;var m,f=new Array(u+1);for(i=0;i<=u;++i)(m=f[i]=[]).x0=i>0?p[i-1]:d,m.x1=i=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,o=Math.floor(i),a=+r(t[o],o,t);return a+(+r(t[o+1],o+1,t)-a)*(i-o)}},z=function(t,e,r){return t=v.call(t,m).sort(i),Math.ceil((r-e)/(2*(j(t,.75)-j(t,.25))*Math.pow(t.length,-1/3)))},L=function(t,e,r){return Math.ceil((r-e)/(3.5*g(t)*Math.pow(t.length,-1/3)))},I=function(t,e){var r,n,i=t.length,o=-1;if(null==e){for(;++o=r)for(n=r;++on&&(n=r)}else for(;++o=r)for(n=r;++on&&(n=r);return n},O=function(t,e){var r,n=t.length,i=n,o=-1,a=0;if(null==e)for(;++o=0;)for(e=(n=t[i]).length;--e>=0;)r[--a]=n[e];return r},F=function(t,e){var r,n,i=t.length,o=-1;if(null==e){for(;++o=r)for(n=r;++or&&(n=r)}else for(;++o=r)for(n=r;++or&&(n=r);return n},U=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},H=function(t,e){if(r=t.length){var r,n,o=0,a=0,l=t[a];for(null==e&&(e=i);++o=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:r}}))}function st(t,e){for(var r,n=0,i=t.length;n0)for(var r,n,i=new Array(r),o=0;oe?1:t>=e?0:NaN}var yt=\"http://www.w3.org/1999/xhtml\",wt={svg:\"http://www.w3.org/2000/svg\",xhtml:yt,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},St=function(t){var e=t+=\"\",r=e.indexOf(\":\");return r>=0&&\"xmlns\"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),wt.hasOwnProperty(e)?{space:wt[e],local:t}:t};function Mt(t){return function(){this.removeAttribute(t)}}function Ct(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Tt(t,e){return function(){this.setAttribute(t,e)}}function Et(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Dt(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function Nt(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}var At=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function jt(t){return function(){this.style.removeProperty(t)}}function zt(t,e,r){return function(){this.style.setProperty(t,e,r)}}function Lt(t,e,r){return function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function It(t,e){return t.style.getPropertyValue(e)||At(t).getComputedStyle(t,null).getPropertyValue(e)}function Ot(t){return function(){delete this[t]}}function Pt(t,e){return function(){this[t]=e}}function Rt(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function Ft(t){return t.trim().split(/^|\\s+/)}function Ut(t){return t.classList||new Ht(t)}function Ht(t){this._node=t,this._names=Ft(t.getAttribute(\"class\")||\"\")}function Bt(t,e){for(var r=Ut(t),n=-1,i=e.length;++n=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}};function Vt(){this.textContent=\"\"}function Qt(t){return function(){this.textContent=t}}function Xt(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}}function Zt(){this.innerHTML=\"\"}function $t(t){return function(){this.innerHTML=t}}function Kt(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}}function Jt(){this.nextSibling&&this.parentNode.appendChild(this)}function te(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ee(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===yt&&e.documentElement.namespaceURI===yt?e.createElement(t):e.createElementNS(r,t)}}function re(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var ne=function(t){var e=St(t);return(e.local?re:ee)(e)};function ie(){return null}function oe(){var t=this.parentNode;t&&t.removeChild(this)}function ae(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function le(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}var he={},se=null;\"undefined\"!=typeof document&&(\"onmouseenter\"in document.documentElement||(he={mouseenter:\"mouseover\",mouseleave:\"mouseout\"}));function de(t,e,r){return t=ce(t,e,r),function(e){var r=e.relatedTarget;r&&(r===this||8&r.compareDocumentPosition(this))||t.call(this,e)}}function ce(t,e,r){return function(n){var i=se;se=n;try{t.call(this,this.__data__,e,r)}finally{se=i}}}function pe(t){return t.trim().split(/^|\\s+/).map((function(t){var e=\"\",r=t.indexOf(\".\");return r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}))}function ue(t){return function(){var e=this.__on;if(e){for(var r,n=0,i=-1,o=e.length;n=k&&(k=v+1);!(x=b[k])&&++k=0;)(n=i[o])&&(a&&4^n.compareDocumentPosition(a)&&a.parentNode.insertBefore(n,a),a=n);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}t||(t=kt);for(var r=this._groups,n=r.length,i=new Array(n),o=0;o1?this.each((null==e?jt:\"function\"==typeof e?Lt:zt)(t,e,null==r?\"\":r)):It(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Ot:\"function\"==typeof e?Rt:Pt)(t,e)):this.node()[t]},classed:function(t,e){var r=Ft(t+\"\");if(arguments.length<2){for(var n=Ut(this.node()),i=-1,o=r.length;++i>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?Ge(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?Ge(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Ie.exec(t))?new Xe(e[1],e[2],e[3],1):(e=Oe.exec(t))?new Xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Pe.exec(t))?Ge(e[1],e[2],e[3],e[4]):(e=Re.exec(t))?Ge(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Fe.exec(t))?Je(e[1],e[2]/100,e[3]/100,1):(e=Ue.exec(t))?Je(e[1],e[2]/100,e[3]/100,e[4]):He.hasOwnProperty(t)?qe(He[t]):\"transparent\"===t?new Xe(NaN,NaN,NaN,0):null}function qe(t){return new Xe(t>>16&255,t>>8&255,255&t,1)}function Ge(t,e,r,n){return n<=0&&(t=e=r=NaN),new Xe(t,e,r,n)}function Ve(t){return t instanceof Ne||(t=Ye(t)),t?new Xe((t=t.rgb()).r,t.g,t.b,t.opacity):new Xe}function Qe(t,e,r,n){return 1===arguments.length?Ve(t):new Xe(t,e,r,null==n?1:n)}function Xe(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function Ze(){return\"#\"+Ke(this.r)+Ke(this.g)+Ke(this.b)}function $e(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}function Ke(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?\"0\":\"\")+t.toString(16)}function Je(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new rr(t,e,r,n)}function tr(t){if(t instanceof rr)return new rr(t.h,t.s,t.l,t.opacity);if(t instanceof Ne||(t=Ye(t)),!t)return new rr;if(t instanceof rr)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),a=NaN,l=o-i,h=(o+i)/2;return l?(a=e===o?(r-n)/l+6*(r0&&h<1?0:a,new rr(a,l,h,t.opacity)}function er(t,e,r,n){return 1===arguments.length?tr(t):new rr(t,e,r,null==n?1:n)}function rr(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function nr(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}function ir(t,e,r,n,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*r+(1+3*t+3*o-3*a)*n+a*i)/6}Ee(Ne,Ye,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Be,formatHex:Be,formatHsl:function(){return tr(this).formatHsl()},formatRgb:We,toString:We}),Ee(Xe,Qe,De(Ne,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Xe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ze,formatHex:Ze,formatRgb:$e,toString:$e})),Ee(rr,er,De(Ne,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new rr(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new rr(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Xe(nr(t>=240?t-240:t+120,i,n),nr(t,i,n),nr(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===t?\")\":\", \"+t+\")\")}}));var or=function(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],o=t[n+1],a=n>0?t[n-1]:2*i-o,l=n180||r<-180?r-360*Math.round(r/360):r):lr(isNaN(t)?e:t)}function dr(t){return 1==(t=+t)?cr:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):lr(isNaN(e)?r:e)}}function cr(t,e){var r=e-t;return r?hr(t,r):lr(isNaN(t)?e:t)}var pr=function t(e){var r=dr(e);function n(t,e){var n=r((t=Qe(t)).r,(e=Qe(e)).r),i=r(t.g,e.g),o=r(t.b,e.b),a=cr(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=o(e),t.opacity=a(e),t+\"\"}}return n.gamma=t,n}(1);function ur(t){return function(e){var r,n,i=e.length,o=new Array(i),a=new Array(i),l=new Array(i);for(r=0;ro&&(i=e.slice(o,i),l[a]?l[a]+=i:l[++a]=i),(r=r[0])===(n=n[0])?l[a]?l[a]+=n:l[++a]=n:(l[++a]=null,h.push({i:a,x:kr(r,n)})),o=Sr.lastIndex;return o=0&&e._call.call(null,t),e=e._next;--zr}function Gr(){Pr=(Or=Fr.now())+Rr,zr=Lr=0;try{qr()}finally{zr=0,function(){var t,e,r=Mr,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:Mr=e);Cr=t,Qr(n)}(),Pr=0}}function Vr(){var t=Fr.now(),e=t-Or;e>1e3&&(Rr-=e,Or=t)}function Qr(t){zr||(Lr&&(Lr=clearTimeout(Lr)),t-Pr>24?(t<1/0&&(Lr=setTimeout(Gr,t-Fr.now()-Rr)),Ir&&(Ir=clearInterval(Ir))):(Ir||(Or=Fr.now(),Ir=setInterval(Vr,1e3)),zr=1,Ur(Gr)))}Wr.prototype=Yr.prototype={constructor:Wr,restart:function(t,e,r){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");r=(null==r?Hr():+r)+(null==e?0:+e),this._next||Cr===this||(Cr?Cr._next=this:Mr=this,Cr=this),this._call=t,this._time=r,Qr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qr())}};var Xr=function(t,e,r){var n=new Wr;return e=null==e?0:+e,n.restart((function(r){n.stop(),t(r+e)}),e,r),n},Zr=ct(\"start\",\"end\",\"cancel\",\"interrupt\"),$r=[],Kr=function(t,e,r,n,i,o){var a=t.__transition;if(a){if(r in a)return}else t.__transition={};!function(t,e,r){var n,i=t.__transition;function o(h){var s,d,c,p;if(1!==r.state)return l();for(s in i)if((p=i[s]).name===r.name){if(3===p.state)return Xr(o);4===p.state?(p.state=6,p.timer.stop(),p.on.call(\"interrupt\",t,t.__data__,p.index,p.group),delete i[s]):+s0)throw new Error(\"too late; already scheduled\");return r}function tn(t,e){var r=en(t,e);if(r.state>3)throw new Error(\"too late; already running\");return r}function en(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error(\"transition not found\");return r}var rn,nn,on,an,ln=function(t,e){var r,n,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+\"\",o)(r=o[i]).name===e?(n=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(n?\"interrupt\":\"cancel\",t,t.__data__,r.index,r.group),delete o[i]):a=!1;a&&delete t.__transition}},hn=180/Math.PI,sn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},dn=function(t,e,r,n,i,o){var a,l,h;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(h=t*r+e*n)&&(r-=t*h,n-=e*h),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,h/=l),t*n180?e+=360:e-t>180&&(t+=360),o.push({i:r.push(i(r)+\"rotate(\",null,n)-2,x:kr(t,e)})):e&&r.push(i(r)+\"rotate(\"+e+n)}(o.rotate,a.rotate,l,h),function(t,e,r,o){t!==e?o.push({i:r.push(i(r)+\"skewX(\",null,n)-2,x:kr(t,e)}):e&&r.push(i(r)+\"skewX(\"+e+n)}(o.skewX,a.skewX,l,h),function(t,e,r,n,o,a){if(t!==r||e!==n){var l=o.push(i(o)+\"scale(\",null,\",\",null,\")\");a.push({i:l-4,x:kr(t,r)},{i:l-2,x:kr(e,n)})}else 1===r&&1===n||o.push(i(o)+\"scale(\"+r+\",\"+n+\")\")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,l,h),o=a=null,function(t){for(var e,r=-1,n=h.length;++r=0&&(t=t.slice(0,e)),!t||\"start\"===t}))}(e)?Jr:tn;return function(){var a=o(this,t),l=a.on;l!==n&&(i=(n=l).copy()).on(e,r),a.on=i}}var Ln=ye.prototype.constructor;function In(t){return function(){this.style.removeProperty(t)}}function On(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function Pn(t,e,r){var n,i;function o(){var o=e.apply(this,arguments);return o!==i&&(n=(i=o)&&On(t,o,r)),n}return o._value=e,o}function Rn(t){return function(e){this.textContent=t.call(this,e)}}function Fn(t){var e,r;function n(){var n=t.apply(this,arguments);return n!==r&&(e=(r=n)&&Rn(n)),e}return n._value=t,n}var Un=0;function Hn(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function Bn(t){return ye().transition(t)}function Wn(){return++Un}var Yn=ye.prototype;function qn(t){return t*t*t}function Gn(t){return--t*t*t+1}function Vn(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}Hn.prototype=Bn.prototype={constructor:Hn,select:function(t){var e=this._name,r=this._id;\"function\"!=typeof t&&(t=ut(t));for(var n=this._groups,i=n.length,o=new Array(i),a=0;a1&&r.name===e)return new Hn([[t]],Zn,e,+n);return null},Kn=function(t){return function(){return t}},Jn=function(t,e,r){this.target=t,this.type=e,this.selection=r};function ti(){se.stopImmediatePropagation()}var ei=function(){se.preventDefault(),se.stopImmediatePropagation()},ri={name:\"drag\"},ni={name:\"space\"},ii={name:\"handle\"},oi={name:\"center\"};function ai(t){return[+t[0],+t[1]]}function li(t){return[ai(t[0]),ai(t[1])]}function hi(t){return function(e){return Ar(e,se.touches,t)}}var si={name:\"x\",handles:[\"w\",\"e\"].map(bi),input:function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},di={name:\"y\",handles:[\"n\",\"s\"].map(bi),input:function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},ci={name:\"xy\",handles:[\"n\",\"w\",\"e\",\"s\",\"nw\",\"ne\",\"sw\",\"se\"].map(bi),input:function(t){return null==t?null:li(t)},output:function(t){return t}},pi={overlay:\"crosshair\",selection:\"move\",n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},ui={e:\"w\",w:\"e\",nw:\"ne\",ne:\"nw\",se:\"sw\",sw:\"se\"},mi={n:\"s\",s:\"n\",nw:\"sw\",ne:\"se\",se:\"ne\",sw:\"nw\"},fi={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},gi={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function bi(t){return{type:t}}function _i(){return!se.ctrlKey&&!se.button}function xi(){var t=this.ownerSVGElement||this;return t.hasAttribute(\"viewBox\")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function vi(){return navigator.maxTouchPoints||\"ontouchstart\"in this}function ki(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function yi(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function wi(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function Si(){return Ti(si)}function Mi(){return Ti(di)}var Ci=function(){return Ti(ci)};function Ti(t){var e,r=xi,n=_i,i=vi,o=!0,a=ct(\"start\",\"brush\",\"end\"),l=6;function h(e){var r=e.property(\"__brush\",f).selectAll(\".overlay\").data([bi(\"overlay\")]);r.enter().append(\"rect\").attr(\"class\",\"overlay\").attr(\"pointer-events\",\"all\").attr(\"cursor\",pi.overlay).merge(r).each((function(){var t=ki(this).extent;we(this).attr(\"x\",t[0][0]).attr(\"y\",t[0][1]).attr(\"width\",t[1][0]-t[0][0]).attr(\"height\",t[1][1]-t[0][1])})),e.selectAll(\".selection\").data([bi(\"selection\")]).enter().append(\"rect\").attr(\"class\",\"selection\").attr(\"cursor\",pi.selection).attr(\"fill\",\"#777\").attr(\"fill-opacity\",.3).attr(\"stroke\",\"#fff\").attr(\"shape-rendering\",\"crispEdges\");var n=e.selectAll(\".handle\").data(t.handles,(function(t){return t.type}));n.exit().remove(),n.enter().append(\"rect\").attr(\"class\",(function(t){return\"handle handle--\"+t.type})).attr(\"cursor\",(function(t){return pi[t.type]})),e.each(s).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").on(\"mousedown.brush\",p).filter(i).on(\"touchstart.brush\",p).on(\"touchmove.brush\",u).on(\"touchend.brush touchcancel.brush\",m).style(\"touch-action\",\"none\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function s(){var t=we(this),e=ki(this).selection;e?(t.selectAll(\".selection\").style(\"display\",null).attr(\"x\",e[0][0]).attr(\"y\",e[0][1]).attr(\"width\",e[1][0]-e[0][0]).attr(\"height\",e[1][1]-e[0][1]),t.selectAll(\".handle\").style(\"display\",null).attr(\"x\",(function(t){return\"e\"===t.type[t.type.length-1]?e[1][0]-l/2:e[0][0]-l/2})).attr(\"y\",(function(t){return\"s\"===t.type[0]?e[1][1]-l/2:e[0][1]-l/2})).attr(\"width\",(function(t){return\"n\"===t.type||\"s\"===t.type?e[1][0]-e[0][0]+l:l})).attr(\"height\",(function(t){return\"e\"===t.type||\"w\"===t.type?e[1][1]-e[0][1]+l:l}))):t.selectAll(\".selection,.handle\").style(\"display\",\"none\").attr(\"x\",null).attr(\"y\",null).attr(\"width\",null).attr(\"height\",null)}function d(t,e,r){var n=t.__brush.emitter;return!n||r&&n.clean?new c(t,e,r):n}function c(t,e,r){this.that=t,this.args=e,this.state=t.__brush,this.active=0,this.clean=r}function p(){if((!e||se.touches)&&n.apply(this,arguments)){var r,i,a,l,h,c,p,u,m,f,g,b=this,_=se.target.__data__.type,x=\"selection\"===(o&&se.metaKey?_=\"overlay\":_)?ri:o&&se.altKey?oi:ii,v=t===di?null:fi[_],k=t===si?null:gi[_],y=ki(b),w=y.extent,S=y.selection,M=w[0][0],C=w[0][1],T=w[1][0],E=w[1][1],D=0,N=0,A=v&&k&&o&&se.shiftKey,j=se.touches?hi(se.changedTouches[0].identifier):jr,z=j(b),L=z,I=d(b,arguments,!0).beforestart();\"overlay\"===_?(S&&(m=!0),y.selection=S=[[r=t===di?M:z[0],a=t===si?C:z[1]],[h=t===di?T:r,p=t===si?E:a]]):(r=S[0][0],a=S[0][1],h=S[1][0],p=S[1][1]),i=r,l=a,c=h,u=p;var O=we(b).attr(\"pointer-events\",\"none\"),P=O.selectAll(\".overlay\").attr(\"cursor\",pi[_]);if(se.touches)I.moved=F,I.ended=H;else{var R=we(se.view).on(\"mousemove.brush\",F,!0).on(\"mouseup.brush\",H,!0);o&&R.on(\"keydown.brush\",B,!0).on(\"keyup.brush\",W,!0),Ce(se.view)}ti(),ln(b),s.call(b),I.start()}function F(){var t=j(b);!A||f||g||(Math.abs(t[0]-L[0])>Math.abs(t[1]-L[1])?g=!0:f=!0),L=t,m=!0,ei(),U()}function U(){var t;switch(D=L[0]-z[0],N=L[1]-z[1],x){case ni:case ri:v&&(D=Math.max(M-r,Math.min(T-h,D)),i=r+D,c=h+D),k&&(N=Math.max(C-a,Math.min(E-p,N)),l=a+N,u=p+N);break;case ii:v<0?(D=Math.max(M-r,Math.min(T-r,D)),i=r+D,c=h):v>0&&(D=Math.max(M-h,Math.min(T-h,D)),i=r,c=h+D),k<0?(N=Math.max(C-a,Math.min(E-a,N)),l=a+N,u=p):k>0&&(N=Math.max(C-p,Math.min(E-p,N)),l=a,u=p+N);break;case oi:v&&(i=Math.max(M,Math.min(T,r-D*v)),c=Math.max(M,Math.min(T,h+D*v))),k&&(l=Math.max(C,Math.min(E,a-N*k)),u=Math.max(C,Math.min(E,p+N*k)))}c0&&(r=i-D),k<0?p=u-N:k>0&&(a=l-N),x=ni,P.attr(\"cursor\",pi.selection),U());break;default:return}ei()}function W(){switch(se.keyCode){case 16:A&&(f=g=A=!1,U());break;case 18:x===oi&&(v<0?h=c:v>0&&(r=i),k<0?p=u:k>0&&(a=l),x=ii,U());break;case 32:x===ni&&(se.altKey?(v&&(h=c-D*v,r=i+D*v),k&&(p=u-N*k,a=l+N*k),x=oi):(v<0?h=c:v>0&&(r=i),k<0?p=u:k>0&&(a=l),x=ii),P.attr(\"cursor\",pi[_]),U());break;default:return}ei()}}function u(){d(this,arguments).moved()}function m(){d(this,arguments).ended()}function f(){var e=this.__brush||{selection:null};return e.extent=li(r.apply(this,arguments)),e.dim=t,e}return h.move=function(e,r){e.selection?e.on(\"start.brush\",(function(){d(this,arguments).beforestart().start()})).on(\"interrupt.brush end.brush\",(function(){d(this,arguments).end()})).tween(\"brush\",(function(){var e=this,n=e.__brush,i=d(e,arguments),o=n.selection,a=t.input(\"function\"==typeof r?r.apply(this,arguments):r,n.extent),l=Er(o,a);function h(t){n.selection=1===t&&null===a?null:l(t),s.call(e),i.brush()}return null!==o&&null!==a?h:h(1)})):e.each((function(){var e=this,n=arguments,i=e.__brush,o=t.input(\"function\"==typeof r?r.apply(e,n):r,i.extent),a=d(e,n).beforestart();ln(e),i.selection=null===o?null:o,s.call(e),a.start().brush().end()}))},h.clear=function(t){h.move(t,null)},c.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit(\"start\")):this.emit(\"brush\"),this},brush:function(){return this.emit(\"brush\"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit(\"end\")),this},emit:function(e){fe(new Jn(h,e,t.output(this.state.selection)),a.apply,a,[e,this.that,this.args])}},h.extent=function(t){return arguments.length?(r=\"function\"==typeof t?t:Kn(li(t)),h):r},h.filter=function(t){return arguments.length?(n=\"function\"==typeof t?t:Kn(!!t),h):n},h.touchable=function(t){return arguments.length?(i=\"function\"==typeof t?t:Kn(!!t),h):i},h.handleSize=function(t){return arguments.length?(l=+t,h):l},h.keyModifiers=function(t){return arguments.length?(o=!!t,h):o},h.on=function(){var t=a.on.apply(a,arguments);return t===a?h:t},h}var Ei=Math.cos,Di=Math.sin,Ni=Math.PI,Ai=Ni/2,ji=2*Ni,zi=Math.max;function Li(t){return function(e,r){return t(e.source.value+e.target.value,r.source.value+r.target.value)}}var Ii=function(){var t=0,e=null,r=null,n=null;function i(i){var o,a,l,h,s,d,c=i.length,p=[],u=w(c),m=[],f=[],g=f.groups=new Array(c),b=new Array(c*c);for(o=0,s=-1;++s1e-6)if(Math.abs(d*l-h*s)>1e-6&&i){var p=r-o,u=n-a,m=l*l+h*h,f=p*p+u*u,g=Math.sqrt(m),b=Math.sqrt(c),_=i*Math.tan((Ri-Math.acos((m+c-f)/(2*g*b)))/2),x=_/b,v=_/g;Math.abs(x-1)>1e-6&&(this._+=\"L\"+(t+x*s)+\",\"+(e+x*d)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(d*p>s*u)+\",\"+(this._x1=t+v*l)+\",\"+(this._y1=e+v*h)}else this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=e);else;},arc:function(t,e,r,n,i,o){t=+t,e=+e,o=!!o;var a=(r=+r)*Math.cos(n),l=r*Math.sin(n),h=t+a,s=e+l,d=1^o,c=o?n-i:i-n;if(r<0)throw new Error(\"negative radius: \"+r);null===this._x1?this._+=\"M\"+h+\",\"+s:(Math.abs(this._x1-h)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+=\"L\"+h+\",\"+s),r&&(c<0&&(c=c%Fi+Fi),c>Ui?this._+=\"A\"+r+\",\"+r+\",0,1,\"+d+\",\"+(t-a)+\",\"+(e-l)+\"A\"+r+\",\"+r+\",0,1,\"+d+\",\"+(this._x1=h)+\",\"+(this._y1=s):c>1e-6&&(this._+=\"A\"+r+\",\"+r+\",0,\"+ +(c>=Ri)+\",\"+d+\",\"+(this._x1=t+r*Math.cos(i))+\",\"+(this._y1=e+r*Math.sin(i))))},rect:function(t,e,r,n){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)+\"h\"+ +r+\"v\"+ +n+\"h\"+-r+\"Z\"},toString:function(){return this._}};var Wi=Bi;function Yi(t){return t.source}function qi(t){return t.target}function Gi(t){return t.radius}function Vi(t){return t.startAngle}function Qi(t){return t.endAngle}var Xi=function(){var t=Yi,e=qi,r=Gi,n=Vi,i=Qi,o=null;function a(){var a,l=Oi.call(arguments),h=t.apply(this,l),s=e.apply(this,l),d=+r.apply(this,(l[0]=h,l)),c=n.apply(this,l)-Ai,p=i.apply(this,l)-Ai,u=d*Ei(c),m=d*Di(c),f=+r.apply(this,(l[0]=s,l)),g=n.apply(this,l)-Ai,b=i.apply(this,l)-Ai;if(o||(o=a=Wi()),o.moveTo(u,m),o.arc(0,0,d,c,p),c===g&&p===b||(o.quadraticCurveTo(0,0,f*Ei(g),f*Di(g)),o.arc(0,0,f,g,b)),o.quadraticCurveTo(0,0,u,m),o.closePath(),a)return o=null,a+\"\"||null}return a.radius=function(t){return arguments.length?(r=\"function\"==typeof t?t:Pi(+t),a):r},a.startAngle=function(t){return arguments.length?(n=\"function\"==typeof t?t:Pi(+t),a):n},a.endAngle=function(t){return arguments.length?(i=\"function\"==typeof t?t:Pi(+t),a):i},a.source=function(e){return arguments.length?(t=e,a):t},a.target=function(t){return arguments.length?(e=t,a):e},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a};function Zi(){}function $i(t,e){var r=new Zi;if(t instanceof Zi)t.each((function(t,e){r.set(e,t)}));else if(Array.isArray(t)){var n,i=-1,o=t.length;if(null==e)for(;++i=n.length)return null!=t&&r.sort(t),null!=e?e(r):r;for(var h,s,d,c=-1,p=r.length,u=n[i++],m=Ki(),f=a();++cn.length)return r;var a,l=i[o-1];return null!=e&&o>=n.length?a=r.entries():(a=[],r.each((function(e,r){a.push({key:r,values:t(e,o)})}))),null!=l?a.sort((function(t,e){return l(t.key,e.key)})):a}(o(t,0,ro,no),0)},key:function(t){return n.push(t),r},sortKeys:function(t){return i[n.length-1]=t,r},sortValues:function(e){return t=e,r},rollup:function(t){return e=t,r}}};function to(){return{}}function eo(t,e,r){t[e]=r}function ro(){return Ki()}function no(t,e,r){t.set(e,r)}function io(){}var oo=Ki.prototype;function ao(t,e){var r=new io;if(t instanceof io)t.each((function(t){r.add(t)}));else if(t){var n=-1,i=t.length;if(null==e)for(;++n6/29*(6/29)*(6/29)?Math.pow(t,1/3):t/(6/29*3*(6/29))+4/29}function xo(t){return t>6/29?t*t*t:6/29*3*(6/29)*(t-4/29)}function vo(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ko(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function yo(t){if(t instanceof Mo)return new Mo(t.h,t.c,t.l,t.opacity);if(t instanceof bo||(t=mo(t)),0===t.a&&0===t.b)return new Mo(NaN,0n!=u>n&&r<(p-s)*(n-d)/(u-d)+s&&(i=-i)}return i}function Fo(t,e,r){var n,i,o,a;return function(t,e,r){return(e[0]-t[0])*(r[1]-t[1])==(r[0]-t[0])*(e[1]-t[1])}(t,e,r)&&(i=t[n=+(t[0]===e[0])],o=r[n],a=e[n],i<=o&&o<=a||a<=o&&o<=i)}var Uo=function(){},Ho=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Bo=function(){var t=1,e=1,r=N,n=l;function i(t){var e=r(t);if(Array.isArray(e))e=e.slice().sort(Io);else{var n=b(t),i=n[0],a=n[1];e=D(i,a,e),e=w(Math.floor(i/e)*e,Math.floor(a/e)*e,e)}return e.map((function(e){return o(t,e)}))}function o(r,i){var o=[],l=[];return function(r,n,i){var o,l,h,s,d,c,p=new Array,u=new Array;o=l=-1,s=r[0]>=n,Ho[s<<1].forEach(m);for(;++o=n,Ho[h|s<<1].forEach(m);Ho[s<<0].forEach(m);for(;++l=n,d=r[l*t]>=n,Ho[s<<1|d<<2].forEach(m);++o=n,c=d,d=r[l*t+o+1]>=n,Ho[h|s<<1|d<<2|c<<3].forEach(m);Ho[s|d<<3].forEach(m)}o=-1,d=r[l*t]>=n,Ho[d<<2].forEach(m);for(;++o=n,Ho[d<<2|c<<3].forEach(m);function m(t){var e,r,n=[t[0][0]+o,t[0][1]+l],h=[t[1][0]+o,t[1][1]+l],s=a(n),d=a(h);(e=u[s])?(r=p[d])?(delete u[e.end],delete p[r.start],e===r?(e.ring.push(h),i(e.ring)):p[e.start]=u[r.end]={start:e.start,end:r.end,ring:e.ring.concat(r.ring)}):(delete u[e.end],e.ring.push(h),u[e.end=d]=e):(e=p[d])?(r=u[s])?(delete p[e.start],delete u[r.end],e===r?(e.ring.push(h),i(e.ring)):p[r.start]=u[e.end]={start:r.start,end:e.end,ring:r.ring.concat(e.ring)}):(delete p[e.start],e.ring.unshift(n),p[e.start=s]=e):p[s]=u[d]={start:s,end:d,ring:[n,h]}}Ho[d<<3].forEach(m)}(r,i,(function(t){n(t,r,i),function(t){for(var e=0,r=t.length,n=t[r-1][1]*t[0][0]-t[r-1][0]*t[0][1];++e0?o.push([t]):l.push(t)})),l.forEach((function(t){for(var e,r=0,n=o.length;r0&&a0&&l0&&o>0))throw new Error(\"invalid size\");return t=n,e=o,i},i.thresholds=function(t){return arguments.length?(r=\"function\"==typeof t?t:Array.isArray(t)?Oo(Lo.call(t)):Oo(t),i):r},i.smooth=function(t){return arguments.length?(n=t?l:Uo,i):n===l},i};function Wo(t,e,r){for(var n=t.width,i=t.height,o=1+(r<<1),a=0;a=r&&(l>=o&&(h-=t.data[l-o+a*n]),e.data[l-r+a*n]=h/Math.min(l+1,n-1+o-l,o))}function Yo(t,e,r){for(var n=t.width,i=t.height,o=1+(r<<1),a=0;a=r&&(l>=o&&(h-=t.data[a+(l-o)*n]),e.data[a+(l-r)*n]=h/Math.min(l+1,i-1+o-l,o))}function qo(t){return t[0]}function Go(t){return t[1]}function Vo(){return 1}var Qo=function(){var t=qo,e=Go,r=Vo,n=960,i=500,o=20,a=2,l=3*o,h=n+2*l>>a,s=i+2*l>>a,d=Oo(20);function c(n){var i=new Float32Array(h*s),c=new Float32Array(h*s);n.forEach((function(n,o,d){var c=+t(n,o,d)+l>>a,p=+e(n,o,d)+l>>a,u=+r(n,o,d);c>=0&&c=0&&p>a),Yo({width:h,height:s,data:c},{width:h,height:s,data:i},o>>a),Wo({width:h,height:s,data:i},{width:h,height:s,data:c},o>>a),Yo({width:h,height:s,data:c},{width:h,height:s,data:i},o>>a),Wo({width:h,height:s,data:i},{width:h,height:s,data:c},o>>a),Yo({width:h,height:s,data:c},{width:h,height:s,data:i},o>>a);var u=d(i);if(!Array.isArray(u)){var m=I(i);u=D(0,m,u),(u=w(0,Math.floor(m/u)*u,u)).shift()}return Bo().thresholds(u).size([h,s])(i).map(p)}function p(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(u),t}function u(t){t.forEach(m)}function m(t){t.forEach(f)}function f(t){t[0]=t[0]*Math.pow(2,a)-l,t[1]=t[1]*Math.pow(2,a)-l}function g(){return h=n+2*(l=3*o)>>a,s=i+2*l>>a,c}return c.x=function(e){return arguments.length?(t=\"function\"==typeof e?e:Oo(+e),c):t},c.y=function(t){return arguments.length?(e=\"function\"==typeof t?t:Oo(+t),c):e},c.weight=function(t){return arguments.length?(r=\"function\"==typeof t?t:Oo(+t),c):r},c.size=function(t){if(!arguments.length)return[n,i];var e=Math.ceil(t[0]),r=Math.ceil(t[1]);if(!(e>=0||e>=0))throw new Error(\"invalid size\");return n=e,i=r,g()},c.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error(\"invalid cell size\");return a=Math.floor(Math.log(t)/Math.LN2),g()},c.thresholds=function(t){return arguments.length?(d=\"function\"==typeof t?t:Array.isArray(t)?Oo(Lo.call(t)):Oo(t),c):d},c.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error(\"invalid bandwidth\");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),g()},c},Xo=function(t){return function(){return t}};function Zo(t,e,r,n,i,o,a,l,h,s){this.target=t,this.type=e,this.subject=r,this.identifier=n,this.active=i,this.x=o,this.y=a,this.dx=l,this.dy=h,this._=s}function $o(){return!se.ctrlKey&&!se.button}function Ko(){return this.parentNode}function Jo(t){return null==t?{x:se.x,y:se.y}:t}function ta(){return navigator.maxTouchPoints||\"ontouchstart\"in this}Zo.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var ea=function(){var t,e,r,n,i=$o,o=Ko,a=Jo,l=ta,h={},s=ct(\"start\",\"drag\",\"end\"),d=0,c=0;function p(t){t.on(\"mousedown.drag\",u).filter(l).on(\"touchstart.drag\",g).on(\"touchmove.drag\",b).on(\"touchend.drag touchcancel.drag\",_).style(\"touch-action\",\"none\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function u(){if(!n&&i.apply(this,arguments)){var a=x(\"mouse\",o.apply(this,arguments),jr,this,arguments);a&&(we(se.view).on(\"mousemove.drag\",m,!0).on(\"mouseup.drag\",f,!0),Ce(se.view),Se(),r=!1,t=se.clientX,e=se.clientY,a(\"start\"))}}function m(){if(Me(),!r){var n=se.clientX-t,i=se.clientY-e;r=n*n+i*i>c}h.mouse(\"drag\")}function f(){we(se.view).on(\"mousemove.drag mouseup.drag\",null),Te(se.view,r),Me(),h.mouse(\"end\")}function g(){if(i.apply(this,arguments)){var t,e,r=se.changedTouches,n=o.apply(this,arguments),a=r.length;for(t=0;t9999?\"+\"+aa(e,6):aa(e,4))+\"-\"+aa(t.getUTCMonth()+1,2)+\"-\"+aa(t.getUTCDate(),2)+(o?\"T\"+aa(r,2)+\":\"+aa(n,2)+\":\"+aa(i,2)+\".\"+aa(o,3)+\"Z\":i?\"T\"+aa(r,2)+\":\"+aa(n,2)+\":\"+aa(i,2)+\"Z\":n||r?\"T\"+aa(r,2)+\":\"+aa(n,2)+\"Z\":\"\")}var ha=function(t){var e=new RegExp('[\"'+t+\"\\n\\r]\"),r=t.charCodeAt(0);function n(t,e){var n,i=[],o=t.length,a=0,l=0,h=o<=0,s=!1;function d(){if(h)return na;if(s)return s=!1,ra;var e,n,i=a;if(34===t.charCodeAt(i)){for(;a++=o?h=!0:10===(n=t.charCodeAt(a++))?s=!0:13===n&&(s=!0,10===t.charCodeAt(a)&&++a),t.slice(i+1,e-1).replace(/\"\"/g,'\"')}for(;a=(o=(f+b)/2))?f=o:b=o,(d=r>=(a=(g+_)/2))?g=a:_=a,i=u,!(u=u[c=d<<1|s]))return i[c]=m,t;if(l=+t._x.call(null,u.data),h=+t._y.call(null,u.data),e===l&&r===h)return m.next=u,i?i[c]=m:t._root=m,t;do{i=i?i[c]=new Array(4):t._root=new Array(4),(s=e>=(o=(f+b)/2))?f=o:b=o,(d=r>=(a=(g+_)/2))?g=a:_=a}while((c=d<<1|s)==(p=(h>=a)<<1|l>=o));return i[p]=u,i[c]=m,t}var wl=function(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i};function Sl(t){return t[0]}function Ml(t){return t[1]}function Cl(t,e,r){var n=new Tl(null==e?Sl:e,null==r?Ml:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function Tl(t,e,r,n,i,o){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=o,this._root=void 0}function El(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var Dl=Cl.prototype=Tl.prototype;function Nl(t){return t.x+t.vx}function Al(t){return t.y+t.vy}Dl.copy=function(){var t,e,r=new Tl(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=El(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=El(e));return r},Dl.add=function(t){var e=+this._x.call(null,t),r=+this._y.call(null,t);return yl(this.cover(e,r),e,r,t)},Dl.addAll=function(t){var e,r,n,i,o=t.length,a=new Array(o),l=new Array(o),h=1/0,s=1/0,d=-1/0,c=-1/0;for(r=0;rd&&(d=n),ic&&(c=i));if(h>d||s>c)return this;for(this.cover(h,s).cover(d,c),r=0;rt||t>=i||n>e||e>=o;)switch(l=(ep||(o=h.y0)>u||(a=h.x1)=b)<<1|t>=g)&&(h=m[m.length-1],m[m.length-1]=m[m.length-1-s],m[m.length-1-s]=h)}else{var _=t-+this._x.call(null,f.data),x=e-+this._y.call(null,f.data),v=_*_+x*x;if(v=(l=(m+g)/2))?m=l:g=l,(d=a>=(h=(f+b)/2))?f=h:b=h,e=u,!(u=u[c=d<<1|s]))return this;if(!u.length)break;(e[c+1&3]||e[c+2&3]||e[c+3&3])&&(r=e,p=c)}for(;u.data!==t;)if(n=u,!(u=u.next))return this;return(i=u.next)&&delete u.next,n?(i?n.next=i:delete n.next,this):e?(i?e[c]=i:delete e[c],(u=e[0]||e[1]||e[2]||e[3])&&u===(e[3]||e[2]||e[1]||e[0])&&!u.length&&(r?r[p]=u:this._root=u),this):(this._root=i,this)},Dl.removeAll=function(t){for(var e=0,r=t.length;eh+u||is+u||ol.index){var m=h-a.x-a.vx,f=s-a.y-a.vy,g=m*m+f*f;gt.r&&(t.r=t[e].r)}function l(){if(e){var n,i,o=e.length;for(r=new Array(o),n=0;n1?(null==r?l.remove(t):l.set(t,u(r)),e):l.get(t)},find:function(e,r,n){var i,o,a,l,h,s=0,d=t.length;for(null==n?n=1/0:n*=n,s=0;s1?(s.on(t,r),e):s.on(t)}}},Ul=function(){var t,e,r,n,i=vl(-30),o=1,a=1/0,l=.81;function h(n){var i,o=t.length,a=Cl(t,Ol,Pl).visitAfter(d);for(r=n,i=0;i=a)){(t.data!==e||t.next)&&(0===d&&(u+=(d=kl())*d),0===c&&(u+=(c=kl())*c),u1?n[0]+n.slice(2):n,+t.slice(r+1)]}var ql=function(t){return(t=Yl(Math.abs(t)))?t[1]:NaN},Gl=/^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function Vl(t){if(!(e=Gl.exec(t)))throw new Error(\"invalid format: \"+t);var e;return new Ql({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Ql(t){this.fill=void 0===t.fill?\" \":t.fill+\"\",this.align=void 0===t.align?\">\":t.align+\"\",this.sign=void 0===t.sign?\"-\":t.sign+\"\",this.symbol=void 0===t.symbol?\"\":t.symbol+\"\",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?\"\":t.type+\"\"}Vl.prototype=Ql.prototype,Ql.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(void 0===this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(void 0===this.precision?\"\":\".\"+Math.max(0,0|this.precision))+(this.trim?\"~\":\"\")+this.type};var Xl,Zl,$l,Kl,Jl=function(t,e){var r=Yl(t,e);if(!r)return t+\"\";var n=r[0],i=r[1];return i<0?\"0.\"+new Array(-i).join(\"0\")+n:n.length>i+1?n.slice(0,i+1)+\".\"+n.slice(i+1):n+new Array(i-n.length+2).join(\"0\")},th={\"%\":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+\"\"},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString(\"en\").replace(/,/g,\"\"):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Jl(100*t,e)},r:Jl,s:function(t,e){var r=Yl(t,e);if(!r)return t+\"\";var n=r[0],i=r[1],o=i-(Xl=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=n.length;return o===a?n:o>a?n+new Array(o-a+1).join(\"0\"):o>0?n.slice(0,o)+\".\"+n.slice(o):\"0.\"+new Array(1-o).join(\"0\")+Yl(t,Math.max(0,e+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},eh=function(t){return t},rh=Array.prototype.map,nh=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"],ih=function(t){var e,r,n=void 0===t.grouping||void 0===t.thousands?eh:(e=rh.call(t.grouping,Number),r=t.thousands+\"\",function(t,n){for(var i=t.length,o=[],a=0,l=e[0],h=0;i>0&&l>0&&(h+l+1>n&&(l=Math.max(1,n-h)),o.push(t.substring(i-=l,i+l)),!((h+=l+1)>n));)l=e[a=(a+1)%e.length];return o.reverse().join(r)}),i=void 0===t.currency?\"\":t.currency[0]+\"\",o=void 0===t.currency?\"\":t.currency[1]+\"\",a=void 0===t.decimal?\".\":t.decimal+\"\",l=void 0===t.numerals?eh:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(rh.call(t.numerals,String)),h=void 0===t.percent?\"%\":t.percent+\"\",s=void 0===t.minus?\"-\":t.minus+\"\",d=void 0===t.nan?\"NaN\":t.nan+\"\";function c(t){var e=(t=Vl(t)).fill,r=t.align,c=t.sign,p=t.symbol,u=t.zero,m=t.width,f=t.comma,g=t.precision,b=t.trim,_=t.type;\"n\"===_?(f=!0,_=\"g\"):th[_]||(void 0===g&&(g=12),b=!0,_=\"g\"),(u||\"0\"===e&&\"=\"===r)&&(u=!0,e=\"0\",r=\"=\");var x=\"$\"===p?i:\"#\"===p&&/[boxX]/.test(_)?\"0\"+_.toLowerCase():\"\",v=\"$\"===p?o:/[%p]/.test(_)?h:\"\",k=th[_],y=/[defgprs%]/.test(_);function w(t){var i,o,h,p=x,w=v;if(\"c\"===_)w=k(t)+w,t=\"\";else{var S=(t=+t)<0||1/t<0;if(t=isNaN(t)?d:k(Math.abs(t),g),b&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),S&&0==+t&&\"+\"!==c&&(S=!1),p=(S?\"(\"===c?c:s:\"-\"===c||\"(\"===c?\"\":c)+p,w=(\"s\"===_?nh[8+Xl/3]:\"\")+w+(S&&\"(\"===c?\")\":\"\"),y)for(i=-1,o=t.length;++i(h=t.charCodeAt(i))||h>57){w=(46===h?a+t.slice(i+1):t.slice(i))+w,t=t.slice(0,i);break}}f&&!u&&(t=n(t,1/0));var M=p.length+t.length+w.length,C=M>1)+p+t+w+C.slice(M);break;default:t=C+p+t+w}return l(t)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),w.toString=function(){return t+\"\"},w}return{format:c,formatPrefix:function(t,e){var r=c(((t=Vl(t)).type=\"f\",t)),n=3*Math.max(-8,Math.min(8,Math.floor(ql(e)/3))),i=Math.pow(10,-n),o=nh[8+n/3];return function(t){return r(i*t)+o}}}};function oh(t){return Zl=ih(t),$l=Zl.format,Kl=Zl.formatPrefix,Zl}oh({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"],minus:\"-\"});var ah=function(t){return Math.max(0,-ql(Math.abs(t)))},lh=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(ql(e)/3)))-ql(Math.abs(t)))},hh=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ql(e)-ql(t))+1},sh=function(){return new dh};function dh(){this.reset()}dh.prototype={constructor:dh,reset:function(){this.s=this.t=0},add:function(t){ph(ch,t,this.t),ph(this,ch.s,this.s),this.s?this.t+=ch.t:this.s=ch.t},valueOf:function(){return this.s}};var ch=new dh;function ph(t,e,r){var n=t.s=e+r,i=n-e,o=n-i;t.t=e-o+(r-i)}var uh=Math.PI,mh=uh/2,fh=uh/4,gh=2*uh,bh=180/uh,_h=uh/180,xh=Math.abs,vh=Math.atan,kh=Math.atan2,yh=Math.cos,wh=Math.ceil,Sh=Math.exp,Mh=(Math.floor,Math.log),Ch=Math.pow,Th=Math.sin,Eh=Math.sign||function(t){return t>0?1:t<0?-1:0},Dh=Math.sqrt,Nh=Math.tan;function Ah(t){return t>1?0:t<-1?uh:Math.acos(t)}function jh(t){return t>1?mh:t<-1?-mh:Math.asin(t)}function zh(t){return(t=Th(t/2))*t}function Lh(){}function Ih(t,e){t&&Ph.hasOwnProperty(t.type)&&Ph[t.type](t,e)}var Oh={Feature:function(t,e){Ih(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n=0?1:-1,i=n*r,o=yh(e=(e*=_h)/2+fh),a=Th(e),l=Yh*a,h=Wh*o+l*yh(i),s=l*n*Th(i);Gh.add(kh(s,h)),Bh=t,Wh=o,Yh=a}var Jh=function(t){return Vh.reset(),qh(t,Qh),2*Vh};function ts(t){return[kh(t[1],t[0]),jh(t[2])]}function es(t){var e=t[0],r=t[1],n=yh(r);return[n*yh(e),n*Th(e),Th(r)]}function rs(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function ns(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function is(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function os(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function as(t){var e=Dh(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var ls,hs,ss,ds,cs,ps,us,ms,fs,gs,bs=sh(),_s={point:xs,lineStart:ks,lineEnd:ys,polygonStart:function(){_s.point=ws,_s.lineStart=Ss,_s.lineEnd=Ms,bs.reset(),Qh.polygonStart()},polygonEnd:function(){Qh.polygonEnd(),_s.point=xs,_s.lineStart=ks,_s.lineEnd=ys,Gh<0?(ls=-(ss=180),hs=-(ds=90)):bs>1e-6?ds=90:bs<-1e-6&&(hs=-90),gs[0]=ls,gs[1]=ss},sphere:function(){ls=-(ss=180),hs=-(ds=90)}};function xs(t,e){fs.push(gs=[ls=t,ss=t]),eds&&(ds=e)}function vs(t,e){var r=es([t*_h,e*_h]);if(ms){var n=ns(ms,r),i=ns([n[1],-n[0],0],n);as(i),i=ts(i);var o,a=t-cs,l=a>0?1:-1,h=i[0]*bh*l,s=xh(a)>180;s^(l*csds&&(ds=o):s^(l*cs<(h=(h+360)%360-180)&&hds&&(ds=e)),s?tCs(ls,ss)&&(ss=t):Cs(t,ss)>Cs(ls,ss)&&(ls=t):ss>=ls?(tss&&(ss=t)):t>cs?Cs(ls,t)>Cs(ls,ss)&&(ss=t):Cs(t,ss)>Cs(ls,ss)&&(ls=t)}else fs.push(gs=[ls=t,ss=t]);eds&&(ds=e),ms=r,cs=t}function ks(){_s.point=vs}function ys(){gs[0]=ls,gs[1]=ss,_s.point=xs,ms=null}function ws(t,e){if(ms){var r=t-cs;bs.add(xh(r)>180?r+(r>0?360:-360):r)}else ps=t,us=e;Qh.point(t,e),vs(t,e)}function Ss(){Qh.lineStart()}function Ms(){ws(ps,us),Qh.lineEnd(),xh(bs)>1e-6&&(ls=-(ss=180)),gs[0]=ls,gs[1]=ss,ms=null}function Cs(t,e){return(e-=t)<0?e+360:e}function Ts(t,e){return t[0]-e[0]}function Es(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:eCs(n[0],n[1])&&(n[1]=i[1]),Cs(i[0],n[1])>Cs(n[0],n[1])&&(n[0]=i[0])):o.push(n=i);for(a=-1/0,e=0,n=o[r=o.length-1];e<=r;n=i,++e)i=o[e],(l=Cs(n[1],i[0]))>a&&(a=l,ls=i[0],ss=n[1])}return fs=gs=null,ls===1/0||hs===1/0?[[NaN,NaN],[NaN,NaN]]:[[ls,hs],[ss,ds]]},Gs={sphere:Lh,point:Vs,lineStart:Xs,lineEnd:Ks,polygonStart:function(){Gs.lineStart=Js,Gs.lineEnd=td},polygonEnd:function(){Gs.lineStart=Xs,Gs.lineEnd=Ks}};function Vs(t,e){t*=_h;var r=yh(e*=_h);Qs(r*yh(t),r*Th(t),Th(e))}function Qs(t,e,r){++Ds,As+=(t-As)/Ds,js+=(e-js)/Ds,zs+=(r-zs)/Ds}function Xs(){Gs.point=Zs}function Zs(t,e){t*=_h;var r=yh(e*=_h);Bs=r*yh(t),Ws=r*Th(t),Ys=Th(e),Gs.point=$s,Qs(Bs,Ws,Ys)}function $s(t,e){t*=_h;var r=yh(e*=_h),n=r*yh(t),i=r*Th(t),o=Th(e),a=kh(Dh((a=Ws*o-Ys*i)*a+(a=Ys*n-Bs*o)*a+(a=Bs*i-Ws*n)*a),Bs*n+Ws*i+Ys*o);Ns+=a,Ls+=a*(Bs+(Bs=n)),Is+=a*(Ws+(Ws=i)),Os+=a*(Ys+(Ys=o)),Qs(Bs,Ws,Ys)}function Ks(){Gs.point=Vs}function Js(){Gs.point=ed}function td(){rd(Us,Hs),Gs.point=Vs}function ed(t,e){Us=t,Hs=e,t*=_h,e*=_h,Gs.point=rd;var r=yh(e);Bs=r*yh(t),Ws=r*Th(t),Ys=Th(e),Qs(Bs,Ws,Ys)}function rd(t,e){t*=_h;var r=yh(e*=_h),n=r*yh(t),i=r*Th(t),o=Th(e),a=Ws*o-Ys*i,l=Ys*n-Bs*o,h=Bs*i-Ws*n,s=Dh(a*a+l*l+h*h),d=jh(s),c=s&&-d/s;Ps+=c*a,Rs+=c*l,Fs+=c*h,Ns+=d,Ls+=d*(Bs+(Bs=n)),Is+=d*(Ws+(Ws=i)),Os+=d*(Ys+(Ys=o)),Qs(Bs,Ws,Ys)}var nd=function(t){Ds=Ns=As=js=zs=Ls=Is=Os=Ps=Rs=Fs=0,qh(t,Gs);var e=Ps,r=Rs,n=Fs,i=e*e+r*r+n*n;return i<1e-12&&(e=Ls,r=Is,n=Os,Ns<1e-6&&(e=As,r=js,n=zs),(i=e*e+r*r+n*n)<1e-12)?[NaN,NaN]:[kh(r,e)*bh,jh(n/Dh(i))*bh]},id=function(t){return function(){return t}},od=function(t,e){function r(r,n){return r=t(r,n),e(r[0],r[1])}return t.invert&&e.invert&&(r.invert=function(r,n){return(r=e.invert(r,n))&&t.invert(r[0],r[1])}),r};function ad(t,e){return[xh(t)>uh?t+Math.round(-t/gh)*gh:t,e]}function ld(t,e,r){return(t%=gh)?e||r?od(sd(t),dd(e,r)):sd(t):e||r?dd(e,r):ad}function hd(t){return function(e,r){return[(e+=t)>uh?e-gh:e<-uh?e+gh:e,r]}}function sd(t){var e=hd(t);return e.invert=hd(-t),e}function dd(t,e){var r=yh(t),n=Th(t),i=yh(e),o=Th(e);function a(t,e){var a=yh(e),l=yh(t)*a,h=Th(t)*a,s=Th(e),d=s*r+l*n;return[kh(h*i-d*o,l*r-s*n),jh(d*i+h*o)]}return a.invert=function(t,e){var a=yh(e),l=yh(t)*a,h=Th(t)*a,s=Th(e),d=s*i-h*o;return[kh(h*i+s*o,l*r+d*n),jh(d*r-l*n)]},a}ad.invert=ad;var cd=function(t){function e(e){return(e=t(e[0]*_h,e[1]*_h))[0]*=bh,e[1]*=bh,e}return t=ld(t[0]*_h,t[1]*_h,t.length>2?t[2]*_h:0),e.invert=function(e){return(e=t.invert(e[0]*_h,e[1]*_h))[0]*=bh,e[1]*=bh,e},e};function pd(t,e,r,n,i,o){if(r){var a=yh(e),l=Th(e),h=n*r;null==i?(i=e+n*gh,o=e-h/2):(i=ud(a,i),o=ud(a,o),(n>0?io)&&(i+=n*gh));for(var s,d=i;n>0?d>o:d1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}},gd=function(t,e){return xh(t[0]-e[0])<1e-6&&xh(t[1]-e[1])<1e-6};function bd(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}var _d=function(t,e,r,n,i){var o,a,l=[],h=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,n=t[0],a=t[e];if(gd(n,a)){if(!n[2]&&!a[2]){for(i.lineStart(),o=0;o=0;--o)i.point((d=s[o])[0],d[1]);else n(p.x,p.p.x,-1,i);p=p.p}s=(p=p.o).z,u=!u}while(!p.v);i.lineEnd()}}};function xd(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n=0?1:-1,M=S*w,C=M>uh,T=f*k;if(vd.add(kh(T*S*Th(M),g*y+T*yh(M))),a+=C?w+S*gh:w,C^u>=r^x>=r){var E=ns(es(p),es(_));as(E);var D=ns(o,E);as(D);var N=(C^w>=0?-1:1)*jh(D[2]);(n>N||n===N&&(E[0]||E[1]))&&(l+=C^w>=0?1:-1)}}return(a<-1e-6||a<1e-6&&vd<-1e-6)^1&l},wd=function(t,e,r,n){return function(i){var o,a,l,h=e(i),s=fd(),d=e(s),c=!1,p={point:u,lineStart:f,lineEnd:g,polygonStart:function(){p.point=b,p.lineStart=_,p.lineEnd=x,a=[],o=[]},polygonEnd:function(){p.point=u,p.lineStart=f,p.lineEnd=g,a=R(a);var t=yd(o,n);a.length?(c||(i.polygonStart(),c=!0),_d(a,Md,t,r,i)):t&&(c||(i.polygonStart(),c=!0),i.lineStart(),r(null,null,1,i),i.lineEnd()),c&&(i.polygonEnd(),c=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),r(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function u(e,r){t(e,r)&&i.point(e,r)}function m(t,e){h.point(t,e)}function f(){p.point=m,h.lineStart()}function g(){p.point=u,h.lineEnd()}function b(t,e){l.push([t,e]),d.point(t,e)}function _(){d.lineStart(),l=[]}function x(){b(l[0][0],l[0][1]),d.lineEnd();var t,e,r,n,h=d.clean(),p=s.result(),u=p.length;if(l.pop(),o.push(l),l=null,u)if(1&h){if((e=(r=p[0]).length-1)>0){for(c||(i.polygonStart(),c=!0),i.lineStart(),t=0;t1&&2&h&&p.push(p.pop().concat(p.shift())),a.push(p.filter(Sd))}return p}};function Sd(t){return t.length>1}function Md(t,e){return((t=t.x)[0]<0?t[1]-mh-1e-6:mh-t[1])-((e=e.x)[0]<0?e[1]-mh-1e-6:mh-e[1])}var Cd=wd((function(){return!0}),(function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var l=o>0?uh:-uh,h=xh(o-r);xh(h-uh)<1e-6?(t.point(r,n=(n+a)/2>0?mh:-mh),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(l,n),t.point(o,n),e=0):i!==l&&h>=uh&&(xh(r-i)<1e-6&&(r-=1e-6*i),xh(o-l)<1e-6&&(o-=1e-6*l),n=function(t,e,r,n){var i,o,a=Th(t-r);return xh(a)>1e-6?vh((Th(e)*(o=yh(n))*Th(r)-Th(n)*(i=yh(e))*Th(t))/(i*o*a)):(e+n)/2}(r,n,o,a),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(l,n),e=0),t.point(r=o,n=a),i=l},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var i;if(null==t)i=r*mh,n.point(-uh,i),n.point(0,i),n.point(uh,i),n.point(uh,0),n.point(uh,-i),n.point(0,-i),n.point(-uh,-i),n.point(-uh,0),n.point(-uh,i);else if(xh(t[0]-e[0])>1e-6){var o=t[0]0,i=xh(e)>1e-6;function o(t,r){return yh(t)*yh(r)>e}function a(t,r,n){var i=[1,0,0],o=ns(es(t),es(r)),a=rs(o,o),l=o[0],h=a-l*l;if(!h)return!n&&t;var s=e*a/h,d=-e*l/h,c=ns(i,o),p=os(i,s);is(p,os(o,d));var u=c,m=rs(p,u),f=rs(u,u),g=m*m-f*(rs(p,p)-1);if(!(g<0)){var b=Dh(g),_=os(u,(-m-b)/f);if(is(_,p),_=ts(_),!n)return _;var x,v=t[0],k=r[0],y=t[1],w=r[1];k0^_[1]<(xh(_[0]-v)<1e-6?y:w):y<=_[1]&&_[1]<=w:S>uh^(v<=_[0]&&_[0]<=k)){var C=os(u,(-m+b)/f);return is(C,p),[_,ts(C)]}}}function l(e,r){var i=n?t:uh-t,o=0;return e<-i?o|=1:e>i&&(o|=2),r<-i?o|=4:r>i&&(o|=8),o}return wd(o,(function(t){var e,r,h,s,d;return{lineStart:function(){s=h=!1,d=1},point:function(c,p){var u,m=[c,p],f=o(c,p),g=n?f?0:l(c,p):f?l(c+(c<0?uh:-uh),p):0;if(!e&&(s=h=f)&&t.lineStart(),f!==h&&(!(u=a(e,m))||gd(e,u)||gd(m,u))&&(m[2]=1),f!==h)d=0,f?(t.lineStart(),u=a(m,e),t.point(u[0],u[1])):(u=a(e,m),t.point(u[0],u[1],2),t.lineEnd()),e=u;else if(i&&e&&n^f){var b;g&r||!(b=a(m,e,!0))||(d=0,n?(t.lineStart(),t.point(b[0][0],b[0][1]),t.point(b[1][0],b[1][1]),t.lineEnd()):(t.point(b[1][0],b[1][1]),t.lineEnd(),t.lineStart(),t.point(b[0][0],b[0][1],3)))}!f||e&&gd(e,m)||t.point(m[0],m[1]),e=m,h=f,r=g},lineEnd:function(){h&&t.lineEnd(),e=null},clean:function(){return d|(s&&h)<<1}}}),(function(e,n,i,o){pd(o,t,r,i,e,n)}),n?[0,-t]:[-uh,t-uh])};function Ed(t,e,r,n){function i(i,o){return t<=i&&i<=r&&e<=o&&o<=n}function o(i,o,l,s){var d=0,c=0;if(null==i||(d=a(i,l))!==(c=a(o,l))||h(i,o)<0^l>0)do{s.point(0===d||3===d?t:r,d>1?n:e)}while((d=(d+l+4)%4)!==c);else s.point(o[0],o[1])}function a(n,i){return xh(n[0]-t)<1e-6?i>0?0:3:xh(n[0]-r)<1e-6?i>0?2:1:xh(n[1]-e)<1e-6?i>0?1:0:i>0?3:2}function l(t,e){return h(t.x,e.x)}function h(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(a){var h,s,d,c,p,u,m,f,g,b,_,x=a,v=fd(),k={point:y,lineStart:function(){k.point=w,s&&s.push(d=[]);b=!0,g=!1,m=f=NaN},lineEnd:function(){h&&(w(c,p),u&&g&&v.rejoin(),h.push(v.result()));k.point=y,g&&x.lineEnd()},polygonStart:function(){x=v,h=[],s=[],_=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,i=s.length;rn&&(p-o)*(n-a)>(u-a)*(t-o)&&++e:u<=n&&(p-o)*(n-a)<(u-a)*(t-o)&&--e;return e}(),r=_&&e,i=(h=R(h)).length;(r||i)&&(a.polygonStart(),r&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&_d(h,l,e,o,a),a.polygonEnd());x=a,h=s=d=null}};function y(t,e){i(t,e)&&x.point(t,e)}function w(o,a){var l=i(o,a);if(s&&d.push([o,a]),b)c=o,p=a,u=l,b=!1,l&&(x.lineStart(),x.point(o,a));else if(l&&g)x.point(o,a);else{var h=[m=Math.max(-1e9,Math.min(1e9,m)),f=Math.max(-1e9,Math.min(1e9,f))],v=[o=Math.max(-1e9,Math.min(1e9,o)),a=Math.max(-1e9,Math.min(1e9,a))];!function(t,e,r,n,i,o){var a,l=t[0],h=t[1],s=0,d=1,c=e[0]-l,p=e[1]-h;if(a=r-l,c||!(a>0)){if(a/=c,c<0){if(a0){if(a>d)return;a>s&&(s=a)}if(a=i-l,c||!(a<0)){if(a/=c,c<0){if(a>d)return;a>s&&(s=a)}else if(c>0){if(a0)){if(a/=p,p<0){if(a0){if(a>d)return;a>s&&(s=a)}if(a=o-h,p||!(a<0)){if(a/=p,p<0){if(a>d)return;a>s&&(s=a)}else if(p>0){if(a0&&(t[0]=l+s*c,t[1]=h+s*p),d<1&&(e[0]=l+d*c,e[1]=h+d*p),!0}}}}}(h,v,t,e,r,n)?l&&(x.lineStart(),x.point(o,a),_=!1):(g||(x.lineStart(),x.point(h[0],h[1])),x.point(v[0],v[1]),l||x.lineEnd(),_=!1)}m=o,f=a,g=l}return k}}var Dd,Nd,Ad,jd=function(){var t,e,r,n=0,i=0,o=960,a=500;return r={stream:function(r){return t&&e===r?t:t=Ed(n,i,o,a)(e=r)},extent:function(l){return arguments.length?(n=+l[0][0],i=+l[0][1],o=+l[1][0],a=+l[1][1],t=e=null,r):[[n,i],[o,a]]}}},zd=sh(),Ld={sphere:Lh,point:Lh,lineStart:function(){Ld.point=Od,Ld.lineEnd=Id},lineEnd:Lh,polygonStart:Lh,polygonEnd:Lh};function Id(){Ld.point=Ld.lineEnd=Lh}function Od(t,e){Dd=t*=_h,Nd=Th(e*=_h),Ad=yh(e),Ld.point=Pd}function Pd(t,e){t*=_h;var r=Th(e*=_h),n=yh(e),i=xh(t-Dd),o=yh(i),a=n*Th(i),l=Ad*r-Nd*n*o,h=Nd*r+Ad*n*o;zd.add(kh(Dh(a*a+l*l),h)),Dd=t,Nd=r,Ad=n}var Rd=function(t){return zd.reset(),qh(t,Ld),+zd},Fd=[null,null],Ud={type:\"LineString\",coordinates:Fd},Hd=function(t,e){return Fd[0]=t,Fd[1]=e,Rd(Ud)},Bd={Feature:function(t,e){return Yd(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n0&&(i=Hd(t[o],t[o-1]))>0&&r<=i&&n<=i&&(r+n-i)*(1-Math.pow((r-n)/i,2))<1e-12*i)return!0;r=n}return!1}function Vd(t,e){return!!yd(t.map(Qd),Xd(e))}function Qd(t){return(t=t.map(Xd)).pop(),t}function Xd(t){return[t[0]*_h,t[1]*_h]}var Zd=function(t,e){return(t&&Bd.hasOwnProperty(t.type)?Bd[t.type]:Yd)(t,e)};function $d(t,e,r){var n=w(t,e-1e-6,r).concat(e);return function(t){return n.map((function(e){return[t,e]}))}}function Kd(t,e,r){var n=w(t,e-1e-6,r).concat(e);return function(t){return n.map((function(e){return[e,t]}))}}function Jd(){var t,e,r,n,i,o,a,l,h,s,d,c,p=10,u=p,m=90,f=360,g=2.5;function b(){return{type:\"MultiLineString\",coordinates:_()}}function _(){return w(wh(n/m)*m,r,m).map(d).concat(w(wh(l/f)*f,a,f).map(c)).concat(w(wh(e/p)*p,t,p).filter((function(t){return xh(t%m)>1e-6})).map(h)).concat(w(wh(o/u)*u,i,u).filter((function(t){return xh(t%f)>1e-6})).map(s))}return b.lines=function(){return _().map((function(t){return{type:\"LineString\",coordinates:t}}))},b.outline=function(){return{type:\"Polygon\",coordinates:[d(n).concat(c(a).slice(1),d(r).reverse().slice(1),c(l).reverse().slice(1))]}},b.extent=function(t){return arguments.length?b.extentMajor(t).extentMinor(t):b.extentMinor()},b.extentMajor=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],l=+t[0][1],a=+t[1][1],n>r&&(t=n,n=r,r=t),l>a&&(t=l,l=a,a=t),b.precision(g)):[[n,l],[r,a]]},b.extentMinor=function(r){return arguments.length?(e=+r[0][0],t=+r[1][0],o=+r[0][1],i=+r[1][1],e>t&&(r=e,e=t,t=r),o>i&&(r=o,o=i,i=r),b.precision(g)):[[e,o],[t,i]]},b.step=function(t){return arguments.length?b.stepMajor(t).stepMinor(t):b.stepMinor()},b.stepMajor=function(t){return arguments.length?(m=+t[0],f=+t[1],b):[m,f]},b.stepMinor=function(t){return arguments.length?(p=+t[0],u=+t[1],b):[p,u]},b.precision=function(p){return arguments.length?(g=+p,h=$d(o,i,90),s=Kd(e,t,g),d=$d(l,a,90),c=Kd(n,r,g),b):g},b.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}function tc(){return Jd()()}var ec,rc,nc,ic,oc=function(t,e){var r=t[0]*_h,n=t[1]*_h,i=e[0]*_h,o=e[1]*_h,a=yh(n),l=Th(n),h=yh(o),s=Th(o),d=a*yh(r),c=a*Th(r),p=h*yh(i),u=h*Th(i),m=2*jh(Dh(zh(o-n)+a*h*zh(i-r))),f=Th(m),g=m?function(t){var e=Th(t*=m)/f,r=Th(m-t)/f,n=r*d+e*p,i=r*c+e*u,o=r*l+e*s;return[kh(i,n)*bh,kh(o,Dh(n*n+i*i))*bh]}:function(){return[r*bh,n*bh]};return g.distance=m,g},ac=function(t){return t},lc=sh(),hc=sh(),sc={point:Lh,lineStart:Lh,lineEnd:Lh,polygonStart:function(){sc.lineStart=dc,sc.lineEnd=uc},polygonEnd:function(){sc.lineStart=sc.lineEnd=sc.point=Lh,lc.add(xh(hc)),hc.reset()},result:function(){var t=lc/2;return lc.reset(),t}};function dc(){sc.point=cc}function cc(t,e){sc.point=pc,ec=nc=t,rc=ic=e}function pc(t,e){hc.add(ic*t-nc*e),nc=t,ic=e}function uc(){pc(ec,rc)}var mc=sc,fc=1/0,gc=fc,bc=-fc,_c=bc;var xc,vc,kc,yc,wc={point:function(t,e){tbc&&(bc=t);e_c&&(_c=e)},lineStart:Lh,lineEnd:Lh,polygonStart:Lh,polygonEnd:Lh,result:function(){var t=[[fc,gc],[bc,_c]];return bc=_c=-(gc=fc=1/0),t}},Sc=0,Mc=0,Cc=0,Tc=0,Ec=0,Dc=0,Nc=0,Ac=0,jc=0,zc={point:Lc,lineStart:Ic,lineEnd:Rc,polygonStart:function(){zc.lineStart=Fc,zc.lineEnd=Uc},polygonEnd:function(){zc.point=Lc,zc.lineStart=Ic,zc.lineEnd=Rc},result:function(){var t=jc?[Nc/jc,Ac/jc]:Dc?[Tc/Dc,Ec/Dc]:Cc?[Sc/Cc,Mc/Cc]:[NaN,NaN];return Sc=Mc=Cc=Tc=Ec=Dc=Nc=Ac=jc=0,t}};function Lc(t,e){Sc+=t,Mc+=e,++Cc}function Ic(){zc.point=Oc}function Oc(t,e){zc.point=Pc,Lc(kc=t,yc=e)}function Pc(t,e){var r=t-kc,n=e-yc,i=Dh(r*r+n*n);Tc+=i*(kc+t)/2,Ec+=i*(yc+e)/2,Dc+=i,Lc(kc=t,yc=e)}function Rc(){zc.point=Lc}function Fc(){zc.point=Hc}function Uc(){Bc(xc,vc)}function Hc(t,e){zc.point=Bc,Lc(xc=kc=t,vc=yc=e)}function Bc(t,e){var r=t-kc,n=e-yc,i=Dh(r*r+n*n);Tc+=i*(kc+t)/2,Ec+=i*(yc+e)/2,Dc+=i,Nc+=(i=yc*t-kc*e)*(kc+t),Ac+=i*(yc+e),jc+=3*i,Lc(kc=t,yc=e)}var Wc=zc;function Yc(t){this._context=t}Yc.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,gh)}},result:Lh};var qc,Gc,Vc,Qc,Xc,Zc=sh(),$c={point:Lh,lineStart:function(){$c.point=Kc},lineEnd:function(){qc&&Jc(Gc,Vc),$c.point=Lh},polygonStart:function(){qc=!0},polygonEnd:function(){qc=null},result:function(){var t=+Zc;return Zc.reset(),t}};function Kc(t,e){$c.point=Jc,Gc=Qc=t,Vc=Xc=e}function Jc(t,e){Qc-=t,Xc-=e,Zc.add(Dh(Qc*Qc+Xc*Xc)),Qc=t,Xc=e}var tp=$c;function ep(){this._string=[]}function rp(t){return\"m0,\"+t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+-2*t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+2*t+\"z\"}ep.prototype={_radius:4.5,_circle:rp(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push(\"Z\"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push(\"M\",t,\",\",e),this._point=1;break;case 1:this._string.push(\"L\",t,\",\",e);break;default:null==this._circle&&(this._circle=rp(this._radius)),this._string.push(\"M\",t,\",\",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join(\"\");return this._string=[],t}return null}};var np=function(t,e){var r,n,i=4.5;function o(t){return t&&(\"function\"==typeof i&&n.pointRadius(+i.apply(this,arguments)),qh(t,r(n))),n.result()}return o.area=function(t){return qh(t,r(mc)),mc.result()},o.measure=function(t){return qh(t,r(tp)),tp.result()},o.bounds=function(t){return qh(t,r(wc)),wc.result()},o.centroid=function(t){return qh(t,r(Wc)),Wc.result()},o.projection=function(e){return arguments.length?(r=null==e?(t=null,ac):(t=e).stream,o):t},o.context=function(t){return arguments.length?(n=null==t?(e=null,new ep):new Yc(e=t),\"function\"!=typeof i&&n.pointRadius(i),o):e},o.pointRadius=function(t){return arguments.length?(i=\"function\"==typeof t?t:(n.pointRadius(+t),+t),o):i},o.projection(t).context(e)},ip=function(t){return{stream:op(t)}};function op(t){return function(e){var r=new ap;for(var n in t)r[n]=t[n];return r.stream=e,r}}function ap(){}function lp(t,e,r){var n=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=n&&t.clipExtent(null),qh(r,t.stream(wc)),e(wc.result()),null!=n&&t.clipExtent(n),t}function hp(t,e,r){return lp(t,(function(r){var n=e[1][0]-e[0][0],i=e[1][1]-e[0][1],o=Math.min(n/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+e[0][0]+(n-o*(r[1][0]+r[0][0]))/2,l=+e[0][1]+(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,l])}),r)}function sp(t,e,r){return hp(t,[[0,0],e],r)}function dp(t,e,r){return lp(t,(function(r){var n=+e,i=n/(r[1][0]-r[0][0]),o=(n-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];t.scale(150*i).translate([o,a])}),r)}function cp(t,e,r){return lp(t,(function(r){var n=+e,i=n/(r[1][1]-r[0][1]),o=-i*r[0][0],a=(n-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([o,a])}),r)}ap.prototype={constructor:ap,point:function(t,e){this.stream.point(t,e)},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()}};var pp=yh(30*_h),up=function(t,e){return+e?function(t,e){function r(n,i,o,a,l,h,s,d,c,p,u,m,f,g){var b=s-n,_=d-i,x=b*b+_*_;if(x>4*e&&f--){var v=a+p,k=l+u,y=h+m,w=Dh(v*v+k*k+y*y),S=jh(y/=w),M=xh(xh(y)-1)<1e-6||xh(o-c)<1e-6?(o+c)/2:kh(k,v),C=t(M,S),T=C[0],E=C[1],D=T-n,N=E-i,A=_*D-b*N;(A*A/x>e||xh((b*D+_*N)/x-.5)>.3||a*p+l*u+h*m2?t[2]%360*_h:0,D()):[g*bh,b*bh,_*bh]},T.angle=function(t){return arguments.length?(x=t%360*_h,D()):x*bh},T.reflectX=function(t){return arguments.length?(v=t?-1:1,D()):v<0},T.reflectY=function(t){return arguments.length?(k=t?-1:1,D()):k<0},T.precision=function(t){return arguments.length?(a=up(l,C=t*t),N()):Dh(C)},T.fitExtent=function(t,e){return hp(T,t,e)},T.fitSize=function(t,e){return sp(T,t,e)},T.fitWidth=function(t,e){return dp(T,t,e)},T.fitHeight=function(t,e){return cp(T,t,e)},function(){return e=t.apply(this,arguments),T.invert=e.invert&&E,D()}}function xp(t){var e=0,r=uh/3,n=_p(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*_h,r=t[1]*_h):[e*bh,r*bh]},i}function vp(t,e){var r=Th(t),n=(r+Th(e))/2;if(xh(n)<1e-6)return function(t){var e=yh(t);function r(t,r){return[t*e,Th(r)/e]}return r.invert=function(t,r){return[t/e,jh(r*e)]},r}(t);var i=1+r*(2*n-r),o=Dh(i)/n;function a(t,e){var r=Dh(i-2*n*Th(e))/n;return[r*Th(t*=n),o-r*yh(t)]}return a.invert=function(t,e){var r=o-e,a=kh(t,xh(r))*Eh(r);return r*n<0&&(a-=uh*Eh(t)*Eh(r)),[a/n,jh((i-(t*t+r*r)*n*n)/(2*n))]},a}var kp=function(){return xp(vp).scale(155.424).center([0,33.6442])},yp=function(){return kp().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};var wp=function(){var t,e,r,n,i,o,a=yp(),l=kp().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=kp().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(t,e){o=[t,e]}};function d(t){var e=t[0],a=t[1];return o=null,r.point(e,a),o||(n.point(e,a),o)||(i.point(e,a),o)}function c(){return t=e=null,d}return d.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?l:i>=.166&&i<.234&&n>=-.214&&n<-.115?h:a).invert(t)},d.stream=function(r){return t&&e===r?t:(n=[a.stream(e=r),l.stream(r),h.stream(r)],i=n.length,t={point:function(t,e){for(var r=-1;++r0?e<1e-6-mh&&(e=1e-6-mh):e>mh-1e-6&&(e=mh-1e-6);var r=i/Ch(zp(e),n);return[r*Th(n*t),i-r*yh(n*t)]}return o.invert=function(t,e){var r=i-e,o=Eh(n)*Dh(t*t+r*r),a=kh(t,xh(r))*Eh(r);return r*n<0&&(a-=uh*Eh(t)*Eh(r)),[a/n,2*vh(Ch(i/o,1/n))-mh]},o}var Ip=function(){return xp(Lp).scale(109.5).parallels([30,30])};function Op(t,e){return[t,e]}Op.invert=Op;var Pp=function(){return bp(Op).scale(152.63)};function Rp(t,e){var r=yh(t),n=t===e?Th(t):(r-yh(e))/(e-t),i=r/n+t;if(xh(n)<1e-6)return Op;function o(t,e){var r=i-e,o=n*t;return[r*Th(o),i-r*yh(o)]}return o.invert=function(t,e){var r=i-e,o=kh(t,xh(r))*Eh(r);return r*n<0&&(o-=uh*Eh(t)*Eh(r)),[o/n,i-Eh(n)*Dh(t*t+r*r)]},o}var Fp=function(){return xp(Rp).scale(131.154).center([0,13.9389])},Up=1.340264,Hp=-.081106,Bp=893e-6,Wp=.003796,Yp=Dh(3)/2;function qp(t,e){var r=jh(Yp*Th(e)),n=r*r,i=n*n*n;return[t*yh(r)/(Yp*(Up+3*Hp*n+i*(7*Bp+9*Wp*n))),r*(Up+Hp*n+i*(Bp+Wp*n))]}qp.invert=function(t,e){for(var r,n=e,i=n*n,o=i*i*i,a=0;a<12&&(o=(i=(n-=r=(n*(Up+Hp*i+o*(Bp+Wp*i))-e)/(Up+3*Hp*i+o*(7*Bp+9*Wp*i)))*n)*i*i,!(xh(r)<1e-12));++a);return[Yp*t*(Up+3*Hp*i+o*(7*Bp+9*Wp*i))/yh(n),jh(Th(n)/Yp)]};var Gp=function(){return bp(qp).scale(177.158)};function Vp(t,e){var r=yh(e),n=yh(t)*r;return[r*Th(t)/n,Th(e)/n]}Vp.invert=Mp(vh);var Qp=function(){return bp(Vp).scale(144.049).clipAngle(60)},Xp=function(){var t,e,r,n,i,o,a,l=1,h=0,s=0,d=1,c=1,p=0,u=null,m=1,f=1,g=op({point:function(t,e){var r=x([t,e]);this.stream.point(r[0],r[1])}}),b=ac;function _(){return m=l*d,f=l*c,o=a=null,x}function x(r){var n=r[0]*m,i=r[1]*f;if(p){var o=i*t-n*e;n=n*t+i*e,i=o}return[n+h,i+s]}return x.invert=function(r){var n=r[0]-h,i=r[1]-s;if(p){var o=i*t+n*e;n=n*t-i*e,i=o}return[n/m,i/f]},x.stream=function(t){return o&&a===t?o:o=g(b(a=t))},x.postclip=function(t){return arguments.length?(b=t,u=r=n=i=null,_()):b},x.clipExtent=function(t){return arguments.length?(b=null==t?(u=r=n=i=null,ac):Ed(u=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),_()):null==u?null:[[u,r],[n,i]]},x.scale=function(t){return arguments.length?(l=+t,_()):l},x.translate=function(t){return arguments.length?(h=+t[0],s=+t[1],_()):[h,s]},x.angle=function(r){return arguments.length?(e=Th(p=r%360*_h),t=yh(p),_()):p*bh},x.reflectX=function(t){return arguments.length?(d=t?-1:1,_()):d<0},x.reflectY=function(t){return arguments.length?(c=t?-1:1,_()):c<0},x.fitExtent=function(t,e){return hp(x,t,e)},x.fitSize=function(t,e){return sp(x,t,e)},x.fitWidth=function(t,e){return dp(x,t,e)},x.fitHeight=function(t,e){return cp(x,t,e)},x};function Zp(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}Zp.invert=function(t,e){var r,n=e,i=25;do{var o=n*n,a=o*o;n-=r=(n*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-e)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(xh(r)>1e-6&&--i>0);return[t/(.8707+(o=n*n)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),n]};var $p=function(){return bp(Zp).scale(175.295)};function Kp(t,e){return[yh(e)*Th(t),Th(e)]}Kp.invert=Mp(jh);var Jp=function(){return bp(Kp).scale(249.5).clipAngle(90.000001)};function tu(t,e){var r=yh(e),n=1+yh(t)*r;return[r*Th(t)/n,Th(e)/n]}tu.invert=Mp((function(t){return 2*vh(t)}));var eu=function(){return bp(tu).scale(250).clipAngle(142)};function ru(t,e){return[Mh(Nh((mh+e)/2)),-t]}ru.invert=function(t,e){return[-e,2*vh(Sh(t))-mh]};var nu=function(){var t=jp(ru),e=t.center,r=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90]).scale(159.155)};function iu(t,e){return t.parent===e.parent?1:2}function ou(t,e){return t+e.x}function au(t,e){return Math.max(t,e.y)}var lu=function(){var t=iu,e=1,r=1,n=!1;function i(i){var o,a=0;i.eachAfter((function(e){var r=e.children;r?(e.x=function(t){return t.reduce(ou,0)/t.length}(r),e.y=function(t){return 1+t.reduce(au,0)}(r)):(e.x=o?a+=t(e,o):0,e.y=0,o=e)}));var l=function(t){for(var e;e=t.children;)t=e[0];return t}(i),h=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(i),s=l.x-t(l,h)/2,d=h.x+t(h,l)/2;return i.eachAfter(n?function(t){t.x=(t.x-i.x)*e,t.y=(i.y-t.y)*r}:function(t){t.x=(t.x-s)/(d-s)*e,t.y=(1-(i.y?t.y/i.y:1))*r})}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i};function hu(t){var e=0,r=t.children,n=r&&r.length;if(n)for(;--n>=0;)e+=r[n].value;else e=1;t.value=e}function su(t,e){var r,n,i,o,a,l=new uu(t),h=+t.value&&(l.value=t.value),s=[l];for(null==e&&(e=du);r=s.pop();)if(h&&(r.value=+r.data.value),(i=e(r.data))&&(a=i.length))for(r.children=new Array(a),o=a-1;o>=0;--o)s.push(n=r.children[o]=new uu(i[o])),n.parent=r,n.depth=r.depth+1;return l.eachBefore(pu)}function du(t){return t.children}function cu(t){t.data=t.data.data}function pu(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function uu(t){this.data=t,this.depth=this.height=0,this.parent=null}uu.prototype=su.prototype={constructor:uu,count:function(){return this.eachAfter(hu)},each:function(t){var e,r,n,i,o=this,a=[o];do{for(e=a.reverse(),a=[];o=e.pop();)if(t(o),r=o.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;t=r.pop(),e=n.pop();for(;t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return su(this).eachBefore(cu)}};var mu=Array.prototype.slice;var fu=function(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(mu.call(t))).length,o=[];n0&&r*r>n*n+i*i}function xu(t,e){for(var r=0;r(a*=a)?(n=(s+a-i)/(2*s),o=Math.sqrt(Math.max(0,a/s-n*n)),r.x=t.x-n*l-o*h,r.y=t.y-n*h+o*l):(n=(s+i-a)/(2*s),o=Math.sqrt(Math.max(0,i/s-n*n)),r.x=e.x+n*l-o*h,r.y=e.y+n*h+o*l)):(r.x=e.x+r.r,r.y=e.y)}function Su(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function Mu(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,o=(e.y*r.r+r.y*e.r)/n;return i*i+o*o}function Cu(t){this._=t,this.next=null,this.previous=null}function Tu(t){if(!(i=t.length))return 0;var e,r,n,i,o,a,l,h,s,d,c;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;wu(r,e,n=t[2]),e=new Cu(e),r=new Cu(r),n=new Cu(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(l=3;l0)throw new Error(\"cycle\");return o}return r.id=function(e){return arguments.length?(t=Nu(e),r):t},r.parentId=function(t){return arguments.length?(e=Nu(t),r):e},r};function Gu(t,e){return t.parent===e.parent?1:2}function Vu(t){var e=t.children;return e?e[0]:t.t}function Qu(t){var e=t.children;return e?e[e.length-1]:t.t}function Xu(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function Zu(t,e,r){return t.a.parent===e.parent?t.a:r}function $u(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}$u.prototype=Object.create(uu.prototype);var Ku=function(){var t=Gu,e=1,r=1,n=null;function i(i){var h=function(t){for(var e,r,n,i,o,a=new $u(t,0),l=[a];e=l.pop();)if(n=e._.children)for(e.children=new Array(o=n.length),i=o-1;i>=0;--i)l.push(r=e.children[i]=new $u(n[i],i)),r.parent=e;return(a.parent=new $u(null,0)).children=[a],a}(i);if(h.eachAfter(o),h.parent.m=-h.z,h.eachBefore(a),n)i.eachBefore(l);else{var s=i,d=i,c=i;i.eachBefore((function(t){t.xd.x&&(d=t),t.depth>c.depth&&(c=t)}));var p=s===d?1:t(s,d)/2,u=p-s.x,m=e/(d.x+p+u),f=r/(c.depth||1);i.eachBefore((function(t){t.x=(t.x+u)*m,t.y=t.depth*f}))}return i}function o(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,o=i.length;--o>=0;)(e=i[o]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var o=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-o):e.z=o}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,o=e,a=e,l=r,h=o.parent.children[0],s=o.m,d=a.m,c=l.m,p=h.m;l=Qu(l),o=Vu(o),l&&o;)h=Vu(h),(a=Qu(a)).a=e,(i=l.z+c-o.z-s+t(l._,o._))>0&&(Xu(Zu(l,e,n),e,i),s+=i,d+=i),c+=l.m,s+=o.m,p+=h.m,d+=a.m;l&&!Qu(a)&&(a.t=l,a.m+=c-d),o&&!Vu(h)&&(h.t=o,h.m+=s-p,n=e)}return n}(e,i,e.parent.A||n[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i},Ju=function(t,e,r,n,i){for(var o,a=t.children,l=-1,h=a.length,s=t.value&&(i-r)/t.value;++lp&&(p=l),g=d*d*f,(u=Math.max(p/g,g/c))>m){d-=l;break}m=u}b.push(a={value:d,dice:h1?e:1)},r}(tm),nm=function(){var t=rm,e=!1,r=1,n=1,i=[0],o=Au,a=Au,l=Au,h=Au,s=Au;function d(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(c),i=[0],e&&t.eachBefore(Ru),t}function c(e){var r=i[e.depth],n=e.x0+r,d=e.y0+r,c=e.x1-r,p=e.y1-r;c=r-1){var d=l[e];return d.x0=i,d.y0=o,d.x1=a,void(d.y1=h)}var c=s[e],p=n/2+c,u=e+1,m=r-1;for(;u>>1;s[f]h-o){var _=(i*b+a*g)/n;t(e,u,g,i,o,_,h),t(u,r,b,_,o,a,h)}else{var x=(o*b+h*g)/n;t(e,u,g,i,o,a,x),t(u,r,b,i,x,a,h)}}(0,h,t.value,e,r,n,i)},om=function(t,e,r,n,i){(1&t.depth?Ju:Fu)(t,e,r,n,i)},am=function t(e){function r(t,r,n,i,o){if((a=t._squarify)&&a.ratio===e)for(var a,l,h,s,d,c=-1,p=a.length,u=t.value;++c1?e:1)},r}(tm),lm=function(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}},hm=function(t,e){var r=sr(+t,+e);return function(t){var e=r(t);return e-360*Math.floor(e/360)}},sm=function(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}},dm=Math.SQRT2;function cm(t){return((t=Math.exp(t))+1/t)/2}var pm=function(t,e){var r,n,i=t[0],o=t[1],a=t[2],l=e[0],h=e[1],s=e[2],d=l-i,c=h-o,p=d*d+c*c;if(p<1e-12)n=Math.log(s/a)/dm,r=function(t){return[i+t*d,o+t*c,a*Math.exp(dm*t*n)]};else{var u=Math.sqrt(p),m=(s*s-a*a+4*p)/(2*a*2*u),f=(s*s-a*a-4*p)/(2*s*2*u),g=Math.log(Math.sqrt(m*m+1)-m),b=Math.log(Math.sqrt(f*f+1)-f);n=(b-g)/dm,r=function(t){var e,r=t*n,l=cm(g),h=a/(2*u)*(l*(e=dm*r+g,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+h*d,o+h*c,a*l/cm(dm*r+g)]}}return r.duration=1e3*n,r};function um(t){return function(e,r){var n=t((e=er(e)).h,(r=er(r)).h),i=cr(e.s,r.s),o=cr(e.l,r.l),a=cr(e.opacity,r.opacity);return function(t){return e.h=n(t),e.s=i(t),e.l=o(t),e.opacity=a(t),e+\"\"}}}var mm=um(sr),fm=um(cr);function gm(t,e){var r=cr((t=go(t)).l,(e=go(e)).l),n=cr(t.a,e.a),i=cr(t.b,e.b),o=cr(t.opacity,e.opacity);return function(e){return t.l=r(e),t.a=n(e),t.b=i(e),t.opacity=o(e),t+\"\"}}function bm(t){return function(e,r){var n=t((e=So(e)).h,(r=So(r)).h),i=cr(e.c,r.c),o=cr(e.l,r.l),a=cr(e.opacity,r.opacity);return function(t){return e.h=n(t),e.c=i(t),e.l=o(t),e.opacity=a(t),e+\"\"}}}var _m=bm(sr),xm=bm(cr);function vm(t){return function e(r){function n(e,n){var i=t((e=jo(e)).h,(n=jo(n)).h),o=cr(e.s,n.s),a=cr(e.l,n.l),l=cr(e.opacity,n.opacity);return function(t){return e.h=i(t),e.s=o(t),e.l=a(Math.pow(t,r)),e.opacity=l(t),e+\"\"}}return r=+r,n.gamma=e,n}(1)}var km=vm(sr),ym=vm(cr);function wm(t,e){for(var r=0,n=e.length-1,i=e[0],o=new Array(n<0?0:n);r1&&(e=t[o[a-2]],r=t[o[a-1]],n=t[l],(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])<=0);)--a;o[a++]=l}return o.slice(0,a)}var Dm=function(t){if((r=t.length)<3)return null;var e,r,n=new Array(r),i=new Array(r);for(e=0;e=0;--e)s.push(t[n[o[e]][2]]);for(e=+l;el!=s>l&&a<(h-r)*(l-n)/(s-n)+r&&(d=!d),h=r,s=n;return d},Am=function(t){for(var e,r,n=-1,i=t.length,o=t[i-1],a=o[0],l=o[1],h=0;++n1);return t+r*o*Math.sqrt(-2*Math.log(i)/i)}}return r.source=t,r}(jm),Im=function t(e){function r(){var t=Lm.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(jm),Om=function t(e){function r(t){return function(){for(var r=0,n=0;nn&&(e=r,r=n,n=e),function(t){return Math.max(r,Math.min(n,t))}}function tf(t,e,r){var n=t[0],i=t[1],o=e[0],a=e[1];return i2?ef:tf,i=o=null,c}function c(e){return isNaN(e=+e)?r:(i||(i=n(a.map(t),l,h)))(t(s(e)))}return c.invert=function(r){return s(e((o||(o=n(l,a.map(t),kr)))(r)))},c.domain=function(t){return arguments.length?(a=Bm.call(t,Xm),s===$m||(s=Jm(a)),d()):a.slice()},c.range=function(t){return arguments.length?(l=Wm.call(t),d()):l.slice()},c.rangeRound=function(t){return l=Wm.call(t),h=sm,d()},c.clamp=function(t){return arguments.length?(s=t?Jm(a):$m,c):s!==$m},c.interpolate=function(t){return arguments.length?(h=t,d()):h},c.unknown=function(t){return arguments.length?(r=t,c):r},function(r,n){return t=r,e=n,d()}}function of(t,e){return nf()(t,e)}var af=function(t,e,r,n){var i,o=D(t,e,r);switch((n=Vl(null==n?\",f\":n)).type){case\"s\":var a=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=lh(o,a))||(n.precision=i),Kl(n,a);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=n.precision||isNaN(i=hh(o,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-(\"e\"===n.type));break;case\"f\":case\"%\":null!=n.precision||isNaN(i=ah(o))||(n.precision=i-2*(\"%\"===n.type))}return $l(n)};function lf(t){var e=t.domain;return t.ticks=function(t){var r=e();return T(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return af(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,i=e(),o=0,a=i.length-1,l=i[o],h=i[a];return h0?n=E(l=Math.floor(l/n)*n,h=Math.ceil(h/n)*n,r):n<0&&(n=E(l=Math.ceil(l*n)/n,h=Math.floor(h*n)/n,r)),n>0?(i[o]=Math.floor(l/n)*n,i[a]=Math.ceil(h/n)*n,e(i)):n<0&&(i[o]=Math.ceil(l*n)/n,i[a]=Math.floor(h*n)/n,e(i)),t},t}function hf(){var t=of($m,$m);return t.copy=function(){return rf(t,hf())},Fm.apply(t,arguments),lf(t)}function sf(t){var e;function r(t){return isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(e){return arguments.length?(t=Bm.call(e,Xm),r):t.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return sf(t).unknown(e)},t=arguments.length?Bm.call(t,Xm):[0,1],lf(r)}var df=function(t,e){var r,n=0,i=(t=t.slice()).length-1,o=t[n],a=t[i];return a0){for(;ph)break;f.push(c)}}else for(;p=1;--d)if(!((c=s*d)h)break;f.push(c)}}else f=T(p,u,Math.min(u-p,m)).map(r);return n?f.reverse():f},n.tickFormat=function(t,i){if(null==i&&(i=10===o?\".0e\":\",\"),\"function\"!=typeof i&&(i=$l(i)),t===1/0)return i;null==t&&(t=10);var a=Math.max(1,o*t/n.ticks().length);return function(t){var n=t/r(Math.round(e(t)));return n*o0?n[i-1]:e[0],i=n?[i[n-1],r]:[i[a-1],i[a]]},a.unknown=function(e){return arguments.length?(t=e,a):a},a.thresholds=function(){return i.slice()},a.copy=function(){return Nf().domain([e,r]).range(o).unknown(t)},Fm.apply(lf(a),arguments)}function Af(){var t,e=[.5],r=[0,1],n=1;function i(i){return i<=i?r[s(e,i,0,n)]:t}return i.domain=function(t){return arguments.length?(e=Wm.call(t),n=Math.min(e.length,r.length-1),i):e.slice()},i.range=function(t){return arguments.length?(r=Wm.call(t),n=Math.min(e.length,r.length-1),i):r.slice()},i.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},i.unknown=function(e){return arguments.length?(t=e,i):t},i.copy=function(){return Af().domain(e).range(r).unknown(t)},Fm.apply(i,arguments)}var jf=new Date,zf=new Date;function Lf(t,e,r,n){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(r){return t(r=new Date(r-1)),e(r,1),t(r),r},i.round=function(t){var e=i(t),r=i.ceil(t);return t-e0))return l;do{l.push(a=new Date(+r)),e(r,o),t(r)}while(a=e)for(;t(e),!r(e);)e.setTime(e-1)}),(function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!r(t););else for(;--n>=0;)for(;e(t,1),!r(t););}))},r&&(i.count=function(e,n){return jf.setTime(+e),zf.setTime(+n),t(jf),t(zf),Math.floor(r(jf,zf))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(n?function(e){return n(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var If=Lf((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));If.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Lf((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null};var Of=If,Pf=If.range,Rf=Lf((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),Ff=Rf,Uf=Rf.range;function Hf(t){return Lf((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var Bf=Hf(0),Wf=Hf(1),Yf=Hf(2),qf=Hf(3),Gf=Hf(4),Vf=Hf(5),Qf=Hf(6),Xf=Bf.range,Zf=Wf.range,$f=Yf.range,Kf=qf.range,Jf=Gf.range,tg=Vf.range,eg=Qf.range,rg=Lf((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1})),ng=rg,ig=rg.range,og=Lf((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),ag=og,lg=og.range,hg=Lf((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),sg=hg,dg=hg.range,cg=Lf((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),pg=cg,ug=cg.range,mg=Lf((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));mg.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Lf((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):mg:null};var fg=mg,gg=mg.range;function bg(t){return Lf((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var _g=bg(0),xg=bg(1),vg=bg(2),kg=bg(3),yg=bg(4),wg=bg(5),Sg=bg(6),Mg=_g.range,Cg=xg.range,Tg=vg.range,Eg=kg.range,Dg=yg.range,Ng=wg.range,Ag=Sg.range,jg=Lf((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),zg=jg,Lg=jg.range,Ig=Lf((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Ig.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Lf((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null};var Og=Ig,Pg=Ig.range;function Rg(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Fg(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ug(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function Hg(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,o=t.days,a=t.shortDays,l=t.months,h=t.shortMonths,s=Jg(i),d=tb(i),c=Jg(o),p=tb(o),u=Jg(a),m=tb(a),f=Jg(l),g=tb(l),b=Jg(h),_=tb(h),x={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return h[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:null,d:kb,e:kb,f:Cb,g:Pb,G:Fb,H:yb,I:wb,j:Sb,L:Mb,m:Tb,M:Eb,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:h_,s:s_,S:Db,u:Nb,U:Ab,V:zb,w:Lb,W:Ib,x:null,X:null,y:Ob,Y:Rb,Z:Ub,\"%\":l_},v={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return h[t.getUTCMonth()]},B:function(t){return l[t.getUTCMonth()]},c:null,d:Hb,e:Hb,f:Gb,g:n_,G:o_,H:Bb,I:Wb,j:Yb,L:qb,m:Vb,M:Qb,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:h_,s:s_,S:Xb,u:Zb,U:$b,V:Jb,w:t_,W:e_,x:null,X:null,y:r_,Y:i_,Z:a_,\"%\":l_},k={a:function(t,e,r){var n=u.exec(e.slice(r));return n?(t.w=m[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=c.exec(e.slice(r));return n?(t.w=p[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=b.exec(e.slice(r));return n?(t.m=_[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=f.exec(e.slice(r));return n?(t.m=g[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,r,n){return S(t,e,r,n)},d:cb,e:cb,f:bb,g:lb,G:ab,H:ub,I:ub,j:pb,L:gb,m:db,M:mb,p:function(t,e,r){var n=s.exec(e.slice(r));return n?(t.p=d[n[0].toLowerCase()],r+n[0].length):-1},q:sb,Q:xb,s:vb,S:fb,u:rb,U:nb,V:ib,w:eb,W:ob,x:function(t,e,n){return S(t,r,e,n)},X:function(t,e,r){return S(t,n,e,r)},y:lb,Y:ab,Z:hb,\"%\":_b};function y(t,e){return function(r){var n,i,o,a=[],l=-1,h=0,s=t.length;for(r instanceof Date||(r=new Date(+r));++l53)return null;\"w\"in o||(o.w=1),\"Z\"in o?(i=(n=Fg(Ug(o.y,0,1))).getUTCDay(),n=i>4||0===i?xg.ceil(n):xg(n),n=zg.offset(n,7*(o.V-1)),o.y=n.getUTCFullYear(),o.m=n.getUTCMonth(),o.d=n.getUTCDate()+(o.w+6)%7):(i=(n=Rg(Ug(o.y,0,1))).getDay(),n=i>4||0===i?Wf.ceil(n):Wf(n),n=ng.offset(n,7*(o.V-1)),o.y=n.getFullYear(),o.m=n.getMonth(),o.d=n.getDate()+(o.w+6)%7)}else(\"W\"in o||\"U\"in o)&&(\"w\"in o||(o.w=\"u\"in o?o.u%7:\"W\"in o?1:0),i=\"Z\"in o?Fg(Ug(o.y,0,1)).getUTCDay():Rg(Ug(o.y,0,1)).getDay(),o.m=0,o.d=\"W\"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return\"Z\"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Fg(o)):Rg(o)}}function S(t,e,r,n){for(var i,o,a=0,l=e.length,h=r.length;a=h)return-1;if(37===(i=e.charCodeAt(a++))){if(i=e.charAt(a++),!(o=k[i in Vg?e.charAt(a++):i])||(n=o(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return x.x=y(r,x),x.X=y(n,x),x.c=y(e,x),v.x=y(r,v),v.X=y(n,v),v.c=y(e,v),{format:function(t){var e=y(t+=\"\",x);return e.toString=function(){return t},e},parse:function(t){var e=w(t+=\"\",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=y(t+=\"\",v);return e.toString=function(){return t},e},utcParse:function(t){var e=w(t+=\"\",!0);return e.toString=function(){return t},e}}}var Bg,Wg,Yg,qg,Gg,Vg={\"-\":\"\",_:\" \",0:\"0\"},Qg=/^\\s*\\d+/,Xg=/^%/,Zg=/[\\\\^$*+?|[\\]().{}]/g;function $g(t,e,r){var n=t<0?\"-\":\"\",i=(n?-t:t)+\"\",o=i.length;return n+(o68?1900:2e3),r+n[0].length):-1}function hb(t,e,r){var n=/^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||\"00\")),r+n[0].length):-1}function sb(t,e,r){var n=Qg.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function db(t,e,r){var n=Qg.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function cb(t,e,r){var n=Qg.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function pb(t,e,r){var n=Qg.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function ub(t,e,r){var n=Qg.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function mb(t,e,r){var n=Qg.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function fb(t,e,r){var n=Qg.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function gb(t,e,r){var n=Qg.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function bb(t,e,r){var n=Qg.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function _b(t,e,r){var n=Xg.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function xb(t,e,r){var n=Qg.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function vb(t,e,r){var n=Qg.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function kb(t,e){return $g(t.getDate(),e,2)}function yb(t,e){return $g(t.getHours(),e,2)}function wb(t,e){return $g(t.getHours()%12||12,e,2)}function Sb(t,e){return $g(1+ng.count(Of(t),t),e,3)}function Mb(t,e){return $g(t.getMilliseconds(),e,3)}function Cb(t,e){return Mb(t,e)+\"000\"}function Tb(t,e){return $g(t.getMonth()+1,e,2)}function Eb(t,e){return $g(t.getMinutes(),e,2)}function Db(t,e){return $g(t.getSeconds(),e,2)}function Nb(t){var e=t.getDay();return 0===e?7:e}function Ab(t,e){return $g(Bf.count(Of(t)-1,t),e,2)}function jb(t){var e=t.getDay();return e>=4||0===e?Gf(t):Gf.ceil(t)}function zb(t,e){return t=jb(t),$g(Gf.count(Of(t),t)+(4===Of(t).getDay()),e,2)}function Lb(t){return t.getDay()}function Ib(t,e){return $g(Wf.count(Of(t)-1,t),e,2)}function Ob(t,e){return $g(t.getFullYear()%100,e,2)}function Pb(t,e){return $g((t=jb(t)).getFullYear()%100,e,2)}function Rb(t,e){return $g(t.getFullYear()%1e4,e,4)}function Fb(t,e){var r=t.getDay();return $g((t=r>=4||0===r?Gf(t):Gf.ceil(t)).getFullYear()%1e4,e,4)}function Ub(t){var e=t.getTimezoneOffset();return(e>0?\"-\":(e*=-1,\"+\"))+$g(e/60|0,\"0\",2)+$g(e%60,\"0\",2)}function Hb(t,e){return $g(t.getUTCDate(),e,2)}function Bb(t,e){return $g(t.getUTCHours(),e,2)}function Wb(t,e){return $g(t.getUTCHours()%12||12,e,2)}function Yb(t,e){return $g(1+zg.count(Og(t),t),e,3)}function qb(t,e){return $g(t.getUTCMilliseconds(),e,3)}function Gb(t,e){return qb(t,e)+\"000\"}function Vb(t,e){return $g(t.getUTCMonth()+1,e,2)}function Qb(t,e){return $g(t.getUTCMinutes(),e,2)}function Xb(t,e){return $g(t.getUTCSeconds(),e,2)}function Zb(t){var e=t.getUTCDay();return 0===e?7:e}function $b(t,e){return $g(_g.count(Og(t)-1,t),e,2)}function Kb(t){var e=t.getUTCDay();return e>=4||0===e?yg(t):yg.ceil(t)}function Jb(t,e){return t=Kb(t),$g(yg.count(Og(t),t)+(4===Og(t).getUTCDay()),e,2)}function t_(t){return t.getUTCDay()}function e_(t,e){return $g(xg.count(Og(t)-1,t),e,2)}function r_(t,e){return $g(t.getUTCFullYear()%100,e,2)}function n_(t,e){return $g((t=Kb(t)).getUTCFullYear()%100,e,2)}function i_(t,e){return $g(t.getUTCFullYear()%1e4,e,4)}function o_(t,e){var r=t.getUTCDay();return $g((t=r>=4||0===r?yg(t):yg.ceil(t)).getUTCFullYear()%1e4,e,4)}function a_(){return\"+0000\"}function l_(){return\"%\"}function h_(t){return+t}function s_(t){return Math.floor(+t/1e3)}function d_(t){return Bg=Hg(t),Wg=Bg.format,Yg=Bg.parse,qg=Bg.utcFormat,Gg=Bg.utcParse,Bg}d_({dateTime:\"%x, %X\",date:\"%-m/%-d/%Y\",time:\"%-I:%M:%S %p\",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\"]});function c_(t){return new Date(t)}function p_(t){return t instanceof Date?+t:+new Date(+t)}function u_(t,e,r,n,i,a,l,h,s){var d=of($m,$m),c=d.invert,p=d.domain,u=s(\".%L\"),m=s(\":%S\"),f=s(\"%I:%M\"),g=s(\"%I %p\"),b=s(\"%a %d\"),_=s(\"%b %d\"),x=s(\"%B\"),v=s(\"%Y\"),k=[[l,1,1e3],[l,5,5e3],[l,15,15e3],[l,30,3e4],[a,1,6e4],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,36e5],[i,3,108e5],[i,6,216e5],[i,12,432e5],[n,1,864e5],[n,2,1728e5],[r,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function y(o){return(l(o)1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return ev.h=360*t-100,ev.s=1.5-1.5*e,ev.l=.8-.9*e,ev+\"\"},nv=Qe(),iv=Math.PI/3,ov=2*Math.PI/3,av=function(t){var e;return t=(.5-t)*Math.PI,nv.r=255*(e=Math.sin(t))*e,nv.g=255*(e=Math.sin(t+iv))*e,nv.b=255*(e=Math.sin(t+ov))*e,nv+\"\"},lv=function(t){return t=Math.max(0,Math.min(1,t)),\"rgb(\"+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+\", \"+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+\", \"+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+\")\"};function hv(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}}var sv=hv(F_(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\")),dv=hv(F_(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\")),cv=hv(F_(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\")),pv=hv(F_(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\")),uv=function(t){return we(ne(t).call(document.documentElement))},mv=0;function fv(){return new gv}function gv(){this._=\"@\"+(++mv).toString(36)}gv.prototype=fv.prototype={constructor:gv,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var bv=function(t){return\"string\"==typeof t?new ve([document.querySelectorAll(t)],[document.documentElement]):new ve([null==t?[]:t],xe)},_v=function(t,e){null==e&&(e=Dr().touches);for(var r=0,n=e?e.length:0,i=new Array(n);r1?0:t<-1?Tv:Math.acos(t)}function Av(t){return t>=1?Ev:t<=-1?-Ev:Math.asin(t)}function jv(t){return t.innerRadius}function zv(t){return t.outerRadius}function Lv(t){return t.startAngle}function Iv(t){return t.endAngle}function Ov(t){return t&&t.padAngle}function Pv(t,e,r,n,i,o,a,l){var h=r-t,s=n-e,d=a-i,c=l-o,p=c*h-d*s;if(!(p*p<1e-12))return[t+(p=(d*(e-o)-c*(t-i))/p)*h,e+p*s]}function Rv(t,e,r,n,i,o,a){var l=t-r,h=e-n,s=(a?o:-o)/Cv(l*l+h*h),d=s*h,c=-s*l,p=t+d,u=e+c,m=r+d,f=n+c,g=(p+m)/2,b=(u+f)/2,_=m-p,x=f-u,v=_*_+x*x,k=i-o,y=p*f-m*u,w=(x<0?-1:1)*Cv(wv(0,k*k*v-y*y)),S=(y*x-_*w)/v,M=(-y*_-x*w)/v,C=(y*x+_*w)/v,T=(-y*_+x*w)/v,E=S-g,D=M-b,N=C-g,A=T-b;return E*E+D*D>N*N+A*A&&(S=C,M=T),{cx:S,cy:M,x01:-d,y01:-c,x11:S*(i/k-1),y11:M*(i/k-1)}}var Fv=function(){var t=jv,e=zv,r=xv(0),n=null,i=Lv,o=Iv,a=Ov,l=null;function h(){var h,s,d=+t.apply(this,arguments),c=+e.apply(this,arguments),p=i.apply(this,arguments)-Ev,u=o.apply(this,arguments)-Ev,m=vv(u-p),f=u>p;if(l||(l=h=Wi()),c1e-12)if(m>Dv-1e-12)l.moveTo(c*yv(p),c*Mv(p)),l.arc(0,0,c,p,u,!f),d>1e-12&&(l.moveTo(d*yv(u),d*Mv(u)),l.arc(0,0,d,u,p,f));else{var g,b,_=p,x=u,v=p,k=u,y=m,w=m,S=a.apply(this,arguments)/2,M=S>1e-12&&(n?+n.apply(this,arguments):Cv(d*d+c*c)),C=Sv(vv(c-d)/2,+r.apply(this,arguments)),T=C,E=C;if(M>1e-12){var D=Av(M/d*Mv(S)),N=Av(M/c*Mv(S));(y-=2*D)>1e-12?(v+=D*=f?1:-1,k-=D):(y=0,v=k=(p+u)/2),(w-=2*N)>1e-12?(_+=N*=f?1:-1,x-=N):(w=0,_=x=(p+u)/2)}var A=c*yv(_),j=c*Mv(_),z=d*yv(k),L=d*Mv(k);if(C>1e-12){var I,O=c*yv(x),P=c*Mv(x),R=d*yv(v),F=d*Mv(v);if(m1e-12?E>1e-12?(g=Rv(R,F,A,j,c,E,f),b=Rv(O,P,z,L,c,E,f),l.moveTo(g.cx+g.x01,g.cy+g.y01),E1e-12&&y>1e-12?T>1e-12?(g=Rv(z,L,O,P,d,-T,f),b=Rv(A,j,R,F,d,-T,f),l.lineTo(g.cx+g.x01,g.cy+g.y01),T=d;--c)l.point(g[c],b[c]);l.lineEnd(),l.areaEnd()}f&&(g[s]=+t(p,s,h),b[s]=+r(p,s,h),l.point(e?+e(p,s,h):g[s],n?+n(p,s,h):b[s]))}if(u)return l=null,u+\"\"||null}function s(){return Yv().defined(i).curve(a).context(o)}return h.x=function(r){return arguments.length?(t=\"function\"==typeof r?r:xv(+r),e=null,h):t},h.x0=function(e){return arguments.length?(t=\"function\"==typeof e?e:xv(+e),h):t},h.x1=function(t){return arguments.length?(e=null==t?null:\"function\"==typeof t?t:xv(+t),h):e},h.y=function(t){return arguments.length?(r=\"function\"==typeof t?t:xv(+t),n=null,h):r},h.y0=function(t){return arguments.length?(r=\"function\"==typeof t?t:xv(+t),h):r},h.y1=function(t){return arguments.length?(n=null==t?null:\"function\"==typeof t?t:xv(+t),h):n},h.lineX0=h.lineY0=function(){return s().x(t).y(r)},h.lineY1=function(){return s().x(t).y(n)},h.lineX1=function(){return s().x(e).y(r)},h.defined=function(t){return arguments.length?(i=\"function\"==typeof t?t:xv(!!t),h):i},h.curve=function(t){return arguments.length?(a=t,null!=o&&(l=a(o)),h):a},h.context=function(t){return arguments.length?(null==t?o=l=null:l=a(o=t),h):o},h},Gv=function(t,e){return et?1:e>=t?0:NaN},Vv=function(t){return t},Qv=function(){var t=Vv,e=Gv,r=null,n=xv(0),i=xv(Dv),o=xv(0);function a(a){var l,h,s,d,c,p=a.length,u=0,m=new Array(p),f=new Array(p),g=+n.apply(this,arguments),b=Math.min(Dv,Math.max(-Dv,i.apply(this,arguments)-g)),_=Math.min(Math.abs(b)/p,o.apply(this,arguments)),x=_*(b<0?-1:1);for(l=0;l0&&(u+=c);for(null!=e?m.sort((function(t,r){return e(f[t],f[r])})):null!=r&&m.sort((function(t,e){return r(a[t],a[e])})),l=0,s=u?(b-p*x)/u:0;l0?c*s:0)+x,f[h]={data:a[h],index:l,value:c,startAngle:g,endAngle:d,padAngle:_};return f}return a.value=function(e){return arguments.length?(t=\"function\"==typeof e?e:xv(+e),a):t},a.sortValues=function(t){return arguments.length?(e=t,r=null,a):e},a.sort=function(t){return arguments.length?(r=t,e=null,a):r},a.startAngle=function(t){return arguments.length?(n=\"function\"==typeof t?t:xv(+t),a):n},a.endAngle=function(t){return arguments.length?(i=\"function\"==typeof t?t:xv(+t),a):i},a.padAngle=function(t){return arguments.length?(o=\"function\"==typeof t?t:xv(+t),a):o},a},Xv=$v(Hv);function Zv(t){this._curve=t}function $v(t){function e(e){return new Zv(t(e))}return e._curve=t,e}function Kv(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e($v(t)):e()._curve},t}Zv.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var Jv=function(){return Kv(Yv().curve(Xv))},tk=function(){var t=qv().curve(Xv),e=t.curve,r=t.lineX0,n=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Kv(r())},delete t.lineX0,t.lineEndAngle=function(){return Kv(n())},delete t.lineX1,t.lineInnerRadius=function(){return Kv(i())},delete t.lineY0,t.lineOuterRadius=function(){return Kv(o())},delete t.lineY1,t.curve=function(t){return arguments.length?e($v(t)):e()._curve},t},ek=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]},rk=Array.prototype.slice;function nk(t){return t.source}function ik(t){return t.target}function ok(t){var e=nk,r=ik,n=Bv,i=Wv,o=null;function a(){var a,l=rk.call(arguments),h=e.apply(this,l),s=r.apply(this,l);if(o||(o=a=Wi()),t(o,+n.apply(this,(l[0]=h,l)),+i.apply(this,l),+n.apply(this,(l[0]=s,l)),+i.apply(this,l)),a)return o=null,a+\"\"||null}return a.source=function(t){return arguments.length?(e=t,a):e},a.target=function(t){return arguments.length?(r=t,a):r},a.x=function(t){return arguments.length?(n=\"function\"==typeof t?t:xv(+t),a):n},a.y=function(t){return arguments.length?(i=\"function\"==typeof t?t:xv(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function ak(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function lk(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e,r=(r+i)/2,n,r,n,i)}function hk(t,e,r,n,i){var o=ek(e,r),a=ek(e,r=(r+i)/2),l=ek(n,r),h=ek(n,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],l[0],l[1],h[0],h[1])}function sk(){return ok(ak)}function dk(){return ok(lk)}function ck(){var t=ok(hk);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var pk={draw:function(t,e){var r=Math.sqrt(e/Tv);t.moveTo(r,0),t.arc(0,0,r,0,Dv)}},uk={draw:function(t,e){var r=Math.sqrt(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},mk=Math.sqrt(1/3),fk=2*mk,gk={draw:function(t,e){var r=Math.sqrt(e/fk),n=r*mk;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},bk=Math.sin(Tv/10)/Math.sin(7*Tv/10),_k=Math.sin(Dv/10)*bk,xk=-Math.cos(Dv/10)*bk,vk={draw:function(t,e){var r=Math.sqrt(.8908130915292852*e),n=_k*r,i=xk*r;t.moveTo(0,-r),t.lineTo(n,i);for(var o=1;o<5;++o){var a=Dv*o/5,l=Math.cos(a),h=Math.sin(a);t.lineTo(h*r,-l*r),t.lineTo(l*n-h*i,h*n+l*i)}t.closePath()}},kk={draw:function(t,e){var r=Math.sqrt(e),n=-r/2;t.rect(n,n,r,r)}},yk=Math.sqrt(3),wk={draw:function(t,e){var r=-Math.sqrt(e/(3*yk));t.moveTo(0,2*r),t.lineTo(-yk*r,-r),t.lineTo(yk*r,-r),t.closePath()}},Sk=Math.sqrt(3)/2,Mk=1/Math.sqrt(12),Ck=3*(Mk/2+1),Tk={draw:function(t,e){var r=Math.sqrt(e/Ck),n=r/2,i=r*Mk,o=n,a=r*Mk+r,l=-o,h=a;t.moveTo(n,i),t.lineTo(o,a),t.lineTo(l,h),t.lineTo(-.5*n-Sk*i,Sk*n+-.5*i),t.lineTo(-.5*o-Sk*a,Sk*o+-.5*a),t.lineTo(-.5*l-Sk*h,Sk*l+-.5*h),t.lineTo(-.5*n+Sk*i,-.5*i-Sk*n),t.lineTo(-.5*o+Sk*a,-.5*a-Sk*o),t.lineTo(-.5*l+Sk*h,-.5*h-Sk*l),t.closePath()}},Ek=[pk,uk,gk,kk,vk,wk,Tk],Dk=function(){var t=xv(pk),e=xv(64),r=null;function n(){var n;if(r||(r=n=Wi()),t.apply(this,arguments).draw(r,+e.apply(this,arguments)),n)return r=null,n+\"\"||null}return n.type=function(e){return arguments.length?(t=\"function\"==typeof e?e:xv(e),n):t},n.size=function(t){return arguments.length?(e=\"function\"==typeof t?t:xv(+t),n):e},n.context=function(t){return arguments.length?(r=null==t?null:t,n):r},n},Nk=function(){};function Ak(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function jk(t){this._context=t}jk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ak(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ak(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var zk=function(t){return new jk(t)};function Lk(t){this._context=t}Lk.prototype={areaStart:Nk,areaEnd:Nk,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Ak(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var Ik=function(t){return new Lk(t)};function Ok(t){this._context=t}Ok.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Ak(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var Pk=function(t){return new Ok(t)};function Rk(t,e){this._basis=new jk(t),this._beta=e}Rk.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n,i=t[0],o=e[0],a=t[r]-i,l=e[r]-o,h=-1;++h<=r;)n=h/r,this._basis.point(this._beta*t[h]+(1-this._beta)*(i+n*a),this._beta*e[h]+(1-this._beta)*(o+n*l));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Fk=function t(e){function r(t){return 1===e?new jk(t):new Rk(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function Uk(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function Hk(t,e){this._context=t,this._k=(1-e)/6}Hk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Uk(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Uk(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Bk=function t(e){function r(t){return new Hk(t,e)}return r.tension=function(e){return t(+e)},r}(0);function Wk(t,e){this._context=t,this._k=(1-e)/6}Wk.prototype={areaStart:Nk,areaEnd:Nk,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Uk(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Yk=function t(e){function r(t){return new Wk(t,e)}return r.tension=function(e){return t(+e)},r}(0);function qk(t,e){this._context=t,this._k=(1-e)/6}qk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Uk(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Gk=function t(e){function r(t){return new qk(t,e)}return r.tension=function(e){return t(+e)},r}(0);function Vk(t,e,r){var n=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>1e-12){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,h=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/h,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/h}if(t._l23_a>1e-12){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,d=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-e*t._l12_2a)/d,a=(a*s+t._y1*t._l23_2a-r*t._l12_2a)/d}t._context.bezierCurveTo(n,i,o,a,t._x2,t._y2)}function Qk(t,e){this._context=t,this._alpha=e}Qk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Vk(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Xk=function t(e){function r(t){return e?new Qk(t,e):new Hk(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Zk(t,e){this._context=t,this._alpha=e}Zk.prototype={areaStart:Nk,areaEnd:Nk,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vk(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var $k=function t(e){function r(t){return e?new Zk(t,e):new Wk(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Kk(t,e){this._context=t,this._alpha=e}Kk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vk(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Jk=function t(e){function r(t){return e?new Kk(t,e):new qk(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function ty(t){this._context=t}ty.prototype={areaStart:Nk,areaEnd:Nk,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};var ey=function(t){return new ty(t)};function ry(t){return t<0?-1:1}function ny(t,e,r){var n=t._x1-t._x0,i=e-t._x1,o=(t._y1-t._y0)/(n||i<0&&-0),a=(r-t._y1)/(i||n<0&&-0),l=(o*i+a*n)/(n+i);return(ry(o)+ry(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(l))||0}function iy(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function oy(t,e,r){var n=t._x0,i=t._y0,o=t._x1,a=t._y1,l=(o-n)/3;t._context.bezierCurveTo(n+l,i+l*e,o-l,a-l*r,o,a)}function ay(t){this._context=t}function ly(t){this._context=new hy(t)}function hy(t){this._context=t}function sy(t){return new ay(t)}function dy(t){return new ly(t)}function cy(t){this._context=t}function py(t){var e,r,n=t.length-1,i=new Array(n),o=new Array(n),a=new Array(n);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[n-1]=(t[n]+i[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}};var fy=function(t){return new my(t,.5)};function gy(t){return new my(t,0)}function by(t){return new my(t,1)}var _y=function(t,e){if((i=t.length)>1)for(var r,n,i,o=1,a=t[e[0]],l=a.length;o=0;)r[e]=e;return r};function vy(t,e){return t[e]}var ky=function(){var t=xv([]),e=xy,r=_y,n=vy;function i(i){var o,a,l=t.apply(this,arguments),h=i.length,s=l.length,d=new Array(s);for(o=0;o0){for(var r,n,i,o=0,a=t[0].length;o0)for(var r,n,i,o,a,l,h=0,s=t[e[0]].length;h0?(n[0]=o,n[1]=o+=i):i<0?(n[1]=a,n[0]=a+=i):(n[0]=0,n[1]=i)},Sy=function(t,e){if((r=t.length)>0){for(var r,n=0,i=t[e[0]],o=i.length;n0&&(n=(r=t[e[0]]).length)>0){for(var r,n,i,o=0,a=1;ao&&(o=e,n=r);return n}var Ey=function(t){var e=t.map(Dy);return xy(t).sort((function(t,r){return e[t]-e[r]}))};function Dy(t){for(var e,r=0,n=-1,i=t.length;++n0)){if(o/=p,p<0){if(o0){if(o>c)return;o>d&&(d=o)}if(o=n-h,p||!(o<0)){if(o/=p,p<0){if(o>c)return;o>d&&(d=o)}else if(p>0){if(o0)){if(o/=u,u<0){if(o0){if(o>c)return;o>d&&(d=o)}if(o=i-s,u||!(o<0)){if(o/=u,u<0){if(o>c)return;o>d&&(d=o)}else if(u>0){if(o0||c<1)||(d>0&&(t[0]=[h+d*p,s+d*u]),c<1&&(t[1]=[h+c*p,s+c*u]),!0)}}}}}function Xy(t,e,r,n,i){var o=t[1];if(o)return!0;var a,l,h=t[0],s=t.left,d=t.right,c=s[0],p=s[1],u=d[0],m=d[1],f=(c+u)/2,g=(p+m)/2;if(m===p){if(f=n)return;if(c>u){if(h){if(h[1]>=i)return}else h=[f,r];o=[f,i]}else{if(h){if(h[1]1)if(c>u){if(h){if(h[1]>=i)return}else h=[(r-l)/a,r];o=[(i-l)/a,i]}else{if(h){if(h[1]=n)return}else h=[e,a*e+l];o=[n,a*n+l]}else{if(h){if(h[0]=-bw)){var u=h*h+s*s,m=d*d+c*c,f=(c*u-s*m)/p,g=(h*m-d*u)/p,b=tw.pop()||new ew;b.arc=t,b.site=i,b.x=f+a,b.y=(b.cy=g+l)+Math.sqrt(f*f+g*g),t.circle=b;for(var _=null,x=mw._;x;)if(b.ygw)l=l.L;else{if(!((i=o-cw(l,a))>gw)){n>-gw?(e=l.P,r=l):i>-gw?(e=l,r=l.N):e=r=l;break}if(!l.R){e=l;break}l=l.R}!function(t){uw[t.index]={site:t,halfedges:[]}}(t);var h=aw(t);if(pw.insert(e,h),e||r){if(e===r)return nw(e),r=aw(e.site),pw.insert(h,r),h.edge=r.edge=qy(e.site,h.site),rw(e),void rw(r);if(r){nw(e),nw(r);var s=e.site,d=s[0],c=s[1],p=t[0]-d,u=t[1]-c,m=r.site,f=m[0]-d,g=m[1]-c,b=2*(p*g-u*f),_=p*p+u*u,x=f*f+g*g,v=[(g*_-u*x)/b+d,(p*x-f*_)/b+c];Vy(r.edge,s,m,v),h.edge=qy(s,t,null,v),r.edge=qy(t,m,null,v),rw(e),rw(r)}else h.edge=qy(e.site,h.site)}}function dw(t,e){var r=t.site,n=r[0],i=r[1],o=i-e;if(!o)return n;var a=t.P;if(!a)return-1/0;var l=(r=a.site)[0],h=r[1],s=h-e;if(!s)return l;var d=l-n,c=1/o-1/s,p=d/s;return c?(-p+Math.sqrt(p*p-2*c*(d*d/(-2*s)-h+s/2+i-o/2)))/c+n:(n+l)/2}function cw(t,e){var r=t.N;if(r)return dw(r,e);var n=t.site;return n[1]===e?n[0]:1/0}var pw,uw,mw,fw,gw=1e-6,bw=1e-12;function _w(t,e){return e[1]-t[1]||e[0]-t[0]}function xw(t,e){var r,n,i,o=t.sort(_w).pop();for(fw=[],uw=new Array(t.length),pw=new Yy,mw=new Yy;;)if(i=Jy,o&&(!i||o[1]gw||Math.abs(i[0][1]-i[1][1])>gw)||delete fw[o]}(a,l,h,s),function(t,e,r,n){var i,o,a,l,h,s,d,c,p,u,m,f,g=uw.length,b=!0;for(i=0;igw||Math.abs(f-p)>gw)&&(h.splice(l,0,fw.push(Gy(a,u,Math.abs(m-t)gw?[t,Math.abs(c-t)gw?[Math.abs(p-n)gw?[r,Math.abs(c-r)gw?[Math.abs(p-e)=l)return null;var h=t-i.site[0],s=e-i.site[1],d=h*h+s*s;do{i=o.cells[n=a],a=null,i.halfedges.forEach((function(r){var n=o.edges[r],l=n.left;if(l!==i.site&&l||(l=n.right)){var h=t-l[0],s=e-l[1],c=h*h+s*s;cn?(n+i)/2:Math.min(0,n)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}var Lw=function(){var t,e,r=Ew,n=Dw,i=zw,o=Aw,a=jw,l=[0,1/0],h=[[-1/0,-1/0],[1/0,1/0]],s=250,d=pm,c=ct(\"start\",\"zoom\",\"end\"),p=0;function u(t){t.property(\"__zoom\",Nw).on(\"wheel.zoom\",v).on(\"mousedown.zoom\",k).on(\"dblclick.zoom\",y).filter(a).on(\"touchstart.zoom\",w).on(\"touchmove.zoom\",S).on(\"touchend.zoom touchcancel.zoom\",M).style(\"touch-action\",\"none\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function m(t,e){return(e=Math.max(l[0],Math.min(l[1],e)))===t.k?t:new ww(e,t.x,t.y)}function f(t,e,r){var n=e[0]-r[0]*t.k,i=e[1]-r[1]*t.k;return n===t.x&&i===t.y?t:new ww(t.k,n,i)}function g(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function b(t,e,r){t.on(\"start.zoom\",(function(){_(this,arguments).start()})).on(\"interrupt.zoom end.zoom\",(function(){_(this,arguments).end()})).tween(\"zoom\",(function(){var t=this,i=arguments,o=_(t,i),a=n.apply(t,i),l=null==r?g(a):\"function\"==typeof r?r.apply(t,i):r,h=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=t.__zoom,c=\"function\"==typeof e?e.apply(t,i):e,p=d(s.invert(l).concat(h/s.k),c.invert(l).concat(h/c.k));return function(t){if(1===t)t=c;else{var e=p(t),r=h/e[2];t=new ww(r,l[0]-e[0]*r,l[1]-e[1]*r)}o.zoom(null,t)}}))}function _(t,e,r){return!r&&t.__zooming||new x(t,e)}function x(t,e){this.that=t,this.args=e,this.active=0,this.extent=n.apply(t,e),this.taps=0}function v(){if(r.apply(this,arguments)){var t=_(this,arguments),e=this.__zoom,n=Math.max(l[0],Math.min(l[1],e.k*Math.pow(2,o.apply(this,arguments)))),a=jr(this);if(t.wheel)t.mouse[0][0]===a[0]&&t.mouse[0][1]===a[1]||(t.mouse[1]=e.invert(t.mouse[0]=a)),clearTimeout(t.wheel);else{if(e.k===n)return;t.mouse=[a,e.invert(a)],ln(this),t.start()}Tw(),t.wheel=setTimeout(s,150),t.zoom(\"mouse\",i(f(m(e,n),t.mouse[0],t.mouse[1]),t.extent,h))}function s(){t.wheel=null,t.end()}}function k(){if(!e&&r.apply(this,arguments)){var t=_(this,arguments,!0),n=we(se.view).on(\"mousemove.zoom\",s,!0).on(\"mouseup.zoom\",d,!0),o=jr(this),a=se.clientX,l=se.clientY;Ce(se.view),Cw(),t.mouse=[o,this.__zoom.invert(o)],ln(this),t.start()}function s(){if(Tw(),!t.moved){var e=se.clientX-a,r=se.clientY-l;t.moved=e*e+r*r>p}t.zoom(\"mouse\",i(f(t.that.__zoom,t.mouse[0]=jr(t.that),t.mouse[1]),t.extent,h))}function d(){n.on(\"mousemove.zoom mouseup.zoom\",null),Te(se.view,t.moved),Tw(),t.end()}}function y(){if(r.apply(this,arguments)){var t=this.__zoom,e=jr(this),o=t.invert(e),a=t.k*(se.shiftKey?.5:2),l=i(f(m(t,a),e,o),n.apply(this,arguments),h);Tw(),s>0?we(this).transition().duration(s).call(b,l,e):we(this).call(u.transform,l)}}function w(){if(r.apply(this,arguments)){var e,n,i,o,a=se.touches,l=a.length,h=_(this,arguments,se.changedTouches.length===l);for(Cw(),n=0;n0&&e-1 in t)}w.fn=w.prototype={jquery:\"3.5.1\",constructor:w,length:0,toArray:function(){return l.call(this)},get:function(t){return null==t?l.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=w.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return w.each(this,t)},map:function(t){return this.pushStack(w.map(this,(function(e,r){return t.call(e,r,e)})))},slice:function(){return this.pushStack(l.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(w.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(w.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,r=+t+(t<0?e:0);return this.pushStack(r>=0&&r+~]|\"+P+\")\"+P+\"*\"),q=new RegExp(P+\"|>\"),G=new RegExp(U),V=new RegExp(\"^\"+R+\"$\"),Q={ID:new RegExp(\"^#(\"+R+\")\"),CLASS:new RegExp(\"^\\\\.(\"+R+\")\"),TAG:new RegExp(\"^(\"+R+\"|[*])\"),ATTR:new RegExp(\"^\"+F),PSEUDO:new RegExp(\"^\"+U),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+P+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+P+\"*(?:([+-]|)\"+P+\"*(\\\\d+)|))\"+P+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+O+\")$\",\"i\"),needsContext:new RegExp(\"^\"+P+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+P+\"*((?:-\\\\d)?\\\\d*)\"+P+\"*\\\\)|)(?=[^-]|$)\",\"i\")},X=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,$=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,J=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,tt=/[+~]/,et=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+P+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),rt=function(t,e){var r=\"0x\"+t.slice(1)-65536;return e||(r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320))},nt=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,it=function(t,e){return e?\"\\0\"===t?\"�\":t.slice(0,-1)+\"\\\\\"+t.charCodeAt(t.length-1).toString(16)+\" \":\"\\\\\"+t},ot=function(){p()},at=vt((function(t){return!0===t.disabled&&\"fieldset\"===t.nodeName.toLowerCase()}),{dir:\"parentNode\",next:\"legend\"});try{z.apply(N=L.call(k.childNodes),k.childNodes),N[k.childNodes.length].nodeType}catch(t){z={apply:N.length?function(t,e){j.apply(t,L.call(e))}:function(t,e){for(var r=t.length,n=0;t[r++]=e[n++];);t.length=r-1}}}function lt(t,e,n,i){var o,l,s,d,c,m,b,_=e&&e.ownerDocument,k=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==k&&9!==k&&11!==k)return n;if(!i&&(p(e),e=e||u,f)){if(11!==k&&(c=J.exec(t)))if(o=c[1]){if(9===k){if(!(s=e.getElementById(o)))return n;if(s.id===o)return n.push(s),n}else if(_&&(s=_.getElementById(o))&&x(e,s)&&s.id===o)return n.push(s),n}else{if(c[2])return z.apply(n,e.getElementsByTagName(t)),n;if((o=c[3])&&r.getElementsByClassName&&e.getElementsByClassName)return z.apply(n,e.getElementsByClassName(o)),n}if(r.qsa&&!T[t+\" \"]&&(!g||!g.test(t))&&(1!==k||\"object\"!==e.nodeName.toLowerCase())){if(b=t,_=e,1===k&&(q.test(t)||Y.test(t))){for((_=tt.test(t)&&bt(e.parentNode)||e)===e&&r.scope||((d=e.getAttribute(\"id\"))?d=d.replace(nt,it):e.setAttribute(\"id\",d=v)),l=(m=a(t)).length;l--;)m[l]=(d?\"#\"+d:\":scope\")+\" \"+xt(m[l]);b=m.join(\",\")}try{return z.apply(n,_.querySelectorAll(b)),n}catch(e){T(t,!0)}finally{d===v&&e.removeAttribute(\"id\")}}}return h(t.replace(B,\"$1\"),e,n,i)}function ht(){var t=[];return function e(r,i){return t.push(r+\" \")>n.cacheLength&&delete e[t.shift()],e[r+\" \"]=i}}function st(t){return t[v]=!0,t}function dt(t){var e=u.createElement(\"fieldset\");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ct(t,e){for(var r=t.split(\"|\"),i=r.length;i--;)n.attrHandle[r[i]]=e}function pt(t,e){var r=e&&t,n=r&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(n)return n;if(r)for(;r=r.nextSibling;)if(r===e)return-1;return t?1:-1}function ut(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function mt(t){return function(e){var r=e.nodeName.toLowerCase();return(\"input\"===r||\"button\"===r)&&e.type===t}}function ft(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&at(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function gt(t){return st((function(e){return e=+e,st((function(r,n){for(var i,o=t([],r.length,e),a=o.length;a--;)r[i=o[a]]&&(r[i]=!(n[i]=r[i]))}))}))}function bt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in r=lt.support={},o=lt.isXML=function(t){var e=t.namespaceURI,r=(t.ownerDocument||t).documentElement;return!X.test(e||r&&r.nodeName||\"HTML\")},p=lt.setDocument=function(t){var e,i,a=t?t.ownerDocument||t:k;return a!=u&&9===a.nodeType&&a.documentElement?(m=(u=a).documentElement,f=!o(u),k!=u&&(i=u.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener(\"unload\",ot,!1):i.attachEvent&&i.attachEvent(\"onunload\",ot)),r.scope=dt((function(t){return m.appendChild(t).appendChild(u.createElement(\"div\")),void 0!==t.querySelectorAll&&!t.querySelectorAll(\":scope fieldset div\").length})),r.attributes=dt((function(t){return t.className=\"i\",!t.getAttribute(\"className\")})),r.getElementsByTagName=dt((function(t){return t.appendChild(u.createComment(\"\")),!t.getElementsByTagName(\"*\").length})),r.getElementsByClassName=K.test(u.getElementsByClassName),r.getById=dt((function(t){return m.appendChild(t).id=v,!u.getElementsByName||!u.getElementsByName(v).length})),r.getById?(n.filter.ID=function(t){var e=t.replace(et,rt);return function(t){return t.getAttribute(\"id\")===e}},n.find.ID=function(t,e){if(void 0!==e.getElementById&&f){var r=e.getElementById(t);return r?[r]:[]}}):(n.filter.ID=function(t){var e=t.replace(et,rt);return function(t){var r=void 0!==t.getAttributeNode&&t.getAttributeNode(\"id\");return r&&r.value===e}},n.find.ID=function(t,e){if(void 0!==e.getElementById&&f){var r,n,i,o=e.getElementById(t);if(o){if((r=o.getAttributeNode(\"id\"))&&r.value===t)return[o];for(i=e.getElementsByName(t),n=0;o=i[n++];)if((r=o.getAttributeNode(\"id\"))&&r.value===t)return[o]}return[]}}),n.find.TAG=r.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):r.qsa?e.querySelectorAll(t):void 0}:function(t,e){var r,n=[],i=0,o=e.getElementsByTagName(t);if(\"*\"===t){for(;r=o[i++];)1===r.nodeType&&n.push(r);return n}return o},n.find.CLASS=r.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&f)return e.getElementsByClassName(t)},b=[],g=[],(r.qsa=K.test(u.querySelectorAll))&&(dt((function(t){var e;m.appendChild(t).innerHTML=\"\",t.querySelectorAll(\"[msallowcapture^='']\").length&&g.push(\"[*^$]=\"+P+\"*(?:''|\\\"\\\")\"),t.querySelectorAll(\"[selected]\").length||g.push(\"\\\\[\"+P+\"*(?:value|\"+O+\")\"),t.querySelectorAll(\"[id~=\"+v+\"-]\").length||g.push(\"~=\"),(e=u.createElement(\"input\")).setAttribute(\"name\",\"\"),t.appendChild(e),t.querySelectorAll(\"[name='']\").length||g.push(\"\\\\[\"+P+\"*name\"+P+\"*=\"+P+\"*(?:''|\\\"\\\")\"),t.querySelectorAll(\":checked\").length||g.push(\":checked\"),t.querySelectorAll(\"a#\"+v+\"+*\").length||g.push(\".#.+[+~]\"),t.querySelectorAll(\"\\\\\\f\"),g.push(\"[\\\\r\\\\n\\\\f]\")})),dt((function(t){t.innerHTML=\"\";var e=u.createElement(\"input\");e.setAttribute(\"type\",\"hidden\"),t.appendChild(e).setAttribute(\"name\",\"D\"),t.querySelectorAll(\"[name=d]\").length&&g.push(\"name\"+P+\"*[*^$|!~]?=\"),2!==t.querySelectorAll(\":enabled\").length&&g.push(\":enabled\",\":disabled\"),m.appendChild(t).disabled=!0,2!==t.querySelectorAll(\":disabled\").length&&g.push(\":enabled\",\":disabled\"),t.querySelectorAll(\"*,:x\"),g.push(\",.*:\")}))),(r.matchesSelector=K.test(_=m.matches||m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&dt((function(t){r.disconnectedMatch=_.call(t,\"*\"),_.call(t,\"[s!='']:x\"),b.push(\"!=\",U)})),g=g.length&&new RegExp(g.join(\"|\")),b=b.length&&new RegExp(b.join(\"|\")),e=K.test(m.compareDocumentPosition),x=e||K.test(m.contains)?function(t,e){var r=9===t.nodeType?t.documentElement:t,n=e&&e.parentNode;return t===n||!(!n||1!==n.nodeType||!(r.contains?r.contains(n):t.compareDocumentPosition&&16&t.compareDocumentPosition(n)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},E=e?function(t,e){if(t===e)return c=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n||(1&(n=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!r.sortDetached&&e.compareDocumentPosition(t)===n?t==u||t.ownerDocument==k&&x(k,t)?-1:e==u||e.ownerDocument==k&&x(k,e)?1:d?I(d,t)-I(d,e):0:4&n?-1:1)}:function(t,e){if(t===e)return c=!0,0;var r,n=0,i=t.parentNode,o=e.parentNode,a=[t],l=[e];if(!i||!o)return t==u?-1:e==u?1:i?-1:o?1:d?I(d,t)-I(d,e):0;if(i===o)return pt(t,e);for(r=t;r=r.parentNode;)a.unshift(r);for(r=e;r=r.parentNode;)l.unshift(r);for(;a[n]===l[n];)n++;return n?pt(a[n],l[n]):a[n]==k?-1:l[n]==k?1:0},u):u},lt.matches=function(t,e){return lt(t,null,null,e)},lt.matchesSelector=function(t,e){if(p(t),r.matchesSelector&&f&&!T[e+\" \"]&&(!b||!b.test(e))&&(!g||!g.test(e)))try{var n=_.call(t,e);if(n||r.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(t){T(e,!0)}return lt(e,u,null,[t]).length>0},lt.contains=function(t,e){return(t.ownerDocument||t)!=u&&p(t),x(t,e)},lt.attr=function(t,e){(t.ownerDocument||t)!=u&&p(t);var i=n.attrHandle[e.toLowerCase()],o=i&&D.call(n.attrHandle,e.toLowerCase())?i(t,e,!f):void 0;return void 0!==o?o:r.attributes||!f?t.getAttribute(e):(o=t.getAttributeNode(e))&&o.specified?o.value:null},lt.escape=function(t){return(t+\"\").replace(nt,it)},lt.error=function(t){throw new Error(\"Syntax error, unrecognized expression: \"+t)},lt.uniqueSort=function(t){var e,n=[],i=0,o=0;if(c=!r.detectDuplicates,d=!r.sortStable&&t.slice(0),t.sort(E),c){for(;e=t[o++];)e===t[o]&&(i=n.push(o));for(;i--;)t.splice(n[i],1)}return d=null,t},i=lt.getText=function(t){var e,r=\"\",n=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if(\"string\"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)r+=i(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[n++];)r+=i(e);return r},(n=lt.selectors={cacheLength:50,createPseudo:st,match:Q,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,rt),t[3]=(t[3]||t[4]||t[5]||\"\").replace(et,rt),\"~=\"===t[2]&&(t[3]=\" \"+t[3]+\" \"),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),\"nth\"===t[1].slice(0,3)?(t[3]||lt.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*(\"even\"===t[3]||\"odd\"===t[3])),t[5]=+(t[7]+t[8]||\"odd\"===t[3])):t[3]&<.error(t[0]),t},PSEUDO:function(t){var e,r=!t[6]&&t[2];return Q.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||\"\":r&&G.test(r)&&(e=a(r,!0))&&(e=r.indexOf(\")\",r.length-e)-r.length)&&(t[0]=t[0].slice(0,e),t[2]=r.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,rt).toLowerCase();return\"*\"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=S[t+\" \"];return e||(e=new RegExp(\"(^|\"+P+\")\"+t+\"(\"+P+\"|$)\"))&&S(t,(function(t){return e.test(\"string\"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute(\"class\")||\"\")}))},ATTR:function(t,e,r){return function(n){var i=lt.attr(n,t);return null==i?\"!=\"===e:!e||(i+=\"\",\"=\"===e?i===r:\"!=\"===e?i!==r:\"^=\"===e?r&&0===i.indexOf(r):\"*=\"===e?r&&i.indexOf(r)>-1:\"$=\"===e?r&&i.slice(-r.length)===r:\"~=\"===e?(\" \"+i.replace(H,\" \")+\" \").indexOf(r)>-1:\"|=\"===e&&(i===r||i.slice(0,r.length+1)===r+\"-\"))}},CHILD:function(t,e,r,n,i){var o=\"nth\"!==t.slice(0,3),a=\"last\"!==t.slice(-4),l=\"of-type\"===e;return 1===n&&0===i?function(t){return!!t.parentNode}:function(e,r,h){var s,d,c,p,u,m,f=o!==a?\"nextSibling\":\"previousSibling\",g=e.parentNode,b=l&&e.nodeName.toLowerCase(),_=!h&&!l,x=!1;if(g){if(o){for(;f;){for(p=e;p=p[f];)if(l?p.nodeName.toLowerCase()===b:1===p.nodeType)return!1;m=f=\"only\"===t&&!m&&\"nextSibling\"}return!0}if(m=[a?g.firstChild:g.lastChild],a&&_){for(x=(u=(s=(d=(c=(p=g)[v]||(p[v]={}))[p.uniqueID]||(c[p.uniqueID]={}))[t]||[])[0]===y&&s[1])&&s[2],p=u&&g.childNodes[u];p=++u&&p&&p[f]||(x=u=0)||m.pop();)if(1===p.nodeType&&++x&&p===e){d[t]=[y,u,x];break}}else if(_&&(x=u=(s=(d=(c=(p=e)[v]||(p[v]={}))[p.uniqueID]||(c[p.uniqueID]={}))[t]||[])[0]===y&&s[1]),!1===x)for(;(p=++u&&p&&p[f]||(x=u=0)||m.pop())&&((l?p.nodeName.toLowerCase()!==b:1!==p.nodeType)||!++x||(_&&((d=(c=p[v]||(p[v]={}))[p.uniqueID]||(c[p.uniqueID]={}))[t]=[y,x]),p!==e)););return(x-=i)===n||x%n==0&&x/n>=0}}},PSEUDO:function(t,e){var r,i=n.pseudos[t]||n.setFilters[t.toLowerCase()]||lt.error(\"unsupported pseudo: \"+t);return i[v]?i(e):i.length>1?(r=[t,t,\"\",e],n.setFilters.hasOwnProperty(t.toLowerCase())?st((function(t,r){for(var n,o=i(t,e),a=o.length;a--;)t[n=I(t,o[a])]=!(r[n]=o[a])})):function(t){return i(t,0,r)}):i}},pseudos:{not:st((function(t){var e=[],r=[],n=l(t.replace(B,\"$1\"));return n[v]?st((function(t,e,r,i){for(var o,a=n(t,null,i,[]),l=t.length;l--;)(o=a[l])&&(t[l]=!(e[l]=o))})):function(t,i,o){return e[0]=t,n(e,null,o,r),e[0]=null,!r.pop()}})),has:st((function(t){return function(e){return lt(t,e).length>0}})),contains:st((function(t){return t=t.replace(et,rt),function(e){return(e.textContent||i(e)).indexOf(t)>-1}})),lang:st((function(t){return V.test(t||\"\")||lt.error(\"unsupported lang: \"+t),t=t.replace(et,rt).toLowerCase(),function(e){var r;do{if(r=f?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(r=r.toLowerCase())===t||0===r.indexOf(t+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var r=t.location&&t.location.hash;return r&&r.slice(1)===e.id},root:function(t){return t===m},focus:function(t){return t===u.activeElement&&(!u.hasFocus||u.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:ft(!1),disabled:ft(!0),checked:function(t){var e=t.nodeName.toLowerCase();return\"input\"===e&&!!t.checked||\"option\"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!n.pseudos.empty(t)},header:function(t){return $.test(t.nodeName)},input:function(t){return Z.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return\"input\"===e&&\"button\"===t.type||\"button\"===e},text:function(t){var e;return\"input\"===t.nodeName.toLowerCase()&&\"text\"===t.type&&(null==(e=t.getAttribute(\"type\"))||\"text\"===e.toLowerCase())},first:gt((function(){return[0]})),last:gt((function(t,e){return[e-1]})),eq:gt((function(t,e,r){return[r<0?r+e:r]})),even:gt((function(t,e){for(var r=0;re?e:r;--n>=0;)t.push(n);return t})),gt:gt((function(t,e,r){for(var n=r<0?r+e:r;++n1?function(e,r,n){for(var i=t.length;i--;)if(!t[i](e,r,n))return!1;return!0}:t[0]}function yt(t,e,r,n,i){for(var o,a=[],l=0,h=t.length,s=null!=e;l-1&&(o[s]=!(a[s]=c))}}else b=yt(b===a?b.splice(m,b.length):b),i?i(null,a,b,h):z.apply(a,b)}))}function St(t){for(var e,r,i,o=t.length,a=n.relative[t[0].type],l=a||n.relative[\" \"],h=a?1:0,d=vt((function(t){return t===e}),l,!0),c=vt((function(t){return I(e,t)>-1}),l,!0),p=[function(t,r,n){var i=!a&&(n||r!==s)||((e=r).nodeType?d(t,r,n):c(t,r,n));return e=null,i}];h1&&kt(p),h>1&&xt(t.slice(0,h-1).concat({value:\" \"===t[h-2].type?\"*\":\"\"})).replace(B,\"$1\"),r,h0,i=t.length>0,o=function(o,a,l,h,d){var c,m,g,b=0,_=\"0\",x=o&&[],v=[],k=s,w=o||i&&n.find.TAG(\"*\",d),S=y+=null==k?1:Math.random()||.1,M=w.length;for(d&&(s=a==u||a||d);_!==M&&null!=(c=w[_]);_++){if(i&&c){for(m=0,a||c.ownerDocument==u||(p(c),l=!f);g=t[m++];)if(g(c,a||u,l)){h.push(c);break}d&&(y=S)}r&&((c=!g&&c)&&b--,o&&x.push(c))}if(b+=_,r&&_!==b){for(m=0;g=e[m++];)g(x,v,a,l);if(o){if(b>0)for(;_--;)x[_]||v[_]||(v[_]=A.call(h));v=yt(v)}z.apply(h,v),d&&!o&&v.length>0&&b+e.length>1&<.uniqueSort(h)}return d&&(y=S,s=k),x};return r?st(o):o}(o,i))).selector=t}return l},h=lt.select=function(t,e,r,i){var o,h,s,d,c,p=\"function\"==typeof t&&t,u=!i&&a(t=p.selector||t);if(r=r||[],1===u.length){if((h=u[0]=u[0].slice(0)).length>2&&\"ID\"===(s=h[0]).type&&9===e.nodeType&&f&&n.relative[h[1].type]){if(!(e=(n.find.ID(s.matches[0].replace(et,rt),e)||[])[0]))return r;p&&(e=e.parentNode),t=t.slice(h.shift().value.length)}for(o=Q.needsContext.test(t)?0:h.length;o--&&(s=h[o],!n.relative[d=s.type]);)if((c=n.find[d])&&(i=c(s.matches[0].replace(et,rt),tt.test(h[0].type)&&bt(e.parentNode)||e))){if(h.splice(o,1),!(t=i.length&&xt(h)))return z.apply(r,i),r;break}}return(p||l(t,u))(i,e,!f,r,!e||tt.test(t)&&bt(e.parentNode)||e),r},r.sortStable=v.split(\"\").sort(E).join(\"\")===v,r.detectDuplicates=!!c,p(),r.sortDetached=dt((function(t){return 1&t.compareDocumentPosition(u.createElement(\"fieldset\"))})),dt((function(t){return t.innerHTML=\"\",\"#\"===t.firstChild.getAttribute(\"href\")}))||ct(\"type|href|height|width\",(function(t,e,r){if(!r)return t.getAttribute(e,\"type\"===e.toLowerCase()?1:2)})),r.attributes&&dt((function(t){return t.innerHTML=\"\",t.firstChild.setAttribute(\"value\",\"\"),\"\"===t.firstChild.getAttribute(\"value\")}))||ct(\"value\",(function(t,e,r){if(!r&&\"input\"===t.nodeName.toLowerCase())return t.defaultValue})),dt((function(t){return null==t.getAttribute(\"disabled\")}))||ct(O,(function(t,e,r){var n;if(!r)return!0===t[e]?e.toLowerCase():(n=t.getAttributeNode(e))&&n.specified?n.value:null})),lt}(r);w.find=M,w.expr=M.selectors,w.expr[\":\"]=w.expr.pseudos,w.uniqueSort=w.unique=M.uniqueSort,w.text=M.getText,w.isXMLDoc=M.isXML,w.contains=M.contains,w.escapeSelector=M.escape;var C=function(t,e,r){for(var n=[],i=void 0!==r;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&w(t).is(r))break;n.push(t)}return n},T=function(t,e){for(var r=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&r.push(t);return r},E=w.expr.match.needsContext;function D(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function A(t,e,r){return b(e)?w.grep(t,(function(t,n){return!!e.call(t,n,t)!==r})):e.nodeType?w.grep(t,(function(t){return t===e!==r})):\"string\"!=typeof e?w.grep(t,(function(t){return d.call(e,t)>-1!==r})):w.filter(e,t,r)}w.filter=function(t,e,r){var n=e[0];return r&&(t=\":not(\"+t+\")\"),1===e.length&&1===n.nodeType?w.find.matchesSelector(n,t)?[n]:[]:w.find.matches(t,w.grep(e,(function(t){return 1===t.nodeType})))},w.fn.extend({find:function(t){var e,r,n=this.length,i=this;if(\"string\"!=typeof t)return this.pushStack(w(t).filter((function(){for(e=0;e1?w.uniqueSort(r):r},filter:function(t){return this.pushStack(A(this,t||[],!1))},not:function(t){return this.pushStack(A(this,t||[],!0))},is:function(t){return!!A(this,\"string\"==typeof t&&E.test(t)?w(t):t||[],!1).length}});var j,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(w.fn.init=function(t,e,r){var n,i;if(!t)return this;if(r=r||j,\"string\"==typeof t){if(!(n=\"<\"===t[0]&&\">\"===t[t.length-1]&&t.length>=3?[null,t,null]:z.exec(t))||!n[1]&&e)return!e||e.jquery?(e||r).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof w?e[0]:e,w.merge(this,w.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:x,!0)),N.test(n[1])&&w.isPlainObject(e))for(n in e)b(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return(i=x.getElementById(n[2]))&&(this[0]=i,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):b(t)?void 0!==r.ready?r.ready(t):t(w):w.makeArray(t,this)}).prototype=w.fn,j=w(x);var L=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function O(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}w.fn.extend({has:function(t){var e=w(t,this),r=e.length;return this.filter((function(){for(var t=0;t-1:1===r.nodeType&&w.find.matchesSelector(r,t))){o.push(r);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(t){return t?\"string\"==typeof t?d.call(w(t),this[0]):d.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),w.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return C(t,\"parentNode\")},parentsUntil:function(t,e,r){return C(t,\"parentNode\",r)},next:function(t){return O(t,\"nextSibling\")},prev:function(t){return O(t,\"previousSibling\")},nextAll:function(t){return C(t,\"nextSibling\")},prevAll:function(t){return C(t,\"previousSibling\")},nextUntil:function(t,e,r){return C(t,\"nextSibling\",r)},prevUntil:function(t,e,r){return C(t,\"previousSibling\",r)},siblings:function(t){return T((t.parentNode||{}).firstChild,t)},children:function(t){return T(t.firstChild)},contents:function(t){return null!=t.contentDocument&&a(t.contentDocument)?t.contentDocument:(D(t,\"template\")&&(t=t.content||t),w.merge([],t.childNodes))}},(function(t,e){w.fn[t]=function(r,n){var i=w.map(this,e,r);return\"Until\"!==t.slice(-5)&&(n=r),n&&\"string\"==typeof n&&(i=w.filter(n,i)),this.length>1&&(I[t]||w.uniqueSort(i),L.test(t)&&i.reverse()),this.pushStack(i)}}));var P=/[^\\x20\\t\\r\\n\\f]+/g;function R(t){return t}function F(t){throw t}function U(t,e,r,n){var i;try{t&&b(i=t.promise)?i.call(t).done(e).fail(r):t&&b(i=t.then)?i.call(t,e,r):e.apply(void 0,[t].slice(n))}catch(t){r.apply(void 0,[t])}}w.Callbacks=function(t){t=\"string\"==typeof t?function(t){var e={};return w.each(t.match(P)||[],(function(t,r){e[r]=!0})),e}(t):w.extend({},t);var e,r,n,i,o=[],a=[],l=-1,h=function(){for(i=i||t.once,n=e=!0;a.length;l=-1)for(r=a.shift();++l-1;)o.splice(r,1),r<=l&&l--})),this},has:function(t){return t?w.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=r=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],r||e||(o=r=\"\"),this},locked:function(){return!!i},fireWith:function(t,r){return i||(r=[t,(r=r||[]).slice?r.slice():r],a.push(r),e||h()),this},fire:function(){return s.fireWith(this,arguments),this},fired:function(){return!!n}};return s},w.extend({Deferred:function(t){var e=[[\"notify\",\"progress\",w.Callbacks(\"memory\"),w.Callbacks(\"memory\"),2],[\"resolve\",\"done\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),1,\"rejected\"]],n=\"pending\",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(t){return i.then(null,t)},pipe:function(){var t=arguments;return w.Deferred((function(r){w.each(e,(function(e,n){var i=b(t[n[4]])&&t[n[4]];o[n[1]]((function(){var t=i&&i.apply(this,arguments);t&&b(t.promise)?t.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[n[0]+\"With\"](this,i?[t]:arguments)}))})),t=null})).promise()},then:function(t,n,i){var o=0;function a(t,e,n,i){return function(){var l=this,h=arguments,s=function(){var r,s;if(!(t=o&&(n!==F&&(l=void 0,h=[r]),e.rejectWith(l,h))}};t?d():(w.Deferred.getStackHook&&(d.stackTrace=w.Deferred.getStackHook()),r.setTimeout(d))}}return w.Deferred((function(r){e[0][3].add(a(0,r,b(i)?i:R,r.notifyWith)),e[1][3].add(a(0,r,b(t)?t:R)),e[2][3].add(a(0,r,b(n)?n:F))})).promise()},promise:function(t){return null!=t?w.extend(t,i):i}},o={};return w.each(e,(function(t,r){var a=r[2],l=r[5];i[r[1]]=a.add,l&&a.add((function(){n=l}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+\"With\"](this===o?void 0:this,arguments),this},o[r[0]+\"With\"]=a.fireWith})),i.promise(o),t&&t.call(o,o),o},when:function(t){var e=arguments.length,r=e,n=Array(r),i=l.call(arguments),o=w.Deferred(),a=function(t){return function(r){n[t]=this,i[t]=arguments.length>1?l.call(arguments):r,--e||o.resolveWith(n,i)}};if(e<=1&&(U(t,o.done(a(r)).resolve,o.reject,!e),\"pending\"===o.state()||b(i[r]&&i[r].then)))return o.then();for(;r--;)U(i[r],a(r),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,e){r.console&&r.console.warn&&t&&H.test(t.name)&&r.console.warn(\"jQuery.Deferred exception: \"+t.message,t.stack,e)},w.readyException=function(t){r.setTimeout((function(){throw t}))};var B=w.Deferred();function W(){x.removeEventListener(\"DOMContentLoaded\",W),r.removeEventListener(\"load\",W),w.ready()}w.fn.ready=function(t){return B.then(t).catch((function(t){w.readyException(t)})),this},w.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==t&&--w.readyWait>0||B.resolveWith(x,[w]))}}),w.ready.then=B.then,\"complete\"===x.readyState||\"loading\"!==x.readyState&&!x.documentElement.doScroll?r.setTimeout(w.ready):(x.addEventListener(\"DOMContentLoaded\",W),r.addEventListener(\"load\",W));var Y=function(t,e,r,n,i,o,a){var l=0,h=t.length,s=null==r;if(\"object\"===y(r))for(l in i=!0,r)Y(t,e,l,r[l],!0,o,a);else if(void 0!==n&&(i=!0,b(n)||(a=!0),s&&(a?(e.call(t,n),e=null):(s=e,e=function(t,e,r){return s.call(w(t),r)})),e))for(;l1,null,!0)},removeData:function(t){return this.each((function(){K.remove(this,t)}))}}),w.extend({queue:function(t,e,r){var n;if(t)return e=(e||\"fx\")+\"queue\",n=$.get(t,e),r&&(!n||Array.isArray(r)?n=$.access(t,e,w.makeArray(r)):n.push(r)),n||[]},dequeue:function(t,e){e=e||\"fx\";var r=w.queue(t,e),n=r.length,i=r.shift(),o=w._queueHooks(t,e);\"inprogress\"===i&&(i=r.shift(),n--),i&&(\"fx\"===e&&r.unshift(\"inprogress\"),delete o.stop,i.call(t,(function(){w.dequeue(t,e)}),o)),!n&&o&&o.empty.fire()},_queueHooks:function(t,e){var r=e+\"queueHooks\";return $.get(t,r)||$.access(t,r,{empty:w.Callbacks(\"once memory\").add((function(){$.remove(t,[e+\"queue\",r])}))})}}),w.fn.extend({queue:function(t,e){var r=2;return\"string\"!=typeof t&&(e=t,t=\"fx\",r--),arguments.length\\x20\\t\\r\\n\\f]*)/i,bt=/^$|^module$|\\/(?:java|ecma)script/i;ut=x.createDocumentFragment().appendChild(x.createElement(\"div\")),(mt=x.createElement(\"input\")).setAttribute(\"type\",\"radio\"),mt.setAttribute(\"checked\",\"checked\"),mt.setAttribute(\"name\",\"t\"),ut.appendChild(mt),g.checkClone=ut.cloneNode(!0).cloneNode(!0).lastChild.checked,ut.innerHTML=\"\",g.noCloneChecked=!!ut.cloneNode(!0).lastChild.defaultValue,ut.innerHTML=\"\",g.option=!!ut.lastChild;var _t={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function xt(t,e){var r;return r=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||\"*\"):void 0!==t.querySelectorAll?t.querySelectorAll(e||\"*\"):[],void 0===e||e&&D(t,e)?w.merge([t],r):r}function vt(t,e){for(var r=0,n=t.length;r\",\"\"]);var kt=/<|&#?\\w+;/;function yt(t,e,r,n,i){for(var o,a,l,h,s,d,c=e.createDocumentFragment(),p=[],u=0,m=t.length;u-1)i&&i.push(o);else if(s=at(o),a=xt(c.appendChild(o),\"script\"),s&&vt(a),r)for(d=0;o=a[d++];)bt.test(o.type||\"\")&&r.push(o);return c}var wt=/^key/,St=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Mt=/^([^.]*)(?:\\.(.+)|)/;function Ct(){return!0}function Tt(){return!1}function Et(t,e){return t===function(){try{return x.activeElement}catch(t){}}()==(\"focus\"===e)}function Dt(t,e,r,n,i,o){var a,l;if(\"object\"==typeof e){for(l in\"string\"!=typeof r&&(n=n||r,r=void 0),e)Dt(t,l,r,n,e[l],o);return t}if(null==n&&null==i?(i=r,n=r=void 0):null==i&&(\"string\"==typeof r?(i=n,n=void 0):(i=n,n=r,r=void 0)),!1===i)i=Tt;else if(!i)return t;return 1===o&&(a=i,(i=function(t){return w().off(t),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),t.each((function(){w.event.add(this,e,i,n,r)}))}function Nt(t,e,r){r?($.set(t,e,!1),w.event.add(t,e,{namespace:!1,handler:function(t){var n,i,o=$.get(this,e);if(1&t.isTrigger&&this[e]){if(o.length)(w.event.special[e]||{}).delegateType&&t.stopPropagation();else if(o=l.call(arguments),$.set(this,e,o),n=r(this,e),this[e](),o!==(i=$.get(this,e))||n?$.set(this,e,!1):i={},o!==i)return t.stopImmediatePropagation(),t.preventDefault(),i.value}else o.length&&($.set(this,e,{value:w.event.trigger(w.extend(o[0],w.Event.prototype),o.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===$.get(t,e)&&w.event.add(t,e,Ct)}w.event={global:{},add:function(t,e,r,n,i){var o,a,l,h,s,d,c,p,u,m,f,g=$.get(t);if(X(t))for(r.handler&&(r=(o=r).handler,i=o.selector),i&&w.find.matchesSelector(ot,i),r.guid||(r.guid=w.guid++),(h=g.events)||(h=g.events=Object.create(null)),(a=g.handle)||(a=g.handle=function(e){return void 0!==w&&w.event.triggered!==e.type?w.event.dispatch.apply(t,arguments):void 0}),s=(e=(e||\"\").match(P)||[\"\"]).length;s--;)u=f=(l=Mt.exec(e[s])||[])[1],m=(l[2]||\"\").split(\".\").sort(),u&&(c=w.event.special[u]||{},u=(i?c.delegateType:c.bindType)||u,c=w.event.special[u]||{},d=w.extend({type:u,origType:f,data:n,handler:r,guid:r.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:m.join(\".\")},o),(p=h[u])||((p=h[u]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(t,n,m,a)||t.addEventListener&&t.addEventListener(u,a)),c.add&&(c.add.call(t,d),d.handler.guid||(d.handler.guid=r.guid)),i?p.splice(p.delegateCount++,0,d):p.push(d),w.event.global[u]=!0)},remove:function(t,e,r,n,i){var o,a,l,h,s,d,c,p,u,m,f,g=$.hasData(t)&&$.get(t);if(g&&(h=g.events)){for(s=(e=(e||\"\").match(P)||[\"\"]).length;s--;)if(u=f=(l=Mt.exec(e[s])||[])[1],m=(l[2]||\"\").split(\".\").sort(),u){for(c=w.event.special[u]||{},p=h[u=(n?c.delegateType:c.bindType)||u]||[],l=l[2]&&new RegExp(\"(^|\\\\.)\"+m.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;o--;)d=p[o],!i&&f!==d.origType||r&&r.guid!==d.guid||l&&!l.test(d.namespace)||n&&n!==d.selector&&(\"**\"!==n||!d.selector)||(p.splice(o,1),d.selector&&p.delegateCount--,c.remove&&c.remove.call(t,d));a&&!p.length&&(c.teardown&&!1!==c.teardown.call(t,m,g.handle)||w.removeEvent(t,u,g.handle),delete h[u])}else for(u in h)w.event.remove(t,u+e[s],r,n,!0);w.isEmptyObject(h)&&$.remove(t,\"handle events\")}},dispatch:function(t){var e,r,n,i,o,a,l=new Array(arguments.length),h=w.event.fix(t),s=($.get(this,\"events\")||Object.create(null))[h.type]||[],d=w.event.special[h.type]||{};for(l[0]=h,e=1;e=1))for(;s!==this;s=s.parentNode||this)if(1===s.nodeType&&(\"click\"!==t.type||!0!==s.disabled)){for(o=[],a={},r=0;r-1:w.find(i,this,null,[s]).length),a[i]&&o.push(n);o.length&&l.push({elem:s,handlers:o})}return s=this,h\\s*$/g;function Lt(t,e){return D(t,\"table\")&&D(11!==e.nodeType?e:e.firstChild,\"tr\")&&w(t).children(\"tbody\")[0]||t}function It(t){return t.type=(null!==t.getAttribute(\"type\"))+\"/\"+t.type,t}function Ot(t){return\"true/\"===(t.type||\"\").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute(\"type\"),t}function Pt(t,e){var r,n,i,o,a,l;if(1===e.nodeType){if($.hasData(t)&&(l=$.get(t).events))for(i in $.remove(e,\"handle events\"),l)for(r=0,n=l[i].length;r1&&\"string\"==typeof m&&!g.checkClone&&jt.test(m))return t.each((function(i){var o=t.eq(i);f&&(e[0]=m.call(this,i,o.html())),Ft(o,e,r,n)}));if(p&&(o=(i=yt(e,t[0].ownerDocument,!1,t,n)).firstChild,1===i.childNodes.length&&(i=o),o||n)){for(l=(a=w.map(xt(i,\"script\"),It)).length;c0&&vt(a,!h&&xt(t,\"script\")),l},cleanData:function(t){for(var e,r,n,i=w.event.special,o=0;void 0!==(r=t[o]);o++)if(X(r)){if(e=r[$.expando]){if(e.events)for(n in e.events)i[n]?w.event.remove(r,n):w.removeEvent(r,n,e.handle);r[$.expando]=void 0}r[K.expando]&&(r[K.expando]=void 0)}}}),w.fn.extend({detach:function(t){return Ut(this,t,!0)},remove:function(t){return Ut(this,t)},text:function(t){return Y(this,(function(t){return void 0===t?w.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Ft(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Lt(this,t).appendChild(t)}))},prepend:function(){return Ft(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Lt(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Ft(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Ft(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(w.cleanData(xt(t,!1)),t.textContent=\"\");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return w.clone(this,t,e)}))},html:function(t){return Y(this,(function(t){var e=this[0]||{},r=0,n=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if(\"string\"==typeof t&&!At.test(t)&&!_t[(gt.exec(t)||[\"\",\"\"])[1].toLowerCase()]){t=w.htmlPrefilter(t);try{for(;r3,ot.removeChild(t)),l}}))}();var Vt=[\"Webkit\",\"Moz\",\"ms\"],Qt=x.createElement(\"div\").style,Xt={};function Zt(t){var e=w.cssProps[t]||Xt[t];return e||(t in Qt?t:Xt[t]=function(t){for(var e=t[0].toUpperCase()+t.slice(1),r=Vt.length;r--;)if((t=Vt[r]+e)in Qt)return t}(t)||t)}var $t=/^(none|table(?!-c[ea]).+)/,Kt=/^--/,Jt={position:\"absolute\",visibility:\"hidden\",display:\"block\"},te={letterSpacing:\"0\",fontWeight:\"400\"};function ee(t,e,r){var n=nt.exec(e);return n?Math.max(0,n[2]-(r||0))+(n[3]||\"px\"):e}function re(t,e,r,n,i,o){var a=\"width\"===e?1:0,l=0,h=0;if(r===(n?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===r&&(h+=w.css(t,r+it[a],!0,i)),n?(\"content\"===r&&(h-=w.css(t,\"padding\"+it[a],!0,i)),\"margin\"!==r&&(h-=w.css(t,\"border\"+it[a]+\"Width\",!0,i))):(h+=w.css(t,\"padding\"+it[a],!0,i),\"padding\"!==r?h+=w.css(t,\"border\"+it[a]+\"Width\",!0,i):l+=w.css(t,\"border\"+it[a]+\"Width\",!0,i));return!n&&o>=0&&(h+=Math.max(0,Math.ceil(t[\"offset\"+e[0].toUpperCase()+e.slice(1)]-o-h-l-.5))||0),h}function ne(t,e,r){var n=Bt(t),i=(!g.boxSizingReliable()||r)&&\"border-box\"===w.css(t,\"boxSizing\",!1,n),o=i,a=qt(t,e,n),l=\"offset\"+e[0].toUpperCase()+e.slice(1);if(Ht.test(a)){if(!r)return a;a=\"auto\"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&D(t,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===w.css(t,\"display\",!1,n))&&t.getClientRects().length&&(i=\"border-box\"===w.css(t,\"boxSizing\",!1,n),(o=l in t)&&(a=t[l])),(a=parseFloat(a)||0)+re(t,e,r||(i?\"border\":\"content\"),o,n,a)+\"px\"}function ie(t,e,r,n,i){return new ie.prototype.init(t,e,r,n,i)}w.extend({cssHooks:{opacity:{get:function(t,e){if(e){var r=qt(t,\"opacity\");return\"\"===r?\"1\":r}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,r,n){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var i,o,a,l=Q(e),h=Kt.test(e),s=t.style;if(h||(e=Zt(l)),a=w.cssHooks[e]||w.cssHooks[l],void 0===r)return a&&\"get\"in a&&void 0!==(i=a.get(t,!1,n))?i:s[e];\"string\"===(o=typeof r)&&(i=nt.exec(r))&&i[1]&&(r=st(t,e,i),o=\"number\"),null!=r&&r==r&&(\"number\"!==o||h||(r+=i&&i[3]||(w.cssNumber[l]?\"\":\"px\")),g.clearCloneStyle||\"\"!==r||0!==e.indexOf(\"background\")||(s[e]=\"inherit\"),a&&\"set\"in a&&void 0===(r=a.set(t,r,n))||(h?s.setProperty(e,r):s[e]=r))}},css:function(t,e,r,n){var i,o,a,l=Q(e);return Kt.test(e)||(e=Zt(l)),(a=w.cssHooks[e]||w.cssHooks[l])&&\"get\"in a&&(i=a.get(t,!0,r)),void 0===i&&(i=qt(t,e,n)),\"normal\"===i&&e in te&&(i=te[e]),\"\"===r||r?(o=parseFloat(i),!0===r||isFinite(o)?o||0:i):i}}),w.each([\"height\",\"width\"],(function(t,e){w.cssHooks[e]={get:function(t,r,n){if(r)return!$t.test(w.css(t,\"display\"))||t.getClientRects().length&&t.getBoundingClientRect().width?ne(t,e,n):Wt(t,Jt,(function(){return ne(t,e,n)}))},set:function(t,r,n){var i,o=Bt(t),a=!g.scrollboxSize()&&\"absolute\"===o.position,l=(a||n)&&\"border-box\"===w.css(t,\"boxSizing\",!1,o),h=n?re(t,e,n,l,o):0;return l&&a&&(h-=Math.ceil(t[\"offset\"+e[0].toUpperCase()+e.slice(1)]-parseFloat(o[e])-re(t,e,\"border\",!1,o)-.5)),h&&(i=nt.exec(r))&&\"px\"!==(i[3]||\"px\")&&(t.style[e]=r,r=w.css(t,e)),ee(0,r,h)}}})),w.cssHooks.marginLeft=Gt(g.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(qt(t,\"marginLeft\"))||t.getBoundingClientRect().left-Wt(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+\"px\"})),w.each({margin:\"\",padding:\"\",border:\"Width\"},(function(t,e){w.cssHooks[t+e]={expand:function(r){for(var n=0,i={},o=\"string\"==typeof r?r.split(\" \"):[r];n<4;n++)i[t+it[n]+e]=o[n]||o[n-2]||o[0];return i}},\"margin\"!==t&&(w.cssHooks[t+e].set=ee)})),w.fn.extend({css:function(t,e){return Y(this,(function(t,e,r){var n,i,o={},a=0;if(Array.isArray(e)){for(n=Bt(t),i=e.length;a1)}}),w.Tween=ie,ie.prototype={constructor:ie,init:function(t,e,r,n,i,o){this.elem=t,this.prop=r,this.easing=i||w.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=o||(w.cssNumber[r]?\"\":\"px\")},cur:function(){var t=ie.propHooks[this.prop];return t&&t.get?t.get(this):ie.propHooks._default.get(this)},run:function(t){var e,r=ie.propHooks[this.prop];return this.options.duration?this.pos=e=w.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),r&&r.set?r.set(this):ie.propHooks._default.set(this),this}},ie.prototype.init.prototype=ie.prototype,ie.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=w.css(t.elem,t.prop,\"\"))&&\"auto\"!==e?e:0},set:function(t){w.fx.step[t.prop]?w.fx.step[t.prop](t):1!==t.elem.nodeType||!w.cssHooks[t.prop]&&null==t.elem.style[Zt(t.prop)]?t.elem[t.prop]=t.now:w.style(t.elem,t.prop,t.now+t.unit)}}},ie.propHooks.scrollTop=ie.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},w.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:\"swing\"},w.fx=ie.prototype.init,w.fx.step={};var oe,ae,le=/^(?:toggle|show|hide)$/,he=/queueHooks$/;function se(){ae&&(!1===x.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(se):r.setTimeout(se,w.fx.interval),w.fx.tick())}function de(){return r.setTimeout((function(){oe=void 0})),oe=Date.now()}function ce(t,e){var r,n=0,i={height:t};for(e=e?1:0;n<4;n+=2-e)i[\"margin\"+(r=it[n])]=i[\"padding\"+r]=t;return e&&(i.opacity=i.width=t),i}function pe(t,e,r){for(var n,i=(ue.tweeners[e]||[]).concat(ue.tweeners[\"*\"]),o=0,a=i.length;o1)},removeAttr:function(t){return this.each((function(){w.removeAttr(this,t)}))}}),w.extend({attr:function(t,e,r){var n,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===t.getAttribute?w.prop(t,e,r):(1===o&&w.isXMLDoc(t)||(i=w.attrHooks[e.toLowerCase()]||(w.expr.match.bool.test(e)?me:void 0)),void 0!==r?null===r?void w.removeAttr(t,e):i&&\"set\"in i&&void 0!==(n=i.set(t,r,e))?n:(t.setAttribute(e,r+\"\"),r):i&&\"get\"in i&&null!==(n=i.get(t,e))?n:null==(n=w.find.attr(t,e))?void 0:n)},attrHooks:{type:{set:function(t,e){if(!g.radioValue&&\"radio\"===e&&D(t,\"input\")){var r=t.value;return t.setAttribute(\"type\",e),r&&(t.value=r),e}}}},removeAttr:function(t,e){var r,n=0,i=e&&e.match(P);if(i&&1===t.nodeType)for(;r=i[n++];)t.removeAttribute(r)}}),me={set:function(t,e,r){return!1===e?w.removeAttr(t,r):t.setAttribute(r,r),r}},w.each(w.expr.match.bool.source.match(/\\w+/g),(function(t,e){var r=fe[e]||w.find.attr;fe[e]=function(t,e,n){var i,o,a=e.toLowerCase();return n||(o=fe[a],fe[a]=i,i=null!=r(t,e,n)?a:null,fe[a]=o),i}}));var ge=/^(?:input|select|textarea|button)$/i,be=/^(?:a|area)$/i;function _e(t){return(t.match(P)||[]).join(\" \")}function xe(t){return t.getAttribute&&t.getAttribute(\"class\")||\"\"}function ve(t){return Array.isArray(t)?t:\"string\"==typeof t&&t.match(P)||[]}w.fn.extend({prop:function(t,e){return Y(this,w.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[w.propFix[t]||t]}))}}),w.extend({prop:function(t,e,r){var n,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(t)||(e=w.propFix[e]||e,i=w.propHooks[e]),void 0!==r?i&&\"set\"in i&&void 0!==(n=i.set(t,r,e))?n:t[e]=r:i&&\"get\"in i&&null!==(n=i.get(t,e))?n:t[e]},propHooks:{tabIndex:{get:function(t){var e=w.find.attr(t,\"tabindex\");return e?parseInt(e,10):ge.test(t.nodeName)||be.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),g.optSelected||(w.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),w.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],(function(){w.propFix[this.toLowerCase()]=this})),w.fn.extend({addClass:function(t){var e,r,n,i,o,a,l,h=0;if(b(t))return this.each((function(e){w(this).addClass(t.call(this,e,xe(this)))}));if((e=ve(t)).length)for(;r=this[h++];)if(i=xe(r),n=1===r.nodeType&&\" \"+_e(i)+\" \"){for(a=0;o=e[a++];)n.indexOf(\" \"+o+\" \")<0&&(n+=o+\" \");i!==(l=_e(n))&&r.setAttribute(\"class\",l)}return this},removeClass:function(t){var e,r,n,i,o,a,l,h=0;if(b(t))return this.each((function(e){w(this).removeClass(t.call(this,e,xe(this)))}));if(!arguments.length)return this.attr(\"class\",\"\");if((e=ve(t)).length)for(;r=this[h++];)if(i=xe(r),n=1===r.nodeType&&\" \"+_e(i)+\" \"){for(a=0;o=e[a++];)for(;n.indexOf(\" \"+o+\" \")>-1;)n=n.replace(\" \"+o+\" \",\" \");i!==(l=_e(n))&&r.setAttribute(\"class\",l)}return this},toggleClass:function(t,e){var r=typeof t,n=\"string\"===r||Array.isArray(t);return\"boolean\"==typeof e&&n?e?this.addClass(t):this.removeClass(t):b(t)?this.each((function(r){w(this).toggleClass(t.call(this,r,xe(this),e),e)})):this.each((function(){var e,i,o,a;if(n)for(i=0,o=w(this),a=ve(t);e=a[i++];)o.hasClass(e)?o.removeClass(e):o.addClass(e);else void 0!==t&&\"boolean\"!==r||((e=xe(this))&&$.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",e||!1===t?\"\":$.get(this,\"__className__\")||\"\"))}))},hasClass:function(t){var e,r,n=0;for(e=\" \"+t+\" \";r=this[n++];)if(1===r.nodeType&&(\" \"+_e(xe(r))+\" \").indexOf(e)>-1)return!0;return!1}});var ke=/\\r/g;w.fn.extend({val:function(t){var e,r,n,i=this[0];return arguments.length?(n=b(t),this.each((function(r){var i;1===this.nodeType&&(null==(i=n?t.call(this,r,w(this).val()):t)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=w.map(i,(function(t){return null==t?\"\":t+\"\"}))),(e=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&\"set\"in e&&void 0!==e.set(this,i,\"value\")||(this.value=i))}))):i?(e=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&\"get\"in e&&void 0!==(r=e.get(i,\"value\"))?r:\"string\"==typeof(r=i.value)?r.replace(ke,\"\"):null==r?\"\":r:void 0}}),w.extend({valHooks:{option:{get:function(t){var e=w.find.attr(t,\"value\");return null!=e?e:_e(w.text(t))}},select:{get:function(t){var e,r,n,i=t.options,o=t.selectedIndex,a=\"select-one\"===t.type,l=a?null:[],h=a?o+1:i.length;for(n=o<0?h:a?o:0;n-1)&&(r=!0);return r||(t.selectedIndex=-1),o}}}}),w.each([\"radio\",\"checkbox\"],(function(){w.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=w.inArray(w(t).val(),e)>-1}},g.checkOn||(w.valHooks[this].get=function(t){return null===t.getAttribute(\"value\")?\"on\":t.value})})),g.focusin=\"onfocusin\"in r;var ye=/^(?:focusinfocus|focusoutblur)$/,we=function(t){t.stopPropagation()};w.extend(w.event,{trigger:function(t,e,n,i){var o,a,l,h,s,d,c,p,m=[n||x],f=u.call(t,\"type\")?t.type:t,g=u.call(t,\"namespace\")?t.namespace.split(\".\"):[];if(a=p=l=n=n||x,3!==n.nodeType&&8!==n.nodeType&&!ye.test(f+w.event.triggered)&&(f.indexOf(\".\")>-1&&(g=f.split(\".\"),f=g.shift(),g.sort()),s=f.indexOf(\":\")<0&&\"on\"+f,(t=t[w.expando]?t:new w.Event(f,\"object\"==typeof t&&t)).isTrigger=i?2:3,t.namespace=g.join(\".\"),t.rnamespace=t.namespace?new RegExp(\"(^|\\\\.)\"+g.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:w.makeArray(e,[t]),c=w.event.special[f]||{},i||!c.trigger||!1!==c.trigger.apply(n,e))){if(!i&&!c.noBubble&&!_(n)){for(h=c.delegateType||f,ye.test(h+f)||(a=a.parentNode);a;a=a.parentNode)m.push(a),l=a;l===(n.ownerDocument||x)&&m.push(l.defaultView||l.parentWindow||r)}for(o=0;(a=m[o++])&&!t.isPropagationStopped();)p=a,t.type=o>1?h:c.bindType||f,(d=($.get(a,\"events\")||Object.create(null))[t.type]&&$.get(a,\"handle\"))&&d.apply(a,e),(d=s&&a[s])&&d.apply&&X(a)&&(t.result=d.apply(a,e),!1===t.result&&t.preventDefault());return t.type=f,i||t.isDefaultPrevented()||c._default&&!1!==c._default.apply(m.pop(),e)||!X(n)||s&&b(n[f])&&!_(n)&&((l=n[s])&&(n[s]=null),w.event.triggered=f,t.isPropagationStopped()&&p.addEventListener(f,we),n[f](),t.isPropagationStopped()&&p.removeEventListener(f,we),w.event.triggered=void 0,l&&(n[s]=l)),t.result}},simulate:function(t,e,r){var n=w.extend(new w.Event,r,{type:t,isSimulated:!0});w.event.trigger(n,null,e)}}),w.fn.extend({trigger:function(t,e){return this.each((function(){w.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var r=this[0];if(r)return w.event.trigger(t,e,r,!0)}}),g.focusin||w.each({focus:\"focusin\",blur:\"focusout\"},(function(t,e){var r=function(t){w.event.simulate(e,t.target,w.event.fix(t))};w.event.special[e]={setup:function(){var n=this.ownerDocument||this.document||this,i=$.access(n,e);i||n.addEventListener(t,r,!0),$.access(n,e,(i||0)+1)},teardown:function(){var n=this.ownerDocument||this.document||this,i=$.access(n,e)-1;i?$.access(n,e,i):(n.removeEventListener(t,r,!0),$.remove(n,e))}}}));var Se=r.location,Me={guid:Date.now()},Ce=/\\?/;w.parseXML=function(t){var e;if(!t||\"string\"!=typeof t)return null;try{e=(new r.DOMParser).parseFromString(t,\"text/xml\")}catch(t){e=void 0}return e&&!e.getElementsByTagName(\"parsererror\").length||w.error(\"Invalid XML: \"+t),e};var Te=/\\[\\]$/,Ee=/\\r?\\n/g,De=/^(?:submit|button|image|reset|file)$/i,Ne=/^(?:input|select|textarea|keygen)/i;function Ae(t,e,r,n){var i;if(Array.isArray(e))w.each(e,(function(e,i){r||Te.test(t)?n(t,i):Ae(t+\"[\"+(\"object\"==typeof i&&null!=i?e:\"\")+\"]\",i,r,n)}));else if(r||\"object\"!==y(e))n(t,e);else for(i in e)Ae(t+\"[\"+i+\"]\",e[i],r,n)}w.param=function(t,e){var r,n=[],i=function(t,e){var r=b(e)?e():e;n[n.length]=encodeURIComponent(t)+\"=\"+encodeURIComponent(null==r?\"\":r)};if(null==t)return\"\";if(Array.isArray(t)||t.jquery&&!w.isPlainObject(t))w.each(t,(function(){i(this.name,this.value)}));else for(r in t)Ae(r,t[r],e,i);return n.join(\"&\")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=w.prop(this,\"elements\");return t?w.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!w(this).is(\":disabled\")&&Ne.test(this.nodeName)&&!De.test(t)&&(this.checked||!ft.test(t))})).map((function(t,e){var r=w(this).val();return null==r?null:Array.isArray(r)?w.map(r,(function(t){return{name:e.name,value:t.replace(Ee,\"\\r\\n\")}})):{name:e.name,value:r.replace(Ee,\"\\r\\n\")}})).get()}});var je=/%20/g,ze=/#.*$/,Le=/([?&])_=[^&]*/,Ie=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Oe=/^(?:GET|HEAD)$/,Pe=/^\\/\\//,Re={},Fe={},Ue=\"*/\".concat(\"*\"),He=x.createElement(\"a\");function Be(t){return function(e,r){\"string\"!=typeof e&&(r=e,e=\"*\");var n,i=0,o=e.toLowerCase().match(P)||[];if(b(r))for(;n=o[i++];)\"+\"===n[0]?(n=n.slice(1)||\"*\",(t[n]=t[n]||[]).unshift(r)):(t[n]=t[n]||[]).push(r)}}function We(t,e,r,n){var i={},o=t===Fe;function a(l){var h;return i[l]=!0,w.each(t[l]||[],(function(t,l){var s=l(e,r,n);return\"string\"!=typeof s||o||i[s]?o?!(h=s):void 0:(e.dataTypes.unshift(s),a(s),!1)})),h}return a(e.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function Ye(t,e){var r,n,i=w.ajaxSettings.flatOptions||{};for(r in e)void 0!==e[r]&&((i[r]?t:n||(n={}))[r]=e[r]);return n&&w.extend(!0,t,n),t}He.href=Se.href,w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Se.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Se.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Ue,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ye(Ye(t,w.ajaxSettings),e):Ye(w.ajaxSettings,t)},ajaxPrefilter:Be(Re),ajaxTransport:Be(Fe),ajax:function(t,e){\"object\"==typeof t&&(e=t,t=void 0),e=e||{};var n,i,o,a,l,h,s,d,c,p,u=w.ajaxSetup({},e),m=u.context||u,f=u.context&&(m.nodeType||m.jquery)?w(m):w.event,g=w.Deferred(),b=w.Callbacks(\"once memory\"),_=u.statusCode||{},v={},k={},y=\"canceled\",S={readyState:0,getResponseHeader:function(t){var e;if(s){if(!a)for(a={};e=Ie.exec(o);)a[e[1].toLowerCase()+\" \"]=(a[e[1].toLowerCase()+\" \"]||[]).concat(e[2]);e=a[t.toLowerCase()+\" \"]}return null==e?null:e.join(\", \")},getAllResponseHeaders:function(){return s?o:null},setRequestHeader:function(t,e){return null==s&&(t=k[t.toLowerCase()]=k[t.toLowerCase()]||t,v[t]=e),this},overrideMimeType:function(t){return null==s&&(u.mimeType=t),this},statusCode:function(t){var e;if(t)if(s)S.always(t[S.status]);else for(e in t)_[e]=[_[e],t[e]];return this},abort:function(t){var e=t||y;return n&&n.abort(e),M(0,e),this}};if(g.promise(S),u.url=((t||u.url||Se.href)+\"\").replace(Pe,Se.protocol+\"//\"),u.type=e.method||e.type||u.method||u.type,u.dataTypes=(u.dataType||\"*\").toLowerCase().match(P)||[\"\"],null==u.crossDomain){h=x.createElement(\"a\");try{h.href=u.url,h.href=h.href,u.crossDomain=He.protocol+\"//\"+He.host!=h.protocol+\"//\"+h.host}catch(t){u.crossDomain=!0}}if(u.data&&u.processData&&\"string\"!=typeof u.data&&(u.data=w.param(u.data,u.traditional)),We(Re,u,e,S),s)return S;for(c in(d=w.event&&u.global)&&0==w.active++&&w.event.trigger(\"ajaxStart\"),u.type=u.type.toUpperCase(),u.hasContent=!Oe.test(u.type),i=u.url.replace(ze,\"\"),u.hasContent?u.data&&u.processData&&0===(u.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(u.data=u.data.replace(je,\"+\")):(p=u.url.slice(i.length),u.data&&(u.processData||\"string\"==typeof u.data)&&(i+=(Ce.test(i)?\"&\":\"?\")+u.data,delete u.data),!1===u.cache&&(i=i.replace(Le,\"$1\"),p=(Ce.test(i)?\"&\":\"?\")+\"_=\"+Me.guid+++p),u.url=i+p),u.ifModified&&(w.lastModified[i]&&S.setRequestHeader(\"If-Modified-Since\",w.lastModified[i]),w.etag[i]&&S.setRequestHeader(\"If-None-Match\",w.etag[i])),(u.data&&u.hasContent&&!1!==u.contentType||e.contentType)&&S.setRequestHeader(\"Content-Type\",u.contentType),S.setRequestHeader(\"Accept\",u.dataTypes[0]&&u.accepts[u.dataTypes[0]]?u.accepts[u.dataTypes[0]]+(\"*\"!==u.dataTypes[0]?\", \"+Ue+\"; q=0.01\":\"\"):u.accepts[\"*\"]),u.headers)S.setRequestHeader(c,u.headers[c]);if(u.beforeSend&&(!1===u.beforeSend.call(m,S,u)||s))return S.abort();if(y=\"abort\",b.add(u.complete),S.done(u.success),S.fail(u.error),n=We(Fe,u,e,S)){if(S.readyState=1,d&&f.trigger(\"ajaxSend\",[S,u]),s)return S;u.async&&u.timeout>0&&(l=r.setTimeout((function(){S.abort(\"timeout\")}),u.timeout));try{s=!1,n.send(v,M)}catch(t){if(s)throw t;M(-1,t)}}else M(-1,\"No Transport\");function M(t,e,a,h){var c,p,x,v,k,y=e;s||(s=!0,l&&r.clearTimeout(l),n=void 0,o=h||\"\",S.readyState=t>0?4:0,c=t>=200&&t<300||304===t,a&&(v=function(t,e,r){for(var n,i,o,a,l=t.contents,h=t.dataTypes;\"*\"===h[0];)h.shift(),void 0===n&&(n=t.mimeType||e.getResponseHeader(\"Content-Type\"));if(n)for(i in l)if(l[i]&&l[i].test(n)){h.unshift(i);break}if(h[0]in r)o=h[0];else{for(i in r){if(!h[0]||t.converters[i+\" \"+h[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==h[0]&&h.unshift(o),r[o]}(u,S,a)),!c&&w.inArray(\"script\",u.dataTypes)>-1&&(u.converters[\"text script\"]=function(){}),v=function(t,e,r,n){var i,o,a,l,h,s={},d=t.dataTypes.slice();if(d[1])for(a in t.converters)s[a.toLowerCase()]=t.converters[a];for(o=d.shift();o;)if(t.responseFields[o]&&(r[t.responseFields[o]]=e),!h&&n&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),h=o,o=d.shift())if(\"*\"===o)o=h;else if(\"*\"!==h&&h!==o){if(!(a=s[h+\" \"+o]||s[\"* \"+o]))for(i in s)if((l=i.split(\" \"))[1]===o&&(a=s[h+\" \"+l[0]]||s[\"* \"+l[0]])){!0===a?a=s[i]:!0!==s[i]&&(o=l[0],d.unshift(l[1]));break}if(!0!==a)if(a&&t.throws)e=a(e);else try{e=a(e)}catch(t){return{state:\"parsererror\",error:a?t:\"No conversion from \"+h+\" to \"+o}}}return{state:\"success\",data:e}}(u,v,S,c),c?(u.ifModified&&((k=S.getResponseHeader(\"Last-Modified\"))&&(w.lastModified[i]=k),(k=S.getResponseHeader(\"etag\"))&&(w.etag[i]=k)),204===t||\"HEAD\"===u.type?y=\"nocontent\":304===t?y=\"notmodified\":(y=v.state,p=v.data,c=!(x=v.error))):(x=y,!t&&y||(y=\"error\",t<0&&(t=0))),S.status=t,S.statusText=(e||y)+\"\",c?g.resolveWith(m,[p,y,S]):g.rejectWith(m,[S,y,x]),S.statusCode(_),_=void 0,d&&f.trigger(c?\"ajaxSuccess\":\"ajaxError\",[S,u,c?p:x]),b.fireWith(m,[S,y]),d&&(f.trigger(\"ajaxComplete\",[S,u]),--w.active||w.event.trigger(\"ajaxStop\")))}return S},getJSON:function(t,e,r){return w.get(t,e,r,\"json\")},getScript:function(t,e){return w.get(t,void 0,e,\"script\")}}),w.each([\"get\",\"post\"],(function(t,e){w[e]=function(t,r,n,i){return b(r)&&(i=i||n,n=r,r=void 0),w.ajax(w.extend({url:t,type:e,dataType:i,data:r,success:n},w.isPlainObject(t)&&t))}})),w.ajaxPrefilter((function(t){var e;for(e in t.headers)\"content-type\"===e.toLowerCase()&&(t.contentType=t.headers[e]||\"\")})),w._evalUrl=function(t,e,r){return w.ajax({url:t,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(t){w.globalEval(t,e,r)}})},w.fn.extend({wrapAll:function(t){var e;return this[0]&&(b(t)&&(t=t.call(this[0])),e=w(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return b(t)?this.each((function(e){w(this).wrapInner(t.call(this,e))})):this.each((function(){var e=w(this),r=e.contents();r.length?r.wrapAll(t):e.append(t)}))},wrap:function(t){var e=b(t);return this.each((function(r){w(this).wrapAll(e?t.call(this,r):t)}))},unwrap:function(t){return this.parent(t).not(\"body\").each((function(){w(this).replaceWith(this.childNodes)})),this}}),w.expr.pseudos.hidden=function(t){return!w.expr.pseudos.visible(t)},w.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(t){}};var qe={0:200,1223:204},Ge=w.ajaxSettings.xhr();g.cors=!!Ge&&\"withCredentials\"in Ge,g.ajax=Ge=!!Ge,w.ajaxTransport((function(t){var e,n;if(g.cors||Ge&&!t.crossDomain)return{send:function(i,o){var a,l=t.xhr();if(l.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)l[a]=t.xhrFields[a];for(a in t.mimeType&&l.overrideMimeType&&l.overrideMimeType(t.mimeType),t.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\"),i)l.setRequestHeader(a,i[a]);e=function(t){return function(){e&&(e=n=l.onload=l.onerror=l.onabort=l.ontimeout=l.onreadystatechange=null,\"abort\"===t?l.abort():\"error\"===t?\"number\"!=typeof l.status?o(0,\"error\"):o(l.status,l.statusText):o(qe[l.status]||l.status,l.statusText,\"text\"!==(l.responseType||\"text\")||\"string\"!=typeof l.responseText?{binary:l.response}:{text:l.responseText},l.getAllResponseHeaders()))}},l.onload=e(),n=l.onerror=l.ontimeout=e(\"error\"),void 0!==l.onabort?l.onabort=n:l.onreadystatechange=function(){4===l.readyState&&r.setTimeout((function(){e&&n()}))},e=e(\"abort\");try{l.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),w.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),w.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(t){return w.globalEval(t),t}}}),w.ajaxPrefilter(\"script\",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type=\"GET\")})),w.ajaxTransport(\"script\",(function(t){var e,r;if(t.crossDomain||t.scriptAttrs)return{send:function(n,i){e=w(\"\n", " \n", " \n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 478, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import hiplot as hip\n", "dps = []\n", "for uid,data in plot_data:\n", " dp = hip.Datapoint(uid=uid, values=data)\n", " dps.append(dp)\n", "hip.Experiment(datapoints=dps).display(force_full_width=False)\n" ] }, { "cell_type": "code", "execution_count": 479, "id": "98e2dab7", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "avg-acc rank = 166 / 15625 top 1.1 % error= 6.24\n", "disc-acc rank = 12744 / 15625 top 81.6 % error= 13.55\n", "darts-pt rank = 13770 / 15625 top 88.1 % error= 19.43\n", "zc-pt rank = 14 / 15625 top 0.1 % error= 5.81\n", "disc-zc rank = 14274 / 15625 top 91.4 % error= 22.96\n", "best-acc rank = 1 / 15625 top 0.0 % error= 5.63\n", "darts rank = 15231 / 15625 top 97.5 % error= 45.7\n" ] } ], "source": [ "acc_d = pickle.load(open('nb2_test_acc_cf10.p','rb'))\n", "for m in metrics:\n", " best_ops = best_archs[m]\n", " selected_acc = stat.mean(acc_d[tuple(best_ops)]) # avg accuracy\n", " rank = 1\n", " for k,v in acc_d.items():\n", " if stat.mean(v) > selected_acc:\n", " rank += 1\n", " print(m,'rank = ',rank,'/',len(acc_d), 'top', round(rank/len(acc_d)*100,1), '% error=', round(100-selected_acc,2))" ] }, { "cell_type": "code", "execution_count": 482, "id": "ad23ee51", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "avg-acc rank = 92 / 15625 top 0.6 % error= 6.02\n", "disc-acc rank = 12803 / 15625 top 81.9 % error= 13.43\n", "darts-pt rank = 13754 / 15625 top 88.0 % error= 18.75\n", "zc-pt rank = 16 / 15625 top 0.1 % error= 5.72\n", "disc-zc rank = 14273 / 15625 top 91.3 % error= 22.39\n", "best-acc rank = 1 / 15625 top 0.0 % error= 5.32\n", "darts rank = 15141 / 15625 top 96.9 % error= 37.45\n" ] } ], "source": [ "acc_d = pickle.load(open('nb2_test_acc_cf10.p','rb'))\n", "for m in metrics:\n", " best_ops = best_archs[m]\n", " selected_acc = max(acc_d[tuple(best_ops)]) # best acc\n", " rank = 1\n", " for k,v in acc_d.items():\n", " if max(v) > selected_acc:\n", " rank += 1\n", " print(m,'rank = ',rank,'/',len(acc_d), 'top', round(rank/len(acc_d)*100,1), '% error=', round(100-selected_acc,2))" ] }, { "cell_type": "code", "execution_count": 483, "id": "660d4d81", "metadata": {}, "outputs": [], "source": [ "def get_top(k):\n", " return f\"\"\"\\\\begin{{table}}[t]\n", "\\\\centering\n", "\\\\caption {{Raw values of operation scoring functions to reproduce Figure~\\\\ref{{metric_correlation}}.}}\n", "\\\\footnotesize \n", "\\\\begin{{threeparttable}} \n", "\\\\begin{{tabular}}{{@{{}}lcccccc@{{}}}} \n", "\\\\toprule\n", "& $edge\\\\backslash op$ & none & skip\\_connect & nor\\_conv\\_1x1 & nor\\_conv\\_3x3 & avg\\_pool\\_3x3 \\\\\\\\ \\\\toprule\"\"\"\n", "\n", "def get_bot(k):\n", " return f\"\"\"\\\\bottomrule\n", "\\\\end{{tabular}}\n", "\\\\end{{threeparttable}}\n", "\\\\label{{tbl:raw-{k}}}\n", "\\\\end{{table}}\"\"\"" ] }, { "cell_type": "code", "execution_count": 487, "id": "db405e8d", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\\begin{table}[t]\n", "\\centering\n", "\\caption {Raw values of operation scoring functions to reproduce Figure~\\ref{metric_correlation}.}\n", "\\footnotesize \n", "\\begin{threeparttable} \n", "\\begin{tabular}{@{}lcccccc@{}} \n", "\\toprule\n", "& $edge\\backslash op$ & none & skip\\_connect & nor\\_conv\\_1x1 & nor\\_conv\\_3x3 & avg\\_pool\\_3x3 \\\\ \\toprule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{avg-acc}}} & 0 & 77.36 & 81.02 & 83.81 & \\secondbest{86.38} & \\best{87.32} \\\\\n", " & 1 & 80.03 & 83.11 & \\secondbest{85.23} & \\best{85.99} & 81.52 \\\\\n", " & 2 & 82.9 & 82.44 & \\secondbest{84.05} & \\best{84.49} & 81.98 \\\\\n", " & 3 & 74.02 & 85.17 & \\secondbest{87.3} & \\best{88.28} & 81.38 \\\\\n", " & 4 & 80.14 & 83.05 & \\secondbest{85.09} & \\best{85.7} & 81.89 \\\\\n", " & 5 & 77.61 & 83.43 & \\secondbest{86.18} & \\best{86.95} & 81.74 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{disc-acc}}} & 0 & \\best{83.27} & \\secondbest{82.24} & 65.0 & 71.76 & 54.31 \\\\\n", " & 1 & \\best{84.94} & 83.23 & 73.23 & 76.77 & \\secondbest{83.45} \\\\\n", " & 2 & \\best{83.87} & \\secondbest{83.73} & 77.33 & 76.83 & 83.25 \\\\\n", " & 3 & 65.77 & \\best{84.44} & 75.82 & \\secondbest{78.68} & 62.7 \\\\\n", " & 4 & \\best{83.57} & 82.03 & 75.02 & 76.09 & \\secondbest{82.56} \\\\\n", " & 5 & \\best{83.95} & \\secondbest{82.45} & 66.69 & 71.36 & 80.31 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{darts-pt}}} & 0 & -85.43 & \\best{-17.02} & -78.13 & \\secondbest{-59.09} & -85.34 \\\\\n", " & 1 & -85.52 & \\best{-36.1} & -84.39 & \\secondbest{-80.95} & -85.49 \\\\\n", " & 2 & -85.51 & \\secondbest{-80.29} & -81.86 & \\best{-77.68} & -85.32 \\\\\n", " & 3 & -85.49 & \\best{-9.86} & -81.79 & \\secondbest{-59.18} & -85.48 \\\\\n", " & 4 & -85.45 & \\best{-51.15} & -78.84 & \\secondbest{-64.64} & -85.14 \\\\\n", " & 5 & -85.54 & \\best{-32.43} & -81.04 & \\secondbest{-72.75} & -85.51 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{zc-pt}}} & 0 & -3455.23 & -3449.9 & \\secondbest{-3449.54} & \\best{-3441.82} & -3461.18 \\\\\n", " & 1 & -3452.15 & -3448.7 & \\secondbest{-3441.81} & \\best{-3440.65} & -3453.74 \\\\\n", " & 2 & -3446.52 & -3447.61 & \\best{-3435.46} & \\secondbest{-3436.4} & -3449.28 \\\\\n", " & 3 & -3453.81 & \\best{-3435.99} & \\secondbest{-3444.04} & -3445.6 & -3447.07 \\\\\n", " & 4 & -3451.06 & -3449.8 & \\secondbest{-3442.63} & \\best{-3441.13} & -3453.31 \\\\\n", " & 5 & -3450.97 & -3448.21 & \\best{-3440.8} & \\secondbest{-3443.24} & -3452.99 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{disc-zc}}} & 0 & 3331.01 & \\best{3445.49} & 3366.88 & \\secondbest{3437.55} & 3423.18 \\\\\n", " & 1 & 3429.07 & \\best{3435.75} & 3407.87 & \\secondbest{3434.58} & 3421.44 \\\\\n", " & 2 & 3428.8 & 3423.36 & \\best{3440.93} & \\secondbest{3437.29} & 3416.89 \\\\\n", " & 3 & 3408.99 & \\best{3464.05} & 3359.89 & 3382.18 & \\secondbest{3431.81} \\\\\n", " & 4 & \\secondbest{3433.99} & \\best{3435.57} & 3424.47 & 3431.14 & 3423.15 \\\\\n", " & 5 & \\secondbest{3434.42} & \\best{3437.66} & 3418.57 & 3397.52 & 3424.17 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{best-acc}}} & 0 & 94.15 & 94.18 & \\secondbest{94.44} & \\best{94.68} & 93.86 \\\\\n", " & 1 & 94.24 & 94.16 & \\secondbest{94.49} & \\best{94.68} & 94.09 \\\\\n", " & 2 & 94.25 & 94.43 & \\secondbest{94.49} & \\best{94.68} & 94.19 \\\\\n", " & 3 & \\secondbest{94.16} & \\best{94.68} & 94.03 & 94.04 & 93.85 \\\\\n", " & 4 & 94.29 & 94.18 & \\secondbest{94.56} & \\best{94.68} & 94.23 \\\\\n", " & 5 & 94.05 & 94.16 & \\best{94.68} & \\secondbest{94.56} & 94.1 \\\\\n", "\\midrule\n", "\\parbox[t]{2mm}{\\multirow{6}{*}{\\rotatebox[origin=c]{90}{darts}}} & 0 & 0.14 & \\best{0.48} & 0.13 & \\secondbest{0.18} & 0.07 \\\\\n", " & 1 & 0.12 & \\best{0.55} & 0.11 & \\secondbest{0.12} & 0.09 \\\\\n", " & 2 & \\secondbest{0.24} & \\best{0.33} & 0.15 & 0.17 & 0.11 \\\\\n", " & 3 & 0.06 & \\best{0.65} & 0.08 & \\secondbest{0.13} & 0.07 \\\\\n", " & 4 & 0.12 & \\best{0.48} & 0.13 & \\secondbest{0.17} & 0.1 \\\\\n", " & 5 & \\secondbest{0.16} & \\best{0.49} & 0.12 & 0.14 & 0.09 \\\\\n", "\\midrule\n", "\\bottomrule\n", "\\end{tabular}\n", "\\end{threeparttable}\n", "\\label{tbl:raw-op-scores}\n", "\\end{table}\n", "\n" ] } ], "source": [ "import copy\n", "print(get_top(k))\n", "for k,v in sq_op_strengths.items():\n", " #print(k)\n", " for i,r in enumerate(v):\n", " if i == 0:\n", " print(f'\\\\parbox[t]{{2mm}}{{\\\\multirow{{6}}{{*}}{{\\\\rotatebox[origin=c]{{90}}{{{k}}}}}}} & ', end='')\n", " print(f'{i} & ', end='')\n", " else:\n", " print(f' & {i} & ', end='')\n", " for c in r:\n", " first = max(r)\n", " rr = copy.copy(r)\n", " rr.sort()\n", " second = rr[-2]\n", " if c == first:\n", " print(f'\\\\best{{{round(c,2)}}}', end='')\n", " elif c == second:\n", " print(f'\\\\secondbest{{{round(c,2)}}}', end='')\n", " else:\n", " print(round(c,2), end='')\n", " if c != r[-1]:\n", " print(' & ', end='')\n", " else:\n", " print(' \\\\\\\\')\n", " print('\\\\midrule')\n", "print(get_bot('op-scores'))\n", "print()" ] }, { "cell_type": "code", "execution_count": null, "id": "fa6b0d77", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 22, "id": "6a8f2a31", "metadata": {}, "outputs": [], "source": [ "from itertools import product\n", "x =list(product([0,1,2,3], repeat=4))" ] }, { "cell_type": "code", "execution_count": 23, "id": "76f46a37", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3), (0, 0, 1, 0), (0, 0, 1, 1), (0, 0, 1, 2), (0, 0, 1, 3), (0, 0, 2, 0), (0, 0, 2, 1), (0, 0, 2, 2), (0, 0, 2, 3), (0, 0, 3, 0), (0, 0, 3, 1), (0, 0, 3, 2), (0, 0, 3, 3), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 0, 2), (0, 1, 0, 3), (0, 1, 1, 0), (0, 1, 1, 1), (0, 1, 1, 2), (0, 1, 1, 3), (0, 1, 2, 0), (0, 1, 2, 1), (0, 1, 2, 2), (0, 1, 2, 3), (0, 1, 3, 0), (0, 1, 3, 1), (0, 1, 3, 2), (0, 1, 3, 3), (0, 2, 0, 0), (0, 2, 0, 1), (0, 2, 0, 2), (0, 2, 0, 3), (0, 2, 1, 0), (0, 2, 1, 1), (0, 2, 1, 2), (0, 2, 1, 3), (0, 2, 2, 0), (0, 2, 2, 1), (0, 2, 2, 2), (0, 2, 2, 3), (0, 2, 3, 0), (0, 2, 3, 1), (0, 2, 3, 2), (0, 2, 3, 3), (0, 3, 0, 0), (0, 3, 0, 1), (0, 3, 0, 2), (0, 3, 0, 3), (0, 3, 1, 0), (0, 3, 1, 1), (0, 3, 1, 2), (0, 3, 1, 3), (0, 3, 2, 0), (0, 3, 2, 1), (0, 3, 2, 2), (0, 3, 2, 3), (0, 3, 3, 0), (0, 3, 3, 1), (0, 3, 3, 2), (0, 3, 3, 3), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 0, 2), (1, 0, 0, 3), (1, 0, 1, 0), (1, 0, 1, 1), (1, 0, 1, 2), (1, 0, 1, 3), (1, 0, 2, 0), (1, 0, 2, 1), (1, 0, 2, 2), (1, 0, 2, 3), (1, 0, 3, 0), (1, 0, 3, 1), (1, 0, 3, 2), (1, 0, 3, 3), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 0, 2), (1, 1, 0, 3), (1, 1, 1, 0), (1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (1, 1, 2, 0), (1, 1, 2, 1), (1, 1, 2, 2), (1, 1, 2, 3), (1, 1, 3, 0), (1, 1, 3, 1), (1, 1, 3, 2), (1, 1, 3, 3), (1, 2, 0, 0), (1, 2, 0, 1), (1, 2, 0, 2), (1, 2, 0, 3), (1, 2, 1, 0), (1, 2, 1, 1), (1, 2, 1, 2), (1, 2, 1, 3), (1, 2, 2, 0), (1, 2, 2, 1), (1, 2, 2, 2), (1, 2, 2, 3), (1, 2, 3, 0), (1, 2, 3, 1), (1, 2, 3, 2), (1, 2, 3, 3), (1, 3, 0, 0), (1, 3, 0, 1), (1, 3, 0, 2), (1, 3, 0, 3), (1, 3, 1, 0), (1, 3, 1, 1), (1, 3, 1, 2), (1, 3, 1, 3), (1, 3, 2, 0), (1, 3, 2, 1), (1, 3, 2, 2), (1, 3, 2, 3), (1, 3, 3, 0), (1, 3, 3, 1), (1, 3, 3, 2), (1, 3, 3, 3), (2, 0, 0, 0), (2, 0, 0, 1), (2, 0, 0, 2), (2, 0, 0, 3), (2, 0, 1, 0), (2, 0, 1, 1), (2, 0, 1, 2), (2, 0, 1, 3), (2, 0, 2, 0), (2, 0, 2, 1), (2, 0, 2, 2), (2, 0, 2, 3), (2, 0, 3, 0), (2, 0, 3, 1), (2, 0, 3, 2), (2, 0, 3, 3), (2, 1, 0, 0), (2, 1, 0, 1), (2, 1, 0, 2), (2, 1, 0, 3), (2, 1, 1, 0), (2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 1, 3), (2, 1, 2, 0), (2, 1, 2, 1), (2, 1, 2, 2), (2, 1, 2, 3), (2, 1, 3, 0), (2, 1, 3, 1), (2, 1, 3, 2), (2, 1, 3, 3), (2, 2, 0, 0), (2, 2, 0, 1), (2, 2, 0, 2), (2, 2, 0, 3), (2, 2, 1, 0), (2, 2, 1, 1), (2, 2, 1, 2), (2, 2, 1, 3), (2, 2, 2, 0), (2, 2, 2, 1), (2, 2, 2, 2), (2, 2, 2, 3), (2, 2, 3, 0), (2, 2, 3, 1), (2, 2, 3, 2), (2, 2, 3, 3), (2, 3, 0, 0), (2, 3, 0, 1), (2, 3, 0, 2), (2, 3, 0, 3), (2, 3, 1, 0), (2, 3, 1, 1), (2, 3, 1, 2), (2, 3, 1, 3), (2, 3, 2, 0), (2, 3, 2, 1), (2, 3, 2, 2), (2, 3, 2, 3), (2, 3, 3, 0), (2, 3, 3, 1), (2, 3, 3, 2), (2, 3, 3, 3), (3, 0, 0, 0), (3, 0, 0, 1), (3, 0, 0, 2), (3, 0, 0, 3), (3, 0, 1, 0), (3, 0, 1, 1), (3, 0, 1, 2), (3, 0, 1, 3), (3, 0, 2, 0), (3, 0, 2, 1), (3, 0, 2, 2), (3, 0, 2, 3), (3, 0, 3, 0), (3, 0, 3, 1), (3, 0, 3, 2), (3, 0, 3, 3), (3, 1, 0, 0), (3, 1, 0, 1), (3, 1, 0, 2), (3, 1, 0, 3), (3, 1, 1, 0), (3, 1, 1, 1), (3, 1, 1, 2), (3, 1, 1, 3), (3, 1, 2, 0), (3, 1, 2, 1), (3, 1, 2, 2), (3, 1, 2, 3), (3, 1, 3, 0), (3, 1, 3, 1), (3, 1, 3, 2), (3, 1, 3, 3), (3, 2, 0, 0), (3, 2, 0, 1), (3, 2, 0, 2), (3, 2, 0, 3), (3, 2, 1, 0), (3, 2, 1, 1), (3, 2, 1, 2), (3, 2, 1, 3), (3, 2, 2, 0), (3, 2, 2, 1), (3, 2, 2, 2), (3, 2, 2, 3), (3, 2, 3, 0), (3, 2, 3, 1), (3, 2, 3, 2), (3, 2, 3, 3), (3, 3, 0, 0), (3, 3, 0, 1), (3, 3, 0, 2), (3, 3, 0, 3), (3, 3, 1, 0), (3, 3, 1, 1), (3, 3, 1, 2), (3, 3, 1, 3), (3, 3, 2, 0), (3, 3, 2, 1), (3, 3, 2, 2), (3, 3, 2, 3), (3, 3, 3, 0), (3, 3, 3, 1), (3, 3, 3, 2), (3, 3, 3, 3)]\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "e633562a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "darts", "language": "python", "name": "darts" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.10" } }, "nbformat": 4, "nbformat_minor": 5 }