{"version":3,"sources":["webpack:///./src/components/WorldMap/WorldMap.vue?6053","webpack:///./src/util/throttle.js","webpack:///src/components/WorldMap/WorldMap.vue","webpack:///./src/components/WorldMap/WorldMap.vue?56e3","webpack:///./src/components/WorldMap/WorldMap.vue","webpack:///./node_modules/datamaps/node_modules/d3/d3.js","webpack:///./node_modules/topojson/build/topojson.js","webpack:///./node_modules/datamaps/dist/datamaps.all.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","staticRenderFns","throttle","handlerFunc","resizeTimeout","timeout","setTimeout","data","color1","color2","highlightFillColor","borderColor","highlightBorderColor","mapData","AUS","BRA","CAN","DEU","FRA","GBR","GEO","IND","ROU","RUS","USA","methods","generateColors","d3","generateMapColors","defaultFill","fills","key","colors","val","fillKey","value","initVectorMap","scope","element","document","getElementById","responsive","geographyConfig","borderWidth","borderOpacity","highlightBorderWidth","highlightBorderOpacity","window","addEventListener","component","version","d3_arraySlice","slice","d3_array","list","call","d3_document","d3_documentElement","node","ownerDocument","documentElement","d3_window","defaultView","childNodes","nodeType","e","i","length","array","Array","Date","now","createElement","style","setProperty","error","d3_element_prototype","Element","prototype","d3_element_setAttribute","setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","name","space","local","priority","d3_ascending","a","b","NaN","d3_number","x","d3_numeric","isNaN","d3_bisector","compare","left","lo","hi","arguments","mid","right","ascending","descending","min","f","n","max","extent","c","sum","s","mean","j","quantile","values","p","H","h","Math","floor","v","median","numbers","push","sort","variance","d","m","deviation","apply","sqrt","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","i0","i1","t","random","permute","indexes","permutes","pairs","p1","transpose","matrix","row","zip","keys","map","entries","merge","arrays","merged","abs","d3_range_integerScale","k","d3_class","ctor","properties","Object","defineProperty","enumerable","d3_Map","_","create","range","start","stop","step","Infinity","Error","object","forEach","set","isArray","o","d3_map_proto","d3_map_zero","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","size","d3_map_empty","d3_Set","d3_identity","d3_rebind","target","source","method","d3_vendorSymbol","charAt","toUpperCase","d3_vendorPrefixes","prefixName","has","get","remove","empty","nest","sortValues","rollup","sortKeys","mapType","depth","keyValue","setter","valuesByKey","sortKey","keyMap","order","add","behavior","rebind","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","listeners","listenerByName","event","l","z","on","listener","indexOf","concat","d3_eventPreventDefault","preventDefault","d3_eventSource","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","hasOwnProperty","requote","replace","d3_requote_re","d3_subclass","__proto__","property","d3_selection","groups","d3_selectionPrototype","d3_select","querySelector","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","matches","Sizzle","matchesSelector","selection","select","d3_selection_selector","selector","d3_selection_selectorAll","subgroup","subnode","group","subgroups","parentNode","__data__","selectAll","d3_nsXhtml","d3_nsPrefix","svg","xhtml","xlink","xml","xmlns","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","d3_selection_classedRe","RegExp","d3_selection_classes","split","d3_selection_classed","d3_selection_classedName","classedConstant","classedFunction","re","classList","getAttribute","lastIndex","test","d3_selection_style","styleNull","removeProperty","styleConstant","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createElementNS","createNS","d3_selectionRemove","parent","removeChild","d3_selection_dataNode","d3_selection_filter","d3_selection_sortComparator","comparator","d3_selection_each","callback","d3_selection_enter","d3_selection_enterPrototype","prefix","attr","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","textContent","html","innerHTML","append","appendChild","insert","before","insertBefore","bind","groupData","nodeData","n0","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","update","enter","exit","datum","filter","next","nextSibling","args","d3_selection_enterInsertBefore","j0","d3_selection_on","capture","wrap","d3_selection_onListener","d3_selection_onFilters","onRemove","removeEventListener","$","onAdd","removeAll","match","d3_selection_onFilter","upgroup","nodes","mouseenter","mouseleave","related","relatedTarget","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","click","w","suppressClick","off","mouse","container","d3_mousePoint","d3_mouse_bug44083","navigator","userAgent","changedTouches","ownerSVGElement","createSVGPoint","point","scrollX","scrollY","position","top","margin","padding","border","ctm","getScreenCTM","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","drag","origin","mousedown","dragstart","touchstart","id","subject","move","end","dragOffset","that","correspondingElement","dragged","dragId","dragName","dragSubject","moved","ended","dragRestore","position0","dx","dy","position1","ε","ε2","π","PI","τ","τε","halfπ","d3_radians","d3_degrees","d3_sgn","d3_cross2d","d3_acos","acos","d3_asin","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","ρ","SQRT2","ρ2","ρ4","interpolateZoom","p0","S","ux0","uy0","w0","ux1","uy1","w1","d2","log","d1","b0","b1","r0","r1","coshr0","u","duration","zoom","translate0","center0","center","mousewheelTimer","touchtime","x0","x1","y0","y1","view","scaleExtent","d3_behavior_zoomInfinity","zooming","mousemove","mouseup","g","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","scaleTo","translateTo","zoomTo","__chart__","pow","transition","rescale","domain","invert","zoomstarted","zoomed","scale","translate","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","targets","relocate","started","changed","LN2","q","l0","l1","distance1","scale1","clearTimeout","d3_behavior_zoomDelta","shiftKey","ceil","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","tween","cx","cy","copy","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","color","toString","rgb","hsl","d3_hslPrototype","d3_hsl_rgb","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","r","brighter","darker","hcl","d3_hclPrototype","d3_hcl_lab","cos","d3_lab_K","lab","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_labPrototype","d3_lab_rgb","d3_lab_xyz","d3_xyz_rgb","atan2","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","format","exec","toLowerCase","parseFloat","d3_rgb_parseNumber","d3_rgb_names","parseInt","d3_rgb_xyz","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","result","status","d3_xhrHasResponse","load","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","send","open","setRequestHeader","overrideMimeType","beforesend","abort","d3_xhr_fixCallback","responseText","functor","dsv","delimiter","reFormat","delimiterCode","charCodeAt","typedResponse","parse","formatRow","formatValue","join","parseRows","Function","JSON","stringify","eol","EOL","EOF","rows","N","I","token","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","delay","then","time","timer","d3_timer_step","d3_timer_mark","d3_timer_sweep","isFinite","t0","t1","d3_format_precision","LN10","flush","d3_formatPrefixes","d3_formatPrefix","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","width","substring","reverse","specifier","d3_format_re","fill","align","sign","zfill","comma","precision","suffix","integer","exponent","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","after","lastIndexOf","String","fromCharCode","X","toPrecision","toExponential","toFixed","d3_time","d3_date","d3_date_utc","UTC","getDate","getUTCDate","getDay","getUTCDay","getFullYear","getUTCFullYear","getHours","getUTCHours","getMilliseconds","getUTCMilliseconds","getMinutes","getUTCMinutes","getMonth","getUTCMonth","getSeconds","getUTCSeconds","getTime","getTimezoneOffset","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setFullYear","setUTCFullYear","setHours","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","d3_time_interval","number","date","d0","offset","dt","times","range_utc","utc","d3_time_interval_utc","d3_locale_timeFormat","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","d3_time_format","template","string","d3_time_formatPads","d3_time_formats","M","L","Z","d3_time_parse","localZ","W","U","d3_time_parsers","multi","d3_time_formatMulti","d3_time_periodLookup","d3_time_dayRe","d3_time_formatRe","d3_time_dayLookup","d3_time_formatLookup","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_monthRe","d3_time_monthLookup","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","A","B","d3_time_formatPad","dayOfYear","sundayOfYear","mondayOfYear","Y","d3_time_zone","d3_time_parseWeekdayAbbrev","d3_time_parseWeekday","d3_time_parseMonthAbbrev","d3_time_parseMonth","d3_time_parseLocaleFull","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseAmPm","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseLocaleDate","d3_time_parseLocaleTime","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","year","day","years","interval","week","sunday","weeks","weekOfYear","d3_time_numberRe","d3_time_percentRe","names","d3_time_expandYear","zs","zh","zm","formats","numberFormat","timeFormat","d3_locale_enUS","d3_adder","geo","d3_adderSum","d3_adderTemp","reset","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","stream","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","sphere","Point","coordinates","MultiPoint","LineString","d3_geo_streamLine","MultiLineString","Polygon","d3_geo_streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","area","d3_geo_areaSum","d3_geo_area","d3_geo_centroidW0","d3_geo_centroidW1","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_areaRingSum","d3_geo_areaRingStart","λ00","φ00","λ0","cosφ0","sinφ0","nextPoint","λ","φ","dλ","sdλ","adλ","cosφ","sinφ","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","bounds","φ0","λ1","φ1","λ_","λ__","φ__","dλSum","ranges","bound","ringPoint","ringStart","ringEnd","linePoint","normal","equatorial","inflection","λi","antimeridian","φi","angle","compareRanges","withinRange","best","centroid","d3_geo_centroid","d3_geo_centroidPoint","d3_geo_centroidLineStart","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","d3_geo_centroidPointXYZ","z0","cz","d3_geo_compose","compose","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","clip","segment","d3_geo_clipPolygonIntersection","d3_geo_clipPolygonLinkCircular","entry","points","current","isSubject","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","line","rotatedClipStart","pointRing","polygon","d3_geo_pointInPolygon","polygonStarted","d3_geo_clipSort","pointLine","ring","buffer","d3_geo_clipBufferListener","ringListener","clean","ringSegments","pop","shift","d3_geo_clipSegmentLength1","lines","rejoin","d3_geo_clipAntimeridian","d3_geo_clipAntimeridianLine","d3_geo_clipAntimeridianInterpolate","sλ0","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","from","to","direction","meridian","parallel","meridianNormal","polarAngle","winding","point0","arc","intersection","φarc","d3_geo_clipCircle","radius","cr","smallRadius","notHemisphere","d3_geo_circleInterpolate","visible","c0","v0","v00","point2","point1","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","δλ","polar","q1","d3_geom_clipLine","ax","ay","bx","by","d3_geo_clipExtentMAX","d3_geo_clipExtent","x__","y__","v__","x_","y_","v_","first","listener_","bufferListener","insidePolygon","inside","wn","a1","corner","comparePoints","ca","cb","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","C","ρ0","forward","ρ0_y","clipExtent","output","valid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathAreaPolygon","d3_geo_pathBoundsX0","d3_geo_pathBoundsY0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY1","d3_geo_pathArea","d3_geo_pathAreaRingStart","x00","y00","d3_geo_pathBounds","d3_geo_pathBoundsPoint","d3_geo_pathBuffer","pointCircle","d3_geo_pathBufferCircle","pointLineStart","lineEndPolygon","pointRadius","d3_geo_lengthSum","d3_geo_pathCentroid","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","δ2","cosMinDistance","maxDepth","resample","resampleRecursive","resampleNone","d3_geo_transformPoint","a00","b00","c00","a0","resampleLineTo","φ2","λ2","x2","y2","dx2","dy2","dz","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projectRotate","δx","δy","projectResample","δφ","δγ","preclip","postclip","clipAngle","projection","d3_geo_rotation","invalidate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","path","projectStream","contextStream","cacheStream","transform","projectionMutator","equirectangular","circle","Δλ","sinΔλ","cosΔλ","sinφ1","graticule","X1","X0","Y1","Y0","DX","DY","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_length","d3_geo_lengthLineStart","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","d3_geo_conicConformal","F","d3_geo_mercator","d3_geo_conicEquidistant","G","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","d3_geo_mercatorProjection","clipAuto","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","stereographic","transverseMercator","geom","vertices","fx","fy","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","input","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","vertex","previous","P","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","cell","iHalfEdge","halfEdges","nHalfEdges","cells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiClipEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","grandpa","uncle","sibling","voronoi","d3_geom_voronoiClipExtent","polygons","links","triangles","s0","s1","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","d3_geom_quadtreeVisit","sx","sy","children","d3_geom_quadtreeFind","root","closestPoint","minDistance2","find","distance2","xm","ym","below","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","delaunay","quadtree","compat","xs","ys","x1_","y1_","x2_","y2_","nx","ny","insertChild","nPoint","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","na","nb","interpolateArray","d3_ease_default","d3_ease","linear","poly","d3_ease_poly","quad","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","d3_ease_elastic","back","d3_ease_back","bounce","d3_ease_bounce","d3_ease_mode","out","d3_ease_reverse","d3_ease_reflect","d3_ease_clamp","d3_ease_cubicInOut","t3","d3_interpolateHcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","aa","ba","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","ease","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTranslate","ta","tb","d3_interpolateRotate","ra","rb","d3_interpolateSkew","wa","wb","d3_interpolateScale","ka","kb","d3_interpolateTransform","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","alpha","charges","charge","pointCharge","interpolateTransform","layout","bundle","paths","chord","chords","sortGroups","sortSubgroups","sortChords","relayout","groupSums","groupIndex","subgroupIndex","di","dj","subindex","startAngle","endAngle","resort","force","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","chargeDistance2","d3_layout_forceChargeDistance2","gravity","theta2","repulse","dw","dn","dragmove","resume","tick","weight","chargeDistance","theta","neighbors","dimension","candidates","d3_layout_hierarchyRebind","hierarchy","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","stack","childs","revalue","partition","pie","Number","d3_layout_pieSortByValue","padAngle","da","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","bottom","tops","bottoms","silhouette","wiggle","s2","s3","o0","expand","zero","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","d3_layout_packUnlink","d3_layout_packTransform","db","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","bins","thresholds","pack","separation","nodeSize","root0","root1","wrapTree","firstWalk","secondWalk","sizeNode","tx","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","stickies","pad","sticky","mode","ratio","squarify","score","remaining","worst","stickify","rmax","rmin","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","d3_scale_polylinear","d3_scale_linear","clamp","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","rangeBand","steps","xi","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_scale_quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_zero","quantize","threshold","innerRadius","d3_svg_arcInnerRadius","outerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","cw","rc","circleSegment","rp","ap","d3_svg_arcSweep","h1","h0","rc1","rc0","oc","kc","lc","t30","d3_svg_arcCornerTangents","t12","t03","t21","x01","y01","ox","oy","D","cx0","cx1","dx0","dy0","dx1","dy1","d3_svg_line","defined","d3_svg_lineLinear","interpolateKey","tension","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","d3_svg_lineStepBefore","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","cardinal","d3_svg_lineCardinal","d3_svg_lineCardinalOpen","d3_svg_lineCardinalClosed","monotone","d3_svg_lineMonotone","d3_svg_lineHermite","d3_svg_lineCardinalTangents","tangents","pi","lp","p2","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","d3_svg_symbolSqrt3","symbolTypes","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transitionNode","d3_transition","interrupt","d3_selection_interruptNS","lock","activeId","active","count","d3_transitionPrototype","d3_transition_tween","d3_transition_text","inherit","tweens","schedule","elapsed","cancelId","cancel","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","axis","tickFormat_","orient","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","tickEnter","tickExit","tickUpdate","tickSpacing","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSize","tickSubdivide","brush","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","background","resize","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","eventTarget","event_","resizing","resizingX","resizingY","dragging","keydown","keyup","brushmove","brushend","ex","ey","altKey","keyCode","move1","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","d3_time_formatIsoNative","toISOString","d3_time_scale","tickMethod","d3_time_scaleSteps","d3_time_scaleMilliseconds","d3_time_scaleDate","skip","skipped","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","d3_json","d3_html","createRange","selectNode","body","createContextualFragment","json","responseXML","global","factory","exports","noop","transformAbsolute","transformRelative","topology","feature$1","absolute","geometryType","stitchArcs","stitchedArcs","fragmentByStart","fragmentByEnd","fragments","emptyIndex","ends","dp","fg","gf","mesh","meshArcs","geomsByArc","geoms","cartesianTriangleArea","triangle","mergeArcs","objects","polygonsByArc","components","register","ring$$","ki","indexesByArc","ij","ik","compareArea","minAreaHeap","heap","up","down","removed","presimplify","triangleArea","relative","maxArea","topojson","defaultOptions","aspectRatio","setProjection","dataType","done","filters","dataUrl","hideAntarctica","hideHawaiiAndAlaska","popupTemplate","geography","popupOnHover","highlightOnHover","projectionConfig","bubblesConfig","fillOpacity","animate","highlightFillOpacity","exitDelay","arcConfig","strokeColor","strokeWidth","arcSharpness","animationSpeed","destination","latitude","longitude","datumValue","optionsValue","optionsValues","undefined","fnContext","addContainer","height","offsetWidth","offsetHeight","options","addStyleBlock","drawSubunits","fillData","colorCodeData","geoConfig","subunits","addLayer","geoData","fillColor","handleGeographyConfig","moveToFront","$this","previousAttributes","updatePopup","addLegend","layer","label","legendTitle","defaultFillName","labels","addGraticule","handleArcs","defaults","originXY","destXY","latLngToXY","midXY","sharpness","getTotalLength","WebkitTransition","strokeDasharray","strokeDashoffset","handleLabels","labelStartCoodinates","xOffset","yOffset","smallStateIndex","yStart","fontSize","labelColor","lineWidth","fontFamily","customLabelText","handleBubbles","filterData","bubbles","datumHasCoords","latLng","centered","filterKey","obj","prop","Datamap","addPlugin","disableDefaultStyles","draw","newsize","clientWidth","oldsize","pathAndProjection","results","customTopo","dataJson","tmpData","Datamaps","updateChoropleth","hoverover","worldTopo","abwTopo","afgTopo","agoTopo","aiaTopo","albTopo","aldTopo","andTopo","areTopo","argTopo","armTopo","asmTopo","ataTopo","atcTopo","atfTopo","atgTopo","ausTopo","autTopo","azeTopo","bdiTopo","belTopo","benTopo","bfaTopo","bgdTopo","bgrTopo","bhrTopo","bhsTopo","bihTopo","bjnTopo","blmTopo","blrTopo","blzTopo","bmuTopo","bolTopo","braTopo","brbTopo","brnTopo","btnTopo","norTopo","bwaTopo","cafTopo","canTopo","cheTopo","chlTopo","chnTopo","civTopo","clpTopo","cmrTopo","codTopo","cogTopo","cokTopo","colTopo","comTopo","cpvTopo","criTopo","csiTopo","cubTopo","cuwTopo","cymTopo","cynTopo","cypTopo","czeTopo","deuTopo","djiTopo","dmaTopo","dnkTopo","domTopo","dzaTopo","ecuTopo","egyTopo","eriTopo","esbTopo","espTopo","estTopo","ethTopo","finTopo","fjiTopo","flkTopo","fraTopo","froTopo","fsmTopo","gabTopo","psxTopo","gbrTopo","geoTopo","ggyTopo","ghaTopo","gibTopo","ginTopo","gmbTopo","gnbTopo","gnqTopo","grcTopo","grdTopo","grlTopo","gtmTopo","gumTopo","guyTopo","hkgTopo","hmdTopo","hndTopo","hrvTopo","htiTopo","hunTopo","idnTopo","imnTopo","indTopo","ioaTopo","iotTopo","irlTopo","irnTopo","irqTopo","islTopo","isrTopo","itaTopo","jamTopo","jeyTopo","jorTopo","jpnTopo","kabTopo","kasTopo","kazTopo","kenTopo","kgzTopo","khmTopo","kirTopo","knaTopo","korTopo","kosTopo","kwtTopo","laoTopo","lbnTopo","lbrTopo","lbyTopo","lcaTopo","lieTopo","lkaTopo","lsoTopo","ltuTopo","luxTopo","lvaTopo","macTopo","mafTopo","marTopo","mcoTopo","mdaTopo","mdgTopo","mdvTopo","mexTopo","mhlTopo","mkdTopo","mliTopo","mltTopo","mmrTopo","mneTopo","mngTopo","mnpTopo","mozTopo","mrtTopo","msrTopo","musTopo","mwiTopo","mysTopo","namTopo","nclTopo","nerTopo","nfkTopo","ngaTopo","nicTopo","niuTopo","nldTopo","nplTopo","nruTopo","nulTopo","nzlTopo","omnTopo","pakTopo","panTopo","pcnTopo","perTopo","pgaTopo","phlTopo","plwTopo","pngTopo","polTopo","priTopo","prkTopo","prtTopo","pryTopo","pyfTopo","qatTopo","rouTopo","rusTopo","rwaTopo","sahTopo","sauTopo","scrTopo","sdnTopo","sdsTopo","senTopo","serTopo","sgpTopo","sgsTopo","shnTopo","slbTopo","sleTopo","slvTopo","smrTopo","solTopo","somTopo","spmTopo","srbTopo","stpTopo","surTopo","svkTopo","svnTopo","sweTopo","swzTopo","sxmTopo","sycTopo","syrTopo","tcaTopo","tcdTopo","tgoTopo","thaTopo","tjkTopo","tkmTopo","tlsTopo","tonTopo","ttoTopo","tunTopo","turTopo","tuvTopo","twnTopo","tzaTopo","ugaTopo","ukrTopo","umiTopo","uryTopo","usaTopo","usgTopo","uzbTopo","vatTopo","vctTopo","venTopo","vgbTopo","virTopo","vnmTopo","vutTopo","wlfTopo","wsbTopo","wsmTopo","yemTopo","zafTopo","zmbTopo","zweTopo","lat","lng","className","subunit","subunitData","pluginFn","createNewLayer","module","jQuery","fn","datamaps","datamap"],"mappings":"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AG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IA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","file":"js/chunk-7690076c.cc93e51a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"300px\"},attrs:{\"id\":\"worldMap\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\r\n * Simple throttle function that executes a passed function only once in the specified timeout\r\n * @param handlerFunc\r\n * @param [timeout] the throttle interval\r\n */\r\nexport function throttle(handlerFunc, timeout = 66) {\r\n let resizeTimeout;\r\n if (!resizeTimeout) {\r\n resizeTimeout = setTimeout(() => {\r\n resizeTimeout = null;\r\n handlerFunc();\r\n // The actualResizeHandler will execute at a rate of 15fps\r\n }, timeout);\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorldMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorldMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WorldMap.vue?vue&type=template&id=9a0b0678&\"\nimport script from \"./WorldMap.vue?vue&type=script&lang=js&\"\nexport * from \"./WorldMap.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","!function() {\n var d3 = {\n version: \"3.5.17\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = this.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name, value) {\n d3_element_setAttribute.call(this, name, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name, value, priority) {\n d3_style_setProperty.call(this, name, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [ a, c ];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key: key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key, value) {\n map.set(key, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\x00\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [ object ]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue, values) {\n object.set(keyValue, map(mapType, values, depth));\n };\n } else {\n object = {};\n setter = function(keyValue, values) {\n object[keyValue] = map(mapType, values, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map, depth) {\n if (depth >= keys.length) return map;\n var array = [], sortKey = sortKeys[depth++];\n map.forEach(function(key, keyMap) {\n array.push({\n key: key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name) {\n if (name in object) return name;\n name = name.charAt(0).toUpperCase() + name.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n function d3_noop() {}\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {}\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name = \"\";\n if (i >= 0) {\n name = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name, listener) {\n var l = listenerByName.get(name), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name);\n }\n if (listener) listeners.push(listenerByName.set(name, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n, s) {\n return d3_selectMatcher.call(n, s);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name) {\n var i = name.indexOf(\":\"), prefix = name;\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name\n } : name;\n }\n };\n d3_selectionPrototype.attr = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node();\n name = d3.ns.qualify(name);\n return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n }\n for (value in name) this.each(d3_selection_attr(value, name[value]));\n return this;\n }\n return this.each(d3_selection_attr(name, value));\n };\n function d3_selection_attr(name, value) {\n name = d3.ns.qualify(name);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrConstant() {\n this.setAttribute(name, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name.space, name.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n }\n return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name) this.each(d3_selection_classed(value, name[value]));\n return this;\n }\n return this.each(d3_selection_classed(name, value));\n };\n function d3_selection_classedRe(name) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name) {\n return (name + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name, value) {\n name = d3_selection_classes(name).map(d3_selection_classedName);\n var n = name.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name) {\n var re = d3_selection_classedRe(name);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name) : c.remove(name);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name, value, priority));\n };\n function d3_selection_style(name, value, priority) {\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleConstant() {\n this.style.setProperty(name, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") return this.node()[name];\n for (value in name) this.each(d3_selection_property(value, name[value]));\n return this;\n }\n return this.each(d3_selection_property(name, value));\n };\n function d3_selection_property(name, value) {\n function propertyNull() {\n delete this[name];\n }\n function propertyConstant() {\n this[name] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name]; else this[name] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name) {\n name = d3_selection_creator(name);\n return this.select(function() {\n return this.appendChild(name.apply(this, arguments));\n });\n };\n function d3_selection_creator(name) {\n function create() {\n var document = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name.space, name.local);\n }\n return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name, before) {\n name = d3_selection_creator(name);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group, groupData) {\n var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;\n for (i = -1; ++i < n; ) {\n if (node = group[i]) {\n if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {\n exitNodes[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n keyValues[i] = keyValue;\n }\n }\n for (i = -1; ++i < m; ) {\n if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n } else if (node !== true) {\n updateNodes[i] = node;\n node.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i = -1; ++i < n; ) {\n if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {\n exitNodes[i] = group[i];\n }\n }\n } else {\n for (i = -1; ++i < n0; ) {\n node = group[i];\n nodeData = groupData[i];\n if (node) {\n node.__data__ = nodeData;\n updateNodes[i] = node;\n } else {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n }\n for (;i < m; ++i) {\n enterNodes[i] = d3_selection_dataNode(groupData[i]);\n }\n for (;i < n; ++i) {\n exitNodes[i] = group[i];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [ d3_select(node, d3_document) ];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [ node ];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([ group ]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([ group ]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name in this) {\n if (match = name.match(re)) {\n var l = this[name];\n this.removeEventListener(match[1], l, l.$);\n delete this[name];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window(node)).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window = d3_window(container);\n if (window.scrollX || window.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [ point.x, point.y ];\n }\n var rect = container.getBoundingClientRect();\n return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n } else {\n dragOffset = [ 0, 0 ];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx: dx,\n dy: dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < ε2) {\n S = Math.log(w1 / w0) / ρ;\n i = function(t) {\n return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / ρ;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k: k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [ view.x, view.y ];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location(p) {\n return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n }\n function point(l) {\n return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [ view.x, view.y ]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), \n translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {}\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h) {\n if (h > 360) h -= 360; else if (h < 0) h += 360;\n if (h < 60) return m1 + (m2 - m1) * h / 60;\n if (h < 180) return m2;\n if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n return m1;\n }\n function vv(h) {\n return Math.round(v(h) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb, hsl) {\n var r = 0, g = 0, b = 0, m1, m2, color;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\":\n {\n return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n\n case \"rgb\":\n {\n return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color = d3_rgb_names.get(format)) {\n return rgb(color.r, color.g, color.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color & 3840) >> 4;\n r = r >> 4 | r;\n g = color & 240;\n g = g >> 4 | g;\n b = color & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color & 16711680) >> 16;\n g = (color & 65280) >> 8;\n b = color & 255;\n }\n }\n return rgb(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < .5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (this.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name];\n if (value == null) delete headers[name]; else headers[name] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [ \"get\", \"post\" ].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback) {\n if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n callback(null, request);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n o = f ? function(row, i) {\n return f(a(row), i);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t0, t1 = d3_timer_queueHead, time = Infinity;\n while (t1) {\n if (t1.c) {\n if (t1.t < time) time = t1.t;\n t1 = (t0 = t1).n;\n } else {\n t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n }\n }\n d3_timer_queueTail = t0;\n return time;\n }\n function d3_format_precision(x, p) {\n return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n d3.formatPrefix = function(value, precision) {\n var i = 0;\n if (value = +value) {\n if (value < 0) value *= -1;\n if (precision) value = d3.round(value, d3_format_precision(value, precision));\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n return d3_formatPrefixes[8 + i / 3];\n };\n function d3_formatPrefix(d, i) {\n var k = Math.pow(10, abs(8 - i) * 3);\n return {\n scale: i > 8 ? function(d) {\n return d / k;\n } : function(d) {\n return d * k;\n },\n symbol: d\n };\n }\n function d3_locale_numberFormat(locale) {\n var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {\n var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = locale_grouping[j = (j + 1) % locale_grouping.length];\n }\n return t.reverse().join(locale_thousands);\n } : d3_identity;\n return function(specifier) {\n var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"-\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false, exponent = true;\n if (precision) precision = +precision.substring(1);\n if (zfill || fill === \"0\" && align === \"=\") {\n zfill = fill = \"0\";\n align = \"=\";\n }\n switch (type) {\n case \"n\":\n comma = true;\n type = \"g\";\n break;\n\n case \"%\":\n scale = 100;\n suffix = \"%\";\n type = \"f\";\n break;\n\n case \"p\":\n scale = 100;\n suffix = \"%\";\n type = \"r\";\n break;\n\n case \"b\":\n case \"o\":\n case \"x\":\n case \"X\":\n if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n case \"c\":\n exponent = false;\n\n case \"d\":\n integer = true;\n precision = 0;\n break;\n\n case \"s\":\n scale = -1;\n type = \"r\";\n break;\n }\n if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n if (type == \"r\" && !precision) type = \"g\";\n if (precision != null) {\n if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n }\n type = d3_format_types.get(type) || d3_format_typeDefault;\n var zcomma = zfill && comma;\n return function(value) {\n var fullSuffix = suffix;\n if (integer && value % 1) return \"\";\n var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign === \"-\" ? \"\" : sign;\n if (scale < 0) {\n var unit = d3.formatPrefix(value, precision);\n value = unit.scale(value);\n fullSuffix = unit.symbol + suffix;\n } else {\n value *= scale;\n }\n value = type(value, precision);\n var i = value.lastIndexOf(\".\"), before, after;\n if (i < 0) {\n var j = exponent ? value.lastIndexOf(\"e\") : -1;\n if (j < 0) before = value, after = \"\"; else before = value.substring(0, j), after = value.substring(j);\n } else {\n before = value.substring(0, i);\n after = locale_decimal + value.substring(i + 1);\n }\n if (!zfill && comma) before = formatGroup(before, Infinity);\n var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);\n negative += prefix;\n value = before + after;\n return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n };\n };\n }\n var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n var d3_format_types = d3.map({\n b: function(x) {\n return x.toString(2);\n },\n c: function(x) {\n return String.fromCharCode(x);\n },\n o: function(x) {\n return x.toString(8);\n },\n x: function(x) {\n return x.toString(16);\n },\n X: function(x) {\n return x.toString(16).toUpperCase();\n },\n g: function(x, p) {\n return x.toPrecision(p);\n },\n e: function(x, p) {\n return x.toExponential(p);\n },\n f: function(x, p) {\n return x.toFixed(p);\n },\n r: function(x, p) {\n return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n }\n });\n function d3_format_typeDefault(x) {\n return x + \"\";\n }\n var d3_time = d3.time = {}, d3_date = Date;\n function d3_date_utc() {\n this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n }\n d3_date_utc.prototype = {\n getDate: function() {\n return this._.getUTCDate();\n },\n getDay: function() {\n return this._.getUTCDay();\n },\n getFullYear: function() {\n return this._.getUTCFullYear();\n },\n getHours: function() {\n return this._.getUTCHours();\n },\n getMilliseconds: function() {\n return this._.getUTCMilliseconds();\n },\n getMinutes: function() {\n return this._.getUTCMinutes();\n },\n getMonth: function() {\n return this._.getUTCMonth();\n },\n getSeconds: function() {\n return this._.getUTCSeconds();\n },\n getTime: function() {\n return this._.getTime();\n },\n getTimezoneOffset: function() {\n return 0;\n },\n valueOf: function() {\n return this._.valueOf();\n },\n setDate: function() {\n d3_time_prototype.setUTCDate.apply(this._, arguments);\n },\n setDay: function() {\n d3_time_prototype.setUTCDay.apply(this._, arguments);\n },\n setFullYear: function() {\n d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n },\n setHours: function() {\n d3_time_prototype.setUTCHours.apply(this._, arguments);\n },\n setMilliseconds: function() {\n d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n },\n setMinutes: function() {\n d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n },\n setMonth: function() {\n d3_time_prototype.setUTCMonth.apply(this._, arguments);\n },\n setSeconds: function() {\n d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n },\n setTime: function() {\n d3_time_prototype.setTime.apply(this._, arguments);\n }\n };\n var d3_time_prototype = Date.prototype;\n function d3_time_interval(local, step, number) {\n function round(date) {\n var d0 = local(date), d1 = offset(d0, 1);\n return date - d0 < d1 - date ? d0 : d1;\n }\n function ceil(date) {\n step(date = local(new d3_date(date - 1)), 1);\n return date;\n }\n function offset(date, k) {\n step(date = new d3_date(+date), k);\n return date;\n }\n function range(t0, t1, dt) {\n var time = ceil(t0), times = [];\n if (dt > 1) {\n while (time < t1) {\n if (!(number(time) % dt)) times.push(new Date(+time));\n step(time, 1);\n }\n } else {\n while (time < t1) times.push(new Date(+time)), step(time, 1);\n }\n return times;\n }\n function range_utc(t0, t1, dt) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = t0;\n return range(utc, t1, dt);\n } finally {\n d3_date = Date;\n }\n }\n local.floor = local;\n local.round = round;\n local.ceil = ceil;\n local.offset = offset;\n local.range = range;\n var utc = local.utc = d3_time_interval_utc(local);\n utc.floor = utc;\n utc.round = d3_time_interval_utc(round);\n utc.ceil = d3_time_interval_utc(ceil);\n utc.offset = d3_time_interval_utc(offset);\n utc.range = range_utc;\n return local;\n }\n function d3_time_interval_utc(method) {\n return function(date, k) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = date;\n return method(utc, k)._;\n } finally {\n d3_date = Date;\n }\n };\n }\n d3_time.year = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setMonth(0, 1);\n return date;\n }, function(date, offset) {\n date.setFullYear(date.getFullYear() + offset);\n }, function(date) {\n return date.getFullYear();\n });\n d3_time.years = d3_time.year.range;\n d3_time.years.utc = d3_time.year.utc.range;\n d3_time.day = d3_time_interval(function(date) {\n var day = new d3_date(2e3, 0);\n day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n return day;\n }, function(date, offset) {\n date.setDate(date.getDate() + offset);\n }, function(date) {\n return date.getDate() - 1;\n });\n d3_time.days = d3_time.day.range;\n d3_time.days.utc = d3_time.day.utc.range;\n d3_time.dayOfYear = function(date) {\n var year = d3_time.year(date);\n return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n };\n [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n i = 7 - i;\n var interval = d3_time[day] = d3_time_interval(function(date) {\n (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n return date;\n }, function(date, offset) {\n date.setDate(date.getDate() + Math.floor(offset) * 7);\n }, function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n });\n d3_time[day + \"s\"] = interval.range;\n d3_time[day + \"s\"].utc = interval.utc.range;\n d3_time[day + \"OfYear\"] = function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n };\n });\n d3_time.week = d3_time.sunday;\n d3_time.weeks = d3_time.sunday.range;\n d3_time.weeks.utc = d3_time.sunday.utc.range;\n d3_time.weekOfYear = d3_time.sundayOfYear;\n function d3_locale_timeFormat(locale) {\n var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n function d3_time_format(template) {\n var n = template.length;\n function format(date) {\n var string = [], i = -1, j = 0, c, p, f;\n while (++i < n) {\n if (template.charCodeAt(i) === 37) {\n string.push(template.slice(j, i));\n if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(template.slice(j, i));\n return string.join(\"\");\n }\n format.parse = function(string) {\n var d = {\n y: 1900,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n Z: null\n }, i = d3_time_parse(d, template, string, 0);\n if (i != string.length) return null;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n date.setFullYear(d.y, 0, 1);\n date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n } else date.setFullYear(d.y, d.m, d.d);\n date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);\n return localZ ? date._ : date;\n };\n format.toString = function() {\n return template;\n };\n return format;\n }\n function d3_time_parse(date, template, string, j) {\n var c, p, t, i = 0, n = template.length, m = string.length;\n while (i < n) {\n if (j >= m) return -1;\n c = template.charCodeAt(i++);\n if (c === 37) {\n t = template.charAt(i++);\n p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n if (!p || (j = p(date, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n d3_time_format.utc = function(template) {\n var local = d3_time_format(template);\n function format(date) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date();\n utc._ = date;\n return local(utc);\n } finally {\n d3_date = Date;\n }\n }\n format.parse = function(string) {\n try {\n d3_date = d3_date_utc;\n var date = local.parse(string);\n return date && date._;\n } finally {\n d3_date = Date;\n }\n };\n format.toString = local.toString;\n return format;\n };\n d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n locale_periods.forEach(function(p, i) {\n d3_time_periodLookup.set(p.toLowerCase(), i);\n });\n var d3_time_formats = {\n a: function(d) {\n return locale_shortDays[d.getDay()];\n },\n A: function(d) {\n return locale_days[d.getDay()];\n },\n b: function(d) {\n return locale_shortMonths[d.getMonth()];\n },\n B: function(d) {\n return locale_months[d.getMonth()];\n },\n c: d3_time_format(locale_dateTime),\n d: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n e: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n H: function(d, p) {\n return d3_time_formatPad(d.getHours(), p, 2);\n },\n I: function(d, p) {\n return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n },\n j: function(d, p) {\n return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n },\n L: function(d, p) {\n return d3_time_formatPad(d.getMilliseconds(), p, 3);\n },\n m: function(d, p) {\n return d3_time_formatPad(d.getMonth() + 1, p, 2);\n },\n M: function(d, p) {\n return d3_time_formatPad(d.getMinutes(), p, 2);\n },\n p: function(d) {\n return locale_periods[+(d.getHours() >= 12)];\n },\n S: function(d, p) {\n return d3_time_formatPad(d.getSeconds(), p, 2);\n },\n U: function(d, p) {\n return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n },\n w: function(d) {\n return d.getDay();\n },\n W: function(d, p) {\n return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n },\n x: d3_time_format(locale_date),\n X: d3_time_format(locale_time),\n y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n },\n Y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n },\n Z: d3_time_zone,\n \"%\": function() {\n return \"%\";\n }\n };\n var d3_time_parsers = {\n a: d3_time_parseWeekdayAbbrev,\n A: d3_time_parseWeekday,\n b: d3_time_parseMonthAbbrev,\n B: d3_time_parseMonth,\n c: d3_time_parseLocaleFull,\n d: d3_time_parseDay,\n e: d3_time_parseDay,\n H: d3_time_parseHour24,\n I: d3_time_parseHour24,\n j: d3_time_parseDayOfYear,\n L: d3_time_parseMilliseconds,\n m: d3_time_parseMonthNumber,\n M: d3_time_parseMinutes,\n p: d3_time_parseAmPm,\n S: d3_time_parseSeconds,\n U: d3_time_parseWeekNumberSunday,\n w: d3_time_parseWeekdayNumber,\n W: d3_time_parseWeekNumberMonday,\n x: d3_time_parseLocaleDate,\n X: d3_time_parseLocaleTime,\n y: d3_time_parseYear,\n Y: d3_time_parseFullYear,\n Z: d3_time_parseZone,\n \"%\": d3_time_parseLiteralPercent\n };\n function d3_time_parseWeekdayAbbrev(date, string, i) {\n d3_time_dayAbbrevRe.lastIndex = 0;\n var n = d3_time_dayAbbrevRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseWeekday(date, string, i) {\n d3_time_dayRe.lastIndex = 0;\n var n = d3_time_dayRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonthAbbrev(date, string, i) {\n d3_time_monthAbbrevRe.lastIndex = 0;\n var n = d3_time_monthAbbrevRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonth(date, string, i) {\n d3_time_monthRe.lastIndex = 0;\n var n = d3_time_monthRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseLocaleFull(date, string, i) {\n return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n }\n function d3_time_parseLocaleDate(date, string, i) {\n return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n }\n function d3_time_parseLocaleTime(date, string, i) {\n return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n }\n function d3_time_parseAmPm(date, string, i) {\n var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());\n return n == null ? -1 : (date.p = n, i);\n }\n return d3_time_format;\n }\n var d3_time_formatPads = {\n \"-\": \"\",\n _: \" \",\n \"0\": \"0\"\n }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n function d3_time_formatPad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function d3_time_formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n }\n function d3_time_formatLookup(names) {\n var map = new d3_Map(), i = -1, n = names.length;\n while (++i < n) map.set(names[i].toLowerCase(), i);\n return map;\n }\n function d3_time_parseWeekdayNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 1));\n return n ? (date.w = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberSunday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.U = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberMonday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.W = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseFullYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 4));\n return n ? (date.y = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n }\n function d3_time_parseZone(date, string, i) {\n return /^[+-]\\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, \n i + 5) : -1;\n }\n function d3_time_expandYear(d) {\n return d + (d > 68 ? 1900 : 2e3);\n }\n function d3_time_parseMonthNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n }\n function d3_time_parseDay(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.d = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseDayOfYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.j = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseHour24(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.H = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMinutes(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.M = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseSeconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.S = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMilliseconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.L = +n[0], i + n[0].length) : -1;\n }\n function d3_time_zone(d) {\n var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = abs(z) / 60 | 0, zm = abs(z) % 60;\n return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n }\n function d3_time_parseLiteralPercent(date, string, i) {\n d3_time_percentRe.lastIndex = 0;\n var n = d3_time_percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function d3_time_formatMulti(formats) {\n var n = formats.length, i = -1;\n while (++i < n) formats[i][0] = this(formats[i][0]);\n return function(date) {\n var i = 0, f = formats[i];\n while (!f[1](date)) f = formats[++i];\n return f[0](date);\n };\n }\n d3.locale = function(locale) {\n return {\n numberFormat: d3_locale_numberFormat(locale),\n timeFormat: d3_locale_timeFormat(locale)\n };\n };\n var d3_locale_enUS = d3.locale({\n decimal: \".\",\n thousands: \",\",\n grouping: [ 3 ],\n currency: [ \"$\", \"\" ],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%m/%d/%Y\",\n time: \"%H:%M:%S\",\n periods: [ \"AM\", \"PM\" ],\n days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n });\n d3.format = d3_locale_enUS.numberFormat;\n d3.geo = {};\n function d3_adder() {}\n d3_adder.prototype = {\n s: 0,\n t: 0,\n add: function(y) {\n d3_adderSum(y, this.t, d3_adderTemp);\n d3_adderSum(d3_adderTemp.s, this.s, this);\n if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n },\n reset: function() {\n this.s = this.t = 0;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var d3_adderTemp = new d3_adder();\n function d3_adderSum(a, b, o) {\n var x = o.s = a + b, bv = x - a, av = x - bv;\n o.t = a - av + (b - bv);\n }\n d3.geo.stream = function(object, listener) {\n if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n d3_geo_streamObjectType[object.type](object, listener);\n } else {\n d3_geo_streamGeometry(object, listener);\n }\n };\n function d3_geo_streamGeometry(geometry, listener) {\n if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n d3_geo_streamGeometryType[geometry.type](geometry, listener);\n }\n }\n var d3_geo_streamObjectType = {\n Feature: function(feature, listener) {\n d3_geo_streamGeometry(feature.geometry, listener);\n },\n FeatureCollection: function(object, listener) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n }\n };\n var d3_geo_streamGeometryType = {\n Sphere: function(object, listener) {\n listener.sphere();\n },\n Point: function(object, listener) {\n object = object.coordinates;\n listener.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n },\n LineString: function(object, listener) {\n d3_geo_streamLine(object.coordinates, listener, 0);\n },\n MultiLineString: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n },\n Polygon: function(object, listener) {\n d3_geo_streamPolygon(object.coordinates, listener);\n },\n MultiPolygon: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n },\n GeometryCollection: function(object, listener) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n }\n };\n function d3_geo_streamLine(coordinates, listener, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n listener.lineStart();\n while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n listener.lineEnd();\n }\n function d3_geo_streamPolygon(coordinates, listener) {\n var i = -1, n = coordinates.length;\n listener.polygonStart();\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n listener.polygonEnd();\n }\n d3.geo.area = function(object) {\n d3_geo_areaSum = 0;\n d3.geo.stream(object, d3_geo_area);\n return d3_geo_areaSum;\n };\n var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n var d3_geo_area = {\n sphere: function() {\n d3_geo_areaSum += 4 * π;\n },\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_areaRingSum.reset();\n d3_geo_area.lineStart = d3_geo_areaRingStart;\n },\n polygonEnd: function() {\n var area = 2 * d3_geo_areaRingSum;\n d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n }\n };\n function d3_geo_areaRingStart() {\n var λ00, φ00, λ0, cosφ0, sinφ0;\n d3_geo_area.point = function(λ, φ) {\n d3_geo_area.point = nextPoint;\n λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n sinφ0 = Math.sin(φ);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n φ = φ * d3_radians / 2 + π / 4;\n var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n d3_geo_areaRingSum.add(Math.atan2(v, u));\n λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n }\n d3_geo_area.lineEnd = function() {\n nextPoint(λ00, φ00);\n };\n }\n function d3_geo_cartesian(spherical) {\n var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n }\n function d3_geo_cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function d3_geo_cartesianCross(a, b) {\n return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n }\n function d3_geo_cartesianAdd(a, b) {\n a[0] += b[0];\n a[1] += b[1];\n a[2] += b[2];\n }\n function d3_geo_cartesianScale(vector, k) {\n return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n }\n function d3_geo_cartesianNormalize(d) {\n var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l;\n d[1] /= l;\n d[2] /= l;\n }\n function d3_geo_spherical(cartesian) {\n return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n }\n function d3_geo_sphericalEqual(a, b) {\n return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n }\n d3.geo.bounds = function() {\n var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n var bound = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n bound.point = ringPoint;\n bound.lineStart = ringStart;\n bound.lineEnd = ringEnd;\n dλSum = 0;\n d3_geo_area.polygonStart();\n },\n polygonEnd: function() {\n d3_geo_area.polygonEnd();\n bound.point = point;\n bound.lineStart = lineStart;\n bound.lineEnd = lineEnd;\n if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n range[0] = λ0, range[1] = λ1;\n }\n };\n function point(λ, φ) {\n ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n function linePoint(λ, φ) {\n var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n if (p0) {\n var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n d3_geo_cartesianNormalize(inflection);\n inflection = d3_geo_spherical(inflection);\n var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = inflection[1] * d3_degrees;\n if (φi > φ1) φ1 = φi;\n } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = -inflection[1] * d3_degrees;\n if (φi < φ0) φ0 = φi;\n } else {\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n if (antimeridian) {\n if (λ < λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n } else {\n if (λ1 >= λ0) {\n if (λ < λ0) λ0 = λ;\n if (λ > λ1) λ1 = λ;\n } else {\n if (λ > λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n }\n }\n } else {\n point(λ, φ);\n }\n p0 = p, λ_ = λ;\n }\n function lineStart() {\n bound.point = linePoint;\n }\n function lineEnd() {\n range[0] = λ0, range[1] = λ1;\n bound.point = point;\n p0 = null;\n }\n function ringPoint(λ, φ) {\n if (p0) {\n var dλ = λ - λ_;\n dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n } else λ__ = λ, φ__ = φ;\n d3_geo_area.point(λ, φ);\n linePoint(λ, φ);\n }\n function ringStart() {\n d3_geo_area.lineStart();\n }\n function ringEnd() {\n ringPoint(λ__, φ__);\n d3_geo_area.lineEnd();\n if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n range[0] = λ0, range[1] = λ1;\n p0 = null;\n }\n function angle(λ0, λ1) {\n return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n }\n function compareRanges(a, b) {\n return a[0] - b[0];\n }\n function withinRange(x, range) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n return function(feature) {\n φ1 = λ1 = -(λ0 = φ0 = Infinity);\n ranges = [];\n d3.geo.stream(feature, bound);\n var n = ranges.length;\n if (n) {\n ranges.sort(compareRanges);\n for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n b = ranges[i];\n if (withinRange(b[0], a) || withinRange(b[1], a)) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n var best = -Infinity, dλ;\n for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n b = merged[i];\n if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n }\n }\n ranges = range = null;\n return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n };\n }();\n d3.geo.centroid = function(object) {\n d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, d3_geo_centroid);\n var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n if (m < ε2) {\n x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n m = x * x + y * y + z * z;\n if (m < ε2) return [ NaN, NaN ];\n }\n return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n };\n var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n var d3_geo_centroid = {\n sphere: d3_noop,\n point: d3_geo_centroidPoint,\n lineStart: d3_geo_centroidLineStart,\n lineEnd: d3_geo_centroidLineEnd,\n polygonStart: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n }\n };\n function d3_geo_centroidPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n }\n function d3_geo_centroidPointXYZ(x, y, z) {\n ++d3_geo_centroidW0;\n d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n }\n function d3_geo_centroidLineStart() {\n var x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroid.point = nextPoint;\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_centroidLineEnd() {\n d3_geo_centroid.point = d3_geo_centroidPoint;\n }\n function d3_geo_centroidRingStart() {\n var λ00, φ00, x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ00 = λ, φ00 = φ;\n d3_geo_centroid.point = nextPoint;\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n d3_geo_centroid.lineEnd = function() {\n nextPoint(λ00, φ00);\n d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n d3_geo_centroid.point = d3_geo_centroidPoint;\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n d3_geo_centroidX2 += v * cx;\n d3_geo_centroidY2 += v * cy;\n d3_geo_centroidZ2 += v * cz;\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n }\n function d3_true() {\n return true;\n }\n function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n var subject = [], clip = [];\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n];\n if (d3_geo_sphericalEqual(p0, p1)) {\n listener.lineStart();\n for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n listener.lineEnd();\n return;\n }\n var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n a.o = b;\n subject.push(a);\n clip.push(b);\n a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n a.o = b;\n subject.push(a);\n clip.push(b);\n });\n clip.sort(compare);\n d3_geo_clipPolygonLinkCircular(subject);\n d3_geo_clipPolygonLinkCircular(clip);\n if (!subject.length) return;\n for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n clip[i].e = entry = !entry;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n listener.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, listener);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, listener);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n listener.lineEnd();\n }\n }\n function d3_geo_clipPolygonLinkCircular(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n return function(rotate, listener) {\n var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3.merge(segments);\n var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n if (segments.length) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n } else if (clipStartInside) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n listener.polygonStart();\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n listener.polygonEnd();\n }\n };\n function point(λ, φ) {\n var point = rotate(λ, φ);\n if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n }\n function pointLine(λ, φ) {\n var point = rotate(λ, φ);\n line.point(point[0], point[1]);\n }\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n var segments;\n var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n function pointRing(λ, φ) {\n ring.push([ λ, φ ]);\n var point = rotate(λ, φ);\n ringListener.point(point[0], point[1]);\n }\n function ringStart() {\n ringListener.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringListener.lineEnd();\n var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n var n = segment.length - 1, i = -1, point;\n if (n > 0) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n while (++i < n) listener.point((point = segment[i])[0], point[1]);\n listener.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n }\n return clip;\n };\n }\n function d3_geo_clipSegmentLength1(segment) {\n return segment.length > 1;\n }\n function d3_geo_clipBufferListener() {\n var lines = [], line;\n return {\n lineStart: function() {\n lines.push(line = []);\n },\n point: function(λ, φ) {\n line.push([ λ, φ ]);\n },\n lineEnd: d3_noop,\n buffer: function() {\n var buffer = lines;\n lines = [];\n line = null;\n return buffer;\n },\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n }\n };\n }\n function d3_geo_clipSort(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n }\n var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n function d3_geo_clipAntimeridianLine(listener) {\n var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n return {\n lineStart: function() {\n listener.lineStart();\n clean = 1;\n },\n point: function(λ1, φ1) {\n var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n if (abs(dλ - π) < ε) {\n listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n listener.point(λ1, φ0);\n clean = 0;\n } else if (sλ0 !== sλ1 && dλ >= π) {\n if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n clean = 0;\n }\n listener.point(λ0 = λ1, φ0 = φ1);\n sλ0 = sλ1;\n },\n lineEnd: function() {\n listener.lineEnd();\n λ0 = φ0 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n }\n function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n var φ;\n if (from == null) {\n φ = direction * halfπ;\n listener.point(-π, φ);\n listener.point(0, φ);\n listener.point(π, φ);\n listener.point(π, 0);\n listener.point(π, -φ);\n listener.point(0, -φ);\n listener.point(-π, -φ);\n listener.point(-π, 0);\n listener.point(-π, φ);\n } else if (abs(from[0] - to[0]) > ε) {\n var s = from[0] < to[0] ? π : -π;\n φ = direction * s / 2;\n listener.point(-s, φ);\n listener.point(0, φ);\n listener.point(s, φ);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function d3_geo_pointInPolygon(point, polygon) {\n var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n d3_geo_areaRingSum.reset();\n for (var i = 0, n = polygon.length; i < n; ++i) {\n var ring = polygon[i], m = ring.length;\n if (!m) continue;\n var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n while (true) {\n if (j === m) j = 0;\n point = ring[j];\n var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n d3_geo_cartesianNormalize(arc);\n var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n d3_geo_cartesianNormalize(intersection);\n var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n }\n }\n if (!j++) break;\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n }\n }\n return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;\n }\n function d3_geo_clipCircle(radius) {\n var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n function visible(λ, φ) {\n return Math.cos(λ) * Math.cos(φ) > cr;\n }\n function clipLine(listener) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(λ, φ) {\n var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n if (!point0 && (v00 = v0 = v)) listener.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n point1[0] += ε;\n point1[1] += ε;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n listener.lineStart();\n point2 = intersect(point1, point0);\n listener.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n listener.point(point2[0], point2[1]);\n listener.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n } else {\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n listener.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) listener.lineEnd();\n point0 = null;\n },\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n d3_geo_cartesianAdd(A, B);\n var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n d3_geo_cartesianAdd(q, A);\n q = d3_geo_spherical(q);\n if (!two) return q;\n var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n d3_geo_cartesianAdd(q1, A);\n return [ q, d3_geo_spherical(q1) ];\n }\n }\n function code(λ, φ) {\n var r = smallRadius ? radius : π - radius, code = 0;\n if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n return code;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (t0 > 0) line.a = {\n x: ax + t0 * dx,\n y: ay + t0 * dy\n };\n if (t1 < 1) line.b = {\n x: ax + t1 * dx,\n y: ay + t1 * dy\n };\n return line;\n };\n }\n var d3_geo_clipExtentMAX = 1e9;\n d3.geo.clipExtent = function() {\n var x0, y0, x1, y1, stream, clip, clipExtent = {\n stream: function(output) {\n if (stream) stream.valid = false;\n stream = clip(output);\n stream.valid = true;\n return stream;\n },\n extent: function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n if (stream) stream.valid = false, stream = null;\n return clipExtent;\n }\n };\n return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n };\n function d3_geo_clipExtent(x0, y0, x1, y1) {\n return function(listener) {\n var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n listener = bufferListener;\n segments = [];\n polygon = [];\n clean = true;\n },\n polygonEnd: function() {\n listener = listener_;\n segments = d3.merge(segments);\n var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n if (inside || visible) {\n listener.polygonStart();\n if (inside) {\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (visible) {\n d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n }\n listener.polygonEnd();\n }\n segments = polygon = ring = null;\n }\n };\n function insidePolygon(p) {\n var wn = 0, n = polygon.length, y = p[1];\n for (var i = 0; i < n; ++i) {\n for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n b = v[j];\n if (a[1] <= y) {\n if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n } else {\n if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n }\n a = b;\n }\n }\n return wn !== 0;\n }\n function interpolate(from, to, direction, listener) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n do {\n listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function pointVisible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n function point(x, y) {\n if (pointVisible(x, y)) listener.point(x, y);\n }\n var x__, y__, v__, x_, y_, v_, first, clean;\n function lineStart() {\n clip.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferListener.rejoin();\n segments.push(bufferListener.buffer());\n }\n clip.point = point;\n if (v_) listener.lineEnd();\n }\n function linePoint(x, y) {\n x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n var v = pointVisible(x, y);\n if (polygon) ring.push([ x, y ]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n listener.lineStart();\n listener.point(x, y);\n }\n } else {\n if (v && v_) listener.point(x, y); else {\n var l = {\n a: {\n x: x_,\n y: y_\n },\n b: {\n x: x,\n y: y\n }\n };\n if (clipLine(l)) {\n if (!v_) {\n listener.lineStart();\n listener.point(l.a.x, l.a.y);\n }\n listener.point(l.b.x, l.b.y);\n if (!v) listener.lineEnd();\n clean = false;\n } else if (v) {\n listener.lineStart();\n listener.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clip;\n };\n function corner(p, direction) {\n return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compare(a, b) {\n return comparePoints(a.x, b.x);\n }\n function comparePoints(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n }\n function d3_geo_conic(projectAt) {\n var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n p.parallels = function(_) {\n if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n };\n return p;\n }\n function d3_geo_conicEqualArea(φ0, φ1) {\n var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n function forward(λ, φ) {\n var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = ρ0 - y;\n return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n };\n return forward;\n }\n (d3.geo.conicEqualArea = function() {\n return d3_geo_conic(d3_geo_conicEqualArea);\n }).raw = d3_geo_conicEqualArea;\n d3.geo.albers = function() {\n return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n };\n d3.geo.albersUsa = function() {\n var lower48 = d3.geo.albers();\n var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n var point, pointStream = {\n point: function(x, y) {\n point = [ x, y ];\n }\n }, lower48Point, alaskaPoint, hawaiiPoint;\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n point = null;\n (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n return point;\n }\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n };\n albersUsa.stream = function(stream) {\n var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n return {\n point: function(x, y) {\n lower48Stream.point(x, y);\n alaskaStream.point(x, y);\n hawaiiStream.point(x, y);\n },\n sphere: function() {\n lower48Stream.sphere();\n alaskaStream.sphere();\n hawaiiStream.sphere();\n },\n lineStart: function() {\n lower48Stream.lineStart();\n alaskaStream.lineStart();\n hawaiiStream.lineStart();\n },\n lineEnd: function() {\n lower48Stream.lineEnd();\n alaskaStream.lineEnd();\n hawaiiStream.lineEnd();\n },\n polygonStart: function() {\n lower48Stream.polygonStart();\n alaskaStream.polygonStart();\n hawaiiStream.polygonStart();\n },\n polygonEnd: function() {\n lower48Stream.polygonEnd();\n alaskaStream.polygonEnd();\n hawaiiStream.polygonEnd();\n }\n };\n };\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_);\n alaska.precision(_);\n hawaii.precision(_);\n return albersUsa;\n };\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_);\n alaska.scale(_ * .35);\n hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n return albersUsa;\n };\n return albersUsa.scale(1070);\n };\n var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_pathAreaPolygon = 0;\n d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n }\n };\n function d3_geo_pathAreaRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathArea.point = function(x, y) {\n d3_geo_pathArea.point = nextPoint;\n x00 = x0 = x, y00 = y0 = y;\n };\n function nextPoint(x, y) {\n d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n x0 = x, y0 = y;\n }\n d3_geo_pathArea.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n var d3_geo_pathBounds = {\n point: d3_geo_pathBoundsPoint,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_pathBoundsPoint(x, y) {\n if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n }\n function d3_geo_pathBuffer() {\n var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = d3_geo_pathBufferCircle(_);\n return stream;\n },\n result: function() {\n if (buffer.length) {\n var result = buffer.join(\"\");\n buffer = [];\n return result;\n }\n }\n };\n function point(x, y) {\n buffer.push(\"M\", x, \",\", y, pointCircle);\n }\n function pointLineStart(x, y) {\n buffer.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n buffer.push(\"L\", x, \",\", y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n buffer.push(\"Z\");\n }\n return stream;\n }\n function d3_geo_pathBufferCircle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n var d3_geo_pathCentroid = {\n point: d3_geo_pathCentroidPoint,\n lineStart: d3_geo_pathCentroidLineStart,\n lineEnd: d3_geo_pathCentroidLineEnd,\n polygonStart: function() {\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n }\n };\n function d3_geo_pathCentroidPoint(x, y) {\n d3_geo_centroidX0 += x;\n d3_geo_centroidY0 += y;\n ++d3_geo_centroidZ0;\n }\n function d3_geo_pathCentroidLineStart() {\n var x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n }\n function d3_geo_pathCentroidLineEnd() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n }\n function d3_geo_pathCentroidRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n z = y0 * x - x0 * y;\n d3_geo_centroidX2 += z * (x0 + x);\n d3_geo_centroidY2 += z * (y0 + y);\n d3_geo_centroidZ2 += z * 3;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n d3_geo_pathCentroid.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n function d3_geo_pathContext(context) {\n var pointRadius = 4.5;\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n result: d3_noop\n };\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, τ);\n }\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n context.closePath();\n }\n return stream;\n }\n function d3_geo_resample(project) {\n var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n function resample(stream) {\n return (maxDepth ? resampleRecursive : resampleNone)(stream);\n }\n function resampleNone(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n });\n }\n function resampleRecursive(stream) {\n var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n var resample = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resample.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resample.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x0 = NaN;\n resample.point = linePoint;\n stream.lineStart();\n }\n function linePoint(λ, φ) {\n var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n function lineEnd() {\n resample.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resample.point = ringPoint;\n resample.lineEnd = ringEnd;\n }\n function ringPoint(λ, φ) {\n linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resample.point = linePoint;\n }\n function ringEnd() {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n resample.lineEnd = lineEnd;\n lineEnd();\n }\n return resample;\n }\n function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n if (d2 > 4 * δ2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n }\n }\n }\n resample.precision = function(_) {\n if (!arguments.length) return Math.sqrt(δ2);\n maxDepth = (δ2 = _ * _) > 0 && 16;\n return resample;\n };\n return resample;\n }\n d3.geo.path = function() {\n var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n d3.geo.stream(object, cacheStream);\n }\n return contextStream.result();\n }\n path.area = function(object) {\n d3_geo_pathAreaSum = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathArea));\n return d3_geo_pathAreaSum;\n };\n path.centroid = function(object) {\n d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n };\n path.bounds = function(object) {\n d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n };\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n return reset();\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return reset();\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n function reset() {\n cacheStream = null;\n return path;\n }\n return path.projection(d3.geo.albersUsa()).context(null);\n };\n function d3_geo_pathProjectStream(project) {\n var resample = d3_geo_resample(function(x, y) {\n return project([ x * d3_degrees, y * d3_degrees ]);\n });\n return function(stream) {\n return d3_geo_projectionRadians(resample(stream));\n };\n }\n d3.geo.transform = function(methods) {\n return {\n stream: function(stream) {\n var transform = new d3_geo_transform(stream);\n for (var k in methods) transform[k] = methods[k];\n return transform;\n }\n };\n };\n function d3_geo_transform(stream) {\n this.stream = stream;\n }\n d3_geo_transform.prototype = {\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function d3_geo_transformPoint(stream, point) {\n return {\n point: point,\n sphere: function() {\n stream.sphere();\n },\n lineStart: function() {\n stream.lineStart();\n },\n lineEnd: function() {\n stream.lineEnd();\n },\n polygonStart: function() {\n stream.polygonStart();\n },\n polygonEnd: function() {\n stream.polygonEnd();\n }\n };\n }\n d3.geo.projection = d3_geo_projection;\n d3.geo.projectionMutator = d3_geo_projectionMutator;\n function d3_geo_projection(project) {\n return d3_geo_projectionMutator(function() {\n return project;\n })();\n }\n function d3_geo_projectionMutator(projectAt) {\n var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n x = project(x, y);\n return [ x[0] * k + δx, δy - x[1] * k ];\n }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n function projection(point) {\n point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n return [ point[0] * k + δx, δy - point[1] * k ];\n }\n function invert(point) {\n point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n }\n projection.stream = function(output) {\n if (stream) stream.valid = false;\n stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n stream.valid = true;\n return stream;\n };\n projection.clipAngle = function(_) {\n if (!arguments.length) return clipAngle;\n preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n return invalidate();\n };\n projection.clipExtent = function(_) {\n if (!arguments.length) return clipExtent;\n clipExtent = _;\n postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n return invalidate();\n };\n projection.scale = function(_) {\n if (!arguments.length) return k;\n k = +_;\n return reset();\n };\n projection.translate = function(_) {\n if (!arguments.length) return [ x, y ];\n x = +_[0];\n y = +_[1];\n return reset();\n };\n projection.center = function(_) {\n if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n λ = _[0] % 360 * d3_radians;\n φ = _[1] % 360 * d3_radians;\n return reset();\n };\n projection.rotate = function(_) {\n if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n δλ = _[0] % 360 * d3_radians;\n δφ = _[1] % 360 * d3_radians;\n δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n return reset();\n };\n d3.rebind(projection, projectResample, \"precision\");\n function reset() {\n projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n var center = project(λ, φ);\n δx = x - center[0] * k;\n δy = y + center[1] * k;\n return invalidate();\n }\n function invalidate() {\n if (stream) stream.valid = false, stream = null;\n return projection;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return reset();\n };\n }\n function d3_geo_projectionRadians(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n stream.point(x * d3_radians, y * d3_radians);\n });\n }\n function d3_geo_equirectangular(λ, φ) {\n return [ λ, φ ];\n }\n (d3.geo.equirectangular = function() {\n return d3_geo_projection(d3_geo_equirectangular);\n }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n d3.geo.rotation = function(rotate) {\n rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n }\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n };\n return forward;\n };\n function d3_geo_identityRotation(λ, φ) {\n return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n }\n d3_geo_identityRotation.invert = d3_geo_equirectangular;\n function d3_geo_rotation(δλ, δφ, δγ) {\n return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n }\n function d3_geo_forwardRotationλ(δλ) {\n return function(λ, φ) {\n return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n };\n }\n function d3_geo_rotationλ(δλ) {\n var rotation = d3_geo_forwardRotationλ(δλ);\n rotation.invert = d3_geo_forwardRotationλ(-δλ);\n return rotation;\n }\n function d3_geo_rotationφγ(δφ, δγ) {\n var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n function rotation(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n }\n rotation.invert = function(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n };\n return rotation;\n }\n d3.geo.circle = function() {\n var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n function circle() {\n var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n interpolate(null, null, 1, {\n point: function(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= d3_degrees, x[1] *= d3_degrees;\n }\n });\n return {\n type: \"Polygon\",\n coordinates: [ ring ]\n };\n }\n circle.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return circle;\n };\n circle.angle = function(x) {\n if (!arguments.length) return angle;\n interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n return circle;\n };\n circle.precision = function(_) {\n if (!arguments.length) return precision;\n interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n return circle;\n };\n return circle.angle(90);\n };\n function d3_geo_circleInterpolate(radius, precision) {\n var cr = Math.cos(radius), sr = Math.sin(radius);\n return function(from, to, direction, listener) {\n var step = direction * precision;\n if (from != null) {\n from = d3_geo_circleAngle(cr, from);\n to = d3_geo_circleAngle(cr, to);\n if (direction > 0 ? from < to : from > to) from += direction * τ;\n } else {\n from = radius + direction * τ;\n to = radius - .5 * step;\n }\n for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n }\n };\n }\n function d3_geo_circleAngle(cr, point) {\n var a = d3_geo_cartesian(point);\n a[0] -= cr;\n d3_geo_cartesianNormalize(a);\n var angle = d3_acos(-a[1]);\n return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n }\n d3.geo.distance = function(a, b) {\n var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n };\n d3.geo.graticule = function() {\n var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n function lines() {\n return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n return abs(x % DX) > ε;\n }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n return abs(y % DY) > ε;\n }).map(y));\n }\n graticule.lines = function() {\n return lines().map(function(coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n };\n };\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.minorExtent();\n return graticule.majorExtent(_).minorExtent(_);\n };\n graticule.majorExtent = function(_) {\n if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n graticule.minorExtent = function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n graticule.step = function(_) {\n if (!arguments.length) return graticule.minorStep();\n return graticule.majorStep(_).minorStep(_);\n };\n graticule.majorStep = function(_) {\n if (!arguments.length) return [ DX, DY ];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n graticule.minorStep = function(_) {\n if (!arguments.length) return [ dx, dy ];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = d3_geo_graticuleX(y0, y1, 90);\n y = d3_geo_graticuleY(x0, x1, precision);\n X = d3_geo_graticuleX(Y0, Y1, 90);\n Y = d3_geo_graticuleY(X0, X1, precision);\n return graticule;\n };\n return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n };\n function d3_geo_graticuleX(y0, y1, dy) {\n var y = d3.range(y0, y1 - ε, dy).concat(y1);\n return function(x) {\n return y.map(function(y) {\n return [ x, y ];\n });\n };\n }\n function d3_geo_graticuleY(x0, x1, dx) {\n var x = d3.range(x0, x1 - ε, dx).concat(x1);\n return function(y) {\n return x.map(function(x) {\n return [ x, y ];\n });\n };\n }\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.geo.greatArc = function() {\n var source = d3_source, source_, target = d3_target, target_;\n function greatArc() {\n return {\n type: \"LineString\",\n coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n };\n }\n greatArc.distance = function() {\n return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n };\n greatArc.source = function(_) {\n if (!arguments.length) return source;\n source = _, source_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.target = function(_) {\n if (!arguments.length) return target;\n target = _, target_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.precision = function() {\n return arguments.length ? greatArc : 0;\n };\n return greatArc;\n };\n d3.geo.interpolate = function(source, target) {\n return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n };\n function d3_geo_interpolate(x0, y0, x1, y1) {\n var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n var interpolate = d ? function(t) {\n var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n } : function() {\n return [ x0 * d3_degrees, y0 * d3_degrees ];\n };\n interpolate.distance = d;\n return interpolate;\n }\n d3.geo.length = function(object) {\n d3_geo_lengthSum = 0;\n d3.geo.stream(object, d3_geo_length);\n return d3_geo_lengthSum;\n };\n var d3_geo_lengthSum;\n var d3_geo_length = {\n sphere: d3_noop,\n point: d3_noop,\n lineStart: d3_geo_lengthLineStart,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_lengthLineStart() {\n var λ0, sinφ0, cosφ0;\n d3_geo_length.point = function(λ, φ) {\n λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n d3_geo_length.point = nextPoint;\n };\n d3_geo_length.lineEnd = function() {\n d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n };\n function nextPoint(λ, φ) {\n var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n }\n }\n function d3_geo_azimuthal(scale, angle) {\n function azimuthal(λ, φ) {\n var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n }\n azimuthal.invert = function(x, y) {\n var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n };\n return azimuthal;\n }\n var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n return Math.sqrt(2 / (1 + cosλcosφ));\n }, function(ρ) {\n return 2 * Math.asin(ρ / 2);\n });\n (d3.geo.azimuthalEqualArea = function() {\n return d3_geo_projection(d3_geo_azimuthalEqualArea);\n }).raw = d3_geo_azimuthalEqualArea;\n var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n var c = Math.acos(cosλcosφ);\n return c && c / Math.sin(c);\n }, d3_identity);\n (d3.geo.azimuthalEquidistant = function() {\n return d3_geo_projection(d3_geo_azimuthalEquidistant);\n }).raw = d3_geo_azimuthalEquidistant;\n function d3_geo_conicConformal(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), t = function(φ) {\n return Math.tan(π / 4 + φ / 2);\n }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n if (!n) return d3_geo_mercator;\n function forward(λ, φ) {\n if (F > 0) {\n if (φ < -halfπ + ε) φ = -halfπ + ε;\n } else {\n if (φ > halfπ - ε) φ = halfπ - ε;\n }\n var ρ = F / Math.pow(t(φ), n);\n return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n };\n return forward;\n }\n (d3.geo.conicConformal = function() {\n return d3_geo_conic(d3_geo_conicConformal);\n }).raw = d3_geo_conicConformal;\n function d3_geo_conicEquidistant(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n if (abs(n) < ε) return d3_geo_equirectangular;\n function forward(λ, φ) {\n var ρ = G - φ;\n return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = G - y;\n return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n };\n return forward;\n }\n (d3.geo.conicEquidistant = function() {\n return d3_geo_conic(d3_geo_conicEquidistant);\n }).raw = d3_geo_conicEquidistant;\n var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / cosλcosφ;\n }, Math.atan);\n (d3.geo.gnomonic = function() {\n return d3_geo_projection(d3_geo_gnomonic);\n }).raw = d3_geo_gnomonic;\n function d3_geo_mercator(λ, φ) {\n return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n }\n d3_geo_mercator.invert = function(x, y) {\n return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n };\n function d3_geo_mercatorProjection(project) {\n var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n m.scale = function() {\n var v = scale.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.translate = function() {\n var v = translate.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.clipExtent = function(_) {\n var v = clipExtent.apply(m, arguments);\n if (v === m) {\n if (clipAuto = _ == null) {\n var k = π * scale(), t = translate();\n clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n }\n } else if (clipAuto) {\n v = null;\n }\n return v;\n };\n return m.clipExtent(null);\n }\n (d3.geo.mercator = function() {\n return d3_geo_mercatorProjection(d3_geo_mercator);\n }).raw = d3_geo_mercator;\n var d3_geo_orthographic = d3_geo_azimuthal(function() {\n return 1;\n }, Math.asin);\n (d3.geo.orthographic = function() {\n return d3_geo_projection(d3_geo_orthographic);\n }).raw = d3_geo_orthographic;\n var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / (1 + cosλcosφ);\n }, function(ρ) {\n return 2 * Math.atan(ρ);\n });\n (d3.geo.stereographic = function() {\n return d3_geo_projection(d3_geo_stereographic);\n }).raw = d3_geo_stereographic;\n function d3_geo_transverseMercator(λ, φ) {\n return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n }\n d3_geo_transverseMercator.invert = function(x, y) {\n return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n };\n (d3.geo.transverseMercator = function() {\n var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n projection.center = function(_) {\n return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n };\n projection.rotate = function(_) {\n return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n [ _[0], _[1], _[2] - 90 ]);\n };\n return rotate([ 0, 0, 90 ]);\n }).raw = d3_geo_transverseMercator;\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [ 0, 1 ], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * .5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [ x * k, y * k ];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [ x1 + ua * x21, y1 + ua * y21 ];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x: x,\n y: y\n }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > ε) node = node.L; else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > ε) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -ε) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -ε) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n x: x0,\n y: abs(x2 - x0) < ε ? y2 : y1\n } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n x: abs(y2 - y1) < ε ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n x: x1,\n y: abs(x2 - x1) < ε ? y2 : y0\n } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n x: abs(y2 - y0) < ε ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -ε2) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L; else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R; else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n }; else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n }; else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next; else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [ s.x, s.y ];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / ε) * ε,\n y: Math.round(fy(d, i) / ε) * ε,\n i: i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n } else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n function insert(n, d, x, y, x1, y1, x2, y2) {\n if (isNaN(x) || isNaN(y)) return;\n if (n.leaf) {\n var nx = n.x, ny = n.y;\n if (nx != null) {\n if (abs(nx - x) + abs(ny - y) < .01) {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n } else {\n var nPoint = n.point;\n n.x = n.y = n.point = null;\n insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n } else {\n n.x = x, n.y = y, n.point = d;\n }\n } else {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n }\n function insertChild(n, d, x, y, x1, y1, x2, y2) {\n var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;\n n.leaf = false;\n n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n if (right) x1 = xm; else x2 = xm;\n if (below) y1 = ym; else y2 = ym;\n insert(n, d, x, y, x1, y1, x2, y2);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d) {\n insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm; else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i: i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [ function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n } ];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (;i < na; ++i) c[i] = a[i];\n for (;i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name) {\n var i = name.indexOf(\"-\"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t2 = t * t, t3 = t2 * t;\n return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * halfπ);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = .45;\n if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string) {\n if (string != null) {\n g.setAttribute(\"transform\", string);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [ m.e, m.f ];\n this.scale = [ kx, ky ];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n }\n k = (τ - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= .99) < .005) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha: alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o = links[j];\n neighbors[o.source.index].push(o.target);\n neighbors[o.target.index].push(o.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - .5;\n quad.point.y += Math.random() - .5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [ root ], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var childs, parent;\n if (sort && (childs = node.children)) childs.sort(sort);\n if (value && (parent = node.parent)) parent.value += node.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [ node ];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [ node ], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i) {\n return values.call(stack, d, i);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i) {\n return [ x.call(stack, v, i), y.call(stack, v, i) ];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x) {\n if (!arguments.length) return values;\n values = x;\n return stack;\n };\n stack.order = function(x) {\n if (!arguments.length) return order;\n order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x) {\n if (!arguments.length) return offset;\n offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (;i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [ d3.min(values), d3.max(values) ];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r = +r(d.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return .999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node) {\n xMin = Math.min(node.x - node.r, xMin);\n xMax = Math.max(node.x + node.r, xMax);\n yMin = Math.min(node.y - node.r, yMin);\n yMax = Math.max(node.y + node.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [ root0 ]\n }, queue = [ root1 ], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i: i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([ root ], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x: x,\n y: y,\n dx: dx,\n dy: dy\n };\n }\n d3.random = {\n normal: function(µ, σ) {\n var n = arguments.length;\n if (n < 2) σ = 1;\n if (n < 1) µ = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [ start, stop ] : [ stop, start ];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j = d3.bisect(domain, x, 1, k) - 1;\n return i[j](u[j](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear(domain, range, uninterpolate, interpolate);\n input = linear(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear) {\n return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n function d3_scale_linearTickFormat(domain, m, format) {\n var range = d3_scale_linearTickRange(domain, m);\n if (format) {\n var match = d3_format_re.exec(format);\n match.shift();\n if (match[8] === \"s\") {\n var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n match[8] = \"f\";\n format = d3.format(match.join(\"\"));\n return function(d) {\n return format(prefix.scale(d)) + prefix.symbol;\n };\n }\n if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n format = match.join(\"\");\n } else {\n format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n }\n return d3.format(format);\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + .01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n };\n function d3_scale_log(linear, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear(log(x));\n }\n scale.invert = function(x) {\n return pow(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {}\n for (j = ticks.length; ticks[j - 1] > v; j--) {}\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.tickFormat = function(n, format) {\n if (!arguments.length) return d3_scale_logFormat;\n if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n var k = Math.max(1, base * n / scale.ticks().length);\n return function(d) {\n var i = d / pow(Math.round(log(d)));\n if (i * base < base - .5) i *= base;\n return i <= k ? format(d) : \"\";\n };\n };\n scale.copy = function() {\n return d3_scale_log(linear.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n };\n function d3_scale_pow(linear, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [ [] ]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, \n 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), \n 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [ 0, 1 ]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [ x0, x1 ];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [ y, y + 1 / kx ];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [ domain[y - 1], domain[y] ];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([ 0, 1 ]);\n };\n function d3_scale_identity(domain) {\n function identity(x) {\n return +x;\n }\n identity.invert = identity;\n identity.domain = identity.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity);\n return identity;\n };\n identity.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < π) {\n var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;\n return [ Math.cos(a) * r, Math.sin(a) * r ];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < ε) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([ s || 0, m[i] * s || 0 ]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - halfπ;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self, f, d, i) {\n var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;\n return {\n r: r,\n a0: a0,\n a1: a1,\n p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3 ];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [ d.x, d.y ];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;\n return [ r * Math.cos(a), r * Math.sin(a) ];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / π);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name) {\n return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId]; else delete this[ns];\n lock.active += .5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name);\n } : function(node) {\n node[ns][id].tween.set(name, tween);\n });\n };\n function d3_transition_tween(groups, name, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name.space, name.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name.space, name.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name));\n return f && function(t) {\n this.setAttribute(name, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n return f && function(t) {\n this.setAttributeNS(name.space, name.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.style(priority, name[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));\n return f && function(t) {\n this.style.setProperty(name, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name) {\n return name == null ? \"__transition__\" : \"__transition_\" + name + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id]; else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time: time,\n timer: timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g.selectAll(\".background\").data([ 0 ]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null; else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [ x0, x1 ];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [ y0, y1 ];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n var d3_time_formatUtc = d3_time_format.utc;\n var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n function d3_time_formatIsoNative(date) {\n return date.toISOString();\n }\n d3_time_formatIsoNative.parse = function(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n };\n d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n d3_time.second = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 1e3) * 1e3);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n }, function(date) {\n return date.getSeconds();\n });\n d3_time.seconds = d3_time.second.range;\n d3_time.seconds.utc = d3_time.second.utc.range;\n d3_time.minute = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 6e4) * 6e4);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n }, function(date) {\n return date.getMinutes();\n });\n d3_time.minutes = d3_time.minute.range;\n d3_time.minutes.utc = d3_time.minute.utc.range;\n d3_time.hour = d3_time_interval(function(date) {\n var timezone = date.getTimezoneOffset() / 60;\n return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n }, function(date) {\n return date.getHours();\n });\n d3_time.hours = d3_time.hour.range;\n d3_time.hours.utc = d3_time.hour.utc.range;\n d3_time.month = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setDate(1);\n return date;\n }, function(date, offset) {\n date.setMonth(date.getMonth() + offset);\n }, function(date) {\n return date.getMonth();\n });\n d3_time.months = d3_time.month.range;\n d3_time.months.utc = d3_time.month.utc.range;\n function d3_time_scale(linear, methods, format) {\n function scale(x) {\n return linear(x);\n }\n scale.invert = function(x) {\n return d3_time_scaleDate(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n linear.domain(x);\n return scale;\n };\n function tickMethod(extent, count) {\n var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n return d / 31536e6;\n }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n }\n scale.nice = function(interval, skip) {\n var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n if (method) interval = method[0], skip = method[1];\n function skipped(date) {\n return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n }\n return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n floor: function(date) {\n while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n return date;\n },\n ceil: function(date) {\n while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n return date;\n }\n } : interval));\n };\n scale.ticks = function(interval, skip) {\n var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n range: interval\n }, skip ];\n if (method) interval = method[0], skip = method[1];\n return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n };\n scale.tickFormat = function() {\n return format;\n };\n scale.copy = function() {\n return d3_time_scale(linear.copy(), methods, format);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_time_scaleDate(t) {\n return new Date(t);\n }\n var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n return d.getMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getHours();\n } ], [ \"%a %d\", function(d) {\n return d.getDay() && d.getDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getMonth();\n } ], [ \"%Y\", d3_true ] ]);\n var d3_time_scaleMilliseconds = {\n range: function(start, stop, step) {\n return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n },\n floor: d3_identity,\n ceil: d3_identity\n };\n d3_time_scaleLocalMethods.year = d3_time.year;\n d3_time.scale = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n };\n var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n return [ m[0].utc, m[1] ];\n });\n var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n return d.getUTCMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getUTCSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getUTCMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getUTCHours();\n } ], [ \"%a %d\", function(d) {\n return d.getUTCDay() && d.getUTCDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getUTCDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getUTCMonth();\n } ], [ \"%Y\", d3_true ] ]);\n d3_time_scaleUtcMethods.year = d3_time.year.utc;\n d3_time.scale.utc = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n };\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (typeof define === \"function\" && define.amd) this.d3 = d3, define(d3); else if (typeof module === \"object\" && module.exports) module.exports = d3; else this.d3 = d3;\n}();","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.topojson = global.topojson || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction noop() {}\n\nfunction transformAbsolute(transform) {\n if (!transform) return noop;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function(point, i) {\n if (!i) x0 = y0 = 0;\n point[0] = (x0 += point[0]) * kx + dx;\n point[1] = (y0 += point[1]) * ky + dy;\n };\n}\n\nfunction transformRelative(transform) {\n if (!transform) return noop;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function(point, i) {\n if (!i) x0 = y0 = 0;\n var x1 = Math.round((point[0] - dx) / kx),\n y1 = Math.round((point[1] - dy) / ky);\n point[0] = x1 - x0;\n point[1] = y1 - y0;\n x0 = x1;\n y0 = y1;\n };\n}\n\nfunction reverse(array, n) {\n var t, j = array.length, i = j - n;\n while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;\n}\n\nfunction bisect(a, x) {\n var lo = 0, hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n}\n\nfunction feature(topology, o) {\n return o.type === \"GeometryCollection\" ? {\n type: \"FeatureCollection\",\n features: o.geometries.map(function(o) { return feature$1(topology, o); })\n } : feature$1(topology, o);\n}\n\nfunction feature$1(topology, o) {\n var f = {\n type: \"Feature\",\n id: o.id,\n properties: o.properties || {},\n geometry: object(topology, o)\n };\n if (o.id == null) delete f.id;\n return f;\n}\n\nfunction object(topology, o) {\n var absolute = transformAbsolute(topology.transform),\n arcs = topology.arcs;\n\n function arc(i, points) {\n if (points.length) points.pop();\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) {\n points.push(p = a[k].slice());\n absolute(p, k);\n }\n if (i < 0) reverse(points, n);\n }\n\n function point(p) {\n p = p.slice();\n absolute(p, 0);\n return p;\n }\n\n function line(arcs) {\n var points = [];\n for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points);\n if (points.length < 2) points.push(points[0].slice());\n return points;\n }\n\n function ring(arcs) {\n var points = line(arcs);\n while (points.length < 4) points.push(points[0].slice());\n return points;\n }\n\n function polygon(arcs) {\n return arcs.map(ring);\n }\n\n function geometry(o) {\n var t = o.type;\n return t === \"GeometryCollection\" ? {type: t, geometries: o.geometries.map(geometry)}\n : t in geometryType ? {type: t, coordinates: geometryType[t](o)}\n : null;\n }\n\n var geometryType = {\n Point: function(o) { return point(o.coordinates); },\n MultiPoint: function(o) { return o.coordinates.map(point); },\n LineString: function(o) { return line(o.arcs); },\n MultiLineString: function(o) { return o.arcs.map(line); },\n Polygon: function(o) { return polygon(o.arcs); },\n MultiPolygon: function(o) { return o.arcs.map(polygon); }\n };\n\n return geometry(o);\n}\n\nfunction stitchArcs(topology, arcs) {\n var stitchedArcs = {},\n fragmentByStart = {},\n fragmentByEnd = {},\n fragments = [],\n emptyIndex = -1;\n\n // Stitch empty arcs first, since they may be subsumed by other arcs.\n arcs.forEach(function(i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i], t;\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n\n arcs.forEach(function(i) {\n var e = ends(i),\n start = e[0],\n end = e[1],\n f, g;\n\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;\n if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; });\n else p1 = arc[arc.length - 1];\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n\n function flush(fragmentByEnd, fragmentByStart) {\n for (var k in fragmentByEnd) {\n var f = fragmentByEnd[k];\n delete fragmentByStart[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; });\n fragments.push(f);\n }\n }\n\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); });\n\n return fragments;\n}\n\nfunction mesh(topology) {\n return object(topology, meshArcs.apply(this, arguments));\n}\n\nfunction meshArcs(topology, o, filter) {\n var arcs = [];\n\n function arc(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom});\n }\n\n function line(arcs) {\n arcs.forEach(arc);\n }\n\n function polygon(arcs) {\n arcs.forEach(line);\n }\n\n function geometry(o) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(geometry);\n else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs);\n }\n\n if (arguments.length > 1) {\n var geomsByArc = [],\n geom;\n\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function(arcs) { arcs.forEach(polygon); }\n };\n\n geometry(o);\n\n geomsByArc.forEach(arguments.length < 3\n ? function(geoms) { arcs.push(geoms[0].i); }\n : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); });\n } else {\n for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i);\n }\n\n return {type: \"MultiLineString\", arcs: stitchArcs(topology, arcs)};\n}\n\nfunction cartesianTriangleArea(triangle) {\n var a = triangle[0], b = triangle[1], c = triangle[2];\n return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]));\n}\n\nfunction ring(ring) {\n var i = -1,\n n = ring.length,\n a,\n b = ring[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = ring[i];\n area += a[0] * b[1] - a[1] * b[0];\n }\n\n return area / 2;\n}\n\nfunction merge(topology) {\n return object(topology, mergeArcs.apply(this, arguments));\n}\n\nfunction mergeArcs(topology, objects) {\n var polygonsByArc = {},\n polygons = [],\n components = [];\n\n objects.forEach(function(o) {\n if (o.type === \"Polygon\") register(o.arcs);\n else if (o.type === \"MultiPolygon\") o.arcs.forEach(register);\n });\n\n function register(polygon) {\n polygon.forEach(function(ring$$) {\n ring$$.forEach(function(arc) {\n (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n });\n });\n polygons.push(polygon);\n }\n\n function area(ring$$) {\n return Math.abs(ring(object(topology, {type: \"Polygon\", arcs: [ring$$]}).coordinates[0]));\n }\n\n polygons.forEach(function(polygon) {\n if (!polygon._) {\n var component = [],\n neighbors = [polygon];\n polygon._ = 1;\n components.push(component);\n while (polygon = neighbors.pop()) {\n component.push(polygon);\n polygon.forEach(function(ring$$) {\n ring$$.forEach(function(arc) {\n polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) {\n if (!polygon._) {\n polygon._ = 1;\n neighbors.push(polygon);\n }\n });\n });\n });\n }\n }\n });\n\n polygons.forEach(function(polygon) {\n delete polygon._;\n });\n\n return {\n type: \"MultiPolygon\",\n arcs: components.map(function(polygons) {\n var arcs = [], n;\n\n // Extract the exterior (unique) arcs.\n polygons.forEach(function(polygon) {\n polygon.forEach(function(ring$$) {\n ring$$.forEach(function(arc) {\n if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n arcs.push(arc);\n }\n });\n });\n });\n\n // Stitch the arcs into one or more rings.\n arcs = stitchArcs(topology, arcs);\n\n // If more than one ring is returned,\n // at most one of these rings can be the exterior;\n // choose the one with the greatest absolute area.\n if ((n = arcs.length) > 1) {\n for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n if ((ki = area(arcs[i])) > k) {\n t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n }\n }\n }\n\n return arcs;\n })\n };\n}\n\nfunction neighbors(objects) {\n var indexesByArc = {}, // arc index -> array of object indexes\n neighbors = objects.map(function() { return []; });\n\n function line(arcs, i) {\n arcs.forEach(function(a) {\n if (a < 0) a = ~a;\n var o = indexesByArc[a];\n if (o) o.push(i);\n else indexesByArc[a] = [i];\n });\n }\n\n function polygon(arcs, i) {\n arcs.forEach(function(arc) { line(arc, i); });\n }\n\n function geometry(o, i) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(function(o) { geometry(o, i); });\n else if (o.type in geometryType) geometryType[o.type](o.arcs, i);\n }\n\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); }\n };\n\n objects.forEach(geometry);\n\n for (var i in indexesByArc) {\n for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n for (var k = j + 1; k < m; ++k) {\n var ij = indexes[j], ik = indexes[k], n;\n if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);\n if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);\n }\n }\n }\n\n return neighbors;\n}\n\nfunction compareArea(a, b) {\n return a[1][2] - b[1][2];\n}\n\nfunction minAreaHeap() {\n var heap = {},\n array = [],\n size = 0;\n\n heap.push = function(object) {\n up(array[object._ = size] = object, size++);\n return size;\n };\n\n heap.pop = function() {\n if (size <= 0) return;\n var removed = array[0], object;\n if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0);\n return removed;\n };\n\n heap.remove = function(removed) {\n var i = removed._, object;\n if (array[i] !== removed) return; // invalid request\n if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i);\n return i;\n };\n\n function up(object, i) {\n while (i > 0) {\n var j = ((i + 1) >> 1) - 1,\n parent = array[j];\n if (compareArea(object, parent) >= 0) break;\n array[parent._ = i] = parent;\n array[object._ = i = j] = object;\n }\n }\n\n function down(object, i) {\n while (true) {\n var r = (i + 1) << 1,\n l = r - 1,\n j = i,\n child = array[j];\n if (l < size && compareArea(array[l], child) < 0) child = array[j = l];\n if (r < size && compareArea(array[r], child) < 0) child = array[j = r];\n if (j === i) break;\n array[child._ = i] = child;\n array[object._ = i = j] = object;\n }\n }\n\n return heap;\n}\n\nfunction presimplify(topology, triangleArea) {\n var absolute = transformAbsolute(topology.transform),\n relative = transformRelative(topology.transform),\n heap = minAreaHeap();\n\n if (!triangleArea) triangleArea = cartesianTriangleArea;\n\n topology.arcs.forEach(function(arc) {\n var triangles = [],\n maxArea = 0,\n triangle,\n i,\n n,\n p;\n\n // To store each point’s effective area, we create a new array rather than\n // extending the passed-in point to workaround a Chrome/V8 bug (getting\n // stuck in smi mode). For midpoints, the initial effective area of\n // Infinity will be computed in the next step.\n for (i = 0, n = arc.length; i < n; ++i) {\n p = arc[i];\n absolute(arc[i] = [p[0], p[1], Infinity], i);\n }\n\n for (i = 1, n = arc.length - 1; i < n; ++i) {\n triangle = arc.slice(i - 1, i + 2);\n triangle[1][2] = triangleArea(triangle);\n triangles.push(triangle);\n heap.push(triangle);\n }\n\n for (i = 0, n = triangles.length; i < n; ++i) {\n triangle = triangles[i];\n triangle.previous = triangles[i - 1];\n triangle.next = triangles[i + 1];\n }\n\n while (triangle = heap.pop()) {\n var previous = triangle.previous,\n next = triangle.next;\n\n // If the area of the current point is less than that of the previous point\n // to be eliminated, use the latter's area instead. This ensures that the\n // current point cannot be eliminated without eliminating previously-\n // eliminated points.\n if (triangle[1][2] < maxArea) triangle[1][2] = maxArea;\n else maxArea = triangle[1][2];\n\n if (previous) {\n previous.next = next;\n previous[2] = triangle[2];\n update(previous);\n }\n\n if (next) {\n next.previous = previous;\n next[0] = triangle[0];\n update(next);\n }\n }\n\n arc.forEach(relative);\n });\n\n function update(triangle) {\n heap.remove(triangle);\n triangle[1][2] = triangleArea(triangle);\n heap.push(triangle);\n }\n\n return topology;\n}\n\nvar version = \"1.6.27\";\n\nexports.version = version;\nexports.mesh = mesh;\nexports.meshArcs = meshArcs;\nexports.merge = merge;\nexports.mergeArcs = mergeArcs;\nexports.feature = feature;\nexports.neighbors = neighbors;\nexports.presimplify = presimplify;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));","(function() {\n var svg;\n\n // Save off default references\n var d3 = window.d3, topojson = window.topojson;\n\n var defaultOptions = {\n scope: 'world',\n responsive: false,\n aspectRatio: 0.5625,\n setProjection: setProjection,\n projection: 'equirectangular',\n dataType: 'json',\n data: {},\n done: function() {},\n fills: {\n defaultFill: '#ABDDA4'\n },\n filters: {},\n geographyConfig: {\n dataUrl: null,\n hideAntarctica: true,\n hideHawaiiAndAlaska : false,\n borderWidth: 1,\n borderOpacity: 1,\n borderColor: '#FDFDFD',\n popupTemplate: function(geography, data) {\n return '