{"version":3,"sources":["webpack:///static/js/app.65f06089931403cf7b19.js","webpack:///src/components/widgets/UtilGraph.vue","webpack:///./node_modules/vue-octicon/components/Octicon.vue","webpack:///./node_modules/vue-octicon/components/Octicon.vue?a438","webpack:///./src/components/Logpage.vue?48ba","webpack:///./src/components/widgets/IssuanceGraph.vue","webpack:///./src/components/Frontpage.vue?b551","webpack:///./src/components/widgets/PieGraph.vue?56f0","webpack:///./src/components/widgets/Navbar.vue?61e9","webpack:///./src/components/mixins/roll.js","webpack:///src/components/widgets/Navbar.vue","webpack:///./src/components/LogListpage.vue?b79b","webpack:///./src/App.vue?52fe","webpack:///./src/components/widgets/IssuanceGraph.vue?6b7b","webpack:///./src/components/widgets/Footbar.vue","webpack:///./src/components/Frontpage.vue","webpack:///./src/components/mixins/util.js","webpack:///./src/components/widgets/VelocityGraph.vue","webpack:///src/components/Frontpage.vue","webpack:///./src/App.vue","webpack:///./src/components/widgets/Filters.vue","webpack:///src/components/widgets/IssuanceGraph.vue","webpack:///./src/main.js","webpack:///./src/components/widgets/Errorpage.vue?654e","webpack:///src/components/widgets/VelocityGraph.vue","webpack:///node_modules/vue-octicon/components/Octicon.vue","webpack:///src/components/NotFound.vue","webpack:///./src/components/widgets/Navbar.vue","webpack:///src/components/widgets/Footbar.vue","webpack:///./src/router/index.js","webpack:///./src/components/NotFound.vue","webpack:///src/components/About.vue","webpack:///src/components/LogListpage.vue","webpack:///src/components/widgets/PieGraph.vue","webpack:///./src/components/widgets/UtilGraph.vue","webpack:///./src/components/widgets/CompGraph.vue?5720","webpack:///./src/components/mixins/geometry.js","webpack:///./src/components/About.vue","webpack:///./src/components/widgets/Footbar.vue?fdd9","webpack:///./src/components/widgets/VelocityGraph.vue?8e95","webpack:///./src/components/mixins/compat.js","webpack:///./src/components/widgets/Filters.vue?4517","webpack:///src/components/Logpage.vue","webpack:///src/components/widgets/Filters.vue","webpack:///src/components/widgets/CompGraph.vue","webpack:///./src/components/widgets/PieGraph.vue","webpack:///./src/components/NotFound.vue?0ea5","webpack:///src/components/widgets/Errorpage.vue","webpack:///./src/components/LogListpage.vue","webpack:///./src/components/About.vue?53b1","webpack:///./src/components/widgets/UtilGraph.vue?7b12","webpack:///./src/components/widgets/CompGraph.vue","webpack:///src/App.vue","webpack:///./src/components/widgets/Errorpage.vue","webpack:///./src/components/Logpage.vue"],"names":["webpackJsonp","+DEH","module","exports","/Pi3","08S2","1TdX","__webpack_exports__","__webpack_require__","byName","a","b","name","byOrganization","orgs","aIdx","length","bIdx","i","includes","__WEBPACK_IMPORTED_MODULE_0_d3__","__WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__","__WEBPACK_IMPORTED_MODULE_2__components_widgets_CompGraph__","props","data","type","Array","required","googleColors","caColors","otherColors","palette","computed","organizations","this","map","d","Name","Data","sort","logs","acc","reduce","org","count","out","push","filter","x","components","CompGraph","2+Bm","injectStyle","ssrContext","__WEBPACK_IMPORTED_MODULE_0__babel_loader_vue_loader_lib_selector_type_script_index_0_Octicon_vue__","__WEBPACK_IMPORTED_MODULE_1__vue_loader_lib_template_compiler_index_id_data_v_da982288_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_vue_loader_lib_selector_type_template_index_0_Octicon_vue__","normalizeComponent","__vue_styles__","Component","2Q+v","render","_vm","_h","$createElement","_c","_self","class","clazz","style","attrs","version","role","label","aria-label","y","width","height","viewBox","box","_t","icon","_e","staticRenderFns","esExports","2bLC","3h0Q","4ZOf","msg","error","_v","log","staticClass","_s","Endpoint","href","sprintDate","LastUpdate","throughput","toLocaleString","Count","Unsubmitted","sprintSmallPercent","atCapacity","velocity","sprintPercent","Profile","Uptime","_m","_l","ep","ByEndpoint","tag","sprintDuration","ResponseTime","id","breakdownFilters","unselect","breakdown","select","scope","55vb","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_IssuanceGraph_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1f07dd7a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_IssuanceGraph_vue__","5BEz","Details","IssuanceRate","ExpiryRate","alg","legacySigAlgs","legacyPubAlgs","Issuance","Utilization","colspan","7Dgi","preserveAspectRatio","transform","r","fill","text-anchor","dy","7O1K","to","data-toggle","data-target","aria-controls","aria-expanded","nav-item","active","onLogList","onAbout","8X7C","names","add","obj","key","itemize","total","image","droppedKeys","droppedCount","otherIdx","findIndex","concat","slice","percent","parse","filters","entryType","sigAlg","pubAlg","valLevel","rootName","expired","parts","split","entryTypes","sigAlgs","pubAlgs","valLevels","join","e","u","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","8i3U","8kLh","9CAV","$route","path","9vNX","Family","FamilyName","member","on","click","$event","view","Slug","AAeu","BlLf","Ccha","EV5V","GNZh","IbL6","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Footbar_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_228d9e33_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Footbar_vue__","K+G5","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Frontpage_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b70d95a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Frontpage_vue__","K2Iq","KgvX","global","leftPad","n","z","dateStr","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","p","toFixed","Math","round","loadData","next","preload","vm","setData","loadingBarBg","document","getElementById","loadingBar","classList","axios","timeout","then","resp","remove","catch","err","__WEBPACK_IMPORTED_MODULE_0_axios__","methods","call","Ls1+","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_VelocityGraph_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2efbd0a1_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VelocityGraph_vue__","Lt/O","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default","__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__","__WEBPACK_IMPORTED_MODULE_3__components_widgets_Filters__","__WEBPACK_IMPORTED_MODULE_4__components_widgets_CompGraph__","__WEBPACK_IMPORTED_MODULE_5__components_widgets_PieGraph__","__WEBPACK_IMPORTED_MODULE_6__components_widgets_IssuanceGraph__","__WEBPACK_IMPORTED_MODULE_7__components_widgets_UtilGraph__","__WEBPACK_IMPORTED_MODULE_8__components_widgets_Errorpage__","beforeRouteEnter","from","Object","Breakdown","LegacySigAlgs","LegacyPubAlgs","toString","field","self","Filters","PieGraph","IssuanceGraph","UtilGraph","Errorpage","M93x","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_dfb35166_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__","MFeX","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Filters_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0847b964_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Filters_vue__","N+nW","issuance","day","j","months","String","color","draw","now","Now","Days","yMax","domain","range","svg","selectAll","g","append","attr","tooltipg","tooltipRect1","tooltipRect2","tooltip1","text","tooltip2","tooltip3","bbox1","_groups","getBBox","bbox2","swatchY","tooltipSwatch","bar","enter","t","bbox3","xPos","yPos","ticks","watch","mounted","NHnr","defineProperty","value","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1__App__","__WEBPACK_IMPORTED_MODULE_2__router__","__WEBPACK_IMPORTED_MODULE_3_vue_octicon_components_Octicon_vue__","Vue","config","productionTip","component","Octicon","el","router","template","App","QcKy","Su/m","__WEBPACK_IMPORTED_MODULE_1__components_mixins_util__","xExtent","start","end","addedExtent","added","seenExtent","seen","yExtent","min","max","yRange","floor","ceil","reticleg","reticleArc","outerRadius","innerRadius","startAngle","endAngle","PI","reticle1","reticle2","tooltipLabel1","tooltipLabel2","y1","y2","bbox","offsetX","line","datum","WeE0","__WEBPACK_IMPORTED_MODULE_0__util__","icons","validator","val","scale","Number","spin","Boolean","inverse","flip","childrenWidth","childrenHeight","outerScale","normalizedScale","isNaN","octicon","octicon-spin","octicon-flip-horizontal","octicon-flip-vertical","octicon-inverse","fontSize","_this","$children","forEach","child","register","WoGI","X44g","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Navbar_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_055c8c91_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Navbar_vue__","XOjc","YaEn","__WEBPACK_IMPORTED_MODULE_1_vue_router__","__WEBPACK_IMPORTED_MODULE_2__components_Frontpage__","__WEBPACK_IMPORTED_MODULE_3__components_LogListpage__","__WEBPACK_IMPORTED_MODULE_4__components_Logpage__","__WEBPACK_IMPORTED_MODULE_5__components_About__","__WEBPACK_IMPORTED_MODULE_6__components_NotFound__","use","Router","mode","routes","Frontpage","LogListpage","Logpage","About","NotFound","YcJa","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NotFound_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_67ac73f0_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NotFound_vue__","Zs8U","Zz25","__WEBPACK_IMPORTED_MODULE_0__components_mixins_util__","__WEBPACK_IMPORTED_MODULE_1__router__","__WEBPACK_IMPORTED_MODULE_2__components_widgets_Errorpage__","Logs","slug","mixins","a2xD","__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__","__WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__","__WEBPACK_IMPORTED_MODULE_3__components_mixins_util__","Function","default","pie","arcTween","_current","labelTransformTween","isWhole","wasWhole","_i","centroid","_i2","arcMouseover","tooltip","raise","arcMouseout","arcClick","arc","data0","data1","arcEnter","each","arcUpdate","merge","transition","duration","attrTween","arcExit","exit","aB4x","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UtilGraph_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_64659e91_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UtilGraph_vue__","aOIe","b1fz","angle","pt","atan","labelWillFit","labelLen","pts","percentLen","theta","findPreceding","m","k","findFollowing","findArcEntry","findArcExit","findBlockEntry","findBlockExit","c27y","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_About_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0390e838_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_About_vue__","cb0c","cxeO","e1w8","touchscreen","window","navigator","maxTouchPoints","mouseover","mouseleave","mouseout","fE7X","fyq0","g8v8","sprintImage","h75S","__WEBPACK_IMPORTED_MODULE_6__components_widgets_VelocityGraph__","__WEBPACK_IMPORTED_MODULE_7__components_widgets_Errorpage__","__WEBPACK_IMPORTED_MODULE_8__components_NotFound__","params","beforeRouteUpdate","endpoints","Velocity","v","Start","End","Added","Seen","extent","VelocityGraph","h8qX","jME9","jmDQ","jnhO","comp","index","unit","timer","debounceResize","clearTimeout","setTimeout","resize","blocksHeight","blocksWidth","swatch","tooltipText","clientRect","getBoundingClientRect","rect","tooltipDy","parseFloat","blockTween","node","setAttribute","blocks","tween","addEventListener","destroyed","removeEventListener","nmJD","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_PieGraph_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_452b4583_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PieGraph_vue__","oDiI","pC6E","plN1","tND6","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LogListpage_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61a82ece_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_LogListpage_vue__","tRFq","vwga","replace","x9ei","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CompGraph_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0058510f_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_CompGraph_vue__","xJD8","__WEBPACK_IMPORTED_MODULE_0__components_widgets_Navbar__","__WEBPACK_IMPORTED_MODULE_1__components_widgets_Footbar__","Navbar","Footbar","zJhq","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Errorpage_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f4cf469_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Errorpage_vue__","zjwr","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Logpage_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f19c62_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Logpage_vue__"],"mappings":"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","file":"static/js/app.65f06089931403cf7b19.js","sourcesContent":["webpackJsonp([1],{\n\n/***/ \"+DEH\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"/Pi3\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"08S2\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"1TdX\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3__ = __webpack_require__(\"vwbq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__ = __webpack_require__(\"8X7C\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_widgets_CompGraph__ = __webpack_require__(\"x9ei\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n// byName is a comparison function for Array.sort that puts the array in\n// alphabetical order, other than the name 'Other' which is always last.\nfunction byName(a, b) {\n if (a.name == 'Other') {\n return 1;\n } else if (b.name == 'Other') {\n return -1;\n } else if (a.name < b.name) {\n return -1;\n } else if (a.name > b.name) {\n return 1;\n }\n return 0;\n}\n// byOrganization is a comparison function for Array.sort that puts names into\n// pre-sorted buckets depending on the organization name that's present.\nfunction byOrganization(a, b) {\n var orgs = ['Google', 'DigiCert', 'Let\\'s Encrypt', 'Sectigo', 'Cloudflare'];\n\n var aIdx = orgs.length,\n bIdx = orgs.length;\n for (var i = 0; i < orgs.length; i++) {\n if (a.name.includes(orgs[i])) {\n aIdx = i;\n }\n if (b.name.includes(orgs[i])) {\n bIdx = i;\n }\n }\n\n if (aIdx < bIdx) {\n return -1;\n } else if (aIdx > bIdx) {\n return 1;\n }\n return byName(a, b);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'UtilGraph',\n props: {\n data: { type: Array, required: true }\n },\n data: function data() {\n var googleColors = __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#4a1486']);\n var caColors = __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603']);\n var otherColors = __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b']);\n\n return {\n palette: function palette(name) {\n if (name.includes('Google')) {\n return googleColors(name);\n } else if (name.includes('DigiCert') || name.includes('Let\\'s Encrypt') || name.includes('Sectigo')) {\n return caColors(name);\n }\n return otherColors(name);\n }\n };\n },\n computed: {\n organizations: function organizations() {\n return this.data.map(function (d) {\n return { name: d.Name, data: __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__[\"a\" /* itemize */](d.Data).sort(byOrganization) };\n }).sort(byName);\n },\n logs: function logs() {\n var acc = this.organizations.reduce(function (acc, org) {\n for (var i = 0; i < org.data.length; i++) {\n var name = org.data[i].name,\n count = org.data[i].count;\n if (name in acc) {\n acc[name] += count;\n } else {\n acc[name] = count;\n }\n }\n return acc;\n }, {});\n\n var out = [];\n for (var name in acc) {\n out.push({ name: name, count: acc[name] });\n }\n return out.sort(byOrganization).filter(function (x) {\n return x.name != 'Other';\n });\n }\n },\n components: { CompGraph: __WEBPACK_IMPORTED_MODULE_2__components_widgets_CompGraph__[\"a\" /* default */] }\n});\n\n/***/ }),\n\n/***/ \"2+Bm\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_vue_loader_lib_selector_type_script_index_0_Octicon_vue__ = __webpack_require__(\"WeE0\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__vue_loader_lib_template_compiler_index_id_data_v_da982288_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_vue_loader_lib_selector_type_template_index_0_Octicon_vue__ = __webpack_require__(\"2Q+v\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"8kLh\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_vue_loader_lib_selector_type_script_index_0_Octicon_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__vue_loader_lib_template_compiler_index_id_data_v_da982288_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_vue_loader_lib_selector_type_template_index_0_Octicon_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"2Q+v\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.clazz,style:(_vm.style),attrs:{\"version\":\"1.1\",\"role\":_vm.label ? 'img' : 'presentation',\"aria-label\":_vm.label,\"x\":_vm.x,\"y\":_vm.y,\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":_vm.box}},[_vm._t(\"default\",[(_vm.icon)?_c('path',{attrs:{\"d\":_vm.icon.d}}):_vm._e()])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"2bLC\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"3h0Q\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"4ZOf\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.log && !_vm.error)?_c('NotFound'):_vm._e(),_vm._v(\" \"),(_vm.log)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4 log-details\"},[_c('h6',[_vm._v(\"Log Details\")]),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.log.Name))]),_vm._v(\" \"),_c('p',[(_vm.log.Endpoint == '(Private Log)')?_c('span',[_vm._v(_vm._s(_vm.log.Endpoint))]):_c('a',{attrs:{\"href\":'https://'+_vm.log.Endpoint}},[_vm._v(_vm._s(_vm.log.Endpoint))]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Last Update:\")]),_vm._v(\" \"+_vm._s(_vm.sprintDate(_vm.log.LastUpdate)))]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Avg. Throughput:\")]),_vm._v(\" \"+_vm._s(_vm.throughput.toLocaleString())+\" cert\"),(_vm.throughput != 1)?[_vm._v(\"s\")]:_vm._e(),_vm._v(\"/hr\")],2),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Contains:\")]),_vm._v(\" \"+_vm._s(_vm.log.Count.toLocaleString())+\" certificate\"),(_vm.log.Count != 1)?[_vm._v(\"s\")]:_vm._e()],2),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Unsubmitted:\")]),_vm._v(\" \"+_vm._s(_vm.log.Unsubmitted.toLocaleString())+\" certificate\"),(_vm.log.Unsubmitted != 1)?[_vm._v(\"s\")]:_vm._e(),_vm._v(\" (\"+_vm._s(_vm.sprintSmallPercent(_vm.log.Count / (_vm.log.Count + _vm.log.Unsubmitted)))+\" full)\")],2)]),(_vm.atCapacity && _vm.velocity.length > 0)?_c('p',[_vm._v(\"This log is operating at full capacity.\")]):_vm._e(),_vm._v(\" \"),(_vm.velocity.length == 0)?_c('p',[_c('strong',[_vm._v(\"This log is frozen.\")]),_vm._v(\" It\\n accepts no new entries and signs no new STHs but continues to operate\\n in read-only mode.\")]):_vm._e(),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Uptime\")]),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.sprintPercent(_vm.log.Profile.Uptime)))]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',_vm._l((_vm.endpoints),function(ep){return _c('tr',[_c('td',[_vm._v(_vm._s(ep.name))]),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].Uptime == -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(\"N/A\")]):_vm._e(),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].Uptime != -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(_vm.log.Profile.ByEndpoint[ep.tag].Uptime)))]):_vm._e()])}),0)]),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Response Time\")]),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.sprintDuration(_vm.log.Profile.ResponseTime)))]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(1),_vm._v(\" \"),_c('tbody',_vm._l((_vm.endpoints),function(ep){return _c('tr',[_c('td',[_vm._v(_vm._s(ep.name))]),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime == -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(\"N/A\")]):_vm._e(),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime != -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime)))]):_vm._e()])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-8 log-graphs\"},[(_vm.velocity.length > 0)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Log Velocity\")]),_vm._v(\" \"),_c('VelocityGraph',{attrs:{\"id\":\"velocity\",\"data\":_vm.velocity}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Certificates Seen vs. Tree Growth\")])],1)]):_vm._e(),_vm._v(\" \"),_c('h6',[_vm._v(\"Contents Breakdown\")]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('Filters',{attrs:{\"breakdownFilters\":_vm.breakdownFilters,\"unselect\":_vm.unselect}})],1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"vallevel\",\"data\":_vm.breakdown['valLevel'],\"select\":_vm.select('valLevel')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Validation Level\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"pubalg\",\"data\":_vm.breakdown['pubAlg'],\"select\":_vm.select('pubAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Public Key Algorithm\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"sigalg\",\"data\":_vm.breakdown['sigAlg'],\"select\":_vm.select('sigAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Signature Algorithm\")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"entrytype\",\"data\":_vm.breakdown['entryType'],\"select\":_vm.select('entryType')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Entry Type\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"expired\",\"data\":_vm.breakdown['expired'],\"select\":_vm.select('expired')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Expired vs. Current\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('CompGraph',{attrs:{\"id\":\"root\",\"data\":_vm.breakdown['rootName'],\"select\":_vm.select('rootName')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Root Certificate Authorities\")])],1)])])]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"sr-only\"},[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Endpoint\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uptime\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"sr-only\"},[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Endpoint\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Resp. Time\")])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"55vb\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_IssuanceGraph_vue__ = __webpack_require__(\"N+nW\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1f07dd7a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_IssuanceGraph_vue__ = __webpack_require__(\"Ccha\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"jME9\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1f07dd7a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_IssuanceGraph_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1f07dd7a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_IssuanceGraph_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"5BEz\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"frontpage\"},[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.error && _vm.data)?[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-8 global-graphs\"},[_c('h6',[_vm._v(\"Certificate Breakdown by Type\")]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('Filters',{attrs:{\"breakdownFilters\":_vm.breakdownFilters,\"unselect\":_vm.unselect}})],1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"vallevel\",\"data\":_vm.breakdown['valLevel'],\"select\":_vm.select('valLevel')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Validation Level\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"pubalg\",\"data\":_vm.breakdown['pubAlg'],\"select\":_vm.select('pubAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Public Key Algorithm\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"sigalg\",\"data\":_vm.breakdown['sigAlg'],\"select\":_vm.select('sigAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Signature Algorithm\")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"entrytype\",\"data\":_vm.breakdown['entryType'],\"select\":_vm.select('entryType')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Entry Type\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"expired\",\"data\":_vm.breakdown['expired'],\"select\":_vm.select('expired')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Expired vs. Current\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('CompGraph',{attrs:{\"id\":\"root\",\"data\":_vm.breakdown['rootName'],\"select\":_vm.select('rootName')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Root Certificate Authorities\")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('h6',[_vm._v(\"Global Details\")]),_vm._v(\" \"),_c('p',[_c('span',[_c('u',[_vm._v(\"Issuance Rate:\")]),_vm._v(\" \"+_vm._s(_vm.data.Details.IssuanceRate.toLocaleString())+\" certs/hr\")]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Expiry Rate:\")]),_vm._v(\" \"+_vm._s(_vm.data.Details.ExpiryRate.toLocaleString())+\" certs/hr\")]),_c('br')]),_vm._v(\" \"),_c('h6',[_vm._v(\"Legacy Algorithms\")]),_vm._v(\" \"),_c('p',[_vm._v(\"The tables below count the number of currently-valid certificates\\n signed by widely trusted CAs that use insecure or deprecated\\n algorithms.\")]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.legacySigAlgs),function(alg){return _c('tr',[_c('td',[_vm._v(_vm._s(alg.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(alg.count.toLocaleString()))])])}),_vm._v(\" \"),(_vm.legacySigAlgs.length == 0)?_c('tr',[_vm._m(1)]):_vm._e()],2)]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(2),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.legacyPubAlgs),function(alg){return _c('tr',[_c('td',[_vm._v(_vm._s(alg.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(alg.count.toLocaleString()))])])}),_vm._v(\" \"),(_vm.legacyPubAlgs.length == 0)?_c('tr',[_vm._m(3)]):_vm._e()],2)])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Issuance per Day by Certificate Authority\")]),_vm._v(\" \"),_c('IssuanceGraph',{attrs:{\"id\":\"global\",\"data\":_vm.data.Issuance}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Log Utilization by Large Certificate Authorities\")]),_vm._v(\" \"),_c('p',[_vm._v(\"This section shows the number of pre-certificates in known CT logs\\n from a few particularly large certificate authorities. Anyone can\\n submit a pre-certificate they find in one log to another log, but this\\n currently shows that some CAs have a clear preference for certain CT\\n logs when they issue a certificate containing embedded SCTs, while\\n others submit to several logs equally.\")]),_vm._v(\" \"),_c('UtilGraph',{attrs:{\"data\":_vm.data.Utilization}})],1)])]:_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Signature Algorithm\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"#\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"2\"}},[_c('em',[_vm._v(\"(None)\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Public-Key Algorithm\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"#\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"2\"}},[_c('em',[_vm._v(\"(None)\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"7Dgi\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'pie-chart-'+_vm.id,\"viewBox\":\"0,0,250,250\",\"preserveAspectRatio\":\"xMaxYMax meet\"}},[_c('g',{attrs:{\"transform\":\"translate(125, 125)\"}},[_c('circle',{attrs:{\"r\":\"125\",\"fill\":\"#e5e5e5\"}}),_vm._v(\" \"),_c('g',{staticClass:\"tooltipg\",attrs:{\"transform\":\"translate(-500, -500)\"}},[_c('circle',{attrs:{\"r\":\"80\",\"fill\":\"white\"}}),_vm._v(\" \"),_c('circle',{staticClass:\"body\",attrs:{\"r\":\"77\"}}),_vm._v(\" \"),_c('text',{attrs:{\"fill\":\"white\",\"text-anchor\":\"middle\"}},[_c('tspan',{staticClass:\"name\",attrs:{\"x\":\"0\",\"dy\":\"-0.5em\"}}),_vm._v(\" \"),_c('tspan',{staticClass:\"count\",attrs:{\"x\":\"0\",\"dy\":\"1.25em\"}}),_vm._v(\" \"),_c('tspan',{staticClass:\"percent\",attrs:{\"x\":\"0\",\"dy\":\"1.25em\"}})])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"7O1K\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._m(0),_vm._v(\" \"),_c('nav',{staticClass:\"navbar navbar-expand-md navbar-dark bg-sky\"},[_c('div',{staticClass:\"container\"},[_c('router-link',{staticClass:\"navbar-brand\",attrs:{\"to\":\"/\"}},[_vm._v(\"\\n Merkle Town\"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"sub-brand\"},[_vm._v(\"Explore the certificate transparency ecosystem.\")])]),_vm._v(\" \"),_c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#navbarLinks\",\"aria-controls\":\"navbarLinks\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('octicon',{attrs:{\"name\":\"three-bars\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"collapse navbar-collapse\",attrs:{\"id\":\"navbarLinks\"}},[_c('ul',{staticClass:\"navbar-nav ml-auto\"},[_c('li',{class:{'nav-item': true, 'active': _vm.onLogList}},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/logs\"}},[_vm._v(\"Log List\")])],1),_vm._v(\" \"),_c('li',{class:{'nav-item': true, 'active': _vm.onAbout}},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/about\"}},[_vm._v(\"About\")])],1)])])],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"loading-bg\"}},[_c('div',{attrs:{\"id\":\"loading-bar\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"8X7C\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = itemize;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = parse;\nvar entryTypes = {\n '1': 'Precert',\n '2': 'Cert',\n '3': 'CT-Qualified Cert'\n};\n\nvar sigAlgs = {\n '1': 'RSA MD2',\n '2': 'RSA MD5',\n '3': 'RSA SHA-1',\n '4': 'RSA SHA-256',\n '5': 'RSA SHA-384',\n '6': 'RSA SHA-512',\n '7': 'DSA SHA-1',\n '8': 'DSA SHA-256',\n '9': 'ECDSA SHA-1',\n '10': 'ECDSA SHA-256',\n '11': 'ECDSA SHA-384',\n '12': 'ECDSA SHA-512',\n '13': 'PSS SHA-256',\n '14': 'PSS SHA-384',\n '15': 'PSS SHA-512'\n};\n\nvar pubAlgs = {\n '1': 'RSA',\n '2': 'DSA',\n '3': 'ECDSA'\n};\n\nvar valLevels = {\n '1': 'Domain',\n '2': 'Organization',\n '3': 'Extended'\n};\n\nfunction name(tag, names) {\n if (tag in names) {\n return names[tag];\n }\n return 'Other';\n}\n\nfunction add(obj, key, x) {\n if (key in obj) {\n obj[key] += x;\n } else {\n obj[key] = x;\n }\n}\n\n// itemize converts a map from bucket name -> count to a format that can be\n// consumed by graph widgets. It pools any buckets that are too small to be\n// visible into an Other bucket, if possible.\nfunction itemize(obj) {\n var threshold = 0.02,\n buckets = 7;\n\n var data = [],\n total = 0;\n for (var key in obj) {\n data.push({ name: key, image: [key], count: obj[key] });\n total += obj[key];\n }\n\n var droppedKeys = [],\n droppedCount = 0;\n data = data.filter(function (x) {\n if (x.count / total < threshold) {\n droppedKeys.push(x.name);\n droppedCount += x.count;\n return false;\n }\n return true;\n });\n\n // Either add what was dropped to the standard Other bucket, or if there's\n // no Other bucket and we've filtered out >=2%, make a new Other bucket.\n var otherIdx = data.findIndex(function (x) {\n return x.name == 'Other';\n });\n if (otherIdx != -1) {\n data[otherIdx].image = data[otherIdx].image.concat(droppedKeys);\n data[otherIdx].count += droppedCount;\n } else if (droppedCount / total >= threshold) {\n data.push({ name: 'Other', image: droppedKeys, count: droppedCount });\n otherIdx = data.length - 1;\n } else {\n total -= droppedCount;\n }\n\n // If there are more buckets than we have colors, take the smallest buckets\n // and pool them into the Other bucket.\n if (data.length >= buckets) {\n // Put the Other bucket at the end; sort the rest of the array normally,\n // ascending by count.\n data = data.sort(function (x, y) {\n if (x.name == 'Other') {\n return 1;\n } else if (y.name == 'Other') {\n return -1;\n }\n return x.count - y.count;\n });\n\n if (otherIdx == -1) {\n data.push({ name: 'Other', image: [], count: 0 });\n }\n for (var i = 0; i < data.length - buckets; i++) {\n data[data.length - 1].image = data[data.length - 1].image.concat(data[i].image);\n data[data.length - 1].count += data[i].count;\n }\n data = data.slice(data.length - buckets);\n }\n\n // Sort the array in an aesthetically pleasing way, alphabetical with the\n // Other bucket at the end. Compute each bucket's percentage of the total.\n data = data.sort(function (x, y) {\n if (x.name == 'Other') {\n return 1;\n } else if (y.name == 'Other') {\n return -1;\n } else if (x.name < y.name) {\n return -1;\n } else if (x.name > y.name) {\n return 1;\n }\n return 0;\n });\n for (var _i = 0; _i < data.length; _i++) {\n data[_i].percent = data[_i].count / total;\n }\n\n return data;\n}\n\nfunction parse(breakdown, filters) {\n var acc = {\n 'entryType': {},\n 'sigAlg': {},\n 'pubAlg': {},\n 'valLevel': {},\n 'rootName': {},\n 'expired': {}\n };\n\n for (var key in breakdown) {\n var parts = key.split(':');\n\n var entryType = name(parts[0], entryTypes),\n sigAlg = name(parts[1], sigAlgs),\n pubAlg = name(parts[2], pubAlgs),\n valLevel = name(parts[3], valLevels),\n rootName = parts.slice(4).join(':');\n\n var skip = filters['entryType'] && !filters['entryType'].includes(entryType) || filters['sigAlg'] && !filters['sigAlg'].includes(sigAlg) || filters['pubAlg'] && !filters['pubAlg'].includes(pubAlg) || filters['valLevel'] && !filters['valLevel'].includes(valLevel) || filters['rootName'] && !filters['rootName'].includes(rootName);\n if (skip) {\n continue;\n }\n\n var e = 0,\n u = 0;\n if (!filters['expired'] || filters['expired'].includes('Expired')) {\n e = breakdown[key]['E'];\n }\n if (!filters['expired'] || filters['expired'].includes('Current')) {\n u = breakdown[key]['U'];\n }\n\n add(acc['entryType'], entryType, e + u);\n add(acc['sigAlg'], sigAlg, e + u);\n add(acc['pubAlg'], pubAlg, e + u);\n add(acc['valLevel'], valLevel, e + u);\n add(acc['rootName'], rootName, e + u);\n\n add(acc['expired'], 'Expired', e);\n add(acc['expired'], 'Current', u);\n }\n\n return {\n 'entryType': itemize(acc['entryType']),\n 'sigAlg': itemize(acc['sigAlg']),\n 'pubAlg': itemize(acc['pubAlg']),\n 'valLevel': itemize(acc['valLevel']),\n 'rootName': itemize(acc['rootName']),\n 'expired': itemize(acc['expired'])\n };\n}\n\n/***/ }),\n\n/***/ \"8i3U\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"8kLh\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"9CAV\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Navbar',\n computed: {\n onLogList: function onLogList() {\n return this.$route.path == '/logs';\n },\n onAbout: function onAbout() {\n return this.$route.path == '/about';\n }\n }\n});\n\n/***/ }),\n\n/***/ \"9vNX\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.error)?_c('table',{staticClass:\"table table-hover table-responsive table-responsive-md\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.logs),function(log){return [(!log.Family)?_c('tr',{on:{\"click\":function($event){return _vm.view(log.Slug)}}},[_c('td',[_vm._v(_vm._s(log.Name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(log.Count.toLocaleString()))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(log.Uptime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(log.ResponseTime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDate(log.LastUpdate)))])]):[_c('tr',[_c('th',{attrs:{\"colspan\":\"5\"}},[_vm._v(_vm._s(log.FamilyName))])]),_vm._v(\" \"),_vm._l((log.Members),function(member){return _c('tr',{on:{\"click\":function($event){return _vm.view(member.Slug)}}},[_c('td',{staticClass:\"family-member\"},[_vm._v(\"— \"+_vm._s(member.Name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(member.Count.toLocaleString()))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(member.Uptime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(member.ResponseTime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDate(member.LastUpdate)))])])})]]})],2)]):_vm._e()],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Log Name\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"# Certificates\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uptime\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Resp. Time\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Last Update\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"AAeu\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Navbar'),_vm._v(\" \"),_c('div',{staticClass:\"container\"},[_c('router-view')],1),_vm._v(\" \"),_c('Footbar')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"BlLf\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"Ccha\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'issuance-chart-'+_vm.id,\"viewBox\":\"0,0,1000,300\",\"preserveAspectRatio\":\"xMaxYMax meet\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"EV5V\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"GNZh\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"IbL6\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Footbar_vue__ = __webpack_require__(\"XOjc\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_228d9e33_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Footbar_vue__ = __webpack_require__(\"cb0c\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"plN1\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Footbar_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_228d9e33_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Footbar_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"K+G5\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Frontpage_vue__ = __webpack_require__(\"Lt/O\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b70d95a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Frontpage_vue__ = __webpack_require__(\"5BEz\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"EV5V\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6b70d95a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Frontpage_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6b70d95a_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Frontpage_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"K2Iq\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"KgvX\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export leftPad */\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = sprintDate;\n/* unused harmony export sprintPercent */\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = sprintSmallPercent;\n/* unused harmony export sprintDuration */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = loadData;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios__ = __webpack_require__(\"mtWM\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_axios__);\n\n\nfunction leftPad(n, width, z) {\n z = z || '0';\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n}\n\n// sprintDate takes an arbitrary date string as input (should be Universal\n// Sortable, though) and returns it formatted as \"YYYY-MM-DD HH:MM UTC\".\nfunction sprintDate(dateStr) {\n var d = new Date(dateStr);\n\n return leftPad(d.getUTCFullYear(), 4) + '-' + leftPad(d.getUTCMonth() + 1, 2) + '-' + leftPad(d.getUTCDate(), 2) + ' ' + leftPad(d.getUTCHours(), 2) + ':' + leftPad(d.getUTCMinutes(), 2) + ' UTC';\n}\n\n// sprintPercent takes a [0, 1] probability as input and returns it formatted as\n// a percentage, with one decimal.\nfunction sprintPercent(p) {\n return (p * 100).toFixed(1) + '%';\n}\n\n// sprintSmallPercent takes a [0, 1] probability as input and returns it\n// formatted as a percented, rounded to the nearest integer.\nfunction sprintSmallPercent(p) {\n return Math.round(p * 100) + '%';\n}\n\n// sprintDuration takes a duration in nanoseconds as input, converts it to a\n// human-understandable unit, and return this along with the unit symbol.\nfunction sprintDuration(d) {\n if (d < 1e+6) {\n // Less than a millisecond, show in microseconds.\n return Math.round(d / 1e+3) + 'μs';\n } else if (d < 1e+9) {\n // Less than a second, show in milliseconds.\n return Math.round(d / 1e+6) + 'ms';\n } // Show in seconds.\n return Math.round(d / 1e+9).toFixed(1) + 's';\n}\n\n// loadData asynchronously fetches data from the backend corresponding to tag.\n// It is meant to be used in beforeRouteEnter lifecycle hooks, so `next` is the\n// the same parameter as it is there.\n//\n// Consumers will need to implement a setData(err, data) method which is called\n// with the result from the backend.\nfunction loadData(tag, next) {\n if (global.preload[tag]) {\n next(function (vm) {\n return vm.setData(null, global.preload[tag]);\n });\n return;\n }\n\n var loadingBarBg = document.getElementById('loading-bg'),\n loadingBar = document.getElementById('loading-bar');\n if (loadingBarBg) {\n loadingBarBg.classList.add('bg-sky');\n }\n if (loadingBar) {\n loadingBar.classList.add('active');\n }\n\n __WEBPACK_IMPORTED_MODULE_0_axios__[\"get\"]('/data' + tag, { timeout: 10000 }).then(function (resp) {\n if (loadingBarBg) {\n loadingBarBg.classList.remove('bg-sky');\n }\n if (loadingBar) {\n loadingBar.classList.remove('active');\n }\n global.preload[tag] = resp.data;\n next(function (vm) {\n return vm.setData(null, resp.data);\n });\n }).catch(function (err) {\n if (loadingBar) {\n loadingBar.classList.remove('active');\n }\n next(function (vm) {\n return vm.setData(err, null);\n });\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n methods: {\n leftPad: leftPad,\n sprintDate: sprintDate,\n sprintPercent: sprintPercent,\n sprintSmallPercent: sprintSmallPercent,\n sprintDuration: sprintDuration\n }\n});\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"DuR2\")))\n\n/***/ }),\n\n/***/ \"Ls1+\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_VelocityGraph_vue__ = __webpack_require__(\"Su/m\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2efbd0a1_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VelocityGraph_vue__ = __webpack_require__(\"cxeO\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"K2Iq\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-2efbd0a1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_VelocityGraph_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2efbd0a1_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_VelocityGraph_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"Lt/O\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(\"woOf\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__ = __webpack_require__(\"8X7C\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_mixins_util__ = __webpack_require__(\"KgvX\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_widgets_Filters__ = __webpack_require__(\"MFeX\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_widgets_CompGraph__ = __webpack_require__(\"x9ei\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_widgets_PieGraph__ = __webpack_require__(\"nmJD\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_widgets_IssuanceGraph__ = __webpack_require__(\"55vb\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_widgets_UtilGraph__ = __webpack_require__(\"aB4x\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_widgets_Errorpage__ = __webpack_require__(\"zJhq\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Frontpage',\n beforeRouteEnter: function beforeRouteEnter(to, from, next) {\n Object(__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__[\"b\" /* loadData */])('/index', next);\n },\n // beforeRouteUpdate omitted because this page has no parameters.\n\n data: function data() {\n return {\n error: null,\n\n data: null,\n breakdownFilters: {}\n };\n },\n computed: {\n breakdown: function breakdown() {\n return __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__[\"b\" /* parse */](this.data.Breakdown, this.breakdownFilters);\n },\n legacySigAlgs: function legacySigAlgs() {\n var obj = this.data.Details.LegacySigAlgs,\n out = [];\n for (var key in obj) {\n out.push({ name: key, count: obj[key] });\n }\n return out.sort(function (a, b) {\n return a.count - b.count;\n });\n },\n legacyPubAlgs: function legacyPubAlgs() {\n var obj = this.data.Details.LegacyPubAlgs,\n out = [];\n for (var key in obj) {\n out.push({ name: key, count: obj[key] });\n }\n return out.sort(function (a, b) {\n return a.count - b.count;\n });\n }\n },\n methods: {\n setData: function setData(err, data) {\n if (err) {\n this.error = err.toString();\n } else {\n this.data = data;\n }\n },\n\n select: function select(field) {\n var self = this;\n return function (image) {\n var filters = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, self.breakdownFilters);\n filters[field] = image;\n self.breakdownFilters = filters;\n };\n },\n unselect: function unselect(field) {\n var filters = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, this.breakdownFilters);\n delete filters[field];\n this.breakdownFilters = filters;\n }\n },\n components: { Filters: __WEBPACK_IMPORTED_MODULE_3__components_widgets_Filters__[\"a\" /* default */], CompGraph: __WEBPACK_IMPORTED_MODULE_4__components_widgets_CompGraph__[\"a\" /* default */], PieGraph: __WEBPACK_IMPORTED_MODULE_5__components_widgets_PieGraph__[\"a\" /* default */], IssuanceGraph: __WEBPACK_IMPORTED_MODULE_6__components_widgets_IssuanceGraph__[\"a\" /* default */], UtilGraph: __WEBPACK_IMPORTED_MODULE_7__components_widgets_UtilGraph__[\"a\" /* default */], Errorpage: __WEBPACK_IMPORTED_MODULE_8__components_widgets_Errorpage__[\"a\" /* default */] }\n});\n\n/***/ }),\n\n/***/ \"M93x\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__ = __webpack_require__(\"xJD8\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_dfb35166_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__ = __webpack_require__(\"AAeu\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"08S2\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_dfb35166_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"MFeX\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Filters_vue__ = __webpack_require__(\"jmDQ\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0847b964_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Filters_vue__ = __webpack_require__(\"g8v8\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"2bLC\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0847b964\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Filters_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0847b964_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Filters_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"N+nW\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3__ = __webpack_require__(\"vwbq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__ = __webpack_require__(\"8X7C\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_mixins_util__ = __webpack_require__(\"KgvX\");\n//\n//\n//\n//\n\n\n\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nfunction issuance(data) {\n var out = [];\n\n for (var i = 0; i < data.length; i++) {\n var day = __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__[\"a\" /* itemize */](data[i]),\n acc = 0;\n for (var j = 0; j < day.length; j++) {\n out.push({\n day: i,\n name: day[j].name,\n count: day[j].count,\n percent: day[j].percent,\n acc: acc\n });\n acc += day[j].count;\n }\n }\n\n return out;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'IssuanceGraph',\n props: {\n id: { type: String, required: true },\n data: { type: Object, required: true }\n },\n data: function data() {\n return {\n color: __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#98abc5', '#8a89a6', '#7b6888', '#6b486b', '#a05d56', '#d0743c', '#ff8c00'])\n };\n },\n methods: {\n draw: function draw() {\n var color = this.color,\n now = this.data.Now,\n data = issuance(this.data.Days);\n\n var yMax = __WEBPACK_IMPORTED_MODULE_0_d3__[\"g\" /* max */](data, function (d) {\n return d.acc + d.count;\n });\n\n var x = __WEBPACK_IMPORTED_MODULE_0_d3__[\"i\" /* scaleLinear */]().domain([0, 30]).range([55, 995]);\n var y = __WEBPACK_IMPORTED_MODULE_0_d3__[\"i\" /* scaleLinear */]().domain([0, yMax]).range([295, 5]);\n\n var barWidth = (995 - 55) / 30;\n\n // Start drawing.\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#issuance-chart-' + this.id);\n svg.selectAll('*').remove();\n\n var g = svg.append('g').attr('transform', 'translate(0, 0)');\n\n // Draw a tooltip for detailed information about a specific block.\n var tooltipg = svg.append('g').attr('visibility', 'hidden');\n\n var tooltipRect1 = tooltipg.append('rect').attr('x', -6).attr('fill', '#e5e5e5');\n var tooltipRect2 = tooltipg.append('rect').attr('x', -5).attr('fill', 'white');\n\n var tooltip1 = tooltipg.append('text').attr('font-weight', 'bold').text('Date');\n var tooltip2 = tooltipg.append('text').attr('dx', '1.25em').attr('dy', '1.25em').text('Authority Name');\n var tooltip3 = tooltipg.append('text').attr('dx', '1.25em').attr('dy', '2.5em');\n\n var bbox1 = tooltip1._groups[0][0].getBBox();\n tooltipRect1.attr('y', bbox1.y - 6);\n tooltipRect2.attr('y', bbox1.y - 5);\n var bbox2 = tooltip2._groups[0][0].getBBox(),\n swatchY = bbox2.y + bbox2.height / 2 - 7;\n tooltipg.append('rect').attr('x', 0).attr('y', swatchY).attr('width', 14).attr('height', 14).attr('fill', '#e5e5e5');\n var tooltipSwatch = tooltipg.append('rect').attr('x', 1).attr('y', swatchY + 1).attr('width', 12).attr('height', 12);\n\n // Draw a histogram, with a bar for each day, split up by certificate\n // authority.\n var bar = g.selectAll('.bar').data(data).enter().append('g').attr('class', 'bar').attr('transform', function (d) {\n return 'translate(' + x(d.day) + ', ' + y(d.acc + d.count) + ')';\n }).on('mouseenter', function (d) {\n var t = new Date(now - (30 - d.day) * 86400 * 1000);\n tooltip1.text(months[t.getUTCMonth()] + ' ' + t.getUTCDate());\n tooltip2.text(d.name + ' (' + Object(__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__[\"d\" /* sprintSmallPercent */])(d.percent) + ')');\n tooltip3.text(d.count.toLocaleString());\n tooltipSwatch.attr('fill', color(d.name));\n\n var bbox2 = tooltip2._groups[0][0].getBBox(),\n bbox3 = tooltip3._groups[0][0].getBBox();\n tooltipRect1.attr('width', bbox2.x + bbox2.width + 12).attr('height', bbox3.y + bbox3.height - bbox1.y + 12);\n tooltipRect2.attr('width', bbox2.x + bbox2.width + 10).attr('height', bbox3.y + bbox3.height - bbox1.y + 10);\n\n var xPos = x(d.day) + barWidth + 10,\n yPos = (y(d.acc + d.count) + y(d.acc)) / 2;\n\n var rightSide = xPos + bbox2.x + bbox2.width + 12;\n if (rightSide > 1000) {\n xPos = x(d.day) - (bbox2.x + bbox2.width + 12);\n }\n var bottomSide = yPos + bbox3.y + bbox3.height + 12;\n if (bottomSide > 295) {\n yPos = 295 - (bbox3.y + bbox3.height + 5);\n }\n var topSide = yPos + bbox1.y;\n if (topSide < 0) {\n yPos = 10 - bbox1.y;\n }\n\n tooltipg.attr('transform', 'translate(' + xPos + ', ' + yPos + ')').attr('visibility', 'visible');\n }).on('mouseleave', function (d) {\n tooltipg.attr('visibility', 'hidden');\n });\n bar.append('rect') // Dark gray rect, gives illusion of 1px border.\n .attr('x', function (d) {\n return d.day == 0 ? 0 : -1;\n }).attr('width', barWidth).attr('height', function (d) {\n return 295 - y(d.count);\n }).attr('fill', '#e5e5e5');\n bar.append('rect') // Inner rect, colored for the specific CA.\n .attr('x', function (d) {\n return d.day == 0 ? 1 : 0;\n }).attr('y', 1).attr('width', barWidth - 1).attr('height', function (d) {\n return 295 - y(d.count);\n }).attr('fill', function (d) {\n return color(d.name);\n });\n\n // Draw the legend for the x-axis (y-axis omitted because its not useful).\n g.append('g').style('font-family', '\\'Open Sans\\', sans-serif').style('font-size', '0.9em').attr('transform', 'translate(55, 0)').call(__WEBPACK_IMPORTED_MODULE_0_d3__[\"b\" /* axisLeft */](y).ticks(5, 's'));\n }\n },\n\n watch: {\n data: function data() {\n this.draw();\n }\n },\n mounted: function mounted() {\n this.draw();\n }\n});\n\n/***/ }),\n\n/***/ \"NHnr\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(\"7+uW\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__App__ = __webpack_require__(\"M93x\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__router__ = __webpack_require__(\"YaEn\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_octicon_components_Octicon_vue__ = __webpack_require__(\"2+Bm\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_octicon_icons_three_bars__ = __webpack_require__(\"h2/N\");\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].config.productionTip = false;\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].component('octicon', __WEBPACK_IMPORTED_MODULE_3_vue_octicon_components_Octicon_vue__[\"a\" /* default */]);\n\nnew __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n el: '#app',\n router: __WEBPACK_IMPORTED_MODULE_2__router__[\"a\" /* default */],\n template: '',\n components: { App: __WEBPACK_IMPORTED_MODULE_1__App__[\"a\" /* default */] }\n});\n\n/***/ }),\n\n/***/ \"QcKy\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Failed to load page...\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.msg))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"Su/m\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3__ = __webpack_require__(\"vwbq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_util__ = __webpack_require__(\"KgvX\");\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'VelocityGraph',\n props: {\n id: { type: String, required: true },\n data: { type: Array, required: true }\n },\n methods: {\n draw: function draw() {\n var xExtent = [this.data[0].start, this.data[this.data.length - 1].end];\n\n // Compute the extent of the y-axis by taking the max and min of d.added\n // and d.seen, and merging them. Then use 10% of the range as padding,\n // to keep the minimal points from hitting the bottom of the graph.\n var addedExtent = __WEBPACK_IMPORTED_MODULE_0_d3__[\"c\" /* extent */](this.data, function (d) {\n return d.added;\n }),\n seenExtent = __WEBPACK_IMPORTED_MODULE_0_d3__[\"c\" /* extent */](this.data, function (d) {\n return d.seen;\n });\n var yExtent = [Math.min(addedExtent[0], seenExtent[0]), Math.max(addedExtent[1], seenExtent[1])];\n var yRange = yExtent[1] - yExtent[0];\n if (yRange < 20) {\n yExtent[0] = Math.max(0, yExtent[0] - 2);\n yExtent[1] = yExtent[1] + 2;\n } else {\n yExtent[0] = Math.floor(yExtent[0] - 0.1 * yRange);\n yExtent[1] = Math.ceil(yExtent[1] + 0.1 * yRange);\n yExtent[0] = Math.max(0, yExtent[0]);\n }\n\n var x = __WEBPACK_IMPORTED_MODULE_0_d3__[\"i\" /* scaleLinear */]().domain(xExtent).range([55, 745]);\n var y = __WEBPACK_IMPORTED_MODULE_0_d3__[\"i\" /* scaleLinear */]().domain(yExtent).range([295, 5]);\n\n // Start drawing.\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#velocity-chart-' + this.id);\n svg.selectAll('*').remove();\n\n var g = svg.append('g').attr('transform', 'translate(0, 0)');\n\n // Draw a hidden reticle.\n var reticleg = svg.append('g').attr('transform', 'translate(0, 0)').attr('visibility', 'hidden');\n reticleg.append('line').attr('x1', 0).attr('y1', 5).attr('x2', 0).attr('y2', 295).attr('stroke', '#7b6888').attr('stroke-width', 1);\n\n var reticleArc = __WEBPACK_IMPORTED_MODULE_0_d3__[\"a\" /* arc */]().outerRadius(7).innerRadius(3)({ startAngle: 0, endAngle: 2 * Math.PI });\n var reticle1 = reticleg.append('path').attr('fill', '#8a89a6').attr('opacity', 0.5).attr('d', reticleArc);\n var reticle2 = reticleg.append('path').attr('fill', '#98abc5').attr('opacity', 0.5).attr('d', reticleArc);\n\n // Draw a tooltip with detailed information next to the reticle.\n var tooltipg = reticleg.append('g').attr('transform', 'translate(25, 50)');\n\n var tooltipRect1 = tooltipg.append('rect').attr('x', -6).attr('fill', '#e5e5e5');\n var tooltipRect2 = tooltipg.append('rect').attr('x', -5).attr('fill', 'white');\n\n var tooltip1 = tooltipg.append('text').attr('font-weight', 'bold').text('Date');\n var tooltipLabel1 = tooltipg.append('text').attr('dx', '1.25em').attr('dy', '1.25em').text('Certs Seen');\n var tooltipLabel2 = tooltipg.append('text').attr('dx', '1.25em').attr('dy', '2.5em').text('Tree Growth');\n\n var bbox1 = tooltip1._groups[0][0].getBBox();\n tooltipRect1.attr('y', bbox1.y - 6);\n tooltipRect2.attr('y', bbox1.y - 5);\n var bbox2 = tooltipLabel1._groups[0][0].getBBox(),\n y1 = bbox2.y + bbox2.height / 2 - 7;\n tooltipg.append('rect').attr('x', 0).attr('y', y1).attr('width', 14).attr('height', 14).attr('fill', '#e5e5e5');\n tooltipg.append('rect').attr('x', 1).attr('y', y1 + 1).attr('width', 12).attr('height', 12).attr('fill', '#f4f4f4');\n var bbox3 = tooltipLabel2._groups[0][0].getBBox(),\n y2 = bbox3.y + bbox3.height / 2;\n tooltipg.append('line').attr('stroke', '#7b6888').attr('stroke-width', 2).attr('x1', 0).attr('y1', y2).attr('x2', bbox3.x - 3).attr('y2', y2);\n\n var tooltip2 = tooltipg.append('text').attr('text-anchor', 'end').attr('dx', '11em').attr('dy', '1.25em');\n var tooltip3 = tooltipg.append('text').attr('text-anchor', 'end').attr('dx', '11em').attr('dy', '2.5em');\n\n // Draw a histogram for the 'seen' dimension of the data.\n var bar = g.selectAll('.bar').data(this.data).enter().append('g').attr('class', 'bar').attr('transform', function (d) {\n return 'translate(' + x(d.start) + ', 0)';\n }).on('mouseenter', function (d) {\n reticle1.attr('transform', 'translate(0, ' + y(d.seen) + ')');\n reticle2.attr('transform', 'translate(0, ' + y(d.added) + ')');\n\n tooltip1.text(Object(__WEBPACK_IMPORTED_MODULE_1__components_mixins_util__[\"c\" /* sprintDate */])(d.end));\n tooltip2.text(d.seen.toLocaleString());\n tooltip3.text(d.added.toLocaleString());\n\n var bbox = tooltip3._groups[0][0].getBBox();\n tooltipRect1.attr('width', bbox.x + bbox.width + 12).attr('height', bbox.y + bbox.height - bbox1.y + 12);\n tooltipRect2.attr('width', bbox.x + bbox.width + 10).attr('height', bbox.y + bbox.height - bbox1.y + 10);\n\n var rightSide = x(d.end) + 20 + bbox.x + bbox.width + 12;\n if (rightSide < 745) {\n tooltipg.attr('transform', 'translate(25, 50)');\n } else {\n var offsetX = -(20 + bbox.x + bbox.width + 12);\n tooltipg.attr('transform', 'translate(' + offsetX + ', 50)');\n }\n\n reticleg.attr('transform', 'translate(' + x(d.end) + ', 0)').attr('visibility', 'visible');\n }).on('mouseleave', function (d) {\n reticleg.attr('visibility', 'hidden');\n });\n bar.append('rect') // Invisible rect, for mouseover effects.\n .attr('width', function (d) {\n return x(d.end) - x(d.start);\n }).attr('height', 295).attr('fill', 'white');\n bar.append('rect') // Dark gray rect, gives illusion of 1px border.\n .attr('x', function (d, i) {\n return i == 0 ? 0 : -1;\n }).attr('y', function (d) {\n return y(d.seen);\n }).attr('width', function (d) {\n return x(d.end) - x(d.start) + 1;\n }).attr('height', function (d) {\n return 295 - y(d.seen);\n }).attr('fill', '#e5e5e5');\n bar.append('rect') // Inner rect, alternates between light and dark.\n .attr('x', function (d, i) {\n return i == 0 ? 1 : 0;\n }).attr('y', function (d) {\n return y(d.seen) + 1;\n }).attr('width', function (d) {\n return x(d.end) - x(d.start) - 1;\n }).attr('height', function (d) {\n return 295 - y(d.seen) - 1;\n }).attr('fill', function (d, i) {\n return i % 2 == 0 ? '#fafafa' : '#f4f4f4';\n });\n\n // Draw a line for the 'added' dimension of the data.\n var line = __WEBPACK_IMPORTED_MODULE_0_d3__[\"f\" /* line */]().x(function (d) {\n return x(d.end);\n }).y(function (d) {\n return y(d.added);\n });\n g.append('path').datum(this.data).attr('fill', 'none').attr('stroke', '#7b6888').attr('stroke-width', 2).attr('stroke-linejoin', 'round').attr('stroke-linecap', 'round').attr('d', line).on('mouseenter', function (d) {\n reticleg.attr('visibility', 'visible');\n });\n\n // Draw the legend for the x-axis (y-axis omitted because its not useful).\n g.append('g').style('font-family', '\\'Open Sans\\', sans-serif').style('font-size', '14px').attr('transform', 'translate(55, 0)').call(__WEBPACK_IMPORTED_MODULE_0_d3__[\"b\" /* axisLeft */](y).ticks(3, 's'));\n }\n },\n\n watch: {\n data: function data() {\n this.draw();\n }\n },\n mounted: function mounted() {\n this.draw();\n }\n});\n\n/***/ }),\n\n/***/ \"WeE0\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(\"FLAC\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\nvar icons = {};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'octicon',\n props: {\n name: {\n type: String,\n validator: function validator(val) {\n if (val) {\n return val in icons;\n }\n return null;\n }\n },\n scale: [Number, String],\n spin: Boolean,\n inverse: Boolean,\n flip: {\n validator: function validator(val) {\n return val === 'horizontal' || val === 'vertical';\n }\n },\n label: String\n },\n data: function data() {\n return {\n x: false,\n y: false,\n childrenWidth: 0,\n childrenHeight: 0,\n outerScale: 1\n };\n },\n\n computed: {\n normalizedScale: function normalizedScale() {\n var scale = this.scale;\n scale = typeof scale === 'undefined' ? 1 : Number(scale);\n if (isNaN(scale) || scale <= 0) {\n Object(__WEBPACK_IMPORTED_MODULE_0__util__[\"a\" /* warn */])('Invalid prop: prop \"scale\" should be a number over 0.', this);\n return this.outerScale;\n }\n return scale * this.outerScale;\n },\n clazz: function clazz() {\n return {\n 'octicon': true,\n 'octicon-spin': this.spin,\n 'octicon-flip-horizontal': this.flip === 'horizontal',\n 'octicon-flip-vertical': this.flip === 'vertical',\n 'octicon-inverse': this.inverse\n };\n },\n icon: function icon() {\n if (this.name) {\n return icons[this.name];\n }\n return null;\n },\n box: function box() {\n if (this.icon) {\n if (this.icon.viewBox) {\n return this.icon.viewBox;\n }\n return '0 0 ' + this.icon.width + ' ' + this.icon.height;\n }\n return '0 0 ' + this.width + ' ' + this.height;\n },\n width: function width() {\n return this.childrenWidth || this.icon && this.icon.width * this.normalizedScale || 0;\n },\n height: function height() {\n return this.childrenHeight || this.icon && this.icon.height * this.normalizedScale || 0;\n },\n style: function style() {\n if (this.normalizedScale === 1) {\n return false;\n }\n return {\n fontSize: this.normalizedScale + 'em'\n };\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.icon) {\n return;\n }\n this.$children.forEach(function (child) {\n child.outerScale = _this.normalizedScale;\n });\n var width = 0;\n var height = 0;\n this.$children.forEach(function (child) {\n width = Math.max(width, child.width);\n height = Math.max(height, child.height);\n });\n this.childrenWidth = width;\n this.childrenHeight = height;\n this.$children.forEach(function (child) {\n child.x = (width - child.width) / 2;\n child.y = (height - child.height) / 2;\n });\n },\n register: function register(data) {\n for (var name in data) {\n icons[name] = data[name];\n }\n },\n\n icons: icons\n});\n\n/***/ }),\n\n/***/ \"WoGI\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'NotFound'\n});\n\n/***/ }),\n\n/***/ \"X44g\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Navbar_vue__ = __webpack_require__(\"9CAV\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_055c8c91_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Navbar_vue__ = __webpack_require__(\"7O1K\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"fE7X\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Navbar_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_055c8c91_hasScoped_false_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Navbar_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"XOjc\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Footbar'\n});\n\n/***/ }),\n\n/***/ \"YaEn\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(\"7+uW\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_router__ = __webpack_require__(\"/ocq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Frontpage__ = __webpack_require__(\"K+G5\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_LogListpage__ = __webpack_require__(\"tND6\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_Logpage__ = __webpack_require__(\"zjwr\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_About__ = __webpack_require__(\"c27y\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_NotFound__ = __webpack_require__(\"YcJa\");\n\n\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]({\n mode: 'history',\n routes: [{\n path: '/',\n component: __WEBPACK_IMPORTED_MODULE_2__components_Frontpage__[\"a\" /* default */]\n }, {\n path: '/logs',\n component: __WEBPACK_IMPORTED_MODULE_3__components_LogListpage__[\"a\" /* default */]\n }, {\n path: '/logs/:name',\n component: __WEBPACK_IMPORTED_MODULE_4__components_Logpage__[\"a\" /* default */]\n }, {\n path: '/about',\n component: __WEBPACK_IMPORTED_MODULE_5__components_About__[\"a\" /* default */]\n }, {\n path: '*',\n component: __WEBPACK_IMPORTED_MODULE_6__components_NotFound__[\"a\" /* default */]\n }]\n}));\n\n/***/ }),\n\n/***/ \"YcJa\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NotFound_vue__ = __webpack_require__(\"WoGI\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_67ac73f0_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NotFound_vue__ = __webpack_require__(\"oDiI\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"h8qX\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-67ac73f0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NotFound_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_67ac73f0_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NotFound_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"Zs8U\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'About'\n});\n\n/***/ }),\n\n/***/ \"Zz25\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_mixins_util__ = __webpack_require__(\"KgvX\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__router__ = __webpack_require__(\"YaEn\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_widgets_Errorpage__ = __webpack_require__(\"zJhq\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'LogListpage',\n beforeRouteEnter: function beforeRouteEnter(to, from, next) {\n Object(__WEBPACK_IMPORTED_MODULE_0__components_mixins_util__[\"b\" /* loadData */])('/logs', next);\n },\n // beforeRouteUpdate omitted because this page has no parameters.\n\n data: function data() {\n return {\n error: null,\n logs: null\n };\n },\n methods: {\n setData: function setData(err, data) {\n if (err) {\n this.error = err.toString();\n } else {\n this.logs = data.Logs;\n }\n },\n\n view: function view(slug) {\n __WEBPACK_IMPORTED_MODULE_1__router__[\"a\" /* default */].push({ path: '/logs/' + slug });\n }\n },\n components: { Errorpage: __WEBPACK_IMPORTED_MODULE_2__components_widgets_Errorpage__[\"a\" /* default */] },\n mixins: [__WEBPACK_IMPORTED_MODULE_0__components_mixins_util__[\"a\" /* default */]]\n});\n\n/***/ }),\n\n/***/ \"a2xD\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3__ = __webpack_require__(\"vwbq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__ = __webpack_require__(\"e1w8\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__ = __webpack_require__(\"b1fz\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_mixins_util__ = __webpack_require__(\"KgvX\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'PieGraph',\n props: {\n id: { type: String, required: true },\n data: { type: Array, required: true },\n select: { type: Function, default: null }\n },\n data: function data() {\n return {\n color: __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#98abc5', '#8a89a6', '#7b6888', '#6b486b', '#a05d56', '#d0743c', '#ff8c00']),\n path: __WEBPACK_IMPORTED_MODULE_0_d3__[\"a\" /* arc */]().outerRadius(122).innerRadius(0),\n pie: __WEBPACK_IMPORTED_MODULE_0_d3__[\"h\" /* pie */]().sort(null).value(function (d) {\n return d.count;\n })\n };\n },\n methods: {\n draw: function draw() {\n var select = this.select,\n color = this.color,\n path = this.path,\n pie = this.pie;\n\n function key(d) {\n return d.data.name;\n }\n // arcTween defines how labels should move during animation. They should\n // smoothly expand/contract to their new size.\n function arcTween(d) {\n var i = __WEBPACK_IMPORTED_MODULE_0_d3__[\"d\" /* interpolate */](this._current, d);\n this._current = i(0);\n return function (t) {\n return path(i(t));\n };\n }\n // labelTransformTween defines how slice labels should move during\n // animation. Labels always try to stay in the middle of their slice.\n function labelTransformTween(d) {\n var isWhole = d.data.percent == 1,\n wasWhole = this._current.data && this._current.data.percent == 1;\n\n if (isWhole && wasWhole) {\n this._current = d;\n return function (t) {\n return 'translate(0, 0)';\n };\n } else if (isWhole) {\n var _i = __WEBPACK_IMPORTED_MODULE_0_d3__[\"e\" /* interpolateString */]('translate(' + path.centroid(this._current) + ')', 'translate(0, 0)');\n this._current = d;\n return _i;\n } else if (wasWhole) {\n var _i2 = __WEBPACK_IMPORTED_MODULE_0_d3__[\"e\" /* interpolateString */]('translate(0, 0)', 'translate(' + path.centroid(d) + ')');\n this._current = d;\n return _i2;\n }\n var i = __WEBPACK_IMPORTED_MODULE_0_d3__[\"d\" /* interpolate */](this._current, d);\n this._current = i(0);\n return function (t) {\n return 'translate(' + path.centroid(i(t)) + ')';\n };\n }\n\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#pie-chart-' + this.id),\n g = svg.select('g'),\n tooltipg = g.select('g.tooltipg'),\n arc = g.selectAll('.arc');\n\n function arcMouseover(d) {\n if (d.data.percent == 1) {\n return;\n }\n\n var tooltip = tooltipg.select('text');\n tooltip.select('tspan.name').text(d.data.name);\n tooltip.select('tspan.count').text(d.data.count.toLocaleString() + ' certs');\n tooltip.select('tspan.percent').text(__WEBPACK_IMPORTED_MODULE_3__components_mixins_util__[\"a\" /* default */].methods.sprintSmallPercent(d.data.percent));\n\n tooltipg.select('circle.body').style('fill', color(d.data.name));\n\n tooltipg.attr('transform', 'translate(0, 0)').raise();\n g.selectAll('text.pie-label').attr('visibility', 'hidden');\n }\n function arcMouseout(d) {\n tooltipg.attr('transform', 'translate(-500, -500)');\n g.selectAll('text.pie-label').attr('visibility', function (d) {\n if (__WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"e\" /* labelWillFit */](path.centroid(d), d)) {\n return 'visible';\n }\n return 'hidden';\n });\n }\n function arcClick(d) {\n if (d.data.percent == 1 || select == null) {\n return;\n }\n select(d.data.image);\n arcMouseout(d);\n }\n\n var data0 = arc.data(),\n data1 = pie(this.data);\n\n arc = arc.data(data1, key);\n\n var arcEnter = arc.enter().append('g').attr('class', 'arc');\n // Create a new slice of pie, whose colors corresponds to its name.\n arcEnter.append('path').each(function (d, i) {\n this._current = __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"a\" /* findArcEntry */](i, data0, data1, key) || d;\n }).attr('fill', function (d) {\n return color(d.data.name);\n }).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"d\" /* mouseover */](), arcMouseover).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"c\" /* mouseout */](), arcMouseout).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"a\" /* click */](), arcClick);\n // Create a 3-line label for the slice's name and other info.\n var label = arcEnter.append('text').each(function (d, i) {\n this._current = __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"a\" /* findArcEntry */](i, data0, data1, key) || d;\n }).attr('class', 'pie-label').attr('fill', 'white').attr('text-anchor', 'middle');\n label.append('tspan').attr('x', 0).attr('dy', '0em').text(function (d) {\n return d.data.name;\n });\n label.append('tspan').attr('x', 0).attr('dy', '1.25em').attr('class', 'count');\n label.append('tspan').attr('x', 0).attr('dy', '1.25em').attr('class', 'percent');\n\n var arcUpdate = arcEnter.merge(arc).transition().duration(750);\n arcUpdate.select('path').attrTween('d', arcTween).style('cursor', function (d) {\n return d.data.percent == 1 || select == null ? 'default' : 'pointer';\n });\n label = arcUpdate.select('text').attrTween('transform', labelTransformTween) // Move labels to the middle of their slice.\n .attr('visibility', function (d) {\n // Hide labels that don't fit w/in their slice.\n if (d.data.percent == 1 || __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"e\" /* labelWillFit */](path.centroid(d), d)) {\n return 'visible';\n }\n return 'hidden';\n });\n label.select('tspan.count') // If a slice is 100%, write the exact count in a middle line.\n .text(function (d) {\n return d.data.percent == 1 ? d.data.count.toLocaleString() + \" certs\" : \"\";\n });\n label.select('tspan.percent') // On the bottom line, write the slice's percentage.\n .text(function (d) {\n return __WEBPACK_IMPORTED_MODULE_3__components_mixins_util__[\"a\" /* default */].methods.sprintSmallPercent(d.data.percent);\n });\n\n var arcExit = arc.exit();\n arcExit.select('text').remove();\n arcExit = arcExit.datum(function (d, i) {\n return __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"b\" /* findArcExit */](i, data0, data1, key) || d;\n }).transition().duration(750);\n arcExit.select('path').attrTween('d', arcTween);\n arcExit.remove();\n }\n },\n\n watch: {\n data: function data() {\n this.draw();\n }\n },\n mounted: function mounted() {\n var path = this.path;\n\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#pie-chart-' + this.id);\n svg.select('g.tooltipg').on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"d\" /* mouseover */](), function (d) {\n __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */](this).attr('transform', 'translate(0, 0)');\n svg.selectAll('text.pie-label').attr('visibility', 'hidden');\n }).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"c\" /* mouseout */](), function (d) {\n __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */](this).attr('transform', 'translate(-500, -500)');\n svg.selectAll('text.pie-label').attr('visibility', function (d) {\n if (__WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"e\" /* labelWillFit */](path.centroid(d), d)) {\n return 'visible';\n }\n return 'hidden';\n });\n });\n\n this.draw();\n }\n});\n\n/***/ }),\n\n/***/ \"aB4x\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UtilGraph_vue__ = __webpack_require__(\"1TdX\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_64659e91_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UtilGraph_vue__ = __webpack_require__(\"vwga\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"3h0Q\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-64659e91\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UtilGraph_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_64659e91_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UtilGraph_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"aOIe\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'comp-chart-'+_vm.id}},[_c('rect',{staticClass:\"swatch\",attrs:{\"x\":\"0\",\"y\":\"0\",\"fill\":\"white\"}}),_vm._v(\" \"),_c('text',{staticClass:\"tooltipt\",attrs:{\"x\":\"3\",\"y\":\"0\"}}),_vm._v(\" \"),_c('rect',{staticClass:\"borderr\",attrs:{\"x\":\"0\",\"width\":\"100%\",\"fill\":\"#e5e5e5\"}}),_vm._v(\" \"),_c('g',{staticClass:\"blocksg\"})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"b1fz\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = labelWillFit;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = findArcEntry;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = findArcExit;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = findBlockEntry;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = findBlockExit;\n// angle returns the angle in radians between the point [0, 0] and pt, where\n// angle([0, x]) returns 0 for negative x, and pi for positive x.\nfunction angle(pt) {\n var out = Math.atan(-pt[1] / pt[0]);\n out = Math.PI / 2 - out;\n\n if (pt[0] < 0) {\n out += Math.PI;\n }\n\n return out;\n}\n\n// labelWillFit is a heuristic method to determine if a label on a pie chart\n// will fit between the two rays from the center of the pie. centroid is the\n// point [x, y] where the center of the label goes, d is data about the slice.\nfunction labelWillFit(centroid, d) {\n // We assume that the label is two lines, each centered, and that each line is\n // 30px high with characters that are 7px wide.\n\n var labelLen = 8 * d.data.name.length,\n percentLen = 8 * 4;\n\n var pts = [[centroid[0] - labelLen / 2, centroid[1] + 15], // Corners of label text box.\n [centroid[0] + labelLen / 2, centroid[1] + 15], [centroid[0] - labelLen / 2, centroid[1] - 15], [centroid[0] + labelLen / 2, centroid[1] - 15], [centroid[0] - percentLen / 2, centroid[1] - 15], // Corners of percent text box.\n [centroid[0] + percentLen / 2, centroid[1] - 15], [centroid[0] - percentLen / 2, centroid[1] - 30], [centroid[0] + percentLen / 2, centroid[1] - 30]];\n\n // There are two rays from the origin of the pie graph. All points should be\n // between these two rays.\n for (var i = 0; i < pts.length; i++) {\n var theta = angle(pts[i]);\n if (theta < d.startAngle || theta > d.endAngle) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction findPreceding(i, data0, data1, key) {\n var m = data0.length;\n while (--i >= 0) {\n var k = key(data1[i]);\n for (var j = 0; j < m; ++j) {\n if (key(data0[j]) === k) return data0[j];\n }\n }\n}\n\nfunction findFollowing(i, data0, data1, key) {\n var n = data1.length,\n m = data0.length;\n while (++i < n) {\n var k = key(data1[i]);\n for (var j = 0; j < m; ++j) {\n if (key(data0[j]) === k) return data0[j];\n }\n }\n}\n\n// findArcEntry assumes that data0 has already been drawn and that we're moving\n// to data1, where data1[i] is a new data point. It returns the location where\n// the slice for data1[i] should \"bloom\" from.\nfunction findArcEntry(i, data0, data1, key) {\n if (data0.length == 0) {\n return null;\n }\n var d = findPreceding(i, data0, data1, key);\n if (d) {\n return { startAngle: d.endAngle, endAngle: d.endAngle };\n }\n return { startAngle: 0, endAngle: 0 };\n}\n\n// findArcExit assumes that data0 has already been drawn and that we're moving\n// to data1, where data0[i] is a data point which was completely removed from\n// data1. It returns the location where the slice for data0[i] should \"collapse\"\n// to before being deleted.\nfunction findArcExit(i, data0, data1, key) {\n var d = findFollowing(i, data1, data0, key);\n if (d) {\n return { startAngle: d.startAngle, endAngle: d.startAngle };\n }\n return { startAngle: 2 * Math.PI, endAngle: 2 * Math.PI };\n}\n\n// findBlockEntry is findArcEntry for a CompGraph.\nfunction findBlockEntry(i, data0, data1, key) {\n if (data0.length == 0) {\n return null;\n }\n var d = findPreceding(i, data0, data1, key);\n if (d) {\n return { start: d.end, end: d.end };\n }\n return { start: 0, end: 0 };\n}\n\n// findBlockExit is findBlockExit for a CompGraph.\nfunction findBlockExit(i, data0, data1, key) {\n var d = findFollowing(i, data1, data0, key);\n if (d) {\n return { start: d.start, end: d.start };\n }\n return { start: 1, end: 1 };\n}\n\n/***/ }),\n\n/***/ \"c27y\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_About_vue__ = __webpack_require__(\"Zs8U\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0390e838_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_About_vue__ = __webpack_require__(\"tRFq\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"8i3U\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0390e838\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_About_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0390e838_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_About_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"cb0c\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"footer\"},[_c('div',{staticClass:\"container\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"© 2019 Cloudflare, Inc.\")]),_vm._v(\" \"),_c('div',[_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/privacypolicy/\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/website-terms/\"}},[_vm._v(\"Terms of Use\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/abuse/\"}},[_vm._v(\"Trust & Safety\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/trademark/\"}},[_vm._v(\"Trademark\")])])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"cxeO\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'velocity-chart-'+_vm.id,\"viewBox\":\"0,0,750,300\",\"preserveAspectRatio\":\"xMaxYMax meet\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"e1w8\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = mouseover;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = mouseleave;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = mouseout;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = click;\nfunction touchscreen() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nfunction mouseover() {\n return 'mouseover';\n}\nfunction mouseleave() {\n return 'mouseleave';\n}\nfunction mouseout() {\n return 'mouseout';\n}\n\nfunction click() {\n if (touchscreen()) {\n return 'dblclick';\n }\n return 'click';\n}\n\n/***/ }),\n\n/***/ \"fE7X\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"fyq0\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"g8v8\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.breakdownFilters),function(image,field){return _c('span',{staticClass:\"badge badge-secondary\"},[_vm._v(\"\\n \"+_vm._s(_vm.names[field])+\": \"+_vm._s(_vm.sprintImage(image))+\" \"),_c('span',{staticClass:\"times\",on:{\"click\":function($event){return _vm.unselect(field)}}},[_vm._v(\"×\")])])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"h75S\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(\"woOf\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__ = __webpack_require__(\"8X7C\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_mixins_util__ = __webpack_require__(\"KgvX\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_widgets_Filters__ = __webpack_require__(\"MFeX\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_widgets_CompGraph__ = __webpack_require__(\"x9ei\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_widgets_PieGraph__ = __webpack_require__(\"nmJD\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_widgets_VelocityGraph__ = __webpack_require__(\"Ls1+\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_widgets_Errorpage__ = __webpack_require__(\"zJhq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_NotFound__ = __webpack_require__(\"YcJa\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Logpage',\n beforeRouteEnter: function beforeRouteEnter(to, from, next) {\n Object(__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__[\"b\" /* loadData */])('/logs/' + to.params.name, next);\n },\n beforeRouteUpdate: function beforeRouteUpdate(to, from, next) {\n Object(__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__[\"b\" /* loadData */])('/logs/' + to.params.name, next);\n },\n\n data: function data() {\n return {\n error: null,\n log: null,\n\n breakdownFilters: {},\n\n endpoints: [{ tag: 'add-chain-new', name: 'add-chain (new)' }, { tag: 'add-chain-old', name: 'add-chain (old)' }, { tag: 'add-pre-chain-new', name: 'add-pre-chain (new)' }, { tag: 'add-pre-chain-old', name: 'add-pre-chain (old)' }, { tag: 'get-entries', name: 'get-entries' }, { tag: 'get-roots', name: 'get-roots' }, { tag: 'get-sth', name: 'get-sth' }]\n };\n },\n computed: {\n breakdown: function breakdown() {\n return __WEBPACK_IMPORTED_MODULE_1__components_mixins_roll__[\"b\" /* parse */](this.log.Breakdown, this.breakdownFilters);\n },\n\n atCapacity: function atCapacity() {\n return this.log.Name == 'DigiCert 1' || this.log.Name == 'DigiCert 2';\n },\n\n velocity: function velocity() {\n return this.log.Velocity.map(function (v) {\n return { start: v.Start, end: v.End, added: v.Added, seen: v.Seen };\n });\n },\n throughput: function throughput() {\n if (this.velocity.length == 0) {\n return 0;\n }\n\n var hourInMs = 3600 * 1000;\n var total = this.velocity.reduce(function (n, d) {\n return n + d.added;\n }, 0),\n extent = this.velocity[this.velocity.length - 1].end - this.velocity[0].start;\n return Math.round(total / (extent / hourInMs));\n }\n },\n methods: {\n setData: function setData(err, data) {\n if (err) {\n this.error = err.toString();\n if (this.error == 'Error: Request failed with status code 404') {\n this.error = null;\n }\n } else {\n this.log = data;\n }\n },\n select: function select(field) {\n var self = this;\n return function (image) {\n var filters = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, self.breakdownFilters);\n filters[field] = image;\n self.breakdownFilters = filters;\n };\n },\n unselect: function unselect(field) {\n var filters = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, this.breakdownFilters);\n delete filters[field];\n this.breakdownFilters = filters;\n }\n },\n components: { Filters: __WEBPACK_IMPORTED_MODULE_3__components_widgets_Filters__[\"a\" /* default */], CompGraph: __WEBPACK_IMPORTED_MODULE_4__components_widgets_CompGraph__[\"a\" /* default */], PieGraph: __WEBPACK_IMPORTED_MODULE_5__components_widgets_PieGraph__[\"a\" /* default */], VelocityGraph: __WEBPACK_IMPORTED_MODULE_6__components_widgets_VelocityGraph__[\"a\" /* default */], Errorpage: __WEBPACK_IMPORTED_MODULE_7__components_widgets_Errorpage__[\"a\" /* default */], NotFound: __WEBPACK_IMPORTED_MODULE_8__components_NotFound__[\"a\" /* default */] },\n mixins: [__WEBPACK_IMPORTED_MODULE_2__components_mixins_util__[\"a\" /* default */]]\n});\n\n/***/ }),\n\n/***/ \"h8qX\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"jME9\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"jmDQ\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Filters',\n props: {\n breakdownFilters: { type: Object, required: true },\n unselect: { type: Function, required: true }\n },\n data: function data() {\n return {\n names: {\n 'valLevel': 'Validation Level',\n 'pubAlg': 'Public-Key Alg',\n 'sigAlg': 'Signature Alg',\n 'entryType': 'Entry Type',\n 'expired': 'Status',\n 'rootName': 'Root Authority'\n }\n };\n },\n methods: {\n sprintImage: function sprintImage(image) {\n if (image.length > 3) {\n return '(several values)';\n }\n return image.join(', ');\n }\n }\n});\n\n/***/ }),\n\n/***/ \"jnhO\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3__ = __webpack_require__(\"vwbq\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__ = __webpack_require__(\"e1w8\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__ = __webpack_require__(\"b1fz\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_mixins_util__ = __webpack_require__(\"KgvX\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\nfunction comp(data) {\n var out = [],\n acc = 0,\n total = data.reduce(function (n, d) {\n return n + d.count;\n }, 0);\n\n for (var i = 0; i < data.length; i++) {\n out.push({\n data: data[i],\n index: i,\n start: acc / total,\n end: (acc + data[i].count) / total\n });\n acc += data[i].count;\n }\n\n return out;\n}\nfunction min(x) {\n return x < 0 ? 0 : x;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'CompGraph',\n props: {\n id: { type: String, required: true },\n data: { type: Array, required: true },\n select: { type: Function, default: null },\n\n unit: { type: String, default: 'certs' },\n palette: { type: Function, default: null }\n },\n data: function data() {\n var timer = null,\n self = this;\n // debounceResize re-draws the CompGraph when the window resizes, with a\n // 50ms debounce to minimize lag.\n var debounceResize = function debounceResize() {\n clearTimeout(timer);\n timer = setTimeout(self.resize, 50);\n };\n\n var color = __WEBPACK_IMPORTED_MODULE_0_d3__[\"j\" /* scaleOrdinal */](['#98abc5', '#8a89a6', '#7b6888', '#6b486b', '#a05d56', '#d0743c', '#ff8c00']);\n if (this.palette != null) {\n color = this.palette;\n }\n return {\n debounceResize: debounceResize,\n\n blocksHeight: 0,\n blocksWidth: 0,\n color: color\n };\n },\n methods: {\n resize: function resize() {\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#comp-chart-' + this.id),\n swatch = svg.select('rect.swatch'),\n tooltip = svg.select('text.tooltipt'),\n g = svg.select('g.blocksg');\n\n // The tooltip must have text for getBBox below to work.\n var tooltipText = tooltip.text();\n tooltip.attr('fill', 'white').text('Loading...');\n\n // Get the size of the whole image 'clientRect' and the size of the\n // tooltip 'rect'.\n var clientRect = svg._groups[0][0].getBoundingClientRect(),\n rect = tooltip._groups[0][0].getBBox();\n\n var tooltipDy = -rect.y;\n if (tooltip.attr('dy') != null) {\n tooltipDy += parseFloat(tooltip.attr('dy'));\n }\n\n // Clean up positioning of swatch and tooltip with info from above.\n swatch.attr('width', rect.height).attr('height', rect.height);\n tooltip.attr('dx', rect.height).attr('dy', tooltipDy).text(tooltipText).attr('fill', 'black');\n rect.height += 3;\n\n svg.select('rect.borderr').attr('y', rect.height).attr('height', clientRect.height - rect.height);\n g.attr('transform', 'translate(3, ' + (3 + rect.height) + ')');\n\n // Resize and re-position all of the already-drawn blocks.\n var blocksHeight = clientRect.height - rect.height - 3 * 2,\n blocksWidth = clientRect.width - 3 * 2;\n\n g.selectAll('rect.block').attr('height', blocksHeight).attr('width', function (d) {\n return min(d.end - d.start) * blocksWidth;\n }).attr('x', function (d) {\n return d.start * blocksWidth;\n });\n\n this.blocksHeight = blocksHeight, this.blocksWidth = blocksWidth;\n },\n draw: function draw() {\n var select = this.select,\n unit = this.unit,\n blocksHeight = this.blocksHeight,\n blocksWidth = this.blocksWidth,\n color = this.color;\n\n function key(d) {\n return d.data.name;\n }\n function blockTween(d) {\n var node = this,\n i = __WEBPACK_IMPORTED_MODULE_0_d3__[\"d\" /* interpolate */](this._current, d);\n node._current = i(0);\n return function (t) {\n var u = i(t);\n node.setAttribute('x', u.start * blocksWidth);\n node.setAttribute('width', min(u.end - u.start) * blocksWidth);\n };\n }\n\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#comp-chart-' + this.id),\n swatch = svg.select('rect.swatch'),\n tooltip = svg.select('text.tooltipt'),\n blocks = svg.select('g.blocksg').selectAll('rect.block');\n\n var data0 = blocks.data(),\n data1 = comp(this.data);\n\n blocks = blocks.data(data1, key);\n\n blocks.enter().append('rect').attr('class', 'block').each(function (d, i) {\n this._current = __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"c\" /* findBlockEntry */](i, data0, data1, key) || d;\n }).attr('height', blocksHeight).attr('fill', function (d) {\n return color(d.data.name);\n }).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"d\" /* mouseover */](), function (d) {\n swatch.attr('fill', color(d.data.name));\n\n var spacer = '\\xA0\\xA0\\xA0\\u2022\\xA0\\xA0\\xA0';\n tooltip.text(d.data.name + ' ' + '(' + Object(__WEBPACK_IMPORTED_MODULE_3__components_mixins_util__[\"d\" /* sprintSmallPercent */])(d.data.percent) + ')' + '\\xA0\\xA0\\xA0-\\xA0\\xA0\\xA0' + d.data.count.toLocaleString() + ' ' + unit);\n }).on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"a\" /* click */](), function (d) {\n if (d.data.percent == 1 || select == null) {\n return;\n }\n select(d.data.image);\n svg.select('rect.swatch').attr('fill', 'white');\n svg.select('text.tooltipt').text('');\n }).merge(blocks).transition().duration(750).tween('block', blockTween).style('cursor', function (d) {\n return d.data.percent == 1 || select == null ? 'default' : 'pointer';\n });\n\n blocks.exit().datum(function (d, i) {\n return __WEBPACK_IMPORTED_MODULE_2__components_mixins_geometry__[\"d\" /* findBlockExit */](i, data0, data1, key) || d;\n }).transition().duration(750).tween('block', blockTween).remove();\n }\n },\n\n watch: {\n data: function data() {\n this.draw();\n }\n },\n mounted: function mounted() {\n var svg = __WEBPACK_IMPORTED_MODULE_0_d3__[\"k\" /* select */]('svg#comp-chart-' + this.id);\n svg.on(__WEBPACK_IMPORTED_MODULE_1__components_mixins_compat__[\"b\" /* mouseleave */](), function (d) {\n svg.select('rect.swatch').attr('fill', 'white');\n svg.select('text.tooltipt').text('');\n });\n\n this.resize();\n this.draw();\n window.addEventListener('resize', this.debounceResize);\n },\n destroyed: function destroyed() {\n window.removeEventListener('resize', this.debounceResize);\n }\n});\n\n/***/ }),\n\n/***/ \"nmJD\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_PieGraph_vue__ = __webpack_require__(\"a2xD\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_452b4583_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PieGraph_vue__ = __webpack_require__(\"7Dgi\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"fyq0\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-452b4583\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_PieGraph_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_452b4583_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_PieGraph_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"oDiI\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Not Found\")]),_vm._v(\" \"),_c('p',[_vm._v(\"The requested page was not found.\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"pC6E\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Errorpage',\n props: {\n msg: String\n }\n});\n\n/***/ }),\n\n/***/ \"plN1\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"tND6\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LogListpage_vue__ = __webpack_require__(\"Zz25\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61a82ece_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_LogListpage_vue__ = __webpack_require__(\"9vNX\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"/Pi3\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-61a82ece\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LogListpage_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61a82ece_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_LogListpage_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"tRFq\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"}),_c('div',{staticClass:\"col-md-8\"},[_c('h6',[_vm._v(\"Introduction\")]),_vm._v(\" \"),_c('p',[_c('a',{attrs:{\"href\":\"https://www.certificate-transparency.org/what-is-ct\"}},[_vm._v(\"Certificate\\n Transparency\")]),_vm._v(\" is an experimental framework for publicly auditing the\\n TLS/SSL certificates issued by certificate authorities. It does this by\\n requiring an increasing number of issued certificates to be added to\\n publicly-accessible repositories, called \"),_c('em',[_vm._v(\"certificate transparency\\n logs\")]),_vm._v(\", in order for them to be trusted by the user's browser. The goal\\n is two-fold:\")]),_vm._v(\" \"),_c('ol',[_c('li',[_c('strong',[_vm._v(\"Easy detection of mis-issued certificates.\")]),_vm._v(\" Because\\n certificates must be submitted to several certificate transparency logs\\n to be trusted in-browser, website owners can also search through these\\n same logs and get an authoritative list of all certificates that have\\n been issued for their website.\\n \")]),_vm._v(\" \"),_c('li',[_c('strong',[_vm._v(\"Better oversight and understanding of the entire TLS/SSL\\n ecosystem.\")]),_vm._v(\" Crawling certificate transparency logs gives deep\\n insight into the types of certificates being issued, and the scale of\\n different certificate authorities.\\n \")])]),_vm._v(\" \"),_c('p',[_vm._v(\"In addition to CT logs, there need to be \"),_c('em',[_vm._v(\"certificate transparency\\n monitors\")]),_vm._v(\". The primary function of a monitor is to ensure that CT logs\\n behave correctly, e.g., by ensuring that they continue to store and serve\\n \"),_c('em',[_vm._v(\"all\")]),_vm._v(\" certificates that have been submitted to them. However, it is\\n also common for monitors to use the data they collect from CT logs to offer\\n other services such as computing ecosystem metrics, searching known\\n certificates, and triggering alerts when new certificates are issued for\\n certain domain names.\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"Methodology\")]),_vm._v(\" \"),_c('p',[_vm._v(\"This monitor fetches each log's current Signed Tree Head (STH) and set of\\n trusted roots once per minute. New entries in a log are crawled as\\n appropriate, and we will occasionally submit strictly-valid unexpired\\n certificates or pre-certificates to a log. If a log is sharded by year, we\\n will only submit certificates expiring in that year.\")]),_vm._v(\" \"),_c('p',[_c('em',[_vm._v(\"All\")]),_vm._v(\" requests to a log count towards our estimate of its uptime\\n and response time. An endpoint's (get-sth, get-entries, etc.) uptime is\\n computed as the percentage of requests to that endpoint that succeed (that\\n is, return a 200 status code with a valid response) out of a 90 day rolling\\n window. An endpoint's response time is computed as the average amount of\\n time from when a request is sent until the response is fully received and\\n parsed, in a 90 day rolling window. A log's uptime and response time is\\n computed as a \"),_c('em',[_vm._v(\"fair average\")]),_vm._v(\" of each endpoint's uptime and response\\n time. Requests are made with the HTTP client in Golang's standard library.\\n We do not contact endpoints that are not listed on a log's informational\\n page, such as get-proof-by-hash and get-sth-consistency.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Some parts of the monitor may enforce different timeouts or will retry in\\n the event that a request fails while other parts will not, which means that\\n downtime may be penalized unfairly relative to a more intuitive\\n interpretation of 'downtime'. Also, the response time of the get-entries\\n endpoint is strongly correlated with the number of entries it\\n returns, but this information is currently ignored by our monitor.\")]),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"Fullness and New/Old Chains.\")]),_vm._v(\" On each log's informational\\n page, we display an estimate of the number of unsubmitted certificates. This\\n is computed by counting all the certificates in the CT ecosystem that we\\n expect a log would accept, based on its trusted root CAs and whether the log\\n is sharded by year, and subtracting the number of unique certificates the\\n log contains. The log's 'fullness' is computed as the percentage of\\n certificates it contains out of the set of certificates we expect it would\\n accept.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Similarly, we break uptime and response time estimates for the\\n add-(pre-)chain endpoints into 'new' and 'old' categories, corresponding to\\n whether or not the submitted chain is already in the log (old) or is not\\n (new). It is common for logs to de-duplicate submitted chains, returning the\\n same SCT when the same chain is submitted multiple times, so we do this to\\n measure the cases where the de-duplication mechanism succeeds and where it\\n fails separately. If the de-duplication mechanism succeeds, the\\n add-(pre-)chain operation is read-only but the old SCT must be\\n reconstructed. If the de-duplication mechanism succeeds, the add-(pre-)chain\\n operation must block until the submitted data is persisted to disk.\")]),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"Cryptographic Validation.\")]),_vm._v(\" No information about\\n cryptographic validation is propagated to the monitor's UI, but it is done.\\n We validate that STHs are issued frequently enough, and that the hash in\\n each STH corresponds to the hash of the leaves we've crawled. We also store\\n all SCTs returned from a log's add-chain/add-pre-chain endpoints until we\\n can verify that the log honored the SCT within its maximum merge delay.\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"Contact\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Feel free to contact us at \"),_c('a',{attrs:{\"href\":\"mailto:ct-logs@cloudflare.com\"}},[_vm._v(\"ct-logs@cloudflare.com\")]),_vm._v(\".\")])]),_c('div',{staticClass:\"col-md-2\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"vwga\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-9\"},[_c('div',{staticClass:\"container\"},_vm._l((_vm.organizations),function(org){return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2 utilization-name\"},[_c('h6',{staticClass:\"sub-header\"},[_vm._v(_vm._s(org.name))])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('CompGraph',{attrs:{\"id\":org.name.replace(/[^a-zA-Z0-9]/g, ''),\"data\":org.data,\"palette\":_vm.palette,\"unit\":\"pre-certs\"}})],1)])}),0)]),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-3\"},[_c('ul',{staticClass:\"legend list-unstyled\"},_vm._l((_vm.logs),function(log){return _c('li',[_c('span',[_c('svg',{staticClass:\"legend-swatch\"},[_c('rect',{attrs:{\"width\":\"100%\",\"height\":\"100%\",\"fill\":_vm.palette(log.name)}})]),_vm._v(\"\\n \"+_vm._s(log.name))]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"legend-label\"},[_vm._v(_vm._s(log.count.toLocaleString())+\" pre-certs\")])])}),0)])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ \"x9ei\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CompGraph_vue__ = __webpack_require__(\"jnhO\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0058510f_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_CompGraph_vue__ = __webpack_require__(\"aOIe\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"BlLf\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0058510f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CompGraph_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0058510f_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_CompGraph_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"xJD8\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_widgets_Navbar__ = __webpack_require__(\"X44g\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_widgets_Footbar__ = __webpack_require__(\"IbL6\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'app',\n components: { Navbar: __WEBPACK_IMPORTED_MODULE_0__components_widgets_Navbar__[\"a\" /* default */], Footbar: __WEBPACK_IMPORTED_MODULE_1__components_widgets_Footbar__[\"a\" /* default */] }\n});\n\n/***/ }),\n\n/***/ \"zJhq\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Errorpage_vue__ = __webpack_require__(\"pC6E\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f4cf469_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Errorpage_vue__ = __webpack_require__(\"QcKy\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"GNZh\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3f4cf469\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Errorpage_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f4cf469_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Errorpage_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"zjwr\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Logpage_vue__ = __webpack_require__(\"h75S\");\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f19c62_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Logpage_vue__ = __webpack_require__(\"4ZOf\");\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"+DEH\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-02f19c62\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Logpage_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f19c62_hasScoped_true_transformToRequire_video_src_source_src_img_src_image_xlink_href_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Logpage_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ })\n\n},[\"NHnr\"]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.65f06089931403cf7b19.js","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/UtilGraph.vue","function injectStyle (ssrContext) {\n require(\"!!../../extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-da982288\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../vue-loader/lib/selector?type=styles&index=0!./Octicon.vue\")\n}\nvar normalizeComponent = require(\"!../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../vue-loader/lib/selector?type=script&index=0!./Octicon.vue\"\nimport __vue_script__ from \"!!babel-loader!../../vue-loader/lib/selector?type=script&index=0!./Octicon.vue\"\n/* template */\nimport __vue_template__ from \"!!../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-da982288\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../vue-loader/lib/selector?type=template&index=0!./Octicon.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-octicon/components/Octicon.vue\n// module id = 2+Bm\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.clazz,style:(_vm.style),attrs:{\"version\":\"1.1\",\"role\":_vm.label ? 'img' : 'presentation',\"aria-label\":_vm.label,\"x\":_vm.x,\"y\":_vm.y,\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":_vm.box}},[_vm._t(\"default\",[(_vm.icon)?_c('path',{attrs:{\"d\":_vm.icon.d}}):_vm._e()])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-da982288\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-octicon/components/Octicon.vue\n// module id = 2Q+v\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.log && !_vm.error)?_c('NotFound'):_vm._e(),_vm._v(\" \"),(_vm.log)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4 log-details\"},[_c('h6',[_vm._v(\"Log Details\")]),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.log.Name))]),_vm._v(\" \"),_c('p',[(_vm.log.Endpoint == '(Private Log)')?_c('span',[_vm._v(_vm._s(_vm.log.Endpoint))]):_c('a',{attrs:{\"href\":'https://'+_vm.log.Endpoint}},[_vm._v(_vm._s(_vm.log.Endpoint))]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Last Update:\")]),_vm._v(\" \"+_vm._s(_vm.sprintDate(_vm.log.LastUpdate)))]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Avg. Throughput:\")]),_vm._v(\" \"+_vm._s(_vm.throughput.toLocaleString())+\" cert\"),(_vm.throughput != 1)?[_vm._v(\"s\")]:_vm._e(),_vm._v(\"/hr\")],2),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Contains:\")]),_vm._v(\" \"+_vm._s(_vm.log.Count.toLocaleString())+\" certificate\"),(_vm.log.Count != 1)?[_vm._v(\"s\")]:_vm._e()],2),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Unsubmitted:\")]),_vm._v(\" \"+_vm._s(_vm.log.Unsubmitted.toLocaleString())+\" certificate\"),(_vm.log.Unsubmitted != 1)?[_vm._v(\"s\")]:_vm._e(),_vm._v(\" (\"+_vm._s(_vm.sprintSmallPercent(_vm.log.Count / (_vm.log.Count + _vm.log.Unsubmitted)))+\" full)\")],2)]),(_vm.atCapacity && _vm.velocity.length > 0)?_c('p',[_vm._v(\"This log is operating at full capacity.\")]):_vm._e(),_vm._v(\" \"),(_vm.velocity.length == 0)?_c('p',[_c('strong',[_vm._v(\"This log is frozen.\")]),_vm._v(\" It\\n accepts no new entries and signs no new STHs but continues to operate\\n in read-only mode.\")]):_vm._e(),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Uptime\")]),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.sprintPercent(_vm.log.Profile.Uptime)))]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',_vm._l((_vm.endpoints),function(ep){return _c('tr',[_c('td',[_vm._v(_vm._s(ep.name))]),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].Uptime == -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(\"N/A\")]):_vm._e(),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].Uptime != -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(_vm.log.Profile.ByEndpoint[ep.tag].Uptime)))]):_vm._e()])}),0)]),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Response Time\")]),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.sprintDuration(_vm.log.Profile.ResponseTime)))]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(1),_vm._v(\" \"),_c('tbody',_vm._l((_vm.endpoints),function(ep){return _c('tr',[_c('td',[_vm._v(_vm._s(ep.name))]),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime == -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(\"N/A\")]):_vm._e(),_vm._v(\" \"),(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime != -1)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(_vm.log.Profile.ByEndpoint[ep.tag].ResponseTime)))]):_vm._e()])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-8 log-graphs\"},[(_vm.velocity.length > 0)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Log Velocity\")]),_vm._v(\" \"),_c('VelocityGraph',{attrs:{\"id\":\"velocity\",\"data\":_vm.velocity}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Certificates Seen vs. Tree Growth\")])],1)]):_vm._e(),_vm._v(\" \"),_c('h6',[_vm._v(\"Contents Breakdown\")]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('Filters',{attrs:{\"breakdownFilters\":_vm.breakdownFilters,\"unselect\":_vm.unselect}})],1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"vallevel\",\"data\":_vm.breakdown['valLevel'],\"select\":_vm.select('valLevel')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Validation Level\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"pubalg\",\"data\":_vm.breakdown['pubAlg'],\"select\":_vm.select('pubAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Public Key Algorithm\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"sigalg\",\"data\":_vm.breakdown['sigAlg'],\"select\":_vm.select('sigAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Signature Algorithm\")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"entrytype\",\"data\":_vm.breakdown['entryType'],\"select\":_vm.select('entryType')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Entry Type\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"expired\",\"data\":_vm.breakdown['expired'],\"select\":_vm.select('expired')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Expired vs. Current\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('CompGraph',{attrs:{\"id\":\"root\",\"data\":_vm.breakdown['rootName'],\"select\":_vm.select('rootName')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Root Certificate Authorities\")])],1)])])]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"sr-only\"},[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Endpoint\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uptime\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"sr-only\"},[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Endpoint\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Resp. Time\")])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-02f19c62\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Logpage.vue\n// module id = 4ZOf\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1f07dd7a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./IssuanceGraph.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./IssuanceGraph.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./IssuanceGraph.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1f07dd7a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./IssuanceGraph.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1f07dd7a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/IssuanceGraph.vue\n// module id = 55vb\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"frontpage\"},[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.error && _vm.data)?[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-8 global-graphs\"},[_c('h6',[_vm._v(\"Certificate Breakdown by Type\")]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('Filters',{attrs:{\"breakdownFilters\":_vm.breakdownFilters,\"unselect\":_vm.unselect}})],1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"vallevel\",\"data\":_vm.breakdown['valLevel'],\"select\":_vm.select('valLevel')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Validation Level\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"pubalg\",\"data\":_vm.breakdown['pubAlg'],\"select\":_vm.select('pubAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Public Key Algorithm\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"sigalg\",\"data\":_vm.breakdown['sigAlg'],\"select\":_vm.select('sigAlg')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Signature Algorithm\")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"entrytype\",\"data\":_vm.breakdown['entryType'],\"select\":_vm.select('entryType')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Entry Type\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('PieGraph',{attrs:{\"id\":\"expired\",\"data\":_vm.breakdown['expired'],\"select\":_vm.select('expired')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Expired vs. Current\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-2\"},[_vm._v(\" \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('CompGraph',{attrs:{\"id\":\"root\",\"data\":_vm.breakdown['rootName'],\"select\":_vm.select('rootName')}}),_vm._v(\" \"),_c('h6',{staticClass:\"sub-header\"},[_vm._v(\"Root Certificate Authorities\")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-4\"},[_c('h6',[_vm._v(\"Global Details\")]),_vm._v(\" \"),_c('p',[_c('span',[_c('u',[_vm._v(\"Issuance Rate:\")]),_vm._v(\" \"+_vm._s(_vm.data.Details.IssuanceRate.toLocaleString())+\" certs/hr\")]),_c('br'),_vm._v(\" \"),_c('span',[_c('u',[_vm._v(\"Expiry Rate:\")]),_vm._v(\" \"+_vm._s(_vm.data.Details.ExpiryRate.toLocaleString())+\" certs/hr\")]),_c('br')]),_vm._v(\" \"),_c('h6',[_vm._v(\"Legacy Algorithms\")]),_vm._v(\" \"),_c('p',[_vm._v(\"The tables below count the number of currently-valid certificates\\n signed by widely trusted CAs that use insecure or deprecated\\n algorithms.\")]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.legacySigAlgs),function(alg){return _c('tr',[_c('td',[_vm._v(_vm._s(alg.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(alg.count.toLocaleString()))])])}),_vm._v(\" \"),(_vm.legacySigAlgs.length == 0)?_c('tr',[_vm._m(1)]):_vm._e()],2)]),_vm._v(\" \"),_c('table',{staticClass:\"table table-sm table-hover\"},[_vm._m(2),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.legacyPubAlgs),function(alg){return _c('tr',[_c('td',[_vm._v(_vm._s(alg.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(alg.count.toLocaleString()))])])}),_vm._v(\" \"),(_vm.legacyPubAlgs.length == 0)?_c('tr',[_vm._m(3)]):_vm._e()],2)])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Issuance per Day by Certificate Authority\")]),_vm._v(\" \"),_c('IssuanceGraph',{attrs:{\"id\":\"global\",\"data\":_vm.data.Issuance}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h6',[_vm._v(\"Log Utilization by Large Certificate Authorities\")]),_vm._v(\" \"),_c('p',[_vm._v(\"This section shows the number of pre-certificates in known CT logs\\n from a few particularly large certificate authorities. Anyone can\\n submit a pre-certificate they find in one log to another log, but this\\n currently shows that some CAs have a clear preference for certain CT\\n logs when they issue a certificate containing embedded SCTs, while\\n others submit to several logs equally.\")]),_vm._v(\" \"),_c('UtilGraph',{attrs:{\"data\":_vm.data.Utilization}})],1)])]:_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Signature Algorithm\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"#\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"2\"}},[_c('em',[_vm._v(\"(None)\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Public-Key Algorithm\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"#\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"2\"}},[_c('em',[_vm._v(\"(None)\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6b70d95a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Frontpage.vue\n// module id = 5BEz\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'pie-chart-'+_vm.id,\"viewBox\":\"0,0,250,250\",\"preserveAspectRatio\":\"xMaxYMax meet\"}},[_c('g',{attrs:{\"transform\":\"translate(125, 125)\"}},[_c('circle',{attrs:{\"r\":\"125\",\"fill\":\"#e5e5e5\"}}),_vm._v(\" \"),_c('g',{staticClass:\"tooltipg\",attrs:{\"transform\":\"translate(-500, -500)\"}},[_c('circle',{attrs:{\"r\":\"80\",\"fill\":\"white\"}}),_vm._v(\" \"),_c('circle',{staticClass:\"body\",attrs:{\"r\":\"77\"}}),_vm._v(\" \"),_c('text',{attrs:{\"fill\":\"white\",\"text-anchor\":\"middle\"}},[_c('tspan',{staticClass:\"name\",attrs:{\"x\":\"0\",\"dy\":\"-0.5em\"}}),_vm._v(\" \"),_c('tspan',{staticClass:\"count\",attrs:{\"x\":\"0\",\"dy\":\"1.25em\"}}),_vm._v(\" \"),_c('tspan',{staticClass:\"percent\",attrs:{\"x\":\"0\",\"dy\":\"1.25em\"}})])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-452b4583\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/PieGraph.vue\n// module id = 7Dgi\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._m(0),_vm._v(\" \"),_c('nav',{staticClass:\"navbar navbar-expand-md navbar-dark bg-sky\"},[_c('div',{staticClass:\"container\"},[_c('router-link',{staticClass:\"navbar-brand\",attrs:{\"to\":\"/\"}},[_vm._v(\"\\n Merkle Town\"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"sub-brand\"},[_vm._v(\"Explore the certificate transparency ecosystem.\")])]),_vm._v(\" \"),_c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#navbarLinks\",\"aria-controls\":\"navbarLinks\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('octicon',{attrs:{\"name\":\"three-bars\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"collapse navbar-collapse\",attrs:{\"id\":\"navbarLinks\"}},[_c('ul',{staticClass:\"navbar-nav ml-auto\"},[_c('li',{class:{'nav-item': true, 'active': _vm.onLogList}},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/logs\"}},[_vm._v(\"Log List\")])],1),_vm._v(\" \"),_c('li',{class:{'nav-item': true, 'active': _vm.onAbout}},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":\"/about\"}},[_vm._v(\"About\")])],1)])])],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"loading-bg\"}},[_c('div',{attrs:{\"id\":\"loading-bar\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-055c8c91\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/Navbar.vue\n// module id = 7O1K\n// module chunks = 1","var entryTypes = {\n '1': 'Precert',\n '2': 'Cert',\n '3': 'CT-Qualified Cert',\n}\n\nvar sigAlgs = {\n '1': 'RSA MD2',\n '2': 'RSA MD5',\n '3': 'RSA SHA-1',\n '4': 'RSA SHA-256',\n '5': 'RSA SHA-384',\n '6': 'RSA SHA-512',\n '7': 'DSA SHA-1',\n '8': 'DSA SHA-256',\n '9': 'ECDSA SHA-1',\n '10': 'ECDSA SHA-256',\n '11': 'ECDSA SHA-384',\n '12': 'ECDSA SHA-512',\n '13': 'PSS SHA-256',\n '14': 'PSS SHA-384',\n '15': 'PSS SHA-512',\n}\n\nvar pubAlgs = {\n '1': 'RSA',\n '2': 'DSA',\n '3': 'ECDSA',\n}\n\nvar valLevels = {\n '1': 'Domain',\n '2': 'Organization',\n '3': 'Extended',\n}\n\nfunction name(tag, names) {\n if (tag in names) {\n return names[tag]\n }\n return 'Other'\n}\n\nfunction add(obj, key, x) {\n if (key in obj) {\n obj[key] += x\n } else {\n obj[key] = x\n }\n}\n\n// itemize converts a map from bucket name -> count to a format that can be\n// consumed by graph widgets. It pools any buckets that are too small to be\n// visible into an Other bucket, if possible.\nexport function itemize(obj) {\n const threshold = 0.02, buckets = 7\n\n let data = [], total = 0\n for (let key in obj) {\n data.push({name: key, image: [key], count: obj[key]})\n total += obj[key]\n }\n\n let droppedKeys = [], droppedCount = 0\n data = data.filter(function(x) {\n if ((x.count/total) < threshold) {\n droppedKeys.push(x.name)\n droppedCount += x.count\n return false\n }\n return true\n })\n\n // Either add what was dropped to the standard Other bucket, or if there's\n // no Other bucket and we've filtered out >=2%, make a new Other bucket.\n let otherIdx = data.findIndex(function(x) { return x.name == 'Other' })\n if (otherIdx != -1) {\n data[otherIdx].image = data[otherIdx].image.concat(droppedKeys)\n data[otherIdx].count += droppedCount\n } else if ((droppedCount/total) >= threshold) {\n data.push({name: 'Other', image: droppedKeys, count: droppedCount})\n otherIdx = data.length-1\n } else {\n total -= droppedCount\n }\n\n // If there are more buckets than we have colors, take the smallest buckets\n // and pool them into the Other bucket.\n if (data.length >= buckets) {\n // Put the Other bucket at the end; sort the rest of the array normally,\n // ascending by count.\n data = data.sort(function(x, y) {\n if (x.name == 'Other') {\n return 1\n } else if (y.name == 'Other') {\n return -1\n }\n return x.count - y.count\n })\n\n if (otherIdx == -1) {\n data.push({name: 'Other', image: [], count: 0})\n }\n for (let i = 0; i < data.length-buckets; i++) {\n data[data.length-1].image = data[data.length-1].image.concat(data[i].image)\n data[data.length-1].count += data[i].count\n }\n data = data.slice(data.length - buckets)\n }\n\n // Sort the array in an aesthetically pleasing way, alphabetical with the\n // Other bucket at the end. Compute each bucket's percentage of the total.\n data = data.sort(function(x, y) {\n if (x.name == 'Other') {\n return 1\n } else if (y.name == 'Other') {\n return -1\n } else if (x.name < y.name) {\n return -1\n } else if (x.name > y.name) {\n return 1\n }\n return 0\n })\n for (let i = 0; i < data.length; i++) {\n data[i].percent = data[i].count / total\n }\n\n return data\n}\n\nexport function parse(breakdown, filters) {\n let acc = {\n 'entryType': {},\n 'sigAlg': {},\n 'pubAlg': {},\n 'valLevel': {},\n 'rootName': {},\n 'expired': {},\n }\n\n for (let key in breakdown) {\n let parts = key.split(':')\n\n let entryType = name(parts[0], entryTypes),\n sigAlg = name(parts[1], sigAlgs),\n pubAlg = name(parts[2], pubAlgs),\n valLevel = name(parts[3], valLevels),\n rootName = parts.slice(4).join(':')\n\n let skip = filters['entryType'] && !filters['entryType'].includes(entryType) ||\n filters['sigAlg'] && !filters['sigAlg'].includes(sigAlg) ||\n filters['pubAlg'] && !filters['pubAlg'].includes(pubAlg) ||\n filters['valLevel'] && !filters['valLevel'].includes(valLevel) ||\n filters['rootName'] && !filters['rootName'].includes(rootName)\n if (skip) {\n continue\n }\n\n let e = 0, u = 0\n if (!filters['expired'] || filters['expired'].includes('Expired')) {\n e = breakdown[key]['E']\n }\n if (!filters['expired'] || filters['expired'].includes('Current')) {\n u = breakdown[key]['U']\n }\n\n add(acc['entryType'], entryType, e+u)\n add(acc['sigAlg'], sigAlg, e+u)\n add(acc['pubAlg'], pubAlg, e+u)\n add(acc['valLevel'], valLevel, e+u)\n add(acc['rootName'], rootName, e+u)\n\n add(acc['expired'], 'Expired', e)\n add(acc['expired'], 'Current', u)\n }\n\n return {\n 'entryType': itemize(acc['entryType']),\n 'sigAlg': itemize(acc['sigAlg']),\n 'pubAlg': itemize(acc['pubAlg']),\n 'valLevel': itemize(acc['valLevel']),\n 'rootName': itemize(acc['rootName']),\n 'expired': itemize(acc['expired']),\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mixins/roll.js","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/Navbar.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[(_vm.error)?_c('Errorpage',{attrs:{\"msg\":_vm.error}}):_vm._e(),_vm._v(\" \"),(!_vm.error)?_c('table',{staticClass:\"table table-hover table-responsive table-responsive-md\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.logs),function(log){return [(!log.Family)?_c('tr',{on:{\"click\":function($event){return _vm.view(log.Slug)}}},[_c('td',[_vm._v(_vm._s(log.Name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(log.Count.toLocaleString()))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(log.Uptime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(log.ResponseTime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDate(log.LastUpdate)))])]):[_c('tr',[_c('th',{attrs:{\"colspan\":\"5\"}},[_vm._v(_vm._s(log.FamilyName))])]),_vm._v(\" \"),_vm._l((log.Members),function(member){return _c('tr',{on:{\"click\":function($event){return _vm.view(member.Slug)}}},[_c('td',{staticClass:\"family-member\"},[_vm._v(\"— \"+_vm._s(member.Name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(member.Count.toLocaleString()))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintPercent(member.Uptime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDuration(member.ResponseTime)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.sprintDate(member.LastUpdate)))])])})]]})],2)]):_vm._e()],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Log Name\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"# Certificates\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uptime\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Resp. Time\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Last Update\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-61a82ece\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/LogListpage.vue\n// module id = 9vNX\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Navbar'),_vm._v(\" \"),_c('div',{staticClass:\"container\"},[_c('router-view')],1),_vm._v(\" \"),_c('Footbar')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-dfb35166\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = AAeu\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'issuance-chart-'+_vm.id,\"viewBox\":\"0,0,1000,300\",\"preserveAspectRatio\":\"xMaxYMax meet\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1f07dd7a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/IssuanceGraph.vue\n// module id = Ccha\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-228d9e33\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Footbar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Footbar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Footbar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-228d9e33\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Footbar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/Footbar.vue\n// module id = IbL6\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6b70d95a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Frontpage.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Frontpage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Frontpage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6b70d95a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Frontpage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6b70d95a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Frontpage.vue\n// module id = K+G5\n// module chunks = 1","import * as axios from 'axios'\n\nexport function leftPad(n, width, z) {\n z = z || '0'\n n = n + ''\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n\n}\n\n// sprintDate takes an arbitrary date string as input (should be Universal\n// Sortable, though) and returns it formatted as \"YYYY-MM-DD HH:MM UTC\".\nexport function sprintDate(dateStr) {\n let d = new Date(dateStr)\n\n return leftPad(d.getUTCFullYear(), 4) +\n '-' + leftPad(d.getUTCMonth()+1, 2) +\n '-' + leftPad(d.getUTCDate(), 2) +\n ' ' + leftPad(d.getUTCHours(), 2) +\n ':' + leftPad(d.getUTCMinutes(), 2) +\n ' UTC'\n}\n\n// sprintPercent takes a [0, 1] probability as input and returns it formatted as\n// a percentage, with one decimal.\nexport function sprintPercent(p) {\n return (p*100).toFixed(1) + '%'\n}\n\n// sprintSmallPercent takes a [0, 1] probability as input and returns it\n// formatted as a percented, rounded to the nearest integer.\nexport function sprintSmallPercent(p) {\n return Math.round(p*100) + '%'\n}\n\n// sprintDuration takes a duration in nanoseconds as input, converts it to a\n// human-understandable unit, and return this along with the unit symbol.\nexport function sprintDuration(d) {\n if (d < 1e+6) { // Less than a millisecond, show in microseconds.\n return Math.round(d/1e+3) + 'μs'\n } else if (d < 1e+9) { // Less than a second, show in milliseconds.\n return Math.round(d/1e+6) + 'ms'\n } // Show in seconds.\n return Math.round(d/1e+9).toFixed(1) + 's'\n}\n\n// loadData asynchronously fetches data from the backend corresponding to tag.\n// It is meant to be used in beforeRouteEnter lifecycle hooks, so `next` is the\n// the same parameter as it is there.\n//\n// Consumers will need to implement a setData(err, data) method which is called\n// with the result from the backend.\nexport function loadData(tag, next) {\n if (global.preload[tag]) {\n next(vm => vm.setData(null, global.preload[tag]))\n return\n }\n\n let loadingBarBg = document.getElementById('loading-bg'),\n loadingBar = document.getElementById('loading-bar')\n if (loadingBarBg) {\n loadingBarBg.classList.add('bg-sky')\n }\n if (loadingBar) {\n loadingBar.classList.add('active')\n }\n\n axios.get('/data'+tag, {timeout: 10000}).then(function(resp) {\n if (loadingBarBg) {\n loadingBarBg.classList.remove('bg-sky')\n }\n if (loadingBar) {\n loadingBar.classList.remove('active')\n }\n global.preload[tag] = resp.data\n next(vm => vm.setData(null, resp.data))\n }).catch(function(err) {\n if (loadingBar) {\n loadingBar.classList.remove('active')\n }\n next(vm => vm.setData(err, null))\n })\n}\n\nexport default {\n methods: {\n leftPad: leftPad,\n sprintDate: sprintDate,\n sprintPercent: sprintPercent,\n sprintSmallPercent: sprintSmallPercent,\n sprintDuration: sprintDuration,\n },\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mixins/util.js","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2efbd0a1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./VelocityGraph.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./VelocityGraph.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./VelocityGraph.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2efbd0a1\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./VelocityGraph.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-2efbd0a1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/VelocityGraph.vue\n// module id = Ls1+\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Frontpage.vue","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-dfb35166\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-dfb35166\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = M93x\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0847b964\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Filters.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Filters.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Filters.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0847b964\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Filters.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0847b964\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/Filters.vue\n// module id = MFeX\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/IssuanceGraph.vue","import Vue from 'vue'\nimport App from '@/App'\nimport router from '@/router'\n\nimport Octicon from 'vue-octicon/components/Octicon.vue'\nimport 'vue-octicon/icons/three-bars'\n\nVue.config.productionTip = false\nVue.component('octicon', Octicon)\n\nnew Vue({\n el: '#app',\n router,\n template: '',\n components: { App }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Failed to load page...\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.msg))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3f4cf469\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/Errorpage.vue\n// module id = QcKy\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/VelocityGraph.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-octicon/components/Octicon.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/NotFound.vue","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-055c8c91\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Navbar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Navbar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Navbar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-055c8c91\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Navbar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/Navbar.vue\n// module id = X44g\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/Footbar.vue","import Vue from 'vue'\nimport Router from 'vue-router'\n\nimport Frontpage from '@/components/Frontpage'\nimport LogListpage from '@/components/LogListpage'\nimport Logpage from '@/components/Logpage'\nimport About from '@/components/About'\n\nimport NotFound from '@/components/NotFound'\n\nVue.use(Router)\n\nexport default new Router({\n mode: 'history',\n routes: [\n {\n path: '/',\n component: Frontpage\n },\n {\n path: '/logs',\n component: LogListpage,\n },\n {\n path: '/logs/:name',\n component: Logpage\n },\n {\n path: '/about',\n component: About\n },\n\n {\n path: '*',\n component: NotFound,\n },\n ]\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-67ac73f0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./NotFound.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./NotFound.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./NotFound.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-67ac73f0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./NotFound.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-67ac73f0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/NotFound.vue\n// module id = YcJa\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/About.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/LogListpage.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/PieGraph.vue","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-64659e91\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./UtilGraph.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./UtilGraph.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./UtilGraph.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-64659e91\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./UtilGraph.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-64659e91\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/UtilGraph.vue\n// module id = aB4x\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'comp-chart-'+_vm.id}},[_c('rect',{staticClass:\"swatch\",attrs:{\"x\":\"0\",\"y\":\"0\",\"fill\":\"white\"}}),_vm._v(\" \"),_c('text',{staticClass:\"tooltipt\",attrs:{\"x\":\"3\",\"y\":\"0\"}}),_vm._v(\" \"),_c('rect',{staticClass:\"borderr\",attrs:{\"x\":\"0\",\"width\":\"100%\",\"fill\":\"#e5e5e5\"}}),_vm._v(\" \"),_c('g',{staticClass:\"blocksg\"})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0058510f\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/CompGraph.vue\n// module id = aOIe\n// module chunks = 1","// angle returns the angle in radians between the point [0, 0] and pt, where\n// angle([0, x]) returns 0 for negative x, and pi for positive x.\nfunction angle(pt) {\n let out = Math.atan(-pt[1] / pt[0])\n out = Math.PI/2 - out\n\n if (pt[0] < 0) {\n out += Math.PI\n }\n\n return out\n}\n\n// labelWillFit is a heuristic method to determine if a label on a pie chart\n// will fit between the two rays from the center of the pie. centroid is the\n// point [x, y] where the center of the label goes, d is data about the slice.\nexport function labelWillFit(centroid, d) {\n // We assume that the label is two lines, each centered, and that each line is\n // 30px high with characters that are 7px wide.\n\n let labelLen = 8 * d.data.name.length,\n percentLen = 8 * 4\n\n let pts = [\n [centroid[0] - (labelLen/2), centroid[1] + 15], // Corners of label text box.\n [centroid[0] + (labelLen/2), centroid[1] + 15],\n [centroid[0] - (labelLen/2), centroid[1] - 15],\n [centroid[0] + (labelLen/2), centroid[1] - 15],\n [centroid[0] - (percentLen/2), centroid[1] - 15], // Corners of percent text box.\n [centroid[0] + (percentLen/2), centroid[1] - 15],\n [centroid[0] - (percentLen/2), centroid[1] - 30],\n [centroid[0] + (percentLen/2), centroid[1] - 30],\n ]\n\n // There are two rays from the origin of the pie graph. All points should be\n // between these two rays.\n for (let i = 0; i < pts.length; i++) {\n let theta = angle(pts[i])\n if (theta < d.startAngle || theta > d.endAngle) {\n return false\n }\n }\n\n return true\n}\n\nfunction findPreceding(i, data0, data1, key) {\n let m = data0.length\n while (--i >= 0) {\n let k = key(data1[i])\n for (let j = 0; j < m; ++j) {\n if (key(data0[j]) === k) return data0[j]\n }\n }\n}\n\nfunction findFollowing(i, data0, data1, key) {\n let n = data1.length, m = data0.length;\n while (++i < n) {\n let k = key(data1[i])\n for (let j = 0; j < m; ++j) {\n if (key(data0[j]) === k) return data0[j]\n }\n }\n}\n\n// findArcEntry assumes that data0 has already been drawn and that we're moving\n// to data1, where data1[i] is a new data point. It returns the location where\n// the slice for data1[i] should \"bloom\" from.\nexport function findArcEntry(i, data0, data1, key) {\n if (data0.length == 0) {\n return null\n }\n let d = findPreceding(i, data0, data1, key)\n if (d) {\n return {startAngle: d.endAngle, endAngle: d.endAngle}\n }\n return {startAngle: 0, endAngle: 0}\n}\n\n// findArcExit assumes that data0 has already been drawn and that we're moving\n// to data1, where data0[i] is a data point which was completely removed from\n// data1. It returns the location where the slice for data0[i] should \"collapse\"\n// to before being deleted.\nexport function findArcExit(i, data0, data1, key) {\n let d = findFollowing(i, data1, data0, key)\n if (d) {\n return {startAngle: d.startAngle, endAngle: d.startAngle}\n }\n return {startAngle: 2*Math.PI, endAngle: 2*Math.PI}\n}\n\n// findBlockEntry is findArcEntry for a CompGraph.\nexport function findBlockEntry(i, data0, data1, key) {\n if (data0.length == 0) {\n return null\n }\n let d = findPreceding(i, data0, data1, key)\n if (d) {\n return {start: d.end, end: d.end}\n }\n return {start: 0, end: 0}\n}\n\n// findBlockExit is findBlockExit for a CompGraph.\nexport function findBlockExit(i, data0, data1, key) {\n let d = findFollowing(i, data1, data0, key)\n if (d) {\n return {start: d.start, end: d.start}\n }\n return {start: 1, end: 1}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mixins/geometry.js","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0390e838\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./About.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./About.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./About.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0390e838\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./About.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0390e838\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/About.vue\n// module id = c27y\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"footer\"},[_c('div',{staticClass:\"container\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\"© 2019 Cloudflare, Inc.\")]),_vm._v(\" \"),_c('div',[_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/privacypolicy/\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/website-terms/\"}},[_vm._v(\"Terms of Use\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/abuse/\"}},[_vm._v(\"Trust & Safety\")]),_vm._v(\" \"),_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.cloudflare.com/trademark/\"}},[_vm._v(\"Trademark\")])])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-228d9e33\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/Footbar.vue\n// module id = cb0c\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"id\":'velocity-chart-'+_vm.id,\"viewBox\":\"0,0,750,300\",\"preserveAspectRatio\":\"xMaxYMax meet\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2efbd0a1\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/VelocityGraph.vue\n// module id = cxeO\n// module chunks = 1","function touchscreen() {\n return 'ontouchstart' in window || navigator.maxTouchPoints\n}\n\nexport function mouseover() { return 'mouseover' }\nexport function mouseleave() { return 'mouseleave' }\nexport function mouseout() { return 'mouseout' }\n\nexport function click() {\n if (touchscreen()) {\n return 'dblclick'\n }\n return 'click'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mixins/compat.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.breakdownFilters),function(image,field){return _c('span',{staticClass:\"badge badge-secondary\"},[_vm._v(\"\\n \"+_vm._s(_vm.names[field])+\": \"+_vm._s(_vm.sprintImage(image))+\" \"),_c('span',{staticClass:\"times\",on:{\"click\":function($event){return _vm.unselect(field)}}},[_vm._v(\"×\")])])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0847b964\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/Filters.vue\n// module id = g8v8\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Logpage.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/Filters.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/CompGraph.vue","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-452b4583\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./PieGraph.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./PieGraph.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./PieGraph.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-452b4583\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./PieGraph.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-452b4583\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/PieGraph.vue\n// module id = nmJD\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Not Found\")]),_vm._v(\" \"),_c('p',[_vm._v(\"The requested page was not found.\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-67ac73f0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/NotFound.vue\n// module id = oDiI\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/widgets/Errorpage.vue","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-61a82ece\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./LogListpage.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./LogListpage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./LogListpage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-61a82ece\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./LogListpage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-61a82ece\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/LogListpage.vue\n// module id = tND6\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-2\"}),_c('div',{staticClass:\"col-md-8\"},[_c('h6',[_vm._v(\"Introduction\")]),_vm._v(\" \"),_c('p',[_c('a',{attrs:{\"href\":\"https://www.certificate-transparency.org/what-is-ct\"}},[_vm._v(\"Certificate\\n Transparency\")]),_vm._v(\" is an experimental framework for publicly auditing the\\n TLS/SSL certificates issued by certificate authorities. It does this by\\n requiring an increasing number of issued certificates to be added to\\n publicly-accessible repositories, called \"),_c('em',[_vm._v(\"certificate transparency\\n logs\")]),_vm._v(\", in order for them to be trusted by the user's browser. The goal\\n is two-fold:\")]),_vm._v(\" \"),_c('ol',[_c('li',[_c('strong',[_vm._v(\"Easy detection of mis-issued certificates.\")]),_vm._v(\" Because\\n certificates must be submitted to several certificate transparency logs\\n to be trusted in-browser, website owners can also search through these\\n same logs and get an authoritative list of all certificates that have\\n been issued for their website.\\n \")]),_vm._v(\" \"),_c('li',[_c('strong',[_vm._v(\"Better oversight and understanding of the entire TLS/SSL\\n ecosystem.\")]),_vm._v(\" Crawling certificate transparency logs gives deep\\n insight into the types of certificates being issued, and the scale of\\n different certificate authorities.\\n \")])]),_vm._v(\" \"),_c('p',[_vm._v(\"In addition to CT logs, there need to be \"),_c('em',[_vm._v(\"certificate transparency\\n monitors\")]),_vm._v(\". The primary function of a monitor is to ensure that CT logs\\n behave correctly, e.g., by ensuring that they continue to store and serve\\n \"),_c('em',[_vm._v(\"all\")]),_vm._v(\" certificates that have been submitted to them. However, it is\\n also common for monitors to use the data they collect from CT logs to offer\\n other services such as computing ecosystem metrics, searching known\\n certificates, and triggering alerts when new certificates are issued for\\n certain domain names.\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"Methodology\")]),_vm._v(\" \"),_c('p',[_vm._v(\"This monitor fetches each log's current Signed Tree Head (STH) and set of\\n trusted roots once per minute. New entries in a log are crawled as\\n appropriate, and we will occasionally submit strictly-valid unexpired\\n certificates or pre-certificates to a log. If a log is sharded by year, we\\n will only submit certificates expiring in that year.\")]),_vm._v(\" \"),_c('p',[_c('em',[_vm._v(\"All\")]),_vm._v(\" requests to a log count towards our estimate of its uptime\\n and response time. An endpoint's (get-sth, get-entries, etc.) uptime is\\n computed as the percentage of requests to that endpoint that succeed (that\\n is, return a 200 status code with a valid response) out of a 90 day rolling\\n window. An endpoint's response time is computed as the average amount of\\n time from when a request is sent until the response is fully received and\\n parsed, in a 90 day rolling window. A log's uptime and response time is\\n computed as a \"),_c('em',[_vm._v(\"fair average\")]),_vm._v(\" of each endpoint's uptime and response\\n time. Requests are made with the HTTP client in Golang's standard library.\\n We do not contact endpoints that are not listed on a log's informational\\n page, such as get-proof-by-hash and get-sth-consistency.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Some parts of the monitor may enforce different timeouts or will retry in\\n the event that a request fails while other parts will not, which means that\\n downtime may be penalized unfairly relative to a more intuitive\\n interpretation of 'downtime'. Also, the response time of the get-entries\\n endpoint is strongly correlated with the number of entries it\\n returns, but this information is currently ignored by our monitor.\")]),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"Fullness and New/Old Chains.\")]),_vm._v(\" On each log's informational\\n page, we display an estimate of the number of unsubmitted certificates. This\\n is computed by counting all the certificates in the CT ecosystem that we\\n expect a log would accept, based on its trusted root CAs and whether the log\\n is sharded by year, and subtracting the number of unique certificates the\\n log contains. The log's 'fullness' is computed as the percentage of\\n certificates it contains out of the set of certificates we expect it would\\n accept.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Similarly, we break uptime and response time estimates for the\\n add-(pre-)chain endpoints into 'new' and 'old' categories, corresponding to\\n whether or not the submitted chain is already in the log (old) or is not\\n (new). It is common for logs to de-duplicate submitted chains, returning the\\n same SCT when the same chain is submitted multiple times, so we do this to\\n measure the cases where the de-duplication mechanism succeeds and where it\\n fails separately. If the de-duplication mechanism succeeds, the\\n add-(pre-)chain operation is read-only but the old SCT must be\\n reconstructed. If the de-duplication mechanism succeeds, the add-(pre-)chain\\n operation must block until the submitted data is persisted to disk.\")]),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"Cryptographic Validation.\")]),_vm._v(\" No information about\\n cryptographic validation is propagated to the monitor's UI, but it is done.\\n We validate that STHs are issued frequently enough, and that the hash in\\n each STH corresponds to the hash of the leaves we've crawled. We also store\\n all SCTs returned from a log's add-chain/add-pre-chain endpoints until we\\n can verify that the log honored the SCT within its maximum merge delay.\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"Contact\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Feel free to contact us at \"),_c('a',{attrs:{\"href\":\"mailto:ct-logs@cloudflare.com\"}},[_vm._v(\"ct-logs@cloudflare.com\")]),_vm._v(\".\")])]),_c('div',{staticClass:\"col-md-2\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0390e838\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/About.vue\n// module id = tRFq\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-9\"},[_c('div',{staticClass:\"container\"},_vm._l((_vm.organizations),function(org){return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2 utilization-name\"},[_c('h6',{staticClass:\"sub-header\"},[_vm._v(_vm._s(org.name))])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('CompGraph',{attrs:{\"id\":org.name.replace(/[^a-zA-Z0-9]/g, ''),\"data\":org.data,\"palette\":_vm.palette,\"unit\":\"pre-certs\"}})],1)])}),0)]),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-3\"},[_c('ul',{staticClass:\"legend list-unstyled\"},_vm._l((_vm.logs),function(log){return _c('li',[_c('span',[_c('svg',{staticClass:\"legend-swatch\"},[_c('rect',{attrs:{\"width\":\"100%\",\"height\":\"100%\",\"fill\":_vm.palette(log.name)}})]),_vm._v(\"\\n \"+_vm._s(log.name))]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"legend-label\"},[_vm._v(_vm._s(log.count.toLocaleString())+\" pre-certs\")])])}),0)])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-64659e91\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/widgets/UtilGraph.vue\n// module id = vwga\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0058510f\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./CompGraph.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CompGraph.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CompGraph.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0058510f\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./CompGraph.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0058510f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/CompGraph.vue\n// module id = x9ei\n// module chunks = 1","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3f4cf469\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Errorpage.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Errorpage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Errorpage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f4cf469\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Errorpage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3f4cf469\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/widgets/Errorpage.vue\n// module id = zJhq\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-02f19c62\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Logpage.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Logpage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Logpage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-02f19c62\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Logpage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-02f19c62\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Logpage.vue\n// module id = zjwr\n// module chunks = 1"],"sourceRoot":""}