diff --git a/.bazelrc b/.bazelrc index 5ff263547e3..3cc21a29cf5 100644 --- a/.bazelrc +++ b/.bazelrc @@ -26,6 +26,8 @@ build --incompatible_disable_deprecated_attr_params=false # intellij-bazel plugin needs this build --incompatible_depset_is_not_iterable=false build --incompatible_new_actions_api=false +build --incompatible_generated_protos_in_virtual_imports=false +build --incompatible_depset_union=false test --test_summary=terse test --test_output=errors diff --git a/.gitignore b/.gitignore index eef0a5ef96d..a068895f24c 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,7 @@ bucklets/plugins/ lib/yang /tools/gui/bin /tools/gui/node_modules -/tools/gui/package-lock.json +/tools/gui/false web/gui/src/main/webapp/tests/node_modules web/gui/src/test/_karma/node_modules diff --git a/WORKSPACE b/WORKSPACE index a75dd90ed90..aaafba1505d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,4 +1,10 @@ -workspace(name = "org_onosproject_onos") +workspace( + name = "org_onosproject_onos", + managed_directories = { + "@gui1_npm": ["tools/gui/node_modules"], + "@gui2_npm": ["web/gui2-fw-lib/node_modules"], + }, +) load("//tools/build/bazel:bazel_version.bzl", "check_bazel_version") @@ -95,31 +101,57 @@ load("//tools/build/bazel:gnoi_workspace.bzl", "generate_gnoi") generate_gnoi() -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -git_repository( +http_archive( name = "build_bazel_rules_nodejs", - commit = "70406e05de721520ca568a17186de73e972d7651", - remote = "https://github.com/bazelbuild/rules_nodejs.git", - shallow_since = "1551145517 -0800", + sha256 = "26c39450ce2d825abee5583a43733863098ed29d3cbaebf084ebaca59a21a1c8", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.39.0/rules_nodejs-0.39.0.tar.gz"], ) -load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories") +load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "npm_install") node_repositories( - node_version = "8.11.1", - package_json = ["//tools/gui:package.json"], + node_repositories = { + "10.16.0-darwin_amd64": ("node-v10.16.0-darwin-x64.tar.gz", "node-v10.16.0-darwin-x64", "6c009df1b724026d84ae9a838c5b382662e30f6c5563a0995532f2bece39fa9c"), + "10.16.0-linux_amd64": ("node-v10.16.0-linux-x64.tar.xz", "node-v10.16.0-linux-x64", "1827f5b99084740234de0c506f4dd2202a696ed60f76059696747c34339b9d48"), + "10.16.0-windows_amd64": ("node-v10.16.0-win-x64.zip", "node-v10.16.0-win-x64", "aa22cb357f0fb54ccbc06b19b60e37eefea5d7dd9940912675d3ed988bf9a059"), + }, + node_version = "10.16.0", + package_json = ["//web/gui2-fw-lib:package.json"], ) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +# The npm_install rule runs yarn anytime the package.json or package-lock.json file changes. +# It also extracts any Bazel rules distributed in an npm package. +load("@build_bazel_rules_nodejs//:index.bzl", "npm_install") + +npm_install( + # Name this npm so that Bazel Label references look like @npm//package + name = "gui1_npm", + package_json = "//tools/gui:package.json", + package_lock_json = "//tools/gui:package-lock.json", +) + +npm_install( + # Name this npm so that Bazel Label references look like @npm//package + name = "gui2_npm", + package_json = "//web/gui2-fw-lib:package.json", + package_lock_json = "//web/gui2-fw-lib:package-lock.json", +) + +# Install any Bazel rules which were extracted earlier by the npm_install rule. +load("@gui2_npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") + +install_bazel_dependencies() # buildifier is written in Go and hence needs rules_go to be built. # See https://github.com/bazelbuild/rules_go for the up to date setup instructions. http_archive( name = "io_bazel_rules_go", - sha256 = "f04d2373bcaf8aa09bccb08a98a57e721306c8f6043a2a0ee610fd6853dcde3d", + sha256 = "9fb16af4d4836c8222142e54c9efa0bb5fc562ffc893ce2abeac3e25daead144", urls = [ - "https://github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz", + "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.19.0/rules_go-0.19.0.tar.gz", + "https://github.com/bazelbuild/rules_go/releases/download/0.19.0/rules_go-0.19.0.tar.gz", ], ) @@ -130,12 +162,21 @@ go_rules_dependencies() go_register_toolchains() http_archive( - name = "com_github_bazelbuild_buildtools", - sha256 = "e0b5b400cfef17d65886365dc7289cb4ef8dfe07066165607413a271a32aa2a4", - strip_prefix = "buildtools-db073457c5a56d810e46efc18bb93a4fd7aa7b5e", - url = "https://github.com/bazelbuild/buildtools/archive/db073457c5a56d810e46efc18bb93a4fd7aa7b5e.zip", + name = "bazel_gazelle", + sha256 = "be9296bfd64882e3c08e3283c58fcb461fa6dd3c171764fcc4cf322f60615a9b", + urls = [ + "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", + "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.18.1/bazel-gazelle-0.18.1.tar.gz", + ], ) -load("@com_github_bazelbuild_buildtools//buildifier:deps.bzl", "buildifier_dependencies") +load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -buildifier_dependencies() +gazelle_dependencies() + +http_archive( + name = "com_github_bazelbuild_buildtools", + sha256 = "05eb52437fb250c7591dd6cbcfd1f9b5b61d85d6b20f04b041e0830dd1ab39b3", + strip_prefix = "buildtools-0.29.0", + url = "https://github.com/bazelbuild/buildtools/archive/0.29.0.zip", +) diff --git a/apps/faultmanagement/fm-gui2-lib/BUILD b/apps/faultmanagement/fm-gui2-lib/BUILD index 82120f25d89..dd471f7366c 100644 --- a/apps/faultmanagement/fm-gui2-lib/BUILD +++ b/apps/faultmanagement/fm-gui2-lib/BUILD @@ -74,9 +74,7 @@ genrule( name = "fm-gui2-lib-build", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -91,7 +89,7 @@ genrule( cmd = "ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p apps/faultmanagement/fm-gui2-lib &&" + @@ -113,7 +111,7 @@ genrule( " exit 1;" + " fi;" + " cd dist/fm-gui2-lib && " + - " npm pack >> $$ROOT/$(location fm-gui2-lib.log) 2>&1 &&" + + " $$ROOT/$(location @nodejs//:bin/npm) pack >> $$ROOT/$(location fm-gui2-lib.log) 2>&1 &&" + " mv fm-gui2-lib-*.tgz $$ROOT/$(location fm-gui2-lib-ver.tgz) &&" + " touch $$ROOT/$(location fm-gui2-lib.log)", # to get the log always as the 2nd file, message = "Angular FM GUI2 build", @@ -130,9 +128,7 @@ genrule( name = "_fm-gui2-lib-test-genrule", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -148,7 +144,7 @@ genrule( cmd = " ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p apps/faultmanagement/fm-gui2-lib &&" + @@ -163,7 +159,7 @@ genrule( " chmod +x $$ROOT/apps/faultmanagement/fm-gui2-lib/node_modules/@angular/cli/bin/ng &&" + " export PATH=$$ROOT/$$(dirname $${NODE}):node_modules/@angular/cli/bin:$$PATH &&" + " node -v > ../../../$(location fm-gui2-lib-ver.log) &&" + - " npm -v >> ../../../$(location fm-gui2-lib-ver.log) &&" + + " $$ROOT/$(location @nodejs//:bin/npm) -v >> ../../../$(location fm-gui2-lib-ver.log) &&" + " ng -v >> ../../../$(location fm-gui2-lib-ver.log) &&" + " ng lint fm-gui2-lib > ../../../$(location fm-gui2-lib-lint.log);" + " if [ -f /usr/bin/chromium-browser ]; then " + # Add to this for Mac and Chrome diff --git a/apps/faultmanagement/fm-gui2-lib/package.json b/apps/faultmanagement/fm-gui2-lib/package.json index b41f35894cc..9eb3e4bdbd5 100644 --- a/apps/faultmanagement/fm-gui2-lib/package.json +++ b/apps/faultmanagement/fm-gui2-lib/package.json @@ -1,6 +1,6 @@ { "name": "fm-gui2-lib-app", - "version": "2.1.0", + "version": "2.3.0", "private": true, "dependencies": { "@angular/animations": "^7.0.2", diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenStackSwitchingDirectPortProvider.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenStackSwitchingDirectPortProvider.java index db7af993a0f..a73946f0931 100644 --- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenStackSwitchingDirectPortProvider.java +++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenStackSwitchingDirectPortProvider.java @@ -58,6 +58,7 @@ import static org.onosproject.openstacknetworking.api.Constants.UNSUPPORTED_VENDOR; import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getIntfNameFromPciAddress; import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.hasIntfAleadyInDevice; +import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.isSmartNicCapable; import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.COMPUTE; import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.CONTROLLER; @@ -148,6 +149,10 @@ private void processPortUpdate(OpenstackNetworkEvent event) { return; } + if (!isSmartNicCapable(event.port())) { + return; + } + if (event.port().getState() == State.DOWN) { removePort(event.port()); } else { @@ -160,6 +165,10 @@ private void processPortRemoval(OpenstackNetworkEvent event) { return; } + if (!isSmartNicCapable(event.port())) { + return; + } + removePort(event.port()); } @@ -307,6 +316,7 @@ private void processComputeState(OpenstackNode node) { .filter(port -> port.getvNicType().equals(DIRECT)) .filter(port -> !port.getVifType().equals(UNBOUND)) .filter(port -> port.getHostId().equals(node.hostname())) + .filter(OpenstackNetworkingUtil::isSmartNicCapable) .collect(Collectors.toList()); ports.forEach(port -> addIntfToDevice(node, port)); @@ -318,7 +328,7 @@ private void addIntfToDevice(OpenstackNode node, Port port) { log.error("Failed to retrieve interface name from a port {}", port.getId()); } else if (intfName.equals(UNSUPPORTED_VENDOR)) { log.warn("Failed to retrieve interface name from a port {} " + - "because of unsupported ovs-based sr-iov"); + "because of unsupported ovs-based sr-iov", port.getId()); return; } diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java index 615de0e7440..16dcc2142b7 100644 --- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java +++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java @@ -137,6 +137,7 @@ import static org.onlab.packet.Ip4Address.valueOf; import static org.onosproject.net.AnnotationKeys.PORT_NAME; import static org.onosproject.openstacknetworking.api.Constants.DEFAULT_GATEWAY_MAC_STR; +import static org.onosproject.openstacknetworking.api.Constants.DIRECT; import static org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT; import static org.onosproject.openstacknetworking.api.Constants.NETWORK_FORMAT; import static org.onosproject.openstacknetworking.api.Constants.OPENSTACK_NETWORKING_REST_PATH; @@ -398,6 +399,24 @@ public static OSClient getConnectedClient(OpenstackNode osNode) { } } + /** + * Checks whether the given openstack port is smart NIC capable. + * + * @param port openstack port + * @return true if the given port is smart NIC capable, false otherwise + */ + public static boolean isSmartNicCapable(Port port) { + if (port.getProfile() != null && port.getvNicType().equals(DIRECT)) { + String vendorInfo = String.valueOf(port.getProfile().get(PCI_VENDOR_INFO)); + if (portNamePrefixMap().containsKey(vendorInfo)) { + log.debug("Port {} is a Smart NIC capable port.", port.getId()); + return true; + } + return false; + } + return false; + } + /** * Extract the interface name with the supplied port. * diff --git a/apps/openstackvtap/api/src/main/java/org/onosproject/openstackvtap/api/Constants.java b/apps/openstackvtap/api/src/main/java/org/onosproject/openstackvtap/api/Constants.java new file mode 100644 index 00000000000..f823b7dfe95 --- /dev/null +++ b/apps/openstackvtap/api/src/main/java/org/onosproject/openstackvtap/api/Constants.java @@ -0,0 +1,29 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.openstackvtap.api; + +import java.nio.charset.StandardCharsets; + +/** + * Provides constants used in OpenstackVtap. + */ +public final class Constants { + + private Constants() { + } + + public static final String REST_UTF8 = StandardCharsets.UTF_8.name(); +} diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java index 013ac89e544..7fdd08eef8b 100644 --- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java +++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java @@ -19,15 +19,13 @@ import org.apache.karaf.shell.api.action.Command; import org.apache.karaf.shell.api.action.Completion; import org.apache.karaf.shell.api.action.lifecycle.Service; -import org.onlab.packet.IpPrefix; -import org.onlab.packet.TpPort; import org.onosproject.cli.AbstractShellCommand; import org.onosproject.openstackvtap.api.OpenstackVtap; import org.onosproject.openstackvtap.api.OpenstackVtapAdminService; -import org.onosproject.openstackvtap.impl.DefaultOpenstackVtapCriterion; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; -import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolTypeFromString; import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getVtapTypeFromString; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.makeVtapCriterion; /** * Adds a openstack vtap rule. @@ -76,38 +74,19 @@ public class OpenstackVtapAddCommand extends AbstractShellCommand { @Override protected void doExecute() { - DefaultOpenstackVtapCriterion.Builder vtapCriterionBuilder = DefaultOpenstackVtapCriterion.builder(); - if (makeCriterion(vtapCriterionBuilder)) { - OpenstackVtap.Type type = getVtapTypeFromString(vtapTypeStr); - - if (type == null) { - print("Invalid vtap type"); - return; - } - - OpenstackVtap vtap = vtapService.createVtap(type, vtapCriterionBuilder.build()); - if (vtap != null) { - print("Created OpenstackVtap with id { %s }", vtap.id().toString()); - } else { - print("Failed to create OpenstackVtap"); - } + OpenstackVtapCriterion criterion = + makeVtapCriterion(srcIp, dstIp, ipProto, srcTpPort, dstTpPort); + OpenstackVtap.Type type = getVtapTypeFromString(vtapTypeStr); + if (type == null) { + print("Invalid vtap type"); + return; } - } - private boolean makeCriterion(DefaultOpenstackVtapCriterion.Builder vtapCriterionBuilder) { - try { - vtapCriterionBuilder.srcIpPrefix(IpPrefix.valueOf(srcIp)); - vtapCriterionBuilder.dstIpPrefix(IpPrefix.valueOf(dstIp)); - } catch (Exception e) { - print("Inputted valid source IP & destination IP in CIDR (e.g., \"10.1.0.4/32\")"); - return false; + OpenstackVtap vtap = vtapService.createVtap(type, criterion); + if (vtap != null) { + print("Created OpenstackVtap with id { %s }", vtap.id().toString()); + } else { + print("Failed to create OpenstackVtap"); } - - vtapCriterionBuilder.ipProtocol(getProtocolTypeFromString(ipProto.toLowerCase())); - - vtapCriterionBuilder.srcTpPort(TpPort.tpPort(srcTpPort)); - vtapCriterionBuilder.dstTpPort(TpPort.tpPort(dstTpPort)); - - return true; } } diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodec.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodec.java new file mode 100644 index 00000000000..608362b2289 --- /dev/null +++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodec.java @@ -0,0 +1,91 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.openstackvtap.codec; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.onlab.packet.IpAddress; +import org.onlab.packet.IpPrefix; +import org.onlab.packet.TpPort; +import org.onosproject.codec.CodecContext; +import org.onosproject.codec.JsonCodec; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; +import org.onosproject.openstackvtap.impl.DefaultOpenstackVtapCriterion; + +import static org.onlab.util.Tools.nullIsIllegal; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolStringFromType; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolTypeFromString; + +/** + * Openstack vTap codec used for serializing and de-serializing JSON string. + */ +public final class OpenstackVtapCriterionCodec extends JsonCodec { + + private static final String SRC_IP = "srcIp"; + private static final String DST_IP = "dstIp"; + private static final String IP_PROTOCOL = "ipProto"; + private static final String SRC_PORT = "srcPort"; + private static final String DST_PORT = "dstPort"; + + private static final String MISSING_MESSAGE = " is required in OpenstackVtapCriterion"; + + @Override + public ObjectNode encode(OpenstackVtapCriterion entity, CodecContext context) { + String protoStr = getProtocolStringFromType(entity.ipProtocol()); + + return context.mapper().createObjectNode() + .put(SRC_IP, entity.srcIpPrefix().address().toString()) + .put(DST_IP, entity.dstIpPrefix().address().toString()) + .put(IP_PROTOCOL, protoStr) + .put(SRC_PORT, entity.srcTpPort().toString()) + .put(DST_PORT, entity.dstTpPort().toString()); + } + + @Override + public OpenstackVtapCriterion decode(ObjectNode json, CodecContext context) { + if (json == null || !json.isObject()) { + return null; + } + + OpenstackVtapCriterion.Builder cBuilder = DefaultOpenstackVtapCriterion.builder(); + + // parse source IP address + IpPrefix srcIp = IpPrefix.valueOf(IpAddress.valueOf(nullIsIllegal( + json.get(SRC_IP).asText(), SRC_IP + MISSING_MESSAGE)), 32); + // parse destination IP address + IpPrefix dstIp = IpPrefix.valueOf(IpAddress.valueOf(nullIsIllegal( + json.get(DST_IP).asText(), DST_IP + MISSING_MESSAGE)), 32); + + cBuilder.srcIpPrefix(srcIp); + cBuilder.dstIpPrefix(dstIp); + + // parse IP protocol + String ipProtoStr = json.get(IP_PROTOCOL).asText(); + if (ipProtoStr != null) { + cBuilder.ipProtocol(getProtocolTypeFromString(ipProtoStr)); + } + + // parse source port number + int srcPort = json.get(SRC_PORT).asInt(0); + + // parse destination port number + int dstPort = json.get(DST_PORT).asInt(0); + + cBuilder.srcTpPort(TpPort.tpPort(srcPort)); + cBuilder.dstTpPort(TpPort.tpPort(dstPort)); + + return cBuilder.build(); + } +} diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/util/OpenstackVtapUtil.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/util/OpenstackVtapUtil.java index 7950beed321..6907d4ba198 100644 --- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/util/OpenstackVtapUtil.java +++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/util/OpenstackVtapUtil.java @@ -18,6 +18,7 @@ import org.onlab.packet.IPv4; import org.onlab.packet.IpAddress; import org.onlab.packet.IpPrefix; +import org.onlab.packet.TpPort; import org.onosproject.net.Host; import org.onosproject.net.behaviour.TunnelDescription; import org.onosproject.net.group.DefaultGroupKey; @@ -25,7 +26,9 @@ import org.onosproject.openstackvtap.api.OpenstackVtap; import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; import org.onosproject.openstackvtap.api.OpenstackVtapNetwork; +import org.onosproject.openstackvtap.impl.DefaultOpenstackVtapCriterion; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.ByteArrayOutputStream; import java.nio.charset.StandardCharsets; @@ -38,6 +41,8 @@ */ public final class OpenstackVtapUtil { + private static final Logger log = LoggerFactory.getLogger(OpenstackVtapUtil.class); + private static final String VTAP_TUNNEL_GRE = "vtap_gre"; private static final String VTAP_TUNNEL_VXLAN = "vtap_vxlan"; private static final String VTAP_GROUP_KEY = "VTAP_GROUP_KEY"; @@ -69,6 +74,27 @@ public static byte getProtocolTypeFromString(String str) { } } + /** + * Obtains IP protocol string from the given type. + * + * @param type protocol type + * @return IP protocol string + */ + public static String getProtocolStringFromType(byte type) { + switch (type) { + case IPv4.PROTOCOL_TCP: + return "tcp"; + case IPv4.PROTOCOL_UDP: + return "udp"; + case IPv4.PROTOCOL_ICMP: + return "icmp"; + case 0: + return "any"; + default: + throw new IllegalArgumentException("Invalid vtap protocol type"); + } + } + /** * Obtains openstack vtap type from the given string. * @@ -178,6 +204,38 @@ public static TunnelDescription.Type getTunnelType(OpenstackVtapNetwork.Mode mod return TunnelDescription.Type.valueOf(mode.toString()); } + /** + * Makes Openstack vTap criterion from the given src, dst IP and port. + * + * @param srcIp source IP address + * @param dstIp destination IP address + * @param ipProto IP protocol + * @param srcPort source port + * @param dstPort destination port + * @return openstack vTap criterion + */ + public static OpenstackVtapCriterion makeVtapCriterion(String srcIp, + String dstIp, + String ipProto, + int srcPort, + int dstPort) { + OpenstackVtapCriterion.Builder cBuilder = DefaultOpenstackVtapCriterion.builder(); + + try { + cBuilder.srcIpPrefix(IpPrefix.valueOf(srcIp)); + cBuilder.dstIpPrefix(IpPrefix.valueOf(dstIp)); + } catch (Exception e) { + log.error("The given IP addresses are invalid"); + } + + cBuilder.ipProtocol(getProtocolTypeFromString(ipProto.toLowerCase())); + + cBuilder.srcTpPort(TpPort.tpPort(srcPort)); + cBuilder.dstTpPort(TpPort.tpPort(dstPort)); + + return cBuilder.build(); + } + /** * Print stack trace of given exception. * diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapNetworkCodecRegister.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapNetworkCodecRegister.java index 509a2869c44..a3183207571 100644 --- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapNetworkCodecRegister.java +++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapNetworkCodecRegister.java @@ -19,7 +19,9 @@ import org.apache.karaf.shell.api.action.lifecycle.Service; import org.onosproject.codec.CodecService; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; import org.onosproject.openstackvtap.api.OpenstackVtapNetwork; +import org.onosproject.openstackvtap.codec.OpenstackVtapCriterionCodec; import org.onosproject.openstackvtap.codec.OpenstackVtapNetworkCodec; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -44,6 +46,7 @@ public class OpenstackVtapNetworkCodecRegister { @Activate protected void activate() { codecService.registerCodec(OpenstackVtapNetwork.class, new OpenstackVtapNetworkCodec()); + codecService.registerCodec(OpenstackVtapCriterion.class, new OpenstackVtapCriterionCodec()); log.info("Started"); } @@ -51,6 +54,7 @@ protected void activate() { @Deactivate protected void deactivate() { codecService.unregisterCodec(OpenstackVtapNetwork.class); + codecService.unregisterCodec(OpenstackVtapCriterion.class); log.info("Stopped"); } diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapWebResource.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapWebResource.java index f4c3084069f..50218871021 100644 --- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapWebResource.java +++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/web/OpenstackVtapWebResource.java @@ -15,14 +15,38 @@ */ package org.onosproject.openstackvtap.web; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.Sets; +import org.onosproject.openstackvtap.api.OpenstackVtap; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; +import org.onosproject.openstackvtap.api.OpenstackVtapId; +import org.onosproject.openstackvtap.api.OpenstackVtapService; import org.onosproject.rest.AbstractWebResource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriBuilder; +import javax.ws.rs.core.UriInfo; +import java.io.InputStream; +import java.util.Set; + +import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT; +import static javax.ws.rs.core.Response.created; +import static javax.ws.rs.core.Response.noContent; +import static org.onlab.util.Tools.readTreeFromStream; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getVtapTypeFromString; /** * Handles REST API call of openstack vtap. @@ -30,16 +54,119 @@ @Path("vtap") public class OpenstackVtapWebResource extends AbstractWebResource { - private final ObjectNode root = mapper().createObjectNode(); + private final Logger log = LoggerFactory.getLogger(getClass()); + + private static final String MESSAGE_VTAP = "Received vtap %s request"; + private static final String CREATE = "CREATE"; + private static final String QUERY = "QUERY"; + private static final String DELETE = "DELETE"; + + private static final String VTAP = "vtap"; + private static final String CRITERION = "criterion"; + private static final String TYPE = "type"; + private static final String ID = "id"; + + private final ObjectNode root = mapper().createObjectNode(); + private final ArrayNode jsonVtaps = root.putArray("vtaps"); + + private final OpenstackVtapService vtapService = get(OpenstackVtapService.class); + + @Context + private UriInfo uriInfo; /** - * OpenstackVtapServiceImpl method. + * Creates an openstack vTap from the JSON input stream. + * + * @param input openstack vtap JSON input stream + * @return 201 CREATED if the JSON is correct, 400 BAD_REQUEST if the JSON + * is invalid or duplicated vtap already exists * - * @return 200 OK + * @onos.rsModel OpenstackVtap + */ + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response createVtap(InputStream input) { + log.trace(String.format(MESSAGE_VTAP, CREATE)); + + OpenstackVtap vtap = readAndCreateVtap(input); + + UriBuilder locationBuilder = uriInfo.getBaseUriBuilder() + .path(VTAP) + .path(vtap.id().toString()); + + return created(locationBuilder.build()).build(); + } + + /** + * Removes an openstack vTap with the given vTap UUID. + * + * @param id openstack vtap UUID + * @return 204 NO_CONTENT, 400 BAD_REQUEST if the JSON is malformed + */ + @DELETE + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @Path("{id}") + public Response deleteVtap(@PathParam(ID) String id) { + log.trace(String.format(MESSAGE_VTAP, DELETE + id)); + + vtapService.removeVtap(OpenstackVtapId.vtapId(id)); + return noContent().build(); + } + + /** + * Gets openstack vtap entities. + * + * @return 200 OK with openstack vtap entities + * 404 NOT_FOUND if openstack vtap does not exist */ @GET @Produces(MediaType.APPLICATION_JSON) - public Response dummy() { + public Response getVtaps() { + log.trace(String.format(MESSAGE_VTAP, QUERY)); + + Set allVtaps = vtapService.getVtaps(OpenstackVtap.Type.VTAP_ALL); + Set txVtaps = vtapService.getVtaps(OpenstackVtap.Type.VTAP_TX); + Set rxVtaps = vtapService.getVtaps(OpenstackVtap.Type.VTAP_RX); + Set anyVtaps = vtapService.getVtaps(OpenstackVtap.Type.VTAP_ANY); + + Set vTaps = Sets.newConcurrentHashSet(); + vTaps.addAll(allVtaps); + vTaps.addAll(txVtaps); + vTaps.addAll(rxVtaps); + vTaps.addAll(anyVtaps); + + for (OpenstackVtap vtap : vTaps) { + ObjectNode json = mapper().createObjectNode(); + json.set(CRITERION, codec(OpenstackVtapCriterion.class) + .encode(vtap.vtapCriterion(), this)); + json.put(TYPE, vtap.type().name()); + json.put(ID, vtap.id().toString()); + + jsonVtaps.add(json); + } + return ok(root).build(); } + + private OpenstackVtap readAndCreateVtap(InputStream input) { + OpenstackVtap.Type type = OpenstackVtap.Type.VTAP_ALL; + OpenstackVtapCriterion criterion; + try { + JsonNode jsonTree = readTreeFromStream(mapper().enable(INDENT_OUTPUT), input); + String typeStr = jsonTree.path(TYPE).asText(); + + if (typeStr != null) { + type = getVtapTypeFromString(typeStr); + } + + ObjectNode jsonCriterion = jsonTree.path(CRITERION).deepCopy(); + criterion = codec(OpenstackVtapCriterion.class).decode(jsonCriterion, this); + } catch (Exception e) { + throw new IllegalArgumentException(e); + } + + return vtapService.createVtap(type, criterion); + } } diff --git a/apps/openstackvtap/app/src/main/resources/definitions/OpenstackVtap.json b/apps/openstackvtap/app/src/main/resources/definitions/OpenstackVtap.json new file mode 100644 index 00000000000..4cd7c9ebc94 --- /dev/null +++ b/apps/openstackvtap/app/src/main/resources/definitions/OpenstackVtap.json @@ -0,0 +1,45 @@ +{ + "type": "object", + "required": [ + "type", + "criterion" + ], + "properties": { + "type": { + "type": "string", + "example": "all" + }, + "criterion": { + "type": "object", + "required": [ + "srcIp", + "dstIp", + "ipProto", + "srcPort", + "dstPort" + ], + "properties": { + "srcIp": { + "type": "string", + "example": "10.20.1.1" + }, + "dstIp": { + "type": "String", + "example": "10.20.1.2" + }, + "ipProto": { + "type": "string", + "example": "tcp" + }, + "srcPort": { + "type": "integer", + "example": 8080 + }, + "dstPort": { + "type": "integer", + "example": 9090 + } + } + } + } +} diff --git a/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodecTest.java b/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodecTest.java new file mode 100644 index 00000000000..c647a731c6f --- /dev/null +++ b/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionCodecTest.java @@ -0,0 +1,161 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.openstackvtap.codec; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.hamcrest.MatcherAssert; +import org.junit.Before; +import org.junit.Test; +import org.onlab.packet.IpAddress; +import org.onlab.packet.IpPrefix; +import org.onlab.packet.TpPort; +import org.onosproject.codec.CodecContext; +import org.onosproject.codec.JsonCodec; +import org.onosproject.codec.impl.CodecManager; +import org.onosproject.core.CoreService; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; +import org.onosproject.openstackvtap.impl.DefaultOpenstackVtapCriterion; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.onosproject.net.NetTestTools.APP_ID; +import static org.onosproject.openstackvtap.codec.OpenstackVtapCriterionJsonMatcher.matchVtapCriterion; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolStringFromType; +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolTypeFromString; + +/** + * Unit tests for OpenstackVtapCriterion codec. + */ +public class OpenstackVtapCriterionCodecTest { + + MockCodecContext context; + JsonCodec vtapCriterionCodec; + + final CoreService mockCoreService = createMock(CoreService.class); + private static final String REST_APP_ID = "org.onosproject.rest"; + + @Before + public void setUp() { + context = new MockCodecContext(); + vtapCriterionCodec = new OpenstackVtapCriterionCodec(); + + assertThat(vtapCriterionCodec, notNullValue()); + + expect(mockCoreService.registerApplication(REST_APP_ID)) + .andReturn(APP_ID).anyTimes(); + replay(mockCoreService); + context.registerService(CoreService.class, mockCoreService); + } + + /** + * Tests the openstack vtap criterion encoding. + */ + @Test + public void testOpenstackVtapCriterionEncode() { + OpenstackVtapCriterion criterion = DefaultOpenstackVtapCriterion.builder() + .srcIpPrefix(IpPrefix.valueOf(IpAddress.valueOf("10.10.10.10"), 32)) + .dstIpPrefix(IpPrefix.valueOf(IpAddress.valueOf("20.20.20.20"), 32)) + .ipProtocol(getProtocolTypeFromString("tcp")) + .srcTpPort(TpPort.tpPort(8080)) + .dstTpPort(TpPort.tpPort(9090)) + .build(); + + ObjectNode criterionJson = vtapCriterionCodec.encode(criterion, context); + assertThat(criterionJson, matchVtapCriterion(criterion)); + } + + /** + * Tests the openstack vtap criterion decoding. + */ + @Test + public void testOpenstackVtapCriterionDecode() throws IOException { + OpenstackVtapCriterion criterion = getVtapCriterion("OpenstackVtapCriterion.json"); + + assertThat(criterion.srcIpPrefix().address().toString(), is("10.10.10.10")); + assertThat(criterion.dstIpPrefix().address().toString(), is("20.20.20.20")); + assertThat(getProtocolStringFromType(criterion.ipProtocol()), is("tcp")); + assertThat(criterion.srcTpPort().toInt(), is(8080)); + assertThat(criterion.dstTpPort().toInt(), is(9090)); + } + + /** + * Reads in an openstack vtap criterion from the given resource and decodes it. + * + * @param resourceName resource to use to read the JSON for the rule + * @return decoded openstack vtap criterion + * @throws IOException if processing the resource fails + */ + private OpenstackVtapCriterion getVtapCriterion(String resourceName) throws IOException { + InputStream jsonStream = OpenstackVtapCriterionCodecTest.class.getResourceAsStream(resourceName); + JsonNode json = context.mapper().readTree(jsonStream); + MatcherAssert.assertThat(json, notNullValue()); + OpenstackVtapCriterion criterion = vtapCriterionCodec.decode((ObjectNode) json, context); + assertThat(criterion, notNullValue()); + return criterion; + } + + /** + * Mock codec context for use in codec unit tests. + */ + private class MockCodecContext implements CodecContext { + private final ObjectMapper mapper = new ObjectMapper(); + private final CodecManager manager = new CodecManager(); + private final Map, Object> services = new HashMap<>(); + + /** + * Constructs a new mock codec context. + */ + public MockCodecContext() { + manager.activate(); + } + + @Override + public ObjectMapper mapper() { + return mapper; + } + + @SuppressWarnings("unchecked") + @Override + public JsonCodec codec(Class entityClass) { + if (entityClass == OpenstackVtapCriterion.class) { + return (JsonCodec) vtapCriterionCodec; + } + return manager.getCodec(entityClass); + } + + @SuppressWarnings("unchecked") + @Override + public T getService(Class serviceClass) { + return (T) services.get(serviceClass); + } + + // for registering mock services + public void registerService(Class serviceClass, T impl) { + services.put(serviceClass, impl); + } + } +} diff --git a/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionJsonMatcher.java b/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionJsonMatcher.java new file mode 100644 index 00000000000..5c652634354 --- /dev/null +++ b/apps/openstackvtap/app/src/test/java/org/onosproject/openstackvtap/codec/OpenstackVtapCriterionJsonMatcher.java @@ -0,0 +1,108 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.openstackvtap.codec; + +import com.fasterxml.jackson.databind.JsonNode; +import org.hamcrest.Description; +import org.hamcrest.TypeSafeDiagnosingMatcher; +import org.onosproject.openstackvtap.api.OpenstackVtapCriterion; + +import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolStringFromType; + +/** + * Hamcrest matcher for openstack vtap criterion config. + */ +public final class OpenstackVtapCriterionJsonMatcher extends TypeSafeDiagnosingMatcher { + + private final OpenstackVtapCriterion criterion; + + private static final String SRC_IP = "srcIp"; + private static final String DST_IP = "dstIp"; + private static final String IP_PROTOCOL = "ipProto"; + private static final String SRC_PORT = "srcPort"; + private static final String DST_PORT = "dstPort"; + + private OpenstackVtapCriterionJsonMatcher(OpenstackVtapCriterion criterion) { + this.criterion = criterion; + } + + @Override + protected boolean matchesSafely(JsonNode jsonNode, Description description) { + + // check source IP address + JsonNode jsonSrcIp = jsonNode.get(SRC_IP); + String srcIp = criterion.srcIpPrefix().address().toString(); + if (!jsonSrcIp.asText().equals(srcIp)) { + description.appendText("Source IP address was " + jsonSrcIp); + return false; + } + + // check destination IP address + JsonNode jsonDstIp = jsonNode.get(DST_IP); + String dstIp = criterion.dstIpPrefix().address().toString(); + if (!jsonDstIp.asText().equals(dstIp)) { + description.appendText("Destination IP address was " + jsonDstIp); + return false; + } + + // check IP protocol + JsonNode jsonIpProto = jsonNode.get(IP_PROTOCOL); + if (jsonIpProto != null) { + String ipProto = getProtocolStringFromType(criterion.ipProtocol()); + if (!jsonIpProto.asText().equals(ipProto)) { + description.appendText("IP protocol was " + jsonIpProto); + return false; + } + } + + // check source port number + JsonNode jsonSrcPort = jsonNode.get(SRC_PORT); + if (jsonSrcPort != null) { + int srcPort = criterion.srcTpPort().toInt(); + if (jsonSrcPort.asInt() != srcPort) { + description.appendText("Source port number was " + jsonSrcPort); + return false; + } + } + + // check destination port number + JsonNode jsonDstPort = jsonNode.get(DST_PORT); + if (jsonDstPort != null) { + int dstPort = criterion.dstTpPort().toInt(); + if (jsonDstPort.asInt() != dstPort) { + description.appendText("Destination port number was " + jsonDstPort); + return false; + } + } + + return true; + } + + @Override + public void describeTo(Description description) { + description.appendText(criterion.toString()); + } + + /** + * Factory to allocate openstack vtap criterion matcher. + * + * @param criterion vtap criterion object we are looking for + * @return matcher + */ + public static OpenstackVtapCriterionJsonMatcher matchVtapCriterion(OpenstackVtapCriterion criterion) { + return new OpenstackVtapCriterionJsonMatcher(criterion); + } +} diff --git a/apps/openstackvtap/app/src/test/resources/org/onosproject/openstackvtap/codec/OpenstackVtapCriterion.json b/apps/openstackvtap/app/src/test/resources/org/onosproject/openstackvtap/codec/OpenstackVtapCriterion.json new file mode 100644 index 00000000000..3a5452b2514 --- /dev/null +++ b/apps/openstackvtap/app/src/test/resources/org/onosproject/openstackvtap/codec/OpenstackVtapCriterion.json @@ -0,0 +1,7 @@ +{ + "srcIp": "10.10.10.10", + "dstIp": "20.20.20.20", + "ipProto": "tcp", + "srcPort": 8080, + "dstPort": 9090 +} \ No newline at end of file diff --git a/apps/roadm/web/roadm-gui/BUILD b/apps/roadm/web/roadm-gui/BUILD index e40092b59ac..4569b968e76 100644 --- a/apps/roadm/web/roadm-gui/BUILD +++ b/apps/roadm/web/roadm-gui/BUILD @@ -74,9 +74,7 @@ genrule( name = "roadm-gui-lib-build", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -91,7 +89,7 @@ genrule( cmd = "ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p apps/roadm/web/roadm-gui &&" + @@ -113,7 +111,7 @@ genrule( " exit 1;" + " fi;" + " cp README.md LICENSE dist/roadm-gui-lib && " + - " npm pack ./dist/roadm-gui-lib >> $$ROOT/$(location roadm-gui-lib.log) 2>&1 &&" + + " $$ROOT/$(location @nodejs//:bin/npm) pack ./dist/roadm-gui-lib >> $$ROOT/$(location roadm-gui-lib.log) 2>&1 &&" + " mv roadm-gui-lib-*.tgz $$ROOT/$(location roadm-gui-lib-ver.tgz) &&" + " touch $$ROOT/$(location roadm-gui-lib.log)", # to get the log always as the 2nd file, message = "Angular roadm Lib build", @@ -130,9 +128,7 @@ genrule( name = "_roadm-gui-lib-test-genrule", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -148,7 +144,7 @@ genrule( cmd = " ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p apps/roadm/web/roadm-gui &&" + @@ -163,7 +159,7 @@ genrule( " chmod +x $$ROOT/apps/roadm/web/roadm-gui/node_modules/@angular/cli/bin/ng &&" + " export PATH=$$ROOT/$$(dirname $${NODE}):node_modules/@angular/cli/bin:$$PATH &&" + " node -v > ../../../../$(location roadm-gui-lib-ver.log) &&" + - " npm -v >> ../../../../$(location roadm-gui-lib-ver.log) &&" + + " $$ROOT/$(location @nodejs//:bin/npm) -v >> ../../../../$(location roadm-gui-lib-ver.log) &&" + " ng version >> ../../../../$(location roadm-gui-lib-ver.log) &&" + " ng lint roadm-gui-lib > ../../../../$(location roadm-gui-lib-lint.log) 2>&1 ||" + " if [ $$? -eq 0 ]; then echo 'Successfully ran lint';" + diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmConnectionInfo.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmConnectionInfo.java index cf8c393732e..1a54fe93b4f 100644 --- a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmConnectionInfo.java +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmConnectionInfo.java @@ -26,6 +26,7 @@ public class FpmConnectionInfo { private final NodeId connectedTo; private final long connectTime; private final FpmPeer peer; + private final boolean acceptRoutes; /** * Creates a new connection info. @@ -34,12 +35,30 @@ public class FpmConnectionInfo { * @param peer FPM peer * @param connectTime time the connection was made */ + @Deprecated public FpmConnectionInfo(NodeId connectedTo, FpmPeer peer, long connectTime) { this.connectedTo = connectedTo; this.peer = peer; this.connectTime = connectTime; + this.acceptRoutes = true; } + /** + * Creates a new connection info. + * + * @param connectedTo ONOS node the FPM peer is connected to + * @param peer FPM peer + * @param connectTime time the connection was made + * @param acceptRoutes flag to accept or discard routes + */ + FpmConnectionInfo(NodeId connectedTo, FpmPeer peer, long connectTime, boolean acceptRoutes) { + this.connectedTo = connectedTo; + this.peer = peer; + this.connectTime = connectTime; + this.acceptRoutes = acceptRoutes; + } + + /** * Returns the node the FPM peers is connected to. * @@ -66,4 +85,13 @@ public FpmPeer peer() { public long connectTime() { return connectTime; } + + /** + * Returns the acceptRoutes flag status of the peer. + * + * @return acceptRoutes flag + */ + public boolean isAcceptRoutes() { + return acceptRoutes; + } } diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmInfoService.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmInfoService.java index c6047070ba7..a56c48d301f 100644 --- a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmInfoService.java +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmInfoService.java @@ -16,8 +16,10 @@ package org.onosproject.routing.fpm; +import java.util.Collection; import java.util.Map; + /** * Provides information about the FPM route receiver module. */ @@ -41,4 +43,12 @@ public interface FpmInfoService { * Pushes all local FPM routes to route store. */ void pushFpmRoutes(); + + /** + * Updates the acceptRoute flag to either accept or discard routes for input peers address. + * + * @param peers peers for which flag is updated + */ + void updateAcceptRouteFlag(Collection peers); + } diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmManager.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmManager.java index e9227556324..6b6df43e1e2 100644 --- a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmManager.java +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmManager.java @@ -88,6 +88,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Iterator; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -688,6 +689,41 @@ public Map peers() { e -> toFpmInfo(e.getKey(), e.getValue()))); } + @Override + public void updateAcceptRouteFlag(Collection modifiedPeers) { + modifiedPeers.forEach(modifiedPeer -> { + log.debug("FPM connection to {} is disabled", modifiedPeer); + NodeId localNode = clusterService.getLocalNode().id(); + log.debug("Peer Flag {}", modifiedPeer.isAcceptRoutes()); + peers.compute(modifiedPeer.peer(), (p, infos) -> { + if (infos == null) { + return null; + } + Iterator iterator = infos.iterator(); + if (iterator.hasNext()) { + FpmConnectionInfo connectionInfo = iterator.next(); + if (connectionInfo.isAcceptRoutes() == modifiedPeer.isAcceptRoutes()) { + return null; + } + localPeers.remove(modifiedPeer.peer()); + infos.remove(connectionInfo); + infos.add(new FpmConnectionInfo(localNode, modifiedPeer.peer(), + System.currentTimeMillis(), modifiedPeer.isAcceptRoutes())); + localPeers.put(modifiedPeer.peer(), infos); + } + Map routes = fpmRoutes.get(modifiedPeer.peer()); + if (routes != null && !modifiedPeer.isAcceptRoutes()) { + updateRouteStore(Lists.newArrayList(), routes.values()); + } else { + updateRouteStore(routes.values(), Lists.newArrayList()); + } + + return infos; + }); + }); + + } + private class InternalFpmListener implements FpmListener { @Override public void fpmMessage(FpmPeer peer, FpmHeader fpmMessage) { @@ -707,7 +743,7 @@ public boolean peerConnected(FpmPeer peer) { infos = new HashSet<>(); } - infos.add(new FpmConnectionInfo(localNode, peer, System.currentTimeMillis())); + infos.add(new FpmConnectionInfo(localNode, peer, System.currentTimeMillis(), true)); localPeers.put(peer, infos); return infos; }); diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmPeerAcceptRoutes.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmPeerAcceptRoutes.java new file mode 100644 index 00000000000..18ce0181948 --- /dev/null +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/FpmPeerAcceptRoutes.java @@ -0,0 +1,92 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.routing.fpm; + +import java.util.Objects; + +import static com.google.common.base.MoreObjects.toStringHelper; + +/** + * Represents an FPM peer with accept routes flag. + */ +public class FpmPeerAcceptRoutes { + + private final boolean isAcceptRoutes; + private final FpmPeer peer; + + + + /** + * Creates a new FPM peer. + * + * @param peer Fpm Peer + * @param isAcceptRoutes is route accepted on peer + * + */ + public FpmPeerAcceptRoutes(FpmPeer peer, boolean isAcceptRoutes) { + this.peer = peer; + this.isAcceptRoutes = isAcceptRoutes; + } + + /** + * Returns isAcceptRoutes flag status. + * + * @return isAcceptRoutes + */ + public boolean isAcceptRoutes() { + return isAcceptRoutes; + } + + /** + * Returns the FPM peer. + * + * @return FPM peer + */ + public FpmPeer peer() { + return peer; + } + + @Override + public int hashCode() { + return Objects.hash(isAcceptRoutes, peer); + } + + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } + + if (!(other instanceof FpmPeerAcceptRoutes)) { + return false; + } + + FpmPeerAcceptRoutes that = (FpmPeerAcceptRoutes) other; + + return Objects.equals(this.isAcceptRoutes, that.isAcceptRoutes) && + Objects.equals(this.peer, that.peer); + } + + @Override + public String toString() { + return toStringHelper(this) + .add("peer", peer) + .add("isAcceptRoutes", isAcceptRoutes) + .toString(); + } + +} diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmAcceptRoutesInfoCommand.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmAcceptRoutesInfoCommand.java new file mode 100644 index 00000000000..b219ca2c242 --- /dev/null +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmAcceptRoutesInfoCommand.java @@ -0,0 +1,72 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.routing.fpm.cli; + +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.onlab.packet.IpAddress; +import org.onosproject.cli.AbstractShellCommand; +import org.onosproject.routing.fpm.FpmInfoService; +import org.onosproject.routing.fpm.FpmPeer; +import org.onosproject.routing.fpm.FpmPeerInfo; + +import java.util.Comparator; +import java.util.Map; + +/** + * Displays the acceptRoute flag value for given peer. + */ +@Service +@Command(scope = "onos", name = "fpm-get-accept-route", + description = "Displays the acceptRoute flag value for given peer") +public class FpmAcceptRoutesInfoCommand extends AbstractShellCommand { + + private static final String FORMAT = "peer %s port %s acceptRoutes %s"; + + @Argument(index = 0, name = "peerAddress", description = "Peer Ip address", + required = false, multiValued = false) + String peerAddress = null; + + + + @Override + protected void doExecute() { + FpmInfoService fpmInfo = get(FpmInfoService.class); + if (peerAddress != null) { + IpAddress address = IpAddress.valueOf(peerAddress); + fpmInfo.peers().entrySet().stream() + .filter(peer -> peer.getKey().address().equals(address)) + .map(Map.Entry::getValue) + .forEach(this::print); + } else { + fpmInfo.peers().entrySet().stream() + .sorted(Comparator., IpAddress>comparing(e -> e.getKey().address()) + .thenComparing(e -> e.getKey().port())) + .map(Map.Entry::getValue) + .forEach(this::print); + } + } + + private void print(FpmPeerInfo info) { + info.connections().forEach(cinfo -> + print(FORMAT, cinfo.peer().address(), + cinfo.peer().port(), + cinfo.isAcceptRoutes()) + ); + } +} diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmConnectionsList.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmConnectionsList.java index d797844a111..d0d9c3df461 100644 --- a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmConnectionsList.java +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmConnectionsList.java @@ -17,6 +17,7 @@ package org.onosproject.routing.fpm.cli; import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Argument; import org.apache.karaf.shell.api.action.lifecycle.Service; import org.onlab.packet.IpAddress; import org.onlab.util.Tools; @@ -37,19 +38,32 @@ description = "Displays the current FPM connections") public class FpmConnectionsList extends AbstractShellCommand { - private static final String FORMAT = "peer %s:%s connected to %s since %s %s (%d routes locally)"; + private static final String FORMAT = "peer %s:%s connected to %s since %s %s (%d routes locally) acceptRoutes %s"; + + @Argument(index = 0, name = "peerAddress", description = "Peer Ip address", + required = false, multiValued = false) + String peerAddress = null; @Override protected void doExecute() { FpmInfoService fpmInfo = get(FpmInfoService.class); print(String.format("PD Pushing is %s.", fpmInfo.isPdPushEnabled() ? "enabled" : "disabled")); + if (peerAddress != null) { + IpAddress address = IpAddress.valueOf(peerAddress); + fpmInfo.peers().entrySet().stream() + .filter(peer -> peer.getKey().address().equals(address)) + .map(Map.Entry::getValue) + .forEach(this::print); + } else { + fpmInfo.peers().entrySet().stream() + .sorted(Comparator., IpAddress>comparing(e -> e.getKey().address()) + .thenComparing(e -> e.getKey().port())) + .map(Map.Entry::getValue) + .forEach(this::print); + } + - fpmInfo.peers().entrySet().stream() - .sorted(Comparator., IpAddress>comparing(e -> e.getKey().address()) - .thenComparing(e -> e.getKey().port())) - .map(Map.Entry::getValue) - .forEach(this::print); } private void print(FpmPeerInfo info) { @@ -59,7 +73,8 @@ private void print(FpmPeerInfo info) { print(FORMAT, cinfo.peer().address(), cinfo.peer().port(), cinfo.connectedTo(), Tools.timeAgo(cinfo.connectTime()), cinfo.connectedTo().equals(clusterService.getLocalNode().id()) ? "*" : "", - info.routes()) + info.routes(), + cinfo.isAcceptRoutes()) ); } } diff --git a/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmSetAcceptRoutesCommand.java b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmSetAcceptRoutesCommand.java new file mode 100644 index 00000000000..d0204ff0e2b --- /dev/null +++ b/apps/routing/fpm/app/src/main/java/org/onosproject/routing/fpm/cli/FpmSetAcceptRoutesCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.routing.fpm.cli; + +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.onlab.packet.IpAddress; +import org.onosproject.cli.AbstractShellCommand; +import org.onosproject.routing.fpm.FpmInfoService; +import org.onosproject.routing.fpm.FpmPeer; +import org.onosproject.routing.fpm.FpmPeerAcceptRoutes; + +import java.util.Collections; + +/** + * Sets acceptRoute flag for given peer. + */ +@Service +@Command(scope = "onos", name = "fpm-set-accept-routes", + description = "Adds a flag to Fpm peer to accept or discard routes") +public class FpmSetAcceptRoutesCommand extends AbstractShellCommand { + @Argument(index = 0, name = "peerAddress", description = "IpAddress of peer", + required = true) + String peerAddressString = null; + + @Argument(index = 1, name = "peerPort", description = "Port of peer", + required = true) + String peerPort = null; + + @Argument(index = 2, name = "acceptRoutes", description = "Flag to accept or discard routes", + required = true) + String acceptRoutesString = null; + + @Override + protected void doExecute() { + FpmInfoService service = AbstractShellCommand.get(FpmInfoService.class); + + IpAddress peerAddress = IpAddress.valueOf(peerAddressString); + boolean isAcceptRoutes = Boolean.parseBoolean(acceptRoutesString); + int port = Integer.parseInt(peerPort); + FpmPeer peer = new FpmPeer(peerAddress, port); + service.updateAcceptRouteFlag(Collections.singleton(new FpmPeerAcceptRoutes(peer, isAcceptRoutes))); + + } +} diff --git a/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmAcceptRoutesCodec.java b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmAcceptRoutesCodec.java new file mode 100644 index 00000000000..9161ee6f38b --- /dev/null +++ b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmAcceptRoutesCodec.java @@ -0,0 +1,50 @@ +/* + * Copyright 2015-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.fpm.web; + + +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.onosproject.codec.CodecContext; +import org.onosproject.codec.JsonCodec; +import org.onosproject.routing.fpm.FpmPeer; + +import org.onlab.packet.IpAddress; +import org.onosproject.routing.fpm.FpmPeerAcceptRoutes; + +/** + * Codec of FpmPeerInfo class. + */ +public final class FpmAcceptRoutesCodec extends JsonCodec { + + // JSON field names + private static final String PEER_ADDRESS = "peerAddress"; + private static final String PEER_PORT = "peerPort"; + private static final String ACCEPT_ROUTES = "acceptRoutes"; + + @Override + public FpmPeerAcceptRoutes decode(ObjectNode json, CodecContext context) { + if (json == null || !json.isObject()) { + return null; + } + + IpAddress address = IpAddress.valueOf(json.path(PEER_ADDRESS).asText()); + int port = Integer.parseInt(json.path(PEER_PORT).asText()); + boolean isAcceptRoutes = Boolean.valueOf(json.path(ACCEPT_ROUTES).asText()); + FpmPeer peer = new FpmPeer(address, port); + FpmPeerAcceptRoutes updatedPeer = new FpmPeerAcceptRoutes(peer, isAcceptRoutes); + return updatedPeer; + } +} diff --git a/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmCodec.java b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmCodec.java index fda14dbda21..fa127e48dbc 100755 --- a/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmCodec.java +++ b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmCodec.java @@ -22,6 +22,7 @@ import org.onosproject.codec.JsonCodec; import org.onosproject.routing.fpm.FpmPeerInfo; + /** * Codec of FpmPeerInfo class. */ @@ -33,6 +34,7 @@ public final class FpmCodec extends JsonCodec { private static final String CONNECTED_TO = "connectedTo"; private static final String CONNECTION_TIME = "connectionTime"; private static final String LOCAL_ROUTES = "localRoutes"; + private static final String ACCEPT_ROUTES = "acceptRoutes"; @Override @@ -47,6 +49,7 @@ public ObjectNode encode(FpmPeerInfo fpmPeerInfo, CodecContext context) { fpmNode.put(CONNECTED_TO, connection.connectedTo().toString()); fpmNode.put(CONNECTION_TIME, Tools.timeAgo(connection.connectTime())); fpmNode.put(LOCAL_ROUTES, fpmPeerInfo.routes()); + fpmNode.put(ACCEPT_ROUTES, connection.isAcceptRoutes()); connectionArray.add(fpmNode); }); diff --git a/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmWebResource.java b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmWebResource.java index 6b6ea92d5e6..51bb0fe5f42 100644 --- a/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmWebResource.java +++ b/apps/routing/fpm/web/src/main/java/org/onosproject/fpm/web/FpmWebResource.java @@ -25,15 +25,25 @@ import org.onosproject.routing.fpm.FpmPeerInfo; import org.onosproject.routing.fpm.FpmInfoService; import org.onosproject.routing.fpm.FpmPeer; +import org.onosproject.routing.fpm.FpmPeerAcceptRoutes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.IOException; +import static org.onlab.util.Tools.nullIsIllegal; +import static org.onlab.util.Tools.readTreeFromStream; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.PathParam; +import javax.ws.rs.Consumes; +import javax.ws.rs.POST; +import java.io.InputStream; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - import java.util.Comparator; import java.util.Map; +import java.util.List; /** * FPM REST API. @@ -41,9 +51,17 @@ @Path("") public class FpmWebResource extends AbstractWebResource { + private static final String ACCEPT_ROUTES = "acceptRoutes"; + private static final String PEER_ADDRESS = "peerAddress"; + private static final String PEER_PORT = "peerPort"; + protected static final String PEERS = "peers"; + protected static final String PEERS_KEY_ERROR = "Peers key must be present"; + private final Logger log = LoggerFactory.getLogger(getClass()); + /** * To get all fpm connections. * @return 200 OK with component properties of given component and variable. + * @onos.rsModel FpmConnectionsGet */ @GET @Produces(MediaType.APPLICATION_JSON) @@ -53,6 +71,60 @@ public Response getFpmConnections() { return Response.status(200).entity(node).build(); } + /** + * Performs disabling of FPM Peer. + * + * @param stream array of peer address and accept route flag + * @return 200 OK disable peer. + * @onos.rsModel FpmPeerSetAcceptRouteFlag + */ + @POST + @Path("acceptRoutes") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response updateAcceptRouteFlagForConnection(InputStream stream) { + FpmInfoService fpmService = get(FpmInfoService.class); + try { + ObjectNode jsonTree = readTreeFromStream(mapper(), stream); + ArrayNode peersArray = nullIsIllegal((ArrayNode) jsonTree.get(PEERS), + PEERS_KEY_ERROR); + List fpmPeerRouteInfo = (new FpmAcceptRoutesCodec()).decode(peersArray, this); + fpmService.updateAcceptRouteFlag(fpmPeerRouteInfo); + } catch (IOException ex) { + throw new IllegalArgumentException(ex); + } + + return Response.ok().build(); + + } + + /** + * Gets peers acceptRoute Flag details. + * @param peerAddress peer identifier + * @return 200 OK with a collection of peerInfo + * @onos.rsModel FpmPeerGetAcceptRoutes + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("acceptRoutes/{peerAddress}") + public Response getPeerAcceptRouteInfo(@PathParam("peerAddress") String peerAddress) { + ObjectNode node = getFpmPeerAcceptFlagInfoJsonOutput(peerAddress); + return Response.status(200).entity(node).build(); + } + + /** + * Gets all peers acceptRoute Flag details. + * @return 200 OK with a collection of peerInfo + * @onos.rsModel FpmGetAcceptRoutes + */ + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("acceptRoutes/") + public Response getAllPeerAcceptRouteInfo() { + ObjectNode node = getFpmPeerRouteInfoJsonOutput(); + return Response.status(200).entity(node).build(); + } + private ObjectNode getFpmConnectionsJsonOutput() { @@ -72,6 +144,54 @@ private ObjectNode getFpmConnectionsJsonOutput() { return node; } + + private ObjectNode getFpmPeerRouteInfoJsonOutput() { + + FpmInfoService fpmService = get(FpmInfoService.class); + ObjectNode node = mapper().createObjectNode(); + ArrayNode connectionArray = mapper().createArrayNode(); + Map fpmPeers = fpmService.peers(); + fpmPeers.entrySet().stream() + .sorted(Comparator., IpAddress>comparing(e -> e.getKey().address()) + .thenComparing(e -> e.getKey().port())) + .map(Map.Entry::getValue) + .forEach(fpmPeerInfo -> { + fpmPeerInfo.connections().forEach(connection -> { + ObjectNode fpmNode = mapper().createObjectNode(); + fpmNode.put(PEER_ADDRESS, connection.peer().address().toString()); + fpmNode.put(PEER_PORT, connection.peer().port()); + fpmNode.put(ACCEPT_ROUTES, connection.isAcceptRoutes()); + connectionArray.add(fpmNode); + }); + + }); + + node.put("fpm-peer-info", connectionArray); + return node; + + + } + + private ObjectNode getFpmPeerAcceptFlagInfoJsonOutput(String address) { + + FpmInfoService fpmService = get(FpmInfoService.class); + ObjectNode fpmNode = mapper().createObjectNode(); + Map fpmPeers = fpmService.peers(); + IpAddress peerAddress = IpAddress.valueOf(address); + fpmPeers.entrySet().stream() + .filter(peer -> peer.getKey().address().equals(peerAddress)) + .map(Map.Entry::getValue) + .forEach(fpmPeerInfo -> { + fpmPeerInfo.connections().forEach(connection -> { + fpmNode.put(ACCEPT_ROUTES, connection.isAcceptRoutes()); + }); + }); + + + return fpmNode; + + + } } diff --git a/apps/routing/fpm/web/src/main/resources/definitions/FpmConnectionsGet.json b/apps/routing/fpm/web/src/main/resources/definitions/FpmConnectionsGet.json new file mode 100644 index 00000000000..207453c331b --- /dev/null +++ b/apps/routing/fpm/web/src/main/resources/definitions/FpmConnectionsGet.json @@ -0,0 +1,37 @@ +{ + "type": "object", + "required": [ + "peerAddress", + "peerPort", + "connectedTo", + "connectionTime", + "localRoutes", + "acceptRoutes" + ], + "properties": { + "peerAddress": { + "type": "string", + "example": "10.255.0.0" + }, + "peerPort": { + "type": "int", + "example": "34455" + }, + "connectedTo": { + "type": "string", + "example": "10.2.2.5" + }, + "connectionTime": { + "type": "string", + "example": "3m ago" + }, + "localRoutes": { + "type": "int", + "example": "2" + }, + "acceptRoutes": { + "type": "boolean", + "example": "true" + } + } +} \ No newline at end of file diff --git a/apps/routing/fpm/web/src/main/resources/definitions/FpmGetAcceptRoutes.json b/apps/routing/fpm/web/src/main/resources/definitions/FpmGetAcceptRoutes.json new file mode 100644 index 00000000000..ce23582fcda --- /dev/null +++ b/apps/routing/fpm/web/src/main/resources/definitions/FpmGetAcceptRoutes.json @@ -0,0 +1,22 @@ +{ + "type": "object", + "required": [ + "peerAddress", + "peerPort", + "acceptRoutes" + ], + "properties": { + "peerAddress": { + "type": "String", + "example": "10.0.0.1" + }, + "peerPort": { + "type": "Integer", + "example": "56789" + }, + "acceptRoutes": { + "type": "boolean", + "example": "true" + } + } +} diff --git a/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerGetAcceptRoutes.json b/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerGetAcceptRoutes.json new file mode 100644 index 00000000000..87e0c6e9a4b --- /dev/null +++ b/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerGetAcceptRoutes.json @@ -0,0 +1,12 @@ +{ + "type": "object", + "required": [ + "acceptRoutes" + ], + "properties": { + "acceptRoutes": { + "type": "boolean", + "example": "true" + } + } +} diff --git a/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerSetAcceptRouteFlag.json b/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerSetAcceptRouteFlag.json new file mode 100644 index 00000000000..652f552a036 --- /dev/null +++ b/apps/routing/fpm/web/src/main/resources/definitions/FpmPeerSetAcceptRouteFlag.json @@ -0,0 +1,40 @@ +{ + "type": "object", + "title": "peers", + "required": [ + "peers" + ], + "properties": { + "peers": { + "type": "array", + "xml": { + "name": "peers", + "wrapped": true + }, + "items": { + "type": "object", + "title": "peer", + "required": [ + "peerAddress", + "port", + "acceptRoutes" + ], + "properties": { + "peerAddress": { + "type": "string", + "example": "10.255.0.0" + }, + "peerPort": { + "type": "int", + "example": "23456" + }, + "acceptRoutes": { + "type": "boolean", + "example": "true" + } + } + } + } + } +} + diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java index f18143f3bc7..1ce88748c63 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java @@ -29,6 +29,8 @@ import org.onlab.packet.IpPrefix; import org.onlab.packet.MacAddress; import org.onlab.packet.VlanId; +import org.onlab.util.PredictableExecutor; +import org.onlab.util.PredictableExecutor.PickyCallable; import org.onosproject.cluster.NodeId; import org.onosproject.mastership.MastershipEvent; import org.onosproject.net.ConnectPoint; @@ -55,6 +57,10 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; @@ -92,6 +98,9 @@ public class DefaultRoutingHandler { = newScheduledThreadPool(1, groupedThreads("masterChg", "mstch-%d", log)); private ScheduledExecutorService executorServiceFRR = newScheduledThreadPool(1, groupedThreads("fullRR", "fullRR-%d", log)); + // Route populators - 0 will leverage available processors + private static final int DEFAULT_THREADS = 0; + private ExecutorService routePopulators; private Instant lastRoutingChange = Instant.EPOCH; private Instant lastFullReroute = Instant.EPOCH; @@ -112,14 +121,10 @@ public class DefaultRoutingHandler { public enum Status { // population process is not started yet. IDLE, - // population process started. STARTED, - - // population process was aborted due to errors, mostly for groups not - // found. + // population process was aborted due to errors, mostly for groups not found. ABORTED, - // population process was finished successfully. SUCCEEDED } @@ -137,6 +142,8 @@ public enum Status { .build().asJavaMap(); this.shouldProgramCache = Maps.newConcurrentMap(); update(srManager); + this.routePopulators = new PredictableExecutor(DEFAULT_THREADS, + groupedThreads("onos/sr", "r-populator-%d", log)); } /** @@ -205,6 +212,7 @@ public void shutdown() { executorService.shutdown(); executorServiceMstChg.shutdown(); executorServiceFRR.shutdown(); + routePopulators.shutdown(); } ////////////////////////////////////// @@ -492,21 +500,43 @@ public void populateRoutingRulesForLinkStatusChange(Link linkDown, Link linkUp, // comparing all routes of existing ECMP SPG to new ECMP SPG routeChanges = computeRouteChange(switchDown); - // deal with linkUp of a seen-before link - if (linkUp != null && seenBefore) { - // link previously seen before - // do hash-bucket changes instead of a re-route - processHashGroupChange(routeChanges, false, null); - // clear out routesChanges so a re-route is not attempted - routeChanges = ImmutableSet.of(); - hashGroupsChanged = true; + // deal with linkUp + if (linkUp != null) { + // deal with linkUp of a seen-before link + if (seenBefore) { + // link previously seen before + // do hash-bucket changes instead of a re-route + processHashGroupChangeForLinkUp(routeChanges); + // clear out routesChanges so a re-route is not attempted + routeChanges = ImmutableSet.of(); + hashGroupsChanged = true; + } else { + // do hash-bucket changes first, method will return changed routes; + // for each route not changed it will perform a reroute + Set> changedRoutes = processHashGroupChangeForLinkUp(routeChanges); + Set> routeChangesTemp = getExpandedRoutes(routeChanges); + changedRoutes.forEach(routeChangesTemp::remove); + // if routesChanges is empty a re-route is not attempted + routeChanges = routeChangesTemp; + for (ArrayList route : routeChanges) { + log.debug("remaining routes Target -> Root"); + if (route.size() == 1) { + log.debug(" : all -> {}", route.get(0)); + } else { + log.debug(" : {} -> {}", route.get(0), route.get(1)); + } + } + // Mark hash groups as changed + if (!changedRoutes.isEmpty()) { + hashGroupsChanged = true; + } + } + } - // for a linkUp of a never-seen-before link - // let it fall through to a reroute of the routeChanges //deal with switchDown if (switchDown != null) { - processHashGroupChange(routeChanges, true, switchDown); + processHashGroupChangeForFailure(routeChanges, switchDown); // clear out routesChanges so a re-route is not attempted routeChanges = ImmutableSet.of(); hashGroupsChanged = true; @@ -515,7 +545,7 @@ public void populateRoutingRulesForLinkStatusChange(Link linkDown, Link linkUp, // link has gone down // Compare existing ECMP SPG only with the link that went down routeChanges = computeDamagedRoutes(linkDown); - processHashGroupChange(routeChanges, true, null); + processHashGroupChangeForFailure(routeChanges, null); // clear out routesChanges so a re-route is not attempted routeChanges = ImmutableSet.of(); hashGroupsChanged = true; @@ -537,6 +567,10 @@ public void populateRoutingRulesForLinkStatusChange(Link linkDown, Link linkUp, return; } + if (hashGroupsChanged) { + log.debug("Hash-groups changed for link status change"); + } + // reroute of routeChanges if (redoRouting(routeChanges, edgePairs, null)) { log.debug("populateRoutingRulesForLinkStatusChange: populationStatus is SUCCEEDED"); @@ -579,25 +613,10 @@ public void populateRoutingRulesForLinkStatusChange(Link linkDown, Link linkUp, private boolean redoRouting(Set> routeChanges, Set edgePairs, Set subnets) { // first make every entry two-elements - Set> changedRoutes = new HashSet<>(); - for (ArrayList route : routeChanges) { - if (route.size() == 1) { - DeviceId dstSw = route.get(0); - EcmpShortestPathGraph ec = updatedEcmpSpgMap.get(dstSw); - if (ec == null) { - log.warn("No graph found for {} .. aborting redoRouting", dstSw); - return false; - } - ec.getAllLearnedSwitchesAndVia().keySet().forEach(key -> { - ec.getAllLearnedSwitchesAndVia().get(key).keySet().forEach(target -> { - changedRoutes.add(Lists.newArrayList(target, dstSw)); - }); - }); - } else { - DeviceId targetSw = route.get(0); - DeviceId dstSw = route.get(1); - changedRoutes.add(Lists.newArrayList(targetSw, dstSw)); - } + Set> changedRoutes = getExpandedRoutes(routeChanges); + // no valid routes - fail fast + if (changedRoutes.isEmpty()) { + return false; } // now process changedRoutes according to edgePairs @@ -648,9 +667,8 @@ private boolean redoRouting(Set> routeChanges, * the path. * @return true if successful */ - private boolean redoRoutingEdgePairs(Set edgePairs, - Set subnets, - Set> changedRoutes) { + private boolean redoRoutingEdgePairs(Set edgePairs, Set subnets, + Set> changedRoutes) { for (EdgePair ep : edgePairs) { // temp store for a target's changedRoutes to this edge-pair Map>> targetRoutes = new HashMap<>(); @@ -683,100 +701,133 @@ private boolean redoRoutingEdgePairs(Set edgePairs, } // so now for this edgepair we have a per target set of routechanges // process target->edgePair route + List> futures = Lists.newArrayList(); for (Map.Entry>> entry : targetRoutes.entrySet()) { log.debug("* redoRoutingDstPair Target:{} -> edge-pair {}", entry.getKey(), ep); - DeviceId targetSw = entry.getKey(); - Map> perDstNextHops = new HashMap<>(); - entry.getValue().forEach(route -> { - Set nhops = getNextHops(route.get(0), route.get(1)); - log.debug("route: target {} -> dst {} found with next-hops {}", - route.get(0), route.get(1), nhops); - perDstNextHops.put(route.get(1), nhops); - }); + futures.add(routePopulators.submit(new RedoRoutingEdgePair(entry.getKey(), entry.getValue(), + subnets, ep))); + } + if (!checkJobs(futures)) { + return false; + } + // if it gets here it has succeeded for all targets to this edge-pair + } + return true; + } - List> batchedSubnetDev1, batchedSubnetDev2; - if (subnets != null) { - batchedSubnetDev1 = Lists.>newArrayList(Sets.newHashSet(subnets)); - batchedSubnetDev2 = Lists.>newArrayList(Sets.newHashSet(subnets)); - } else { - batchedSubnetDev1 = config.getBatchedSubnets(ep.dev1); - batchedSubnetDev2 = config.getBatchedSubnets(ep.dev2); - } - List> batchedSubnetBoth = Streams - .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.intersection(a, b)) - .filter(set -> !set.isEmpty()) - .collect(Collectors.toList()); - List> batchedSubnetDev1Only = Streams - .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.difference(a, b)) - .filter(set -> !set.isEmpty()) - .collect(Collectors.toList()); - List> batchedSubnetDev2Only = Streams - .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.difference(b, a)) - .filter(set -> !set.isEmpty()) - .collect(Collectors.toList()); - - Set nhDev1 = perDstNextHops.get(ep.dev1); - Set nhDev2 = perDstNextHops.get(ep.dev2); - - // handle routing to subnets common to edge-pair - // only if the targetSw is not part of the edge-pair and there - // exists a next hop to at least one of the devices in the edge-pair - if (!ep.includes(targetSw) - && ((nhDev1 != null && !nhDev1.isEmpty()) || (nhDev2 != null && !nhDev2.isEmpty()))) { - log.trace("getSubnets on both {} and {}: {}", ep.dev1, ep.dev2, batchedSubnetBoth); - for (Set prefixes : batchedSubnetBoth) { - if (!populateEcmpRoutingRulePartial( - targetSw, - ep.dev1, ep.dev2, - perDstNextHops, - prefixes)) { - return false; // abort everything and fail fast - } - } + private final class RedoRoutingEdgePair implements PickyCallable { + private DeviceId targetSw; + private Set> routes; + private Set subnets; + private EdgePair ep; + + /** + * Builds a RedoRoutingEdgePair task which provides a result. + * + * @param targetSw the target switch + * @param routes the changed routes + * @param subnets the subnets + * @param ep the edge pair + */ + RedoRoutingEdgePair(DeviceId targetSw, Set> routes, + Set subnets, EdgePair ep) { + this.targetSw = targetSw; + this.routes = routes; + this.subnets = subnets; + this.ep = ep; + } + @Override + public Boolean call() throws Exception { + return redoRoutingEdgePair(); + } + + @Override + public int hint() { + return targetSw.hashCode(); + } + + private boolean redoRoutingEdgePair() { + Map> perDstNextHops = new HashMap<>(); + routes.forEach(route -> { + Set nhops = getNextHops(route.get(0), route.get(1)); + log.debug("route: target {} -> dst {} found with next-hops {}", + route.get(0), route.get(1), nhops); + perDstNextHops.put(route.get(1), nhops); + }); + + List> batchedSubnetDev1, batchedSubnetDev2; + if (subnets != null) { + batchedSubnetDev1 = Lists.>newArrayList(Sets.newHashSet(subnets)); + batchedSubnetDev2 = Lists.>newArrayList(Sets.newHashSet(subnets)); + } else { + batchedSubnetDev1 = config.getBatchedSubnets(ep.dev1); + batchedSubnetDev2 = config.getBatchedSubnets(ep.dev2); + } + List> batchedSubnetBoth = Streams + .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.intersection(a, b)) + .filter(set -> !set.isEmpty()) + .collect(Collectors.toList()); + List> batchedSubnetDev1Only = Streams + .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.difference(a, b)) + .filter(set -> !set.isEmpty()) + .collect(Collectors.toList()); + List> batchedSubnetDev2Only = Streams + .zip(batchedSubnetDev1.stream(), batchedSubnetDev2.stream(), (a, b) -> Sets.difference(b, a)) + .filter(set -> !set.isEmpty()) + .collect(Collectors.toList()); + + Set nhDev1 = perDstNextHops.get(ep.dev1); + Set nhDev2 = perDstNextHops.get(ep.dev2); + + // handle routing to subnets common to edge-pair + // only if the targetSw is not part of the edge-pair and there + // exists a next hop to at least one of the devices in the edge-pair + if (!ep.includes(targetSw) + && ((nhDev1 != null && !nhDev1.isEmpty()) || (nhDev2 != null && !nhDev2.isEmpty()))) { + log.trace("getSubnets on both {} and {}: {}", ep.dev1, ep.dev2, batchedSubnetBoth); + for (Set prefixes : batchedSubnetBoth) { + if (!populateEcmpRoutingRulePartial(targetSw, ep.dev1, ep.dev2, + perDstNextHops, prefixes)) { + return false; // abort everything and fail fast + } } - // handle routing to subnets that only belong to dev1 only if - // a next-hop exists from the target to dev1 - if (!batchedSubnetDev1Only.isEmpty() && - batchedSubnetDev1Only.stream().anyMatch(subnet -> !subnet.isEmpty()) && - nhDev1 != null && !nhDev1.isEmpty()) { - Map> onlyDev1NextHops = new HashMap<>(); - onlyDev1NextHops.put(ep.dev1, nhDev1); - log.trace("getSubnets on {} only: {}", ep.dev1, batchedSubnetDev1Only); - for (Set prefixes : batchedSubnetDev1Only) { - if (!populateEcmpRoutingRulePartial( - targetSw, - ep.dev1, null, - onlyDev1NextHops, - prefixes)) { - return false; // abort everything and fail fast - } + + } + // handle routing to subnets that only belong to dev1 only if + // a next-hop exists from the target to dev1 + if (!batchedSubnetDev1Only.isEmpty() && + batchedSubnetDev1Only.stream().anyMatch(subnet -> !subnet.isEmpty()) && + nhDev1 != null && !nhDev1.isEmpty()) { + Map> onlyDev1NextHops = new HashMap<>(); + onlyDev1NextHops.put(ep.dev1, nhDev1); + log.trace("getSubnets on {} only: {}", ep.dev1, batchedSubnetDev1Only); + for (Set prefixes : batchedSubnetDev1Only) { + if (!populateEcmpRoutingRulePartial(targetSw, ep.dev1, null, + onlyDev1NextHops, prefixes)) { + return false; // abort everything and fail fast } } - // handle routing to subnets that only belong to dev2 only if - // a next-hop exists from the target to dev2 - if (!batchedSubnetDev2Only.isEmpty() && - batchedSubnetDev2Only.stream().anyMatch(subnet -> !subnet.isEmpty()) && - nhDev2 != null && !nhDev2.isEmpty()) { - Map> onlyDev2NextHops = new HashMap<>(); - onlyDev2NextHops.put(ep.dev2, nhDev2); - log.trace("getSubnets on {} only: {}", ep.dev2, batchedSubnetDev2Only); - for (Set prefixes : batchedSubnetDev2Only) { - if (!populateEcmpRoutingRulePartial( - targetSw, - ep.dev2, null, - onlyDev2NextHops, - prefixes)) { - return false; // abort everything and fail fast - } + } + // handle routing to subnets that only belong to dev2 only if + // a next-hop exists from the target to dev2 + if (!batchedSubnetDev2Only.isEmpty() && + batchedSubnetDev2Only.stream().anyMatch(subnet -> !subnet.isEmpty()) && + nhDev2 != null && !nhDev2.isEmpty()) { + Map> onlyDev2NextHops = new HashMap<>(); + onlyDev2NextHops.put(ep.dev2, nhDev2); + log.trace("getSubnets on {} only: {}", ep.dev2, batchedSubnetDev2Only); + for (Set prefixes : batchedSubnetDev2Only) { + if (!populateEcmpRoutingRulePartial(targetSw, ep.dev2, null, + onlyDev2NextHops, prefixes)) { + return false; // abort everything and fail fast } } } - // if it gets here it has succeeded for all targets to this edge-pair + return true; } - return true; } /** @@ -794,8 +845,7 @@ private boolean redoRoutingEdgePairs(Set edgePairs, * the path. * @return true if successful */ - private boolean redoRoutingIndividualDests(Set subnets, - Set> changedRoutes, + private boolean redoRoutingIndividualDests(Set subnets, Set> changedRoutes, Set updatedDevices) { // aggregate route-path changes for each dst device HashMap>> routesBydevice = @@ -810,28 +860,19 @@ private boolean redoRoutingIndividualDests(Set subnets, } deviceRoutes.add(route); } + // iterate over the impacted devices for (DeviceId impactedDstDevice : routesBydevice.keySet()) { ArrayList> deviceRoutes = routesBydevice.get(impactedDstDevice); + List> futures = Lists.newArrayList(); for (ArrayList route: deviceRoutes) { log.debug("* redoRoutingIndiDst Target: {} -> dst: {}", route.get(0), route.get(1)); - DeviceId targetSw = route.get(0); - DeviceId dstSw = route.get(1); // same as impactedDstDevice - Set nextHops = getNextHops(targetSw, dstSw); - if (nextHops.isEmpty()) { - log.debug("Could not find next hop from target:{} --> dst {} " - + "skipping this route", targetSw, dstSw); - continue; - } - Map> nhops = new HashMap<>(); - nhops.put(dstSw, nextHops); - if (!populateEcmpRoutingRulePartial(targetSw, dstSw, null, nhops, - (subnets == null) ? Sets.newHashSet() : subnets)) { - return false; // abort routing and fail fast - } - log.debug("Populating flow rules from target: {} to dst: {}" - + " is successful", targetSw, dstSw); + futures.add(routePopulators.submit(new RedoRoutingIndividualDest(subnets, route))); + } + // check the execution of each job + if (!checkJobs(futures)) { + return false; } //Only if all the flows for all impacted routes to a //specific target are pushed successfully, update the @@ -848,6 +889,49 @@ private boolean redoRoutingIndividualDests(Set subnets, return true; } + private final class RedoRoutingIndividualDest implements PickyCallable { + private DeviceId targetSw; + private ArrayList route; + private Set subnets; + + /** + * Builds a RedoRoutingIndividualDest task, which provides a result. + * + * @param subnets a set of prefixes + * @param route a route-path change + */ + RedoRoutingIndividualDest(Set subnets, ArrayList route) { + this.targetSw = route.get(0); + this.route = route; + this.subnets = subnets; + } + + @Override + public Boolean call() throws Exception { + DeviceId dstSw = route.get(1); // same as impactedDstDevice + Set nextHops = getNextHops(targetSw, dstSw); + if (nextHops.isEmpty()) { + log.debug("Could not find next hop from target:{} --> dst {} " + + "skipping this route", targetSw, dstSw); + return true; + } + Map> nhops = new HashMap<>(); + nhops.put(dstSw, nextHops); + if (!populateEcmpRoutingRulePartial(targetSw, dstSw, null, nhops, + (subnets == null) ? Sets.newHashSet() : subnets)) { + return false; // abort routing and fail fast + } + log.debug("Populating flow rules from target: {} to dst: {}" + + " is successful", targetSw, dstSw); + return true; + } + + @Override + public int hint() { + return targetSw.hashCode(); + } + } + /** * Populate ECMP rules for subnets from target to destination via nexthops. * @@ -859,11 +943,8 @@ private boolean redoRoutingIndividualDests(Set subnets, * @param subnets Subnets to be populated. If empty, populate all configured subnets. * @return true if it succeeds in populating rules */ // refactor - private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, - DeviceId destSw1, - DeviceId destSw2, - Map> nextHops, - Set subnets) { + private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, DeviceId destSw1, DeviceId destSw2, + Map> nextHops, Set subnets) { boolean result; // If both target switch and dest switch are edge routers, then set IP // rule for both subnet and router IP. @@ -922,9 +1003,7 @@ private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, // individual destinations, even if the dsts are part of edge-pairs. log.debug(". populateEcmpRoutingRulePartial in device{} towards {} for " + "all MPLS rules", targetSw, destSw1); - result = rulePopulator.populateMplsRule(targetSw, destSw1, - nextHops.get(destSw1), - dest1RouterIpv4); + result = rulePopulator.populateMplsRule(targetSw, destSw1, nextHops.get(destSw1), dest1RouterIpv4); if (!result) { return false; } @@ -937,8 +1016,7 @@ private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, log.warn(e.getMessage()); } if (v4sid != v6sid) { - result = rulePopulator.populateMplsRule(targetSw, destSw1, - nextHops.get(destSw1), + result = rulePopulator.populateMplsRule(targetSw, destSw1, nextHops.get(destSw1), dest1RouterIpv6); if (!result) { return false; @@ -953,9 +1031,7 @@ private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, log.debug(". populateEcmpRoutingRulePartial in device{} towards {} for " + "all MPLS rules", targetSw, destSw1); - result = rulePopulator.populateMplsRule(targetSw, destSw1, - nextHops.get(destSw1), - dest1RouterIpv4); + result = rulePopulator.populateMplsRule(targetSw, destSw1, nextHops.get(destSw1), dest1RouterIpv4); if (!result) { return false; } @@ -969,8 +1045,7 @@ private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, log.warn(e.getMessage()); } if (v4sid != v6sid) { - result = rulePopulator.populateMplsRule(targetSw, destSw1, - nextHops.get(destSw1), + result = rulePopulator.populateMplsRule(targetSw, destSw1, nextHops.get(destSw1), dest1RouterIpv6); if (!result) { return false; @@ -987,77 +1062,47 @@ private boolean populateEcmpRoutingRulePartial(DeviceId targetSw, } /** - * Processes a set a route-path changes by editing hash groups. + * Processes a set a route-path changes due to a switch/link failure by editing hash groups. * * @param routeChanges a set of route-path changes, where each route-path is * a list with its first element the src-switch of the path * and the second element the dst-switch of the path. - * @param linkOrSwitchFailed true if the route changes are for a failed - * switch or linkDown event * @param failedSwitch the switchId if the route changes are for a failed switch, * otherwise null */ - private void processHashGroupChange(Set> routeChanges, - boolean linkOrSwitchFailed, - DeviceId failedSwitch) { - Set> changedRoutes = new HashSet<>(); + private void processHashGroupChangeForFailure(Set> routeChanges, + DeviceId failedSwitch) { // first, ensure each routeChanges entry has two elements - for (ArrayList route : routeChanges) { - if (route.size() == 1) { - // route-path changes are from everyone else to this switch - DeviceId dstSw = route.get(0); - srManager.deviceService.getAvailableDevices().forEach(sw -> { - if (!sw.id().equals(dstSw)) { - changedRoutes.add(Lists.newArrayList(sw.id(), dstSw)); - } - }); - } else { - changedRoutes.add(route); - } - } + Set> changedRoutes = getAllExpandedRoutes(routeChanges); boolean someFailed = false; + boolean success; Set updatedDevices = Sets.newHashSet(); for (ArrayList route : changedRoutes) { DeviceId targetSw = route.get(0); DeviceId dstSw = route.get(1); - if (linkOrSwitchFailed) { - boolean success = fixHashGroupsForRoute(route, true); - // it's possible that we cannot fix hash groups for a route - // if the target switch has failed. Nevertheless the ecmp graph - // for the impacted switch must still be updated. - if (!success && failedSwitch != null && targetSw.equals(failedSwitch)) { - currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); - currentEcmpSpgMap.remove(targetSw); - log.debug("Updating ECMPspg for dst:{} removing failed switch " - + "target:{}", dstSw, targetSw); - updatedDevices.add(targetSw); - updatedDevices.add(dstSw); - continue; - } - //linkfailed - update both sides - if (success) { - currentEcmpSpgMap.put(targetSw, updatedEcmpSpgMap.get(targetSw)); - currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); - log.debug("Updating ECMPspg for dst:{} and target:{} for linkdown" - + " or switchdown", dstSw, targetSw); - updatedDevices.add(targetSw); - updatedDevices.add(dstSw); - } else { - someFailed = true; - } + success = fixHashGroupsForRoute(route, true); + // it's possible that we cannot fix hash groups for a route + // if the target switch has failed. Nevertheless the ecmp graph + // for the impacted switch must still be updated. + if (!success && failedSwitch != null && targetSw.equals(failedSwitch)) { + currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); + currentEcmpSpgMap.remove(targetSw); + log.debug("Updating ECMPspg for dst:{} removing failed switch " + + "target:{}", dstSw, targetSw); + updatedDevices.add(targetSw); + updatedDevices.add(dstSw); + continue; + } + //linkfailed - update both sides + if (success) { + currentEcmpSpgMap.put(targetSw, updatedEcmpSpgMap.get(targetSw)); + currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); + log.debug("Updating ECMPspg for dst:{} and target:{} for linkdown" + + " or switchdown", dstSw, targetSw); + updatedDevices.add(targetSw); + updatedDevices.add(dstSw); } else { - //linkup of seen before link - boolean success = fixHashGroupsForRoute(route, false); - if (success) { - currentEcmpSpgMap.put(targetSw, updatedEcmpSpgMap.get(targetSw)); - currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); - log.debug("Updating ECMPspg for target:{} and dst:{} for linkup", - targetSw, dstSw); - updatedDevices.add(targetSw); - updatedDevices.add(dstSw); - } else { - someFailed = true; - } + someFailed = true; } } if (!someFailed) { @@ -1071,6 +1116,52 @@ private void processHashGroupChange(Set> routeChanges, } } + /** + * Processes a set a route-path changes due to link up by editing hash groups. + * + * @param routeChanges a set of route-path changes, where each route-path is + * a list with its first element the src-switch of the path + * and the second element the dst-switch of the path. + * @return set of changed routes + */ + private Set> processHashGroupChangeForLinkUp(Set> routeChanges) { + // Stores changed routes + Set> doneRoutes = new HashSet<>(); + // first, ensure each routeChanges entry has two elements + Set> changedRoutes = getAllExpandedRoutes(routeChanges); + boolean someFailed = false; + boolean success; + Set updatedDevices = Sets.newHashSet(); + for (ArrayList route : changedRoutes) { + DeviceId targetSw = route.get(0); + DeviceId dstSw = route.get(1); + // linkup - fix (if possible) + success = fixHashGroupsForRoute(route, false); + if (success) { + currentEcmpSpgMap.put(targetSw, updatedEcmpSpgMap.get(targetSw)); + currentEcmpSpgMap.put(dstSw, updatedEcmpSpgMap.get(dstSw)); + log.debug("Updating ECMPspg for target:{} and dst:{} for linkup", + targetSw, dstSw); + updatedDevices.add(targetSw); + updatedDevices.add(dstSw); + doneRoutes.add(route); + } else { + someFailed = true; + } + + } + if (!someFailed) { + // here is where we update all devices not touched by this instance + updatedEcmpSpgMap.keySet().stream() + .filter(devId -> !updatedDevices.contains(devId)) + .forEach(devId -> { + currentEcmpSpgMap.put(devId, updatedEcmpSpgMap.get(devId)); + log.debug("Updating ECMPspg for remaining dev:{}", devId); + }); + } + return doneRoutes; + } + /** * Edits hash groups in the src-switch (targetSw) of a route-path by * calling the groupHandler to either add or remove buckets in an existing @@ -1140,14 +1231,43 @@ public void startPopulationProcess() { * @return true if succeed */ protected boolean revokeSubnet(Set subnets) { - statusLock.lock(); - try { - return Sets.newHashSet(srManager.deviceService.getAvailableDevices()).stream() - .map(Device::id) - .filter(this::shouldProgram) - .allMatch(targetSw -> srManager.routingRulePopulator.revokeIpRuleForSubnet(targetSw, subnets)); - } finally { - statusLock.unlock(); + DeviceId targetSw; + List> futures = Lists.newArrayList(); + for (Device sw : srManager.deviceService.getAvailableDevices()) { + targetSw = sw.id(); + if (shouldProgram(targetSw)) { + futures.add(routePopulators.submit(new RevokeSubnet(targetSw, subnets))); + } else { + futures.add(CompletableFuture.completedFuture(true)); + } + } + // check the execution of each job + return checkJobs(futures); + } + + private final class RevokeSubnet implements PickyCallable { + private DeviceId targetSw; + private Set subnets; + + /** + * Builds a RevokeSubnet task, which provides a result. + * + * @param subnets a set of prefixes + * @param targetSw target switch + */ + RevokeSubnet(DeviceId targetSw, Set subnets) { + this.targetSw = targetSw; + this.subnets = subnets; + } + + @Override + public Boolean call() throws Exception { + return srManager.routingRulePopulator.revokeIpRuleForSubnet(targetSw, subnets); + } + + @Override + public int hint() { + return targetSw.hashCode(); } } @@ -1607,6 +1727,56 @@ private Set> computeRouteChange(DeviceId failedSwitch) { return changedRoutes; } + // Utility method to expands the route changes in two elements array using + // the ECMP graph. Caller represents all to dst switch routes with an + // array containing only the dst switch. + private Set> getExpandedRoutes(Set> routeChanges) { + Set> changedRoutes = new HashSet<>(); + // Ensure each routeChanges entry has two elements + for (ArrayList route : routeChanges) { + if (route.size() == 1) { + DeviceId dstSw = route.get(0); + EcmpShortestPathGraph ec = updatedEcmpSpgMap.get(dstSw); + if (ec == null) { + log.warn("No graph found for {} .. aborting redoRouting", dstSw); + return Collections.emptySet(); + } + ec.getAllLearnedSwitchesAndVia().keySet().forEach(key -> { + ec.getAllLearnedSwitchesAndVia().get(key).keySet().forEach(target -> { + changedRoutes.add(Lists.newArrayList(target, dstSw)); + }); + }); + } else { + DeviceId targetSw = route.get(0); + DeviceId dstSw = route.get(1); + changedRoutes.add(Lists.newArrayList(targetSw, dstSw)); + } + } + return changedRoutes; + } + + // Utility method to expands the route changes in two elements array using + // the available devices. Caller represents all to dst switch routes with an + // array containing only the dst switch. + private Set> getAllExpandedRoutes(Set> routeChanges) { + Set> changedRoutes = new HashSet<>(); + // Ensure each routeChanges entry has two elements + for (ArrayList route : routeChanges) { + if (route.size() == 1) { + // route-path changes are from everyone else to this switch + DeviceId dstSw = route.get(0); + srManager.deviceService.getAvailableDevices().forEach(sw -> { + if (!sw.id().equals(dstSw)) { + changedRoutes.add(Lists.newArrayList(sw.id(), dstSw)); + } + }); + } else { + changedRoutes.add(route); + } + } + return changedRoutes; + } + /** * For the root switch, searches all the target nodes reachable in the base * graph, and compares paths to the ones in the comp graph. @@ -1930,4 +2100,24 @@ public void run() { prevRun = (thisRun == null) ? prevRun : thisRun; } } + + // Check jobs completion. It returns false if one of the job fails + // and cancel the remaining + private boolean checkJobs(List> futures) { + boolean completed = true; + for (Future future : futures) { + try { + if (completed) { + if (!future.get()) { + completed = false; + } + } else { + future.cancel(true); + } + } catch (InterruptedException | ExecutionException e) { + completed = false; + } + } + return completed; + } } diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java index 14df6227a33..c62e395d43f 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java @@ -21,6 +21,7 @@ import org.onlab.packet.IpPrefix; import org.onlab.packet.MacAddress; import org.onlab.packet.VlanId; +import org.onlab.util.PredictableExecutor; import org.onosproject.net.ConnectPoint; import org.onosproject.net.DeviceId; import org.onosproject.net.Host; @@ -40,6 +41,7 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; +import static org.onlab.util.Tools.groupedThreads; /** * Handles host-related events. @@ -49,6 +51,9 @@ public class HostHandler { protected final SegmentRoutingManager srManager; private HostService hostService; + // Host workers - 0 will leverage available processors + private static final int DEFAULT_THREADS = 0; + protected PredictableExecutor hostWorkers; /** * Constructs the HostHandler. @@ -58,19 +63,36 @@ public class HostHandler { HostHandler(SegmentRoutingManager srManager) { this.srManager = srManager; hostService = srManager.hostService; + this.hostWorkers = new PredictableExecutor(DEFAULT_THREADS, + groupedThreads("onos/sr", "h-worker-%d", log)); + } + + /** + * Shutdowns the workers. + */ + void terminate() { + hostWorkers.shutdown(); } protected void init(DeviceId devId) { - hostService.getHosts().forEach(host -> - host.locations().stream() - .filter(location -> location.deviceId().equals(devId) || - location.deviceId().equals(srManager.getPairDeviceId(devId).orElse(null))) - .forEach(location -> processHostAddedAtLocation(host, location)) + // Init hosts in parallel using hostWorkers executor + hostService.getHosts().forEach( + host -> hostWorkers.execute(() -> initHost(host, devId), host.id().hashCode()) ); } + private void initHost(Host host, DeviceId deviceId) { + host.locations().forEach(location -> { + if (location.deviceId().equals(deviceId) || + location.deviceId().equals(srManager.getPairDeviceId(deviceId).orElse(null))) { + processHostAddedAtLocation(host, location); + } + }); + } + void processHostAddedEvent(HostEvent event) { - processHostAdded(event.subject()); + Host host = event.subject(); + hostWorkers.execute(() -> processHostAdded(host), host.id().hashCode()); } private void processHostAdded(Host host) { @@ -141,7 +163,8 @@ void processHostAddedAtLocation(Host host, HostLocation location) { } void processHostRemovedEvent(HostEvent event) { - processHostRemoved(event.subject()); + Host host = event.subject(); + hostWorkers.execute(() -> processHostRemoved(host), host.id().hashCode()); } private void processHostRemoved(Host host) { @@ -195,6 +218,11 @@ private void processHostRemoved(Host host) { } void processHostMovedEvent(HostEvent event) { + Host host = event.subject(); + hostWorkers.execute(() -> processHostMovedEventInternal(event), host.id().hashCode()); + } + + private void processHostMovedEventInternal(HostEvent event) { Host host = event.subject(); MacAddress hostMac = host.mac(); VlanId hostVlanId = host.vlan(); @@ -348,6 +376,11 @@ void processHostMovedEvent(HostEvent event) { } void processHostUpdatedEvent(HostEvent event) { + Host host = event.subject(); + hostWorkers.execute(() -> processHostUpdatedEventInternal(event), host.id().hashCode()); + } + + private void processHostUpdatedEventInternal(HostEvent event) { Host host = event.subject(); MacAddress hostMac = host.mac(); VlanId hostVlanId = host.vlan(); @@ -424,10 +457,15 @@ void processPortUp(ConnectPoint cp) { } if (srManager.activeProbing) { srManager.getPairDeviceId(cp.deviceId()) - .ifPresent(pairDeviceId -> srManager.hostService.getConnectedHosts(pairDeviceId).stream() - .filter(host -> isHostInVlanOfPort(host, pairDeviceId, cp)) - .forEach(host -> srManager.probingService.probeHost(host, cp, ProbeMode.DISCOVER)) - ); + .ifPresent(pairDeviceId -> srManager.hostService.getConnectedHosts(pairDeviceId).forEach( + host -> hostWorkers.execute(() -> probingIfNecessary(host, pairDeviceId, cp), + host.id().hashCode()))); + } + } + + private void probingIfNecessary(Host host, DeviceId pairDeviceId, ConnectPoint cp) { + if (isHostInVlanOfPort(host, pairDeviceId, cp)) { + srManager.probingService.probeHost(host, cp, ProbeMode.DISCOVER); } } @@ -637,7 +675,7 @@ VlanId vlanForPairPort(VlanId hostVlanId, ConnectPoint location) { * @param install true to populate the objective, false to revoke */ void processIntfVlanUpdatedEvent(DeviceId deviceId, PortNumber portNum, VlanId vlanId, - boolean popVlan, boolean install) { + boolean popVlan, boolean install) { ConnectPoint connectPoint = new ConnectPoint(deviceId, portNum); Set hosts = hostService.getConnectedHosts(connectPoint); @@ -646,22 +684,25 @@ void processIntfVlanUpdatedEvent(DeviceId deviceId, PortNumber portNum, VlanId v return; } - hosts.forEach(host -> { - MacAddress mac = host.mac(); - VlanId hostVlanId = host.vlan(); - - // Check whether the host vlan is valid for new interface configuration - if ((!popVlan && hostVlanId.equals(vlanId)) || - (popVlan && hostVlanId.equals(VlanId.NONE))) { - srManager.defaultRoutingHandler.updateBridging(deviceId, portNum, mac, vlanId, popVlan, install); - // Update Forwarding objective and corresponding simple Next objective - // for each host and IP address connected to given port - host.ipAddresses().forEach(ipAddress -> - srManager.defaultRoutingHandler.updateFwdObj(deviceId, portNum, ipAddress.toIpPrefix(), - mac, vlanId, popVlan, install) - ); - } - }); + hosts.forEach(host -> hostWorkers.execute(() -> processIntfVlanUpdatedEventInternal( + host, deviceId, portNum, vlanId, popVlan, install), host.id().hashCode())); + } + + private void processIntfVlanUpdatedEventInternal(Host host, DeviceId deviceId, PortNumber portNum, + VlanId vlanId, boolean popVlan, boolean install) { + MacAddress mac = host.mac(); + VlanId hostVlanId = host.vlan(); + + // Check whether the host vlan is valid for new interface configuration + if ((!popVlan && hostVlanId.equals(vlanId)) || + (popVlan && hostVlanId.equals(VlanId.NONE))) { + srManager.defaultRoutingHandler.updateBridging(deviceId, portNum, mac, vlanId, popVlan, install); + // Update Forwarding objective and corresponding simple Next objective + // for each host and IP address connected to given port + host.ipAddresses().forEach(ipAddress -> srManager.defaultRoutingHandler.updateFwdObj( + deviceId, portNum, ipAddress.toIpPrefix(), mac, vlanId, popVlan, install) + ); + } } /** @@ -680,18 +721,23 @@ void processIntfIpUpdatedEvent(ConnectPoint cp, Set ipPrefixSet, boole } // Check whether the host IP address is in the interface's subnet - hosts.forEach(host -> - host.ipAddresses().forEach(hostIpAddress -> { - ipPrefixSet.forEach(ipPrefix -> { - if (install && ipPrefix.contains(hostIpAddress)) { - srManager.defaultRoutingHandler.populateRoute(cp.deviceId(), hostIpAddress.toIpPrefix(), - host.mac(), host.vlan(), cp.port(), true); - } else if (!install && ipPrefix.contains(hostIpAddress)) { - srManager.defaultRoutingHandler.revokeRoute(cp.deviceId(), hostIpAddress.toIpPrefix(), - host.mac(), host.vlan(), cp.port(), true); - } - }); - })); + hosts.forEach(host -> hostWorkers.execute(() -> processIntfIpUpdatedEventInternal( + host, cp, ipPrefixSet, install))); + } + + private void processIntfIpUpdatedEventInternal(Host host, ConnectPoint cp, Set ipPrefixSet, + boolean install) { + host.ipAddresses().forEach(hostIpAddress -> { + ipPrefixSet.forEach(ipPrefix -> { + if (install && ipPrefix.contains(hostIpAddress)) { + srManager.defaultRoutingHandler.populateRoute(cp.deviceId(), hostIpAddress.toIpPrefix(), + host.mac(), host.vlan(), cp.port(), true); + } else if (!install && ipPrefix.contains(hostIpAddress)) { + srManager.defaultRoutingHandler.revokeRoute(cp.deviceId(), hostIpAddress.toIpPrefix(), + host.mac(), host.vlan(), cp.port(), true); + } + }); + }); } /** diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java index e7c92030ee5..fc3dd17bfc0 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java @@ -44,8 +44,10 @@ import java.nio.ByteBuffer; import java.util.Arrays; +import java.util.Objects; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; /** * Handler of ICMP packets that responses or forwards ICMP packets that @@ -69,49 +71,94 @@ public IcmpHandler(SegmentRoutingManager srManager) { * * @param outport the output port * @param payload the packet to send - * @param sid the segment id + * @param destSid the segment id of the dest device * @param destIpAddress the destination ip address * @param allowedHops the hop limit/ttl */ private void sendPacketOut(ConnectPoint outport, Ethernet payload, - int sid, + int destSid, IpAddress destIpAddress, byte allowedHops) { - int destSid; - if (destIpAddress.isIp4()) { - destSid = config.getIPv4SegmentId(payload.getDestinationMAC()); - } else { - destSid = config.getIPv6SegmentId(payload.getDestinationMAC()); + int origSid; + try { + if (destIpAddress.isIp4()) { + origSid = config.getIPv4SegmentId(outport.deviceId()); + } else { + origSid = config.getIPv6SegmentId(outport.deviceId()); + } + } catch (DeviceConfigNotFoundException e) { + log.warn(e.getMessage() + " Aborting sendPacketOut"); + return; } - if (sid == -1 || destSid == sid || - config.inSameSubnet(outport.deviceId(), destIpAddress)) { + if (destSid == -1 || origSid == destSid || + srManager.interfaceService.isConfigured(outport)) { TrafficTreatment treatment = DefaultTrafficTreatment.builder(). setOutput(outport.port()).build(); OutboundPacket packet = new DefaultOutboundPacket(outport.deviceId(), treatment, ByteBuffer.wrap(payload.serialize())); + log.trace("Sending packet {} to {}", payload, outport); srManager.packetService.emit(packet); } else { - log.trace("Send a MPLS packet as a ICMP response"); TrafficTreatment treatment = DefaultTrafficTreatment.builder() .setOutput(outport.port()) .build(); payload.setEtherType(Ethernet.MPLS_UNICAST); MPLS mplsPkt = new MPLS(); - mplsPkt.setLabel(sid); + mplsPkt.setLabel(destSid); mplsPkt.setTtl(allowedHops); mplsPkt.setPayload(payload.getPayload()); payload.setPayload(mplsPkt); - OutboundPacket packet = new DefaultOutboundPacket(outport.deviceId(), treatment, ByteBuffer.wrap(payload.serialize())); - + log.trace("Sending packet {} to {}", payload, outport); srManager.packetService.emit(packet); } } + private IpAddress selectRouterIpAddress(IpAddress destIpAddress, ConnectPoint outPort, + Set connectPoints) { + IpAddress routerIpAddress; + // Let's get first the online connect points + Set onlineCps = connectPoints.stream() + .filter(connectPoint -> srManager.deviceService.isAvailable(connectPoint.deviceId())) + .collect(Collectors.toSet()); + // Check if ping is local + if (onlineCps.contains(outPort)) { + routerIpAddress = config.getRouterIpAddress(destIpAddress, outPort.deviceId()); + log.trace("Local ping received from {} - send to {}", destIpAddress, routerIpAddress); + return routerIpAddress; + } + // Check if it comes from a remote device. Loopbacks are sorted comparing byte by byte + // FIXME if we lose both links from the chosen leaf to spine - ping will fail + routerIpAddress = onlineCps.stream() + .filter(onlineCp -> !onlineCp.deviceId().equals(outPort.deviceId())) + .map(selectedCp -> config.getRouterIpAddress(destIpAddress, selectedCp.deviceId())) + .filter(Objects::nonNull) + .sorted() + .findFirst().orElse(null); + if (routerIpAddress != null) { + log.trace("Remote ping received from {} - send to {}", destIpAddress, routerIpAddress); + } else { + log.warn("Not found a valid loopback for ping coming from {} - {}", destIpAddress, outPort); + } + return routerIpAddress; + } + + private Ip4Address selectRouterIp4Address(IpAddress destIpAddress, ConnectPoint outPort, + Set connectPoints) { + IpAddress routerIpAddress = selectRouterIpAddress(destIpAddress, outPort, connectPoints); + return routerIpAddress != null ? routerIpAddress.getIp4Address() : null; + } + + private Ip6Address selectRouterIp6Address(IpAddress destIpAddress, ConnectPoint outPort, + Set connectPoints) { + IpAddress routerIpAddress = selectRouterIpAddress(destIpAddress, outPort, connectPoints); + return routerIpAddress != null ? routerIpAddress.getIp6Address() : null; + } + ////////////////////////////////////// // ICMP Echo/Reply Protocol // ////////////////////////////////////// @@ -127,25 +174,40 @@ private void sendPacketOut(ConnectPoint outport, public void processIcmp(Ethernet eth, ConnectPoint inPort) { DeviceId deviceId = inPort.deviceId(); IPv4 ipv4Packet = (IPv4) eth.getPayload(); + ICMP icmp = (ICMP) ipv4Packet.getPayload(); Ip4Address destinationAddress = Ip4Address.valueOf(ipv4Packet.getDestinationAddress()); Set gatewayIpAddresses = config.getPortIPs(deviceId); IpAddress routerIp; + + // Only proceed with echo request + if (icmp.getIcmpType() != ICMP.TYPE_ECHO_REQUEST) { + return; + } + try { routerIp = config.getRouterIpv4(deviceId); } catch (DeviceConfigNotFoundException e) { log.warn(e.getMessage() + " Aborting processPacketIn."); return; } + + // Get pair ip - if it exists + IpAddress pairRouterIp; + try { + DeviceId pairDeviceId = config.getPairDeviceId(deviceId); + pairRouterIp = pairDeviceId != null ? config.getRouterIpv4(pairDeviceId) : null; + } catch (DeviceConfigNotFoundException e) { + pairRouterIp = null; + } + // ICMP to the router IP or gateway IP - if (((ICMP) ipv4Packet.getPayload()).getIcmpType() == ICMP.TYPE_ECHO_REQUEST && - (destinationAddress.equals(routerIp.getIp4Address()) || - gatewayIpAddresses.contains(destinationAddress))) { + if (destinationAddress.equals(routerIp.getIp4Address()) || + (pairRouterIp != null && destinationAddress.equals(pairRouterIp.getIp4Address())) || + gatewayIpAddresses.contains(destinationAddress)) { sendIcmpResponse(eth, inPort); } else { log.trace("Ignore ICMP that targets for {}", destinationAddress); } - // We remove the packet from the queue - srManager.ipHandler.dequeuePacket(ipv4Packet, destinationAddress); } /** @@ -159,7 +221,11 @@ private void sendIcmpResponse(Ethernet icmpRequest, ConnectPoint outport) { IPv4 icmpRequestIpv4 = (IPv4) icmpRequest.getPayload(); IPv4 icmpReplyIpv4 = (IPv4) icmpReplyEth.getPayload(); Ip4Address destIpAddress = Ip4Address.valueOf(icmpRequestIpv4.getSourceAddress()); - Ip4Address destRouterAddress = config.getRouterIpAddressForASubnetHost(destIpAddress); + + // Get the available connect points + Set destConnectPoints = config.getConnectPointsForASubnetHost(destIpAddress); + // Select a router + Ip4Address destRouterAddress = selectRouterIp4Address(destIpAddress, outport, destConnectPoints); // Note: Source IP of the ICMP request doesn't belong to any configured subnet. // The source might be an indirectly attached host (e.g. behind a router) @@ -215,18 +281,29 @@ public void processIcmpv6(Ethernet eth, ConnectPoint inPort) { try { routerIp = config.getRouterIpv6(deviceId); + } catch (DeviceConfigNotFoundException e) { + log.warn(e.getMessage() + " Aborting processPacketIn."); + return; + } - Optional linkLocalIp = getLinkLocalIp(inPort); - // Ensure ICMP to the router IP, EUI-64 link-local IP, or gateway IP - if (destinationAddress.equals(routerIp.getIp6Address()) || - (linkLocalIp.isPresent() && destinationAddress.equals(linkLocalIp.get())) || - gatewayIpAddresses.contains(destinationAddress)) { - sendIcmpv6Response(eth, inPort); - } else { - log.trace("Ignore ICMPv6 that targets for {}", destinationAddress); - } + // Get pair ip - if it exists + IpAddress pairRouterIp; + try { + DeviceId pairDeviceId = config.getPairDeviceId(deviceId); + pairRouterIp = pairDeviceId != null ? config.getRouterIpv6(pairDeviceId) : null; } catch (DeviceConfigNotFoundException e) { - log.warn(e.getMessage() + " Ignore ICMPv6 that targets to {}.", destinationAddress); + pairRouterIp = null; + } + + Optional linkLocalIp = getLinkLocalIp(inPort); + // Ensure ICMP to the router IP, EUI-64 link-local IP, or gateway IP + if (destinationAddress.equals(routerIp.getIp6Address()) || + (linkLocalIp.isPresent() && destinationAddress.equals(linkLocalIp.get())) || + (pairRouterIp != null && destinationAddress.equals(pairRouterIp.getIp6Address())) || + gatewayIpAddresses.contains(destinationAddress)) { + sendIcmpv6Response(eth, inPort); + } else { + log.trace("Ignore ICMPv6 that targets for {}", destinationAddress); } } @@ -237,7 +314,7 @@ public void processIcmpv6(Ethernet eth, ConnectPoint inPort) { * @param outport the output port where the ICMP reply should be sent to */ private void sendIcmpv6Response(Ethernet ethRequest, ConnectPoint outport) { - int sid = -1; + int destSid = -1; Ethernet ethReply = ICMP6.buildIcmp6Reply(ethRequest); IPv6 icmpRequestIpv6 = (IPv6) ethRequest.getPayload(); IPv6 icmpReplyIpv6 = (IPv6) ethRequest.getPayload(); @@ -246,14 +323,18 @@ private void sendIcmpv6Response(Ethernet ethRequest, ConnectPoint outport) { // Destination IP of the echo "reply" Ip6Address destIpAddress = Ip6Address.valueOf(icmpRequestIpv6.getSourceAddress()); Optional linkLocalIp = getLinkLocalIp(outport); - Ip6Address destRouterAddress = config.getRouterIpAddressForASubnetHost(destIpAddress); // Fast path if the echo request targets the link-local address of switch interface if (linkLocalIp.isPresent() && srcIpAddress.equals(linkLocalIp.get())) { - sendPacketOut(outport, ethReply, sid, destIpAddress, icmpReplyIpv6.getHopLimit()); + sendPacketOut(outport, ethReply, destSid, destIpAddress, icmpReplyIpv6.getHopLimit()); return; } + // Get the available connect points + Set destConnectPoints = config.getConnectPointsForASubnetHost(destIpAddress); + // Select a router + Ip6Address destRouterAddress = selectRouterIp6Address(destIpAddress, outport, destConnectPoints); + // Note: Source IP of the ICMP request doesn't belong to any configured subnet. // The source might be an indirect host behind a router. // Lookup the route store for the nexthop instead. @@ -272,16 +353,13 @@ private void sendIcmpv6Response(Ethernet ethRequest, ConnectPoint outport) { } } - // Search SID only if store lookup is success otherwise proceed with "sid=-1" - if (destRouterAddress != null) { - sid = config.getIPv6SegmentId(destRouterAddress); - if (sid < 0) { - log.warn("Failed to lookup SID of the switch that {} attaches to. " + - "Unable to process ICMPv6 request.", destIpAddress); - return; - } + destSid = config.getIPv6SegmentId(destRouterAddress); + if (destSid < 0) { + log.warn("Failed to lookup SID of the switch that {} attaches to. " + + "Unable to process ICMPv6 request.", destIpAddress); + return; } - sendPacketOut(outport, ethReply, sid, destIpAddress, icmpReplyIpv6.getHopLimit()); + sendPacketOut(outport, ethReply, destSid, destIpAddress, icmpReplyIpv6.getHopLimit()); } /////////////////////////////////////////// diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java index 2bc5b30d953..f19b68c0ed2 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java @@ -505,10 +505,11 @@ boolean populateIpRuleForSubnet(DeviceId targetSw, Set subnets, // Route simplification will be off in case of the nexthop location at target switch is down // (routing through spine case) boolean routeSimplOff = pairDev.isPresent() && pairDev.get().equals(destSw1) && destSw2 == null; - // Iterates over the routes + // Iterates over the routes. Checking: // If route simplification is enabled // If the target device is another leaf in the network if (srManager.routeSimplification && !routeSimplOff) { + Set subnetsToBePopulated = Sets.newHashSet(); for (IpPrefix subnet : subnets) { // Skip route programming on the target device // If route simplification applies @@ -519,19 +520,12 @@ boolean populateIpRuleForSubnet(DeviceId targetSw, Set subnets, continue; } // populate the route in the remaning scenarios - if (!populateIpRuleForRouter(targetSw, subnet, destSw1, destSw2, nextHops)) { - return false; - } - } - } else { - // Populate IP flow rules for all the subnets. - for (IpPrefix subnet : subnets) { - if (!populateIpRuleForRouter(targetSw, subnet, destSw1, destSw2, nextHops)) { - return false; - } + subnetsToBePopulated.add(subnet); } + subnets = subnetsToBePopulated; } - return true; + // populate the remaining routes in the target switch + return populateIpRulesForRouter(targetSw, subnets, destSw1, destSw2, nextHops); } /** @@ -551,11 +545,11 @@ boolean revokeIpRuleForSubnet(DeviceId targetSw, Set subnets) { } /** - * Populates IP flow rules for an IP prefix in the target device. The prefix - * is reachable via destination device(s). + * Populates IP flow rules for a set of IP prefix in the target device. + * The prefix are reachable via destination device(s). * * @param targetSw target device ID to set the rules - * @param ipPrefix the IP prefix + * @param subnets the set of IP prefix * @param destSw1 destination switch where the prefixes are reachable * @param destSw2 paired destination switch if one exists for the subnets/prefixes. * Should be null if there is no paired destination switch (by config) @@ -566,98 +560,112 @@ boolean revokeIpRuleForSubnet(DeviceId targetSw, Set subnets) { * should not be an entry for destSw2 in this map. * @return true if all rules are set successfully, false otherwise */ - private boolean populateIpRuleForRouter(DeviceId targetSw, - IpPrefix ipPrefix, DeviceId destSw1, - DeviceId destSw2, - Map> nextHops) { - int segmentId1, segmentId2 = -1; + private boolean populateIpRulesForRouter(DeviceId targetSw, + Set subnets, + DeviceId destSw1, DeviceId destSw2, + Map> nextHops) { + // pre-compute the needed information + int segmentIdIPv41, segmentIdIPv42 = -1; + int segmentIdIPv61, segmentIdIPv62 = -1; + TrafficTreatment treatment = null; + DestinationSet dsIPv4, dsIPv6; + TrafficSelector metaIpv4Selector, metaIpv6Selector = null; + int nextIdIPv4, nextIdIPv6, nextId; + TrafficSelector selector; + // start with MPLS SIDs try { - if (ipPrefix.isIp4()) { - segmentId1 = config.getIPv4SegmentId(destSw1); - if (destSw2 != null) { - segmentId2 = config.getIPv4SegmentId(destSw2); - } - } else { - segmentId1 = config.getIPv6SegmentId(destSw1); - if (destSw2 != null) { - segmentId2 = config.getIPv6SegmentId(destSw2); - } + segmentIdIPv41 = config.getIPv4SegmentId(destSw1); + segmentIdIPv61 = config.getIPv6SegmentId(destSw1); + if (destSw2 != null) { + segmentIdIPv42 = config.getIPv4SegmentId(destSw2); + segmentIdIPv62 = config.getIPv6SegmentId(destSw2); } } catch (DeviceConfigNotFoundException e) { log.warn(e.getMessage() + " Aborting populateIpRuleForRouter."); return false; } - - TrafficSelector.Builder sbuilder = buildIpSelectorFromIpPrefix(ipPrefix); - TrafficSelector selector = sbuilder.build(); - - TrafficTreatment.Builder tbuilder = DefaultTrafficTreatment.builder(); - DestinationSet ds; - TrafficTreatment treatment; - DestinationSet.DestinationSetType dsType; - + // build the IPv4 and IPv6 destination set if (destSw2 == null) { // single dst - create destination set based on next-hop // If the next hop is the same as the final destination, then MPLS // label is not set. Set nhd1 = nextHops.get(destSw1); if (nhd1.size() == 1 && nhd1.iterator().next().equals(destSw1)) { - tbuilder.immediate().decNwTtl(); - ds = DestinationSet.createTypePushNone(destSw1); - treatment = tbuilder.build(); + dsIPv4 = DestinationSet.createTypePushNone(destSw1); + dsIPv6 = DestinationSet.createTypePushNone(destSw1); + treatment = DefaultTrafficTreatment.builder() + .immediate() + .decNwTtl() + .build(); } else { - ds = DestinationSet.createTypePushBos(segmentId1, destSw1); - treatment = null; + dsIPv4 = DestinationSet.createTypePushBos(segmentIdIPv41, destSw1); + dsIPv6 = DestinationSet.createTypePushBos(segmentIdIPv61, destSw1); } } else { // dst pair - IP rules for dst-pairs are always from other edge nodes // the destination set needs to have both destinations, even if there // are no next hops to one of them - ds = DestinationSet.createTypePushBos(segmentId1, destSw1, segmentId2, destSw2); - treatment = null; + dsIPv4 = DestinationSet.createTypePushBos(segmentIdIPv41, destSw1, segmentIdIPv42, destSw2); + dsIPv6 = DestinationSet.createTypePushBos(segmentIdIPv61, destSw1, segmentIdIPv62, destSw2); } // setup metadata to pass to nextObjective - indicate the vlan on egress // if needed by the switch pipeline. Since neighbor sets are always to // other neighboring routers, there is no subnet assigned on those ports. - TrafficSelector.Builder metabuilder = DefaultTrafficSelector.builder(selector); - metabuilder.matchVlanId(srManager.getDefaultInternalVlan()); + metaIpv4Selector = buildIpv4Selector() + .matchVlanId(srManager.getDefaultInternalVlan()) + .build(); + metaIpv6Selector = buildIpv6Selector() + .matchVlanId(srManager.getDefaultInternalVlan()) + .build(); + // get the group handler of the target switch DefaultGroupHandler grpHandler = srManager.getGroupHandler(targetSw); if (grpHandler == null) { log.warn("populateIPRuleForRouter: groupHandler for device {} " - + "not found", targetSw); + + "not found", targetSw); return false; } - - int nextId = grpHandler.getNextObjectiveId(ds, nextHops, - metabuilder.build(), false); - if (nextId <= 0) { - log.warn("No next objective in {} for ds: {}", targetSw, ds); + // get next id + nextIdIPv4 = grpHandler.getNextObjectiveId(dsIPv4, nextHops, metaIpv4Selector, false); + if (nextIdIPv4 <= 0) { + log.warn("No next objective in {} for ds: {}", targetSw, dsIPv4); return false; } - - ForwardingObjective.Builder fwdBuilder = DefaultForwardingObjective - .builder() - .fromApp(srManager.appId) - .makePermanent() - .nextStep(nextId) - .withSelector(selector) - .withPriority(getPriorityFromPrefix(ipPrefix)) - .withFlag(ForwardingObjective.Flag.SPECIFIC); - if (treatment != null) { - fwdBuilder.withTreatment(treatment); + nextIdIPv6 = grpHandler.getNextObjectiveId(dsIPv6, nextHops, metaIpv6Selector, false); + if (nextIdIPv6 <= 0) { + log.warn("No next objective in {} for ds: {}", targetSw, dsIPv6); + return false; } - log.debug("Installing IPv4 forwarding objective for router IP/subnet {} " - + "in switch {} with nextId: {}", ipPrefix, targetSw, nextId); - ObjectiveContext context = new DefaultObjectiveContext( - (objective) -> log.debug("IP rule for router {} populated in dev:{}", - ipPrefix, targetSw), - (objective, error) -> - log.warn("Failed to populate IP rule for router {}: {} in dev:{}", - ipPrefix, error, targetSw)); - srManager.flowObjectiveService.forward(targetSw, fwdBuilder.add(context)); - rulePopulationCounter.incrementAndGet(); - + // build all the flow rules and send to the device + for (IpPrefix subnet : subnets) { + selector = buildIpSelectorFromIpPrefix(subnet).build(); + if (subnet.isIp4()) { + nextId = nextIdIPv4; + } else { + nextId = nextIdIPv6; + } + ForwardingObjective.Builder fwdBuilder = DefaultForwardingObjective + .builder() + .fromApp(srManager.appId) + .makePermanent() + .nextStep(nextId) + .withSelector(selector) + .withPriority(getPriorityFromPrefix(subnet)) + .withFlag(ForwardingObjective.Flag.SPECIFIC); + if (treatment != null) { + fwdBuilder.withTreatment(treatment); + } + log.debug("Installing {} forwarding objective for router IP/subnet {} " + + "in switch {} with nextId: {}", subnet.isIp4() ? "IPv4" : "IPv6", + subnet, targetSw, nextId); + ObjectiveContext context = new DefaultObjectiveContext( + (objective) -> log.debug("IP rule for router {} populated in dev:{}", + subnet, targetSw), + (objective, error) -> log.warn("Failed to populate IP rule for router {}: {} in dev:{}", + subnet, error, targetSw)); + srManager.flowObjectiveService.forward(targetSw, fwdBuilder.add(context)); + } + rulePopulationCounter.addAndGet(subnets.size()); return true; } @@ -1147,7 +1155,13 @@ private FilteringObjective.Builder buildFilteringObjective(DeviceId deviceId, Po */ void processDoubleTaggedFilter(DeviceId deviceId, PortNumber portNum, VlanId outerVlan, VlanId innerVlan, boolean install) { - FilteringObjective.Builder fob = buildDoubleTaggedFilteringObj(deviceId, portNum, outerVlan, innerVlan, false); + // We should trigger the removal of double tagged rules only when removing + // the filtering objective and no other hosts are connected to the same device port. + boolean cleanupDoubleTaggedRules = srManager.hostService + .getConnectedHosts(new ConnectPoint(deviceId, portNum)).size() == 0 && !install; + FilteringObjective.Builder fob = buildDoubleTaggedFilteringObj(deviceId, portNum, + outerVlan, innerVlan, + cleanupDoubleTaggedRules); if (fob == null) { // error encountered during build return; @@ -1293,20 +1307,26 @@ void revokeSingleIpPunts(DeviceId deviceId, IpAddress ipAddress) { } } - /** - * Method to build IPv4 or IPv6 selector. - * - * @param addressToMatch the address to match - */ + // Method for building an IPv4 selector + private TrafficSelector.Builder buildIpv4Selector() { + TrafficSelector.Builder selectorBuilder = DefaultTrafficSelector.builder(); + selectorBuilder.matchEthType(Ethernet.TYPE_IPV4); + return selectorBuilder; + } + + // Method for building an IPv6 selector + private TrafficSelector.Builder buildIpv6Selector() { + TrafficSelector.Builder selectorBuilder = DefaultTrafficSelector.builder(); + selectorBuilder.matchEthType(Ethernet.TYPE_IPV6); + return selectorBuilder; + } + + // Method for building an IPv4 or IPv6 selector from an IP address private TrafficSelector.Builder buildIpSelectorFromIpAddress(IpAddress addressToMatch) { return buildIpSelectorFromIpPrefix(addressToMatch.toIpPrefix()); } - /** - * Method to build IPv4 or IPv6 selector. - * - * @param prefixToMatch the prefix to match - */ + // Method for building an IPv4 or IPv6 selector from an IP prefix private TrafficSelector.Builder buildIpSelectorFromIpPrefix(IpPrefix prefixToMatch) { TrafficSelector.Builder selectorBuilder = DefaultTrafficSelector.builder(); // If the prefix is IPv4 diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java index 6cc0e746123..4c66dd0b644 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java @@ -642,6 +642,7 @@ protected void deactivate() { policyStore.destroy(); mcastHandler.terminate(); + hostHandler.terminate(); log.info("Stopped"); } diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java index 81a161f5a46..123da370b12 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java @@ -351,6 +351,24 @@ public Ip6Address getRouterIpv6(DeviceId deviceId) throws DeviceConfigNotFoundEx } } + /** + * Gets router ip address based on the destination ip address. + * + * @param destIpAddress the destination ip address + * @param routerDeviceId the device id + * @return the ip address of the routes + */ + public IpAddress getRouterIpAddress(IpAddress destIpAddress, DeviceId routerDeviceId) { + IpAddress routerIpAddress; + try { + routerIpAddress = destIpAddress.isIp4() ? getRouterIpv4(routerDeviceId) : + getRouterIpv6(routerDeviceId); + } catch (DeviceConfigNotFoundException e) { + routerIpAddress = null; + } + return routerIpAddress; + } + @Override public boolean isEdgeDevice(DeviceId deviceId) throws DeviceConfigNotFoundException { SegmentRouterInfo srinfo = deviceConfigMap.get(deviceId); @@ -623,6 +641,19 @@ public Set getPortByIps(Set ips) { .collect(Collectors.toSet()); } + /** + * Returns all the connect points of the segment routers that have the + * specified ip address in their subnets. + * + * @param destIpAddress target ip address + * @return connect points of the segment routers + */ + public Set getConnectPointsForASubnetHost(IpAddress destIpAddress) { + return srManager.interfaceService.getMatchingInterfaces(destIpAddress).stream() + .map(Interface::connectPoint) + .collect(Collectors.toSet()); + } + /** * Returns the router ip address of segment router that has the * specified ip address in its subnets. diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java index 3431eb6d4f4..15513cf8513 100644 --- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java +++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java @@ -541,7 +541,7 @@ public boolean fixHashGroups(DeviceId targetSw, Set nextHops, if (!foundNextObjective) { log.debug("Cannot find any nextObjectives for route targetSw:{} " + "-> dstSw:{}", targetSw, destSw); - return true; // nothing to do, return true so ECMPspg is updated + return false; // nothing to do, return false so re-route will be performed } // update the dsNextObjectiveStore with new destinationSet to nextId mappings diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java index d0ca6cd8693..d97cbc71d89 100644 --- a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java @@ -28,6 +28,7 @@ import org.onlab.packet.IpPrefix; import org.onlab.packet.MacAddress; import org.onlab.packet.VlanId; +import org.onlab.util.PredictableExecutor; import org.onosproject.net.config.ConfigApplyDelegate; import org.onosproject.net.host.HostProbingService; import org.onosproject.net.host.ProbeMode; @@ -65,8 +66,9 @@ import static org.easymock.EasyMock.reset; import static org.easymock.EasyMock.verify; import static org.junit.Assert.*; +import static org.onlab.util.Tools.groupedThreads; -/**r +/** * Unit test for {@link HostHandler}. */ public class HostHandlerTest { @@ -250,6 +252,8 @@ public void setUp() { replay(srManager.routeService); hostHandler = new HostHandler(srManager); + hostHandler.hostWorkers = new PredictableExecutor( + 0, groupedThreads("onos/sr", "h-worker-%d"), true); ROUTING_TABLE.clear(); BRIDGING_TABLE.clear(); diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/IcmpHandlerTest.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/IcmpHandlerTest.java new file mode 100644 index 00000000000..cc7c6a82678 --- /dev/null +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/IcmpHandlerTest.java @@ -0,0 +1,794 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.segmentrouting; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.google.common.collect.ImmutableSet; +import org.junit.Before; +import org.junit.Test; +import org.onlab.packet.Ethernet; +import org.onlab.packet.ICMP; +import org.onlab.packet.ICMP6; +import org.onlab.packet.IPv4; +import org.onlab.packet.IPv6; +import org.onlab.packet.MPLS; +import org.onosproject.TestApplicationId; +import org.onosproject.core.ApplicationId; +import org.onosproject.net.config.ConfigApplyDelegate; +import org.onosproject.net.config.basics.InterfaceConfig; +import org.onosproject.net.device.DeviceService; +import org.onosproject.segmentrouting.config.DeviceConfiguration; +import org.onosproject.segmentrouting.config.SegmentRoutingAppConfig; +import org.onosproject.segmentrouting.config.SegmentRoutingDeviceConfig; + +import java.util.Collections; + +import static org.easymock.EasyMock.*; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.*; +import static org.onlab.packet.ICMP.*; +import static org.onlab.packet.ICMP6.ECHO_REPLY; +import static org.onosproject.segmentrouting.TestUtils.*; + +/** + * Tests for IcmpHandler. + */ +public class IcmpHandlerTest { + + private IcmpHandler icmpHandler; + private MockPacketService packetService; + private SegmentRoutingManager segmentRoutingManager; + private ApplicationId testApplicationId = TestApplicationId.create("test"); + + @Before + public void setUp() { + + // Init + ObjectMapper mapper = new ObjectMapper(); + ConfigApplyDelegate delegate = config -> { }; + + // Setup configuration for app + SegmentRoutingAppConfig appConfig = new SegmentRoutingAppConfig(); + JsonNode appTree = mapper.createObjectNode(); + appConfig.init(testApplicationId, "icmp-handler-test", appTree, mapper, delegate); + appConfig.setSuppressSubnet(Collections.emptySet()); + + // Setup configuration for the devices + SegmentRoutingDeviceConfig remoteLeafConfig = new SegmentRoutingDeviceConfig(); + JsonNode remoteLeafTree = mapper.createObjectNode(); + remoteLeafConfig.init(REMOTE_LEAF, "icmp-handler-test", remoteLeafTree, mapper, delegate); + remoteLeafConfig.setNodeSidIPv4(REMOTE_LEAF_SID4) + .setNodeSidIPv6(REMOTE_LEAF_SID6) + .setRouterIpv4(REMOTE_LEAF_LB4) + .setRouterIpv6(REMOTE_LEAF_LB6) + .setIsEdgeRouter(true) + .setRouterMac(REMOTE_MAC.toString()); + SegmentRoutingDeviceConfig localLeafConfig = new SegmentRoutingDeviceConfig(); + JsonNode localLeafTree = mapper.createObjectNode(); + localLeafConfig.init(LOCAL_LEAF, "icmp-handler-test", localLeafTree, mapper, delegate); + localLeafConfig.setNodeSidIPv4(LOCAL_LEAF_SID4) + .setRouterIpv4(LOCAL_LEAF_LB4) + .setNodeSidIPv6(LOCAL_LEAF_SID6) + .setRouterIpv6(LOCAL_LEAF_LB6) + .setIsEdgeRouter(true) + .setRouterMac(LOCAL_MAC.toString()); + SegmentRoutingDeviceConfig localLeaf1Config = new SegmentRoutingDeviceConfig(); + JsonNode localLeaf1Tree = mapper.createObjectNode(); + localLeaf1Config.init(LOCAL_LEAF1, "icmp-handler-test", localLeaf1Tree, mapper, delegate); + localLeaf1Config.setNodeSidIPv4(LOCAL_LEAF1_SID4) + .setRouterIpv4(LOCAL_LEAF1_LB4) + .setNodeSidIPv6(LOCAL_LEAF1_SID6) + .setRouterIpv6(LOCAL_LEAF1_LB6) + .setIsEdgeRouter(true) + .setRouterMac(LOCAL_MAC1.toString()) + .setPairDeviceId(LOCAL_LEAF2) + .setPairLocalPort(P3); + SegmentRoutingDeviceConfig localLeaf2Config = new SegmentRoutingDeviceConfig(); + JsonNode localLeaf2Tree = mapper.createObjectNode(); + localLeaf2Config.init(LOCAL_LEAF2, "icmp-handler-test", localLeaf2Tree, mapper, delegate); + localLeaf2Config.setNodeSidIPv4(LOCAL_LEAF2_SID4) + .setRouterIpv4(LOCAL_LEAF2_LB4) + .setNodeSidIPv6(LOCAL_LEAF2_SID6) + .setRouterIpv6(LOCAL_LEAF2_LB6) + .setIsEdgeRouter(true) + .setRouterMac(LOCAL_MAC2.toString()) + .setPairDeviceId(LOCAL_LEAF1) + .setPairLocalPort(P3); + + // Setup configuration for ports + InterfaceConfig remoteLeafPorts1Config = new InterfaceConfig(); + ArrayNode remoteLeafPorts1Tree = mapper.createArrayNode(); + remoteLeafPorts1Config.init(CP12, "icmp-handler-test", remoteLeafPorts1Tree, mapper, delegate); + remoteLeafPorts1Config.addInterface(INTF1); + InterfaceConfig remoteLeafPorts2Config = new InterfaceConfig(); + ArrayNode remoteLeafPorts2Tree = mapper.createArrayNode(); + remoteLeafPorts2Config.init(CP13, "icmp-handler-test", remoteLeafPorts2Tree, mapper, delegate); + remoteLeafPorts2Config.addInterface(INTF2); + InterfaceConfig localLeafPortsConfig = new InterfaceConfig(); + ArrayNode localLeafPortsTree = mapper.createArrayNode(); + localLeafPortsConfig.init(CP1011, "icmp-handler-test", localLeafPortsTree, mapper, delegate); + localLeafPortsConfig.addInterface(INTF111); + InterfaceConfig localLeaf1PortsConfig = new InterfaceConfig(); + ArrayNode localLeaf1PortsTree = mapper.createArrayNode(); + localLeaf1PortsConfig.init(CP2011, "icmp-handler-test", localLeaf1PortsTree, mapper, delegate); + localLeaf1PortsConfig.addInterface(INTF211); + InterfaceConfig localLeaf2Ports1Config = new InterfaceConfig(); + ArrayNode localLeaf2Ports1Tree = mapper.createArrayNode(); + localLeaf2Ports1Config.init(CP2021, "icmp-handler-test", localLeaf2Ports1Tree, mapper, delegate); + localLeaf2Ports1Config.addInterface(INTF212); + InterfaceConfig localLeaf2Ports2Config = new InterfaceConfig(); + ArrayNode localLeaf2Ports2Tree = mapper.createArrayNode(); + localLeaf2Ports2Config.init(CP2024, "icmp-handler-test", localLeaf2Ports2Tree, mapper, delegate); + localLeaf2Ports2Config.addInterface(INTF213); + + // Apply config + MockNetworkConfigRegistry mockNetworkConfigRegistry = new MockNetworkConfigRegistry(); + mockNetworkConfigRegistry.applyConfig(remoteLeafConfig); + mockNetworkConfigRegistry.applyConfig(remoteLeafPorts1Config); + mockNetworkConfigRegistry.applyConfig(remoteLeafPorts2Config); + mockNetworkConfigRegistry.applyConfig(localLeafConfig); + mockNetworkConfigRegistry.applyConfig(localLeafPortsConfig); + mockNetworkConfigRegistry.applyConfig(localLeaf1Config); + mockNetworkConfigRegistry.applyConfig(localLeaf1PortsConfig); + mockNetworkConfigRegistry.applyConfig(localLeaf2Config); + mockNetworkConfigRegistry.applyConfig(localLeaf2Ports1Config); + mockNetworkConfigRegistry.applyConfig(localLeaf2Ports2Config); + + segmentRoutingManager = new SegmentRoutingManager(); + segmentRoutingManager.appId = testApplicationId; + packetService = new MockPacketService(); + segmentRoutingManager.packetService = packetService; + segmentRoutingManager.cfgService = mockNetworkConfigRegistry; + segmentRoutingManager.neighbourResolutionService = new MockNeighbourResolutionService(); + segmentRoutingManager.interfaceService = new MockInterfaceService(ImmutableSet.of( + INTF1, INTF2, INTF111, INTF211, INTF212, INTF213)); + segmentRoutingManager.deviceConfiguration = new DeviceConfiguration(segmentRoutingManager); + segmentRoutingManager.ipHandler = new IpHandler(segmentRoutingManager); + segmentRoutingManager.deviceService = createMock(DeviceService.class); + segmentRoutingManager.routeService = new MockRouteService(ROUTE_STORE); + segmentRoutingManager.hostService = new MockHostService(Collections.emptySet()); + icmpHandler = new IcmpHandler(segmentRoutingManager); + } + + // Ping to our gateway + @Test + public void testPing4MyGateway() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_MY, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_MY.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_MY.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_MY.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV4_MY.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to our gateway + @Test + public void testPing6MyGateway() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_MY, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_MY.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_MY.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_MY.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV6_MY.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to a gateway attached to our leaf + @Test + public void testPing4LocalGateway() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_LOCAL, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_LOCAL.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_LOCAL.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_LOCAL.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_LOCAL.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV4_MY.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a gateway attached to our leaf + @Test + public void testPing6LocalGateway() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LOCAL, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LOCAL.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LOCAL.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LOCAL.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LOCAL.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV6_MY.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to a gateway attached only to the pair leaf (routing through spine) + @Test + public void testPing4RemoteGatewaySamePair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_SAME, CP2025); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_SAME.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_SAME.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_SAME.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(LOCAL_LEAF1_SID4)); + assertTrue(mpls.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_SAME.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a gateway attached only to the pair leaf (routing through spine) + @Test + public void testPing6RemoteGatewaySamePair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_SAME, CP2025); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_SAME.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_SAME.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_SAME.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(LOCAL_LEAF1_SID6)); + assertTrue(mpls.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_SAME.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to a gateway but destination leaf is down + @Test + public void testPing4RemoteGatewayLeafDown() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF)) + .andReturn(false) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4, CP11); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4.getSourceMAC()); + assertNull(ethernet); + + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a gateway but destination leaf is down + @Test + public void testPing6RemoteGatewayLeafDown() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF)) + .andReturn(false) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6, CP11); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6.getSourceMAC()); + assertNull(ethernet); + + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to a gateway but one of the destination leaf is down + @Test + public void testPing4RemoteGatewayLeaf1Down() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(false) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV41, CP11); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV41.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV41.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV41.getSourceMAC())); + assertThat(ethernet.getEtherType(), is(Ethernet.MPLS_UNICAST)); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(LOCAL_LEAF2_SID4)); + assertTrue(mpls.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a gateway but one of the destination leaf is down + @Test + public void testPing6RemoteGatewayLeaf2Down() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(false) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV61, CP11); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV61.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV61.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV61.getSourceMAC())); + assertThat(ethernet.getEtherType(), is(Ethernet.MPLS_UNICAST)); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(LOCAL_LEAF1_SID6)); + assertTrue(mpls.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a link local address + @Test + public void testPing6LinkLocalAddress() { + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LL, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LL.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LL.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LL.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LL.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV6_LL.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + } + + // Ping to the looback of our leaf + @Test + public void testPing4Loopback() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_LOOPBACK, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_LOOPBACK.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_LOOPBACK.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_LOOPBACK.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_LOOPBACK.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV4_MY.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to the looback of our leaf + @Test + public void testPing6Loopback() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(REMOTE_LEAF)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LOOPBACK, CP12); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LOOPBACK.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LOOPBACK.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LOOPBACK.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LOOPBACK.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV6_MY.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to the looback of our leaf (pair) + @Test + public void testPing4LoopbackPair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_LOOPBACK_PAIR, CP2011); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_LOOPBACK_PAIR.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to the looback of our leaf (pair) + @Test + public void testPing6LoopbackPair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LOOPBACK_PAIR, CP2021); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LOOPBACK_PAIR.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to the loopback of the leaf but hashing of the bond interfaces sends to wrong leaf + @Test + public void testPing4LoopbackPairDifferentLeaf() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_LOOPBACK_PAIR, CP2021); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_LOOPBACK_PAIR.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to the loopback of the leaf but hashing of the bond interfaces sends to wrong leaf + @Test + public void testPing6LoopbackPairDifferentLeaf() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LOOPBACK_PAIR, CP2011); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LOOPBACK_PAIR.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping loopback of a destination that is down but + // hashing of the bond interfaces sends to other leaf + @Test + public void testPing4LoopbackPairDifferentLeafDown() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(false) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_LOOPBACK_PAIR, CP2021); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_LOOPBACK_PAIR.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 loopback of a destination that is down but + // hashing of the bond interfaces sends to other leaf + @Test + public void testPing6LoopbackPairDifferentLeafDown() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(false) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_LOOPBACK_PAIR, CP2011); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_LOOPBACK_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_LOOPBACK_PAIR.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping to a dh gateway + @Test + public void testPing4GatewayPair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmp(ETH_REQ_IPV4_GATEWAY_PAIR, CP2011); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV4_GATEWAY_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV4_GATEWAY_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV4_GATEWAY_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv4); + IPv4 ip = (IPv4) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV4_GATEWAY_PAIR.toInt())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV41.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REPLY)); + assertThat(icmp.getIcmpCode(), is(CODE_ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + + // Ping6 to a dh gateway + @Test + public void testPing6GatewayPair() { + // Expected behavior + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF1)) + .andReturn(true) + .times(1); + expect(segmentRoutingManager.deviceService.isAvailable(LOCAL_LEAF2)) + .andReturn(true) + .times(1); + replay(segmentRoutingManager.deviceService); + + // Process + icmpHandler.processIcmpv6(ETH_REQ_IPV6_GATEWAY_PAIR, CP2021); + + // Verify packet-out + Ethernet ethernet = packetService.getEthernetPacket(ETH_REQ_IPV6_GATEWAY_PAIR.getSourceMAC()); + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_REQ_IPV6_GATEWAY_PAIR.getDestinationMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_REQ_IPV6_GATEWAY_PAIR.getSourceMAC())); + assertTrue(ethernet.getPayload() instanceof IPv6); + IPv6 ip = (IPv6) ethernet.getPayload(); + assertThat(ip.getSourceAddress(), is(DST_IPV6_GATEWAY_PAIR.toOctets())); + assertThat(ip.getDestinationAddress(), is(SRC_IPV61.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REPLY)); + // Verify behavior + verify(segmentRoutingManager.deviceService); + } + +} diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java index 17422d22dad..6e170b0ffee 100644 --- a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java @@ -17,12 +17,17 @@ package org.onosproject.segmentrouting; import com.google.common.collect.ImmutableSet; +import org.onlab.packet.IpAddress; +import org.onlab.packet.VlanId; import org.onosproject.net.ConnectPoint; import org.onosproject.net.intf.Interface; import org.onosproject.net.intf.impl.InterfaceManager; import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.util.stream.Collectors.toSet; /** * Mock Interface Service. @@ -44,4 +49,37 @@ public Set getInterfacesByPort(ConnectPoint cp) { public Set getInterfaces() { return interfaces; } + + @Override + public Interface getMatchingInterface(IpAddress ip) { + return getMatchingInterfacesStream(ip).findFirst().orElse(null); + } + + @Override + public Set getMatchingInterfaces(IpAddress ip) { + return getMatchingInterfacesStream(ip).collect(toSet()); + } + + private Stream getMatchingInterfacesStream(IpAddress ip) { + return interfaces.stream() + .filter(intf -> intf.ipAddressesList().stream() + .anyMatch(intfIp -> intfIp.subnetAddress().contains(ip))); + } + + @Override + public boolean isConfigured(ConnectPoint connectPoint) { + Set intfs = getInterfacesByPort(connectPoint); + if (intfs == null) { + return false; + } + for (Interface intf : intfs) { + if (!intf.ipAddressesList().isEmpty() || intf.vlan() != VlanId.NONE + || intf.vlanNative() != VlanId.NONE + || intf.vlanUntagged() != VlanId.NONE + || !intf.vlanTagged().isEmpty()) { + return true; + } + } + return false; + } } diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNeighbourResolutionService.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNeighbourResolutionService.java new file mode 100644 index 00000000000..5a41149d637 --- /dev/null +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNeighbourResolutionService.java @@ -0,0 +1,66 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.segmentrouting; + +import org.onosproject.core.ApplicationId; +import org.onosproject.net.ConnectPoint; +import org.onosproject.net.intf.Interface; +import org.onosproject.net.neighbour.NeighbourHandlerRegistration; +import org.onosproject.net.neighbour.NeighbourMessageHandler; +import org.onosproject.net.neighbour.NeighbourResolutionService; + +import java.util.Collection; +import java.util.Map; + +/** + * Mock Neighbour Resolution Service. + */ +public class MockNeighbourResolutionService implements NeighbourResolutionService { + @Override + public void registerNeighbourHandler(ConnectPoint connectPoint, + NeighbourMessageHandler handler, ApplicationId appId) { + + } + + @Override + public void registerNeighbourHandler(Interface intf, + NeighbourMessageHandler handler, ApplicationId appId) { + + } + + @Override + public void unregisterNeighbourHandler(ConnectPoint connectPoint, + NeighbourMessageHandler handler, ApplicationId appId) { + + } + + @Override + public void unregisterNeighbourHandler(Interface intf, + NeighbourMessageHandler handler, ApplicationId appId) { + + } + + @Override + public void unregisterNeighbourHandlers(ApplicationId appId) { + + } + + @Override + public Map> getHandlerRegistrations() { + return null; + } +} diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java index 09f8da2e615..e18483e5be2 100644 --- a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java @@ -16,10 +16,12 @@ package org.onosproject.segmentrouting; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import org.onosproject.net.config.Config; import org.onosproject.net.config.NetworkConfigRegistryAdapter; +import java.util.Objects; import java.util.Set; /** @@ -28,7 +30,7 @@ class MockNetworkConfigRegistry extends NetworkConfigRegistryAdapter { private Set configs = Sets.newHashSet(); - public void applyConfig(Config config) { + void applyConfig(Config config) { configs.add(config); } @@ -40,4 +42,16 @@ public > C getConfig(S subject, Class configClass) { .findFirst().orElse(null); return (C) c; } + + @Override + public > Set getSubjects(Class subject, Class configClass) { + ImmutableSet.Builder builder = ImmutableSet.builder(); + String cName = configClass.getName(); + configs.forEach(k -> { + if (subject.isInstance(k.subject()) && Objects.equals(cName, k.getClass().getName())) { + builder.add((S) k.subject()); + } + }); + return builder.build(); + } } \ No newline at end of file diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockPacketService.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockPacketService.java new file mode 100644 index 00000000000..73a8b6543e1 --- /dev/null +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockPacketService.java @@ -0,0 +1,53 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.segmentrouting; + +import com.google.common.collect.Maps; +import org.apache.commons.lang3.tuple.Pair; +import org.onlab.packet.DeserializationException; +import org.onlab.packet.Ethernet; +import org.onlab.packet.MacAddress; +import org.onosproject.net.packet.OutboundPacket; +import org.onosproject.net.packet.PacketServiceAdapter; + +import java.util.Map; + +/** + * Mock Packet Service. + * It is used for tests related to packet-ins management. + */ +public class MockPacketService extends PacketServiceAdapter { + + private final Map> outBoundPackets = Maps.newHashMap(); + + @Override + public void emit(OutboundPacket packet) { + try { + Ethernet ethernetPacket = Ethernet.deserializer().deserialize(packet.data().array(), + packet.data().arrayOffset(), + packet.data().array().length); + outBoundPackets.put(ethernetPacket.getDestinationMAC(), Pair.of(packet, ethernetPacket)); + } catch (DeserializationException e) { + + } + } + + Ethernet getEthernetPacket(MacAddress key) { + Pair pair = outBoundPackets.get(key); + return pair != null ? pair.getRight() : null; + } +} diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java index bfeca1fbc80..c3730ddaabc 100644 --- a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java @@ -17,6 +17,7 @@ package org.onosproject.segmentrouting; import com.google.common.collect.Sets; +import org.onlab.packet.IpAddress; import org.onlab.packet.IpPrefix; import org.onosproject.routeservice.ResolvedRoute; import org.onosproject.routeservice.RouteInfo; @@ -25,6 +26,7 @@ import java.util.Collection; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -53,4 +55,10 @@ public Collection getRoutes(RouteTableId id) { public Collection getRouteTables() { return Sets.newHashSet(new RouteTableId("default")); } + + @Override + public Optional longestPrefixLookup(IpAddress ip) { + return this.routeStore.get(ip.toIpPrefix()).stream() + .findFirst(); + } } \ No newline at end of file diff --git a/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/TestUtils.java b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/TestUtils.java new file mode 100644 index 00000000000..339b2c82042 --- /dev/null +++ b/apps/segmentrouting/app/src/test/java/org/onosproject/segmentrouting/TestUtils.java @@ -0,0 +1,460 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.segmentrouting; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.onosproject.net.ConnectPoint; +import org.onosproject.net.DeviceId; +import org.onosproject.net.PortNumber; +import org.onosproject.net.host.InterfaceIpAddress; +import org.onosproject.net.intf.Interface; +import org.onosproject.routeservice.ResolvedRoute; +import org.onosproject.routeservice.Route; +import org.onlab.packet.Ethernet; +import org.onlab.packet.ICMP; +import org.onlab.packet.ICMP6; +import org.onlab.packet.IPv4; +import org.onlab.packet.IPv6; +import org.onlab.packet.Ip4Address; +import org.onlab.packet.Ip6Address; +import org.onlab.packet.IpAddress; +import org.onlab.packet.IpPrefix; +import org.onlab.packet.MacAddress; +import org.onlab.packet.VlanId; +import org.onlab.packet.ICMPEcho; + +import java.util.Map; +import java.util.Set; + +import static org.onlab.packet.ICMP.TYPE_ECHO_REQUEST; +import static org.onlab.packet.ICMP6.ECHO_REQUEST; +import static org.onlab.packet.IPv4.PROTOCOL_ICMP; +import static org.onosproject.routeservice.Route.Source.STATIC; + +/** + * Utilities class for unit tests. + */ +public final class TestUtils { + + private TestUtils() { + + } + + // Device configuration section + static final DeviceId REMOTE_LEAF = DeviceId.deviceId("of:0000000000000001"); + static final int REMOTE_LEAF_SID4 = 1; + static final String REMOTE_LEAF_LB4 = "192.168.0.1"; + static final int REMOTE_LEAF_SID6 = 10; + static final String REMOTE_LEAF_LB6 = "2000::c0a8:1"; + private static final PortNumber P1 = PortNumber.portNumber(1); + static final MacAddress REMOTE_MAC = MacAddress.valueOf("00:00:00:00:00:02"); + + static final DeviceId LOCAL_LEAF = DeviceId.deviceId("of:0000000000000101"); + static final int LOCAL_LEAF_SID4 = 101; + static final String LOCAL_LEAF_LB4 = "192.168.0.101"; + static final int LOCAL_LEAF_SID6 = 111; + static final String LOCAL_LEAF_LB6 = "2000::c0a8:101"; + static final MacAddress LOCAL_MAC = MacAddress.valueOf("00:00:00:00:01:01"); + + // Configure a pair + static final DeviceId LOCAL_LEAF1 = DeviceId.deviceId("of:0000000000000201"); + static final int LOCAL_LEAF1_SID4 = 201; + static final String LOCAL_LEAF1_LB4 = "192.168.0.201"; + static final int LOCAL_LEAF1_SID6 = 211; + static final String LOCAL_LEAF1_LB6 = "2000::c0a8:201"; + static final MacAddress LOCAL_MAC1 = MacAddress.valueOf("00:00:00:00:02:01"); + + static final DeviceId LOCAL_LEAF2 = DeviceId.deviceId("of:0000000000000202"); + static final int LOCAL_LEAF2_SID4 = 202; + static final String LOCAL_LEAF2_LB4 = "192.168.0.202"; + static final int LOCAL_LEAF2_SID6 = 212; + static final String LOCAL_LEAF2_LB6 = "2000::c0a8:202"; + static final MacAddress LOCAL_MAC2 = MacAddress.valueOf("00:00:00:00:02:02"); + + // Pair port + static final PortNumber P3 = PortNumber.portNumber(3); + + // Ports configuration section + static final ConnectPoint CP11 = new ConnectPoint(REMOTE_LEAF, P1); + private static final PortNumber P2 = PortNumber.portNumber(2); + static final ConnectPoint CP12 = new ConnectPoint(REMOTE_LEAF, P2); + private static final IpAddress IP4_1 = IpAddress.valueOf("10.0.0.254"); + private static final IpPrefix PREFIX4_1 = IpPrefix.valueOf("10.0.0.254/24"); + private static final IpAddress IP6_1 = IpAddress.valueOf("2000::ff"); + private static final IpPrefix PREFIX6_1 = IpPrefix.valueOf("2000::ff/120"); + private static final InterfaceIpAddress INTF_IP4_1 = new InterfaceIpAddress( + IP4_1, PREFIX4_1); + private static final InterfaceIpAddress INTF_IP6_1 = new InterfaceIpAddress( + IP6_1, PREFIX6_1); + private static final VlanId INTF_VLAN_UNTAGGED = VlanId.vlanId((short) 10); + static final Interface INTF1 = new Interface( + "INTF1", CP12, Lists.newArrayList(INTF_IP4_1, INTF_IP6_1), MacAddress.NONE, + null, INTF_VLAN_UNTAGGED, null, null); + static final ConnectPoint CP13 = new ConnectPoint(REMOTE_LEAF, P3); + private static final IpAddress IP4_2 = IpAddress.valueOf("10.0.3.254"); + private static final IpPrefix PREFIX4_2 = IpPrefix.valueOf("10.0.3.254/24"); + private static final IpAddress IP6_2 = IpAddress.valueOf("2000::3ff"); + private static final IpPrefix PREFIX6_2 = IpPrefix.valueOf("2000::3ff/120"); + private static final InterfaceIpAddress INTF_IP4_2 = new InterfaceIpAddress( + IP4_2, PREFIX4_2); + private static final InterfaceIpAddress INTF_IP6_2 = new InterfaceIpAddress( + IP6_2, PREFIX6_2); + static final Interface INTF2 = new Interface( + "INTF2", CP13, Lists.newArrayList(INTF_IP4_2, INTF_IP6_2), MacAddress.NONE, + null, INTF_VLAN_UNTAGGED, null, null); + + static final ConnectPoint CP1011 = new ConnectPoint(LOCAL_LEAF, P1); + private static final IpAddress IP4_11 = IpAddress.valueOf("10.0.1.254"); + private static final IpPrefix PREFIX4_11 = IpPrefix.valueOf("10.0.1.254/24"); + private static final InterfaceIpAddress INTF_IP4_11 = new InterfaceIpAddress( + IP4_11, PREFIX4_11); + private static final IpAddress IP6_11 = IpAddress.valueOf("2000::1ff"); + private static final IpPrefix PREFIX6_11 = IpPrefix.valueOf("2000::1ff/120"); + private static final InterfaceIpAddress INTF_IP6_11 = new InterfaceIpAddress( + IP6_11, PREFIX6_11); + static final Interface INTF111 = new Interface( + "INTF111", CP1011, Lists.newArrayList(INTF_IP4_11, INTF_IP6_11), MacAddress.NONE, null, + INTF_VLAN_UNTAGGED, null, null); + + static final ConnectPoint CP2011 = new ConnectPoint(LOCAL_LEAF1, P1); + private static final IpAddress IP4_21 = IpAddress.valueOf("10.0.2.254"); + private static final IpPrefix PREFIX4_21 = IpPrefix.valueOf("10.0.2.254/24"); + private static final InterfaceIpAddress INTF_IP4_21 = new InterfaceIpAddress( + IP4_21, PREFIX4_21); + private static final IpAddress IP6_21 = IpAddress.valueOf("2000::2ff"); + private static final IpPrefix PREFIX6_21 = IpPrefix.valueOf("2000::2ff/120"); + private static final InterfaceIpAddress INTF_IP6_21 = new InterfaceIpAddress( + IP6_21, PREFIX6_21); + static final Interface INTF211 = new Interface( + "INTF211", CP2011, Lists.newArrayList(INTF_IP4_21, INTF_IP6_21), MacAddress.NONE, null, + INTF_VLAN_UNTAGGED, null, null); + + static final ConnectPoint CP2021 = new ConnectPoint(LOCAL_LEAF2, P1); + private static final IpAddress IP4_22 = IpAddress.valueOf("10.0.2.254"); + private static final IpPrefix PREFIX4_22 = IpPrefix.valueOf("10.0.2.254/24"); + private static final InterfaceIpAddress INTF_IP4_22 = new InterfaceIpAddress( + IP4_22, PREFIX4_22); + private static final IpAddress IP6_22 = IpAddress.valueOf("2000::2ff"); + private static final IpPrefix PREFIX6_22 = IpPrefix.valueOf("2000::2ff/120"); + private static final InterfaceIpAddress INTF_IP6_22 = new InterfaceIpAddress( + IP6_22, PREFIX6_22); + static final Interface INTF212 = new Interface( + "INTF212", CP2021, Lists.newArrayList(INTF_IP4_22, INTF_IP6_22), MacAddress.NONE, null, + INTF_VLAN_UNTAGGED, null, null); + private static final PortNumber P4 = PortNumber.portNumber(4); + static final ConnectPoint CP2024 = new ConnectPoint(LOCAL_LEAF2, P4); + private static final PortNumber P5 = PortNumber.portNumber(5); + static final ConnectPoint CP2025 = new ConnectPoint(LOCAL_LEAF2, P5); + private static final IpAddress IP4_23 = IpAddress.valueOf("10.0.4.254"); + private static final IpPrefix PREFIX4_23 = IpPrefix.valueOf("10.0.4.254/24"); + private static final InterfaceIpAddress INTF_IP4_23 = new InterfaceIpAddress( + IP4_23, PREFIX4_23); + private static final IpAddress IP6_23 = IpAddress.valueOf("2000::4ff"); + private static final IpPrefix PREFIX6_23 = IpPrefix.valueOf("2000::4ff/120"); + private static final InterfaceIpAddress INTF_IP6_23 = new InterfaceIpAddress( + IP6_23, PREFIX6_23); + static final Interface INTF213 = new Interface( + "INTF212", CP2024, Lists.newArrayList(INTF_IP4_23, INTF_IP6_23), MacAddress.NONE, null, + INTF_VLAN_UNTAGGED, null, null); + + // Packet-ins section + private static final MacAddress SRC_MAC = MacAddress.valueOf("00:00:00:00:00:01"); + + private static final ICMPEcho ICMP_ECHO = new ICMPEcho() + .setIdentifier((short) 0) + .setSequenceNum((short) 0); + + private static final ICMP ICMP_REQUEST = (ICMP) new ICMP() + .setIcmpType(TYPE_ECHO_REQUEST) + .setPayload(ICMP_ECHO); + + private static final Ip4Address SRC_IPV4 = Ip4Address.valueOf("10.0.1.1"); + static final Ip4Address DST_IPV4 = Ip4Address.valueOf("10.0.0.254"); + + private static final IPv4 IPV4_REQUEST = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4.toInt()) + .setSourceAddress(SRC_IPV4.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV4_REQUEST); + + private static final ICMP6 ICMP6_REQUEST = new ICMP6() + .setIcmpType(ECHO_REQUEST); + + private static final Ip6Address SRC_IPV6 = Ip6Address.valueOf("2000::101"); + static final Ip6Address DST_IPV6 = Ip6Address.valueOf("2000::ff"); + + private static final IPv6 IPV6_REQUEST = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6.toOctets()) + .setSourceAddress(SRC_IPV6.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV6_REQUEST); + + static final Ip4Address SRC_IPV41 = Ip4Address.valueOf("10.0.2.1"); + + private static final IPv4 IPV41_REQUEST = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4.toInt()) + .setSourceAddress(SRC_IPV41.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV41 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV41_REQUEST); + + static final Ip6Address SRC_IPV61 = Ip6Address.valueOf("2000::201"); + + private static final IPv6 IPV61_REQUEST = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6.toOctets()) + .setSourceAddress(SRC_IPV61.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV61 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV61_REQUEST); + + private static final MacAddress SRC_MAC_MY = MacAddress.valueOf("00:01:00:00:00:01"); + static final Ip4Address SRC_IPV4_MY = Ip4Address.valueOf("10.0.0.1"); + + private static final IPv4 IPV4_REQUEST_MY = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4.toInt()) + .setSourceAddress(SRC_IPV4_MY.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_MY = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV4_REQUEST_MY); + + static final Ip6Address SRC_IPV6_MY = Ip6Address.valueOf("2000::1"); + + private static final IPv6 IPV6_REQUEST_MY = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6.toOctets()) + .setSourceAddress(SRC_IPV6_MY.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_MY = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV6_REQUEST_MY); + + static final Ip4Address DST_IPV4_LOCAL = Ip4Address.valueOf("10.0.3.254"); + + private static final IPv4 IPV4_REQUEST_LOCAL = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4_LOCAL.toInt()) + .setSourceAddress(SRC_IPV4_MY.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_LOCAL = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV4_REQUEST_LOCAL); + + static final Ip6Address DST_IPV6_LOCAL = Ip6Address.valueOf("2000::3ff"); + + private static final IPv6 IPV6_REQUEST_LOCAL = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_LOCAL.toOctets()) + .setSourceAddress(SRC_IPV6_MY.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_LOCAL = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV6_REQUEST_LOCAL); + + static final Ip4Address DST_IPV4_SAME = Ip4Address.valueOf("10.0.4.254"); + + private static final IPv4 IPV4_REQUEST_SAME = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4_SAME.toInt()) + .setSourceAddress(SRC_IPV41.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_SAME = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(LOCAL_MAC2) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV4_REQUEST_SAME); + + static final Ip6Address DST_IPV6_SAME = Ip6Address.valueOf("2000::4ff"); + + private static final IPv6 IPV6_REQUEST_SAME = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_SAME.toOctets()) + .setSourceAddress(SRC_IPV61.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_SAME = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(LOCAL_MAC2) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV6_REQUEST_SAME); + + static final Ip6Address DST_IPV6_LL = Ip6Address.valueOf( + IPv6.getLinkLocalAddress(MacAddress.NONE.toBytes())); + static final Ip6Address SRC_IPV6_LL = Ip6Address.valueOf( + IPv6.getLinkLocalAddress(SRC_MAC_MY.toBytes())); + + private static final IPv6 IPV6_REQUEST_LL = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_LL.toOctets()) + .setSourceAddress(SRC_IPV6_LL.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_LL = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(MacAddress.NONE) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV6_REQUEST_LL); + + static final Ip4Address DST_IPV4_LOOPBACK = Ip4Address.valueOf(REMOTE_LEAF_LB4); + + private static final IPv4 IPV4_REQUEST_LOOPBACK = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4_LOOPBACK.toInt()) + .setSourceAddress(SRC_IPV4_MY.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_LOOPBACK = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV4_REQUEST_LOOPBACK); + + static final Ip6Address DST_IPV6_LOOPBACK = Ip6Address.valueOf(REMOTE_LEAF_LB6); + + private static final IPv6 IPV6_REQUEST_LOOPBACK = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_LOOPBACK.toOctets()) + .setSourceAddress(SRC_IPV6_MY.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_LOOPBACK = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(REMOTE_MAC) + .setSourceMACAddress(SRC_MAC_MY) + .setPayload(IPV6_REQUEST_LOOPBACK); + + static final Ip4Address DST_IPV4_LOOPBACK_PAIR = Ip4Address.valueOf(LOCAL_LEAF1_LB4); + + private static final IPv4 IPV4_REQUEST_LOOPBACK_PAIR = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4_LOOPBACK_PAIR.toInt()) + .setSourceAddress(SRC_IPV41.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_LOOPBACK_PAIR = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(LOCAL_MAC1) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV4_REQUEST_LOOPBACK_PAIR); + + static final Ip6Address DST_IPV6_LOOPBACK_PAIR = Ip6Address.valueOf(LOCAL_LEAF2_LB6); + + private static final IPv6 IPV6_REQUEST_LOOPBACK_PAIR = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_LOOPBACK_PAIR.toOctets()) + .setSourceAddress(SRC_IPV61.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_LOOPBACK_PAIR = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(LOCAL_MAC2) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV6_REQUEST_LOOPBACK_PAIR); + + static final Ip4Address DST_IPV4_GATEWAY_PAIR = Ip4Address.valueOf("10.0.2.254"); + + private static final IPv4 IPV4_REQUEST_GATEWAY_PAIR = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4_GATEWAY_PAIR.toInt()) + .setSourceAddress(SRC_IPV41.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP_REQUEST); + + static final Ethernet ETH_REQ_IPV4_GATEWAY_PAIR = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV4) + .setDestinationMACAddress(LOCAL_MAC1) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV4_REQUEST_GATEWAY_PAIR); + + static final Ip6Address DST_IPV6_GATEWAY_PAIR = Ip6Address.valueOf("2000::2ff"); + + private static final IPv6 IPV6_REQUEST_GATEWAY_PAIR = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6_GATEWAY_PAIR.toOctets()) + .setSourceAddress(SRC_IPV61.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6_REQUEST); + + static final Ethernet ETH_REQ_IPV6_GATEWAY_PAIR = (Ethernet) new Ethernet() + .setEtherType(Ethernet.TYPE_IPV6) + .setDestinationMACAddress(LOCAL_MAC2) + .setSourceMACAddress(SRC_MAC) + .setPayload(IPV6_REQUEST_GATEWAY_PAIR); + + // Resolved route + private static final ResolvedRoute IPV4_ROUTE = new ResolvedRoute( + new Route(STATIC, SRC_IPV4.toIpPrefix(), SRC_IPV4), MacAddress.NONE); + private static final ResolvedRoute IPV6_ROUTE = new ResolvedRoute( + new Route(STATIC, SRC_IPV6.toIpPrefix(), SRC_IPV6), MacAddress.NONE); + static final Map> ROUTE_STORE = ImmutableMap.of(SRC_IPV4.toIpPrefix(), + Sets.newHashSet(IPV4_ROUTE), + SRC_IPV6.toIpPrefix(), + Sets.newHashSet(IPV6_ROUTE)); +} diff --git a/apps/segmentrouting/web/src/main/resources/definitions/XconnectCreate.json b/apps/segmentrouting/web/src/main/resources/definitions/XconnectCreate.json index 8d2099f75f2..87a776ca1e5 100644 --- a/apps/segmentrouting/web/src/main/resources/definitions/XconnectCreate.json +++ b/apps/segmentrouting/web/src/main/resources/definitions/XconnectCreate.json @@ -4,7 +4,7 @@ "required": [ "deviceId", "vlanId", - "ports" + "endpoints" ], "properties": { "deviceId": { @@ -17,7 +17,7 @@ "example": "94", "description": "VLAN ID" }, - "ports": { + "endpoints": { "type": "array", "items": { "type": "int8", @@ -26,4 +26,4 @@ "example": [1, 2] } } -} \ No newline at end of file +} diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/BngProgrammable.java b/core/api/src/main/java/org/onosproject/net/behaviour/BngProgrammable.java new file mode 100644 index 00000000000..a35377ea565 --- /dev/null +++ b/core/api/src/main/java/org/onosproject/net/behaviour/BngProgrammable.java @@ -0,0 +1,301 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.net.behaviour; + +import org.onlab.packet.IpAddress; +import org.onlab.packet.MacAddress; +import org.onlab.packet.VlanId; +import org.onlab.util.Identifier; +import org.onosproject.core.ApplicationId; +import org.onosproject.net.driver.HandlerBehaviour; +import org.onosproject.net.pi.runtime.PiCounterCellData; + +import java.util.Map; + +/** + * BNG programmable behavior. Provides means to update device forwarding state + * to perform BNG user plane functions (e.g., tunnel termination, accounting, + * etc.). An implementation of this API should not write state directly to the + * device, but instead, always rely on core ONOS subsystems (e.g., + * FlowRuleService, GroupService, etc). + */ +public interface BngProgrammable extends HandlerBehaviour { + + /** + * Provision rules to punt BNG control packets to ONOS. Control packets + * might include Session Discovery, Authentication, Address Assignment etc. + * Apps are expected to call this method as the first one when they are + * ready to process attachment connection requests. + * + * @param appId Application ID of the caller of this API. + * @return True if initialized, false otherwise. + */ + boolean init(ApplicationId appId); + + /** + * Remove any state previously created by this API for the given application + * ID. + * + * @param appId Application ID of the application using the + * BngProgrammable. + * @throws BngProgrammableException while writing on BNG device. + */ + void cleanUp(ApplicationId appId) throws BngProgrammableException; + + /** + * Set up the necessary state to enable termination of the attachment + * traffic. Make also sure that the state of the given attachment is cleaned + * up. If the attachment is active, packets will be forwarded/terminated + * after calling this method, if not they will be dropped. + * + * @param attachmentInfo Attachment information to configure the line + * termination. + * @throws BngProgrammableException while writing on BNG device. + */ + void setupAttachment(Attachment attachmentInfo) + throws BngProgrammableException; + + /** + * Remove any state associated with the given attachment, including + * termination flow rules. Calling this method while an attachment is + * generating/receiving traffic, will eventually cause all packets to be + * dropped for that attachment. + * + * @param attachmentInfo Attachment information to remove the line + * termination. + */ + void removeAttachment(Attachment attachmentInfo); + + /** + * Read all counters for a given attachment and returns a map with keys + * BngCounterType and values the ones obtained from the device. If a + * specific BngCounterType is not found in the map, it means the device does + * not support it. + * + * @param attachmentInfo Attachment information. + * @return The counter values of the attachment. + * @throws BngProgrammableException while reading from BNG device. + */ + Map readCounters(Attachment attachmentInfo) + throws BngProgrammableException; + + /** + * Read a specific counter value of a specific attachment. If the given + * BngCounterType is not supported by the device, returns null. + * + * @param attachmentInfo Attachment information. + * @param counter The counter to be read. + * @return The value of the specific counter. + * @throws BngProgrammableException while reading from BNG device. + */ + PiCounterCellData readCounter(Attachment attachmentInfo, BngCounterType counter) + throws BngProgrammableException; + + /** + * Read the control plane traffic counter of packets punted before + * attachment creation (e.g., when an attachment is not created yet). If + * unsupported, return null value. + * + * @return The value of the control traffic counter. + * @throws BngProgrammableException while reading from BNG device. + */ + PiCounterCellData readControlTrafficCounter() + throws BngProgrammableException; + + /** + * Reset the given counter of a specific attachment. + * + * @param attachmentInfo Attachment information. + * @param counter The counter to be reset. + * @throws BngProgrammableException while writing on BNG device. + */ + void resetCounter(Attachment attachmentInfo, BngCounterType counter) + throws BngProgrammableException; + + /** + * Reset the all the counters of a specific attachment. + * + * @param attachmentInfo Attachment information. + * @throws BngProgrammableException while writing on BNG device. + */ + void resetCounters(Attachment attachmentInfo) + throws BngProgrammableException; + + /** + * Reset the control plane traffic counter of packets punted before + * attachment creation (e.g., when an attachment is not created yet). + * + * @throws BngProgrammableException while writing on BNG device. + */ + void resetControlTrafficCounter() + throws BngProgrammableException; + + /** + * Counters to implement BNG accounting. Some of these counters can be + * unsupported by the implementations. + */ + enum BngCounterType { + /** + * Count the received packets in the downstream direction. + */ + DOWNSTREAM_RX, + + /** + * Count the transmitted packets in the downstream direction. + */ + DOWNSTREAM_TX, + + /** + * Count the dropped packets in the downstream direction. + */ + DOWNSTREAM_DROPPED, + + /** + * Count the received packets in the upstream direction. + */ + UPSTREAM_RX, + + /** + * Count the transmitted packets in the upstream direction. + */ + UPSTREAM_TX, + + /** + * Count the dropped packets in the upstream direction. + */ + UPSTREAM_DROPPED, + + /** + * Count the received control plane packets. + */ + CONTROL_PLANE + } + + /** + * Immutable representation of an attachment in the BNG context. It + * identifies a L2/L2.5 tunnel line between the RG and the BNG. + */ + interface Attachment { + /** + * Get the identifier of the attachment. + * + * @return The identifier of the attachment. + */ + AttachmentId attachmentId(); + + /** + * Get the application ID that generated the attachment. + * + * @return The application ID. + */ + ApplicationId appId(); + + /** + * Get the VLAN S-tag of the attachment. + * + * @return The VLAN S-tag of the attachment. + */ + VlanId sTag(); + + /** + * Get the VLAN C-tag of the attachment. + * + * @return The VLAN C-tag of the attachment. + */ + VlanId cTag(); + + /** + * Get the MAC address of the attachment. + * + * @return The MAC address of the attachment. + */ + MacAddress macAddress(); + + /** + * Get the IP address of the attachment. + * + * @return The IP address of the attachment. + */ + IpAddress ipAddress(); + + /** + * Defines if the line related to the attachment is active. + * + * @return True if the line is active, False otherwise. + */ + boolean lineActive(); + + /** + * Get the type of attachment. + * + * @return type of attachment + */ + AttachmentType type(); + + /** + * Get the PPPoE session ID of the attachment. This method is meaningful + * only if the attachment type is PPPoE. + * + * @return The PPPoE session ID. + */ + short pppoeSessionId(); + + enum AttachmentType { + /** + * Implemented as PPPoE attachment. + */ + PPPoE, + + /** + * Implemented as IPoE attachment. + */ + // TODO: unsupported. + IPoE + } + } + + /** + * The identifier of the attachment. + */ + class AttachmentId extends Identifier { + /** + * Identifies the attachment at network level. + * + * @param id long value + */ + public AttachmentId(long id) { + super(id); + } + } + + /** + * An exception indicating a an error happened in the BNG programmable + * behaviour. + */ + class BngProgrammableException extends Exception { + /** + * Creates a new exception for the given message. + * + * @param message message + */ + public BngProgrammableException(String message) { + super(message); + } + } +} + + diff --git a/core/protobuf/models/proto/BUILD b/core/protobuf/models/proto/BUILD index 6c7d5cdb5fc..2da22b8ec1e 100644 --- a/core/protobuf/models/proto/BUILD +++ b/core/protobuf/models/proto/BUILD @@ -1,6 +1,6 @@ load("//tools/build/bazel:osgi_java_library.bzl", "osgi_proto_jar") -PROTO_SOURCE_ROOT = "core/protobuf/models/proto" +PROTO_SOURCE_ROOT = "/core/protobuf/models/proto" osgi_proto_jar( name = "onos-core-protobuf-models-proto", @@ -67,20 +67,20 @@ osgi_proto_jar( proto_library( name = "ApplicationsEnums_proto", srcs = ["app/ApplicationEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) ### cfg ### proto_library( name = "ConfigPropertyEnums_proto", srcs = ["cfg/ConfigPropertyEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "ConfigProperty_proto", srcs = ["cfg/ConfigPropertyProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":ConfigPropertyEnums_proto"], ) @@ -88,13 +88,13 @@ proto_library( proto_library( name = "NodeId_proto", srcs = ["cluster/NodeIdProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "RoleInfo_proto", srcs = ["cluster/RoleInfoProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":NodeId_proto"], ) @@ -103,13 +103,13 @@ proto_library( proto_library( name = "ApplicationId_proto", srcs = ["core/ApplicationIdProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "ApplicationProto_proto", srcs = ["core/ApplicationProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ApplicationId_proto", ":ApplicationsEnums_proto", @@ -121,7 +121,7 @@ proto_library( proto_library( name = "Version_proto", srcs = ["core/VersionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) ### net ### @@ -130,20 +130,20 @@ proto_library( proto_library( name = "DeviceDescription_proto", srcs = ["net/device/DeviceDescriptionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":DeviceEnums_proto"], ) proto_library( name = "DeviceEnums_proto", srcs = ["net/device/DeviceEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "DeviceEvent_proto", srcs = ["net/device/DeviceEventProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":DeviceEnums_proto", ":Device_proto", @@ -154,20 +154,20 @@ proto_library( proto_library( name = "PortDescription_proto", srcs = ["net/device/PortDescriptionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":PortEnums_proto"], ) proto_library( name = "PortEnums_proto", srcs = ["net/device/PortEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "PortStatistics_proto", srcs = ["net/device/PortStatisticsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) ### flow ### @@ -175,45 +175,45 @@ proto_library( proto_library( name = "Criterion_proto", srcs = ["net/flow/criteria/CriterionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) ## instrcutions ## proto_library( name = "Instruction_proto", srcs = ["net/flow/instructions/InstructionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "Instructions_proto", srcs = ["net/flow/instructions/InstructionsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "FlowEntryEnums_proto", srcs = ["net/flow/FlowEntryEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "FlowEntry_proto", srcs = ["net/flow/FlowEntryProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":FlowEntryEnums_proto"], ) proto_library( name = "FlowRuleEnums_proto", srcs = ["net/flow/FlowRuleEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "FlowRule_proto", srcs = ["net/flow/FlowRuleProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":FlowRuleEnums_proto", ":TrafficTreatment_proto", @@ -224,14 +224,14 @@ proto_library( proto_library( name = "TraficSelector_proto", srcs = ["net/flow/TrafficSelectorProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":Criterion_proto"], ) proto_library( name = "TrafficTreatment_proto", srcs = ["net/flow/TrafficTreatmentProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":Instruction_proto", ":Instructions_proto", @@ -243,20 +243,20 @@ proto_library( proto_library( name = "HostDescription_proto", srcs = ["net/host/HostDescriptionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":HostLocation_proto"], ) proto_library( name = "HostEnums_proto", srcs = ["net/host/HostEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "HostEvent_proto", srcs = ["net/host/HostEventProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":HostEnums_proto", ":Host_proto", @@ -268,7 +268,7 @@ proto_library( proto_library( name = "LinkDescription_proto", srcs = ["net/link/LinkDescriptionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ConnectPoint_proto", ":LinkEnums_proto", @@ -278,13 +278,13 @@ proto_library( proto_library( name = "LinkEnums_proto", srcs = ["net/link/LinkEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "LinkEvent_proto", srcs = ["net/link/LinkEventProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":LinkEnums_proto", ":Link_proto", @@ -296,26 +296,26 @@ proto_library( proto_library( name = "BandEnums_proto", srcs = ["net/meter/BandEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "Band_proto", srcs = ["net/meter/BandProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":BandEnums_proto"], ) proto_library( name = "MeterEnums_proto", srcs = ["net/meter/MeterEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "MeterEvent_proto", srcs = ["net/meter/MeterEventProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":MeterEnums_proto", ":Meter_proto", @@ -325,7 +325,7 @@ proto_library( proto_library( name = "Meter_proto", srcs = ["net/meter/MeterProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ApplicationId_proto", ":Band_proto", @@ -336,7 +336,7 @@ proto_library( proto_library( name = "MeterRequest_proto", srcs = ["net/meter/MeterRequestProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ApplicationId_proto", ":Band_proto", @@ -349,20 +349,20 @@ proto_library( proto_library( name = "OutboundPacket_proto", srcs = ["net/packet/OutboundPacketProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":TrafficTreatment_proto"], ) proto_library( name = "PacketEnums_proto", srcs = ["net/packet/PacketEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "PacketEvent_proto", srcs = ["net/packet/PacketEventProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":OutboundPacket_proto", ":PacketEnums_proto", @@ -372,20 +372,20 @@ proto_library( proto_library( name = "PacketProcessorEntry_proto", srcs = ["net/packet/PacketProcessorEntryProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":PacketProcessor_proto"], ) proto_library( name = "PacketProcessor_proto", srcs = ["net/packet/PacketProcessorProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "PacketRequest_proto", srcs = ["net/packet/PacketRequestProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ApplicationId_proto", ":NodeId_proto", @@ -398,46 +398,46 @@ proto_library( proto_library( name = "RegionEnums_proto", srcs = ["net/region/RegionEnumsProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "ConnectPoint_proto", srcs = ["net/ConnectPointProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "Device_proto", srcs = ["net/DeviceProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":DeviceEnums_proto"], ) proto_library( name = "DisjointPath_proto", srcs = ["net/DisjointPathProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":Path_proto"], ) proto_library( name = "HostId_proto", srcs = ["net/HostIdProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "HostLocation_proto", srcs = ["net/HostLocationProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":ConnectPoint_proto"], ) proto_library( name = "Host_proto", srcs = ["net/HostProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":HostId_proto", ":HostLocation_proto", @@ -448,7 +448,7 @@ proto_library( proto_library( name = "Link_proto", srcs = ["net/LinkProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [ ":ConnectPoint_proto", ":LinkEnums_proto", @@ -459,38 +459,38 @@ proto_library( proto_library( name = "MastershipRole_proto", srcs = ["net/MastershipRoleProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "Path_proto", srcs = ["net/PathProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":Link_proto"], ) proto_library( name = "Port_proto", srcs = ["net/PortProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":PortEnums_proto"], ) proto_library( name = "ProviderId_proto", srcs = ["net/ProviderIdProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) proto_library( name = "Region_proto", srcs = ["net/RegionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, deps = [":RegionEnums_proto"], ) proto_library( name = "Permission_proto", srcs = ["security/PermissionProto.proto"], - proto_source_root = PROTO_SOURCE_ROOT, + strip_import_prefix = PROTO_SOURCE_ROOT, ) diff --git a/drivers/bmv2/src/main/resources/bmv2-drivers.xml b/drivers/bmv2/src/main/resources/bmv2-drivers.xml index 6e50a655d24..9638f9fc816 100644 --- a/drivers/bmv2/src/main/resources/bmv2-drivers.xml +++ b/drivers/bmv2/src/main/resources/bmv2-drivers.xml @@ -19,7 +19,6 @@ true - false - false diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java index b65a70af149..47f8612422b 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java @@ -1148,7 +1148,7 @@ protected void initializePipeline() { initTableMiss(MPLS_TABLE_1, ACL_TABLE, null); initTableMiss(BRIDGING_TABLE, ACL_TABLE, null); initTableMiss(ACL_TABLE, -1, null); - linkDiscoveryPuntTableRules(); + initPuntTable(); initPopVlanPuntGroup(); } @@ -1203,10 +1203,11 @@ public void onError(FlowRuleOperations ops) { * that forward traffic to controller. * */ - private void linkDiscoveryPuntTableRules() { + private void initPuntTable() { FlowRuleOperations.Builder ops = FlowRuleOperations.builder(); TrafficTreatment treatment = DefaultTrafficTreatment.builder().punt().build(); + // Add punt rule for LLDP and BDDP TrafficSelector.Builder lldpSelector = DefaultTrafficSelector.builder(); lldpSelector.matchEthType(EthType.EtherType.LLDP.ethType().toShort()); FlowRule lldpRule = DefaultFlowRule.builder() @@ -1231,14 +1232,26 @@ private void linkDiscoveryPuntTableRules() { .forTable(PUNT_TABLE).build(); ops.add(bbdpRule); + // Add table miss flow rule + TrafficSelector.Builder defaultSelector = DefaultTrafficSelector.builder(); + FlowRule defaultRule = DefaultFlowRule.builder() + .forDevice(deviceId) + .withSelector(defaultSelector.build()) + .withTreatment(treatment) + .withPriority(LOWEST_PRIORITY) + .fromApp(driverId) + .makePermanent() + .forTable(PUNT_TABLE).build(); + ops.add(defaultRule); + flowRuleService.apply(ops.build(new FlowRuleOperationsContext() { @Override public void onSuccess(FlowRuleOperations ops) { - log.info("Added lldp/bbdp rules for table {} on {}", PUNT_TABLE, deviceId); + log.info("Initialized table {} on {}", PUNT_TABLE, deviceId); } @Override public void onError(FlowRuleOperations ops) { - log.warn("Failed to initialize lldp/bbdp rules for table {} on {}", PUNT_TABLE, deviceId); + log.warn("Failed to initialize table {} on {}", PUNT_TABLE, deviceId); } })); } diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaFlowRuleProgrammable.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaFlowRuleProgrammable.java new file mode 100644 index 00000000000..9b3ae835454 --- /dev/null +++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaFlowRuleProgrammable.java @@ -0,0 +1,251 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + + * This work was partially supported by EC H2020 project METRO-HAUL (761727). + */ + +package org.onosproject.drivers.odtn; + +import com.google.common.collect.ImmutableList; +import org.onlab.util.Frequency; +import org.onosproject.drivers.odtn.impl.DeviceConnectionCache; +import org.onosproject.drivers.odtn.impl.FlowRuleParser; +import org.onosproject.net.DeviceId; +import org.onosproject.net.Port; +import org.onosproject.net.PortNumber; +import org.onosproject.net.device.DeviceService; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.net.flow.DefaultFlowEntry; +import org.onosproject.net.flow.FlowEntry; +import org.onosproject.net.flow.FlowRule; +import org.onosproject.net.flow.FlowRuleProgrammable; +import org.onosproject.netconf.DatastoreId; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfException; +import org.onosproject.netconf.NetconfSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery.OC_NAME; + +/** + * Implementation of FlowRuleProgrammable interface for + * OpenConfig terminal devices. + */ +public class AdvaFlowRuleProgrammable + extends AbstractHandlerBehaviour implements FlowRuleProgrammable { + + private static final Logger log = + LoggerFactory.getLogger(AdvaFlowRuleProgrammable.class); + + /** + * Apply the flow entries specified in the collection rules. + * + * @param rules A collection of Flow Rules to be applied + * @return The collection of added Flow Entries + */ + @Override + public Collection applyFlowRules(Collection rules) { + NetconfSession session = getNetconfSession(); + if (session == null) { + openConfigError("null session"); + return ImmutableList.of(); + } + List added = new ArrayList<>(); + for (FlowRule r : rules) { + try { + String connectionId = applyFlowRule(session, r); + getConnectionCache().add(did(), connectionId, r); + added.add(r); + } catch (Exception e) { + openConfigError("Error {}", e); + continue; + } + } + openConfigLog("applyFlowRules added {}", added.size()); + return added; + } + + /** + * Get the flow entries that are present on the device. + * + * @return A collection of Flow Entries + */ + @Override + public Collection getFlowEntries() { + DeviceConnectionCache cache = getConnectionCache(); + if (cache.get(did()) == null) { + return ImmutableList.of(); + } + + List entries = new ArrayList<>(); + for (FlowRule r : cache.get(did())) { + entries.add( + new DefaultFlowEntry(r, FlowEntry.FlowEntryState.ADDED, 0, 0, 0)); + } + return entries; + } + + /** + * Remove the specified flow rules. + * + * @param rules A collection of Flow Rules to be removed + * @return The collection of removed Flow Entries + */ + @Override + public Collection removeFlowRules(Collection rules) { + NetconfSession session = getNetconfSession(); + if (session == null) { + openConfigError("null session"); + return ImmutableList.of(); + } + List removed = new ArrayList<>(); + for (FlowRule r : rules) { + try { + String connectionId = removeFlowRule(session, r); + getConnectionCache().remove(did(), connectionId); + removed.add(r); + } catch (Exception e) { + openConfigError("Error {}", e); + continue; + } + } + openConfigLog("removedFlowRules removed {}", removed.size()); + return removed; + } + + private DeviceConnectionCache getConnectionCache() { + return DeviceConnectionCache.init(); + } + + /** + * Helper method to get the device id. + */ + private DeviceId did() { + return data().deviceId(); + } + + /** + * Helper method to log from this class adding DeviceId. + */ + private void openConfigLog(String format, Object... arguments) { + log.info("OPENCONFIG {}: " + format, did(), arguments); + } + + /** + * Helper method to log an error from this class adding DeviceId. + */ + private void openConfigError(String format, Object... arguments) { + log.error("OPENCONFIG {}: " + format, did(), arguments); + } + + + /** + * Helper method to get the Netconf Session. + */ + private NetconfSession getNetconfSession() { + NetconfController controller = + checkNotNull(handler().get(NetconfController.class)); + return controller.getNetconfDevice(did()).getSession(); + } + + private void setOpticalChannelFrequency(NetconfSession session, + String optChannel, Frequency freq) + throws NetconfException { + StringBuilder sb = new StringBuilder(); + sb.append( + "" + + "" + + "" + + "" + optChannel + "" + + "" + + "" + + "" + + "" + (long) freq.asMHz() + "" + + "" + + "" + + "" + + ""); + log.info("Optical Channel Frequency {}", sb.toString()); + boolean ok = session.editConfig(DatastoreId.RUNNING, null, sb.toString()); + if (!ok) { + throw new NetconfException("error writing channel frequency"); + } + ok = session.commit(); + if (!ok) { + throw new NetconfException("error committing channel frequency"); + } + } + + /** + * Get the OpenConfig component name for the OpticalChannel component. + * + * @param portNumber ONOS port number of the Line port (). + * @return the channel component name or null + */ + private String getOpticalChannel(PortNumber portNumber) { + Port clientPort = handler().get(DeviceService.class).getPort(did(), portNumber); + return clientPort.annotations().value(OC_NAME); + } + + /** + * Apply the flowrule. + *

+ * Note: only bidirectional are supported as of now, + * given OpenConfig note (below). In consequence, only the + * TX rules are actually mapped to netconf ops. + *

+ * https://github.com/openconfig/public/blob/master/release/models + * /optical-transport/openconfig-terminal-device.yang + *

+ * Directionality: + * To maintain simplicity in the model, the configuration is + * described from client-to-line direction. The assumption is that + * equivalent reverse configuration is implicit, resulting in + * the same line-to-client configuration. + * + * @param session The Netconf session. + * @param r Flow Rules to be applied. + * @return the optical channel + the frequency or just channel as identifier fo the config installed on the device + * @throws NetconfException if exchange goes wrong + */ + protected String applyFlowRule(NetconfSession session, FlowRule r) throws NetconfException { + FlowRuleParser frp = new FlowRuleParser(r); + if (!frp.isReceiver()) { + String optChannel = getOpticalChannel(frp.getPortNumber()); + setOpticalChannelFrequency(session, optChannel, + frp.getCentralFrequency()); + return optChannel + ":" + frp.getCentralFrequency().asGHz(); + } + return String.valueOf(frp.getCentralFrequency().asGHz()); + } + + + protected String removeFlowRule(NetconfSession session, FlowRule r) + throws NetconfException { + FlowRuleParser frp = new FlowRuleParser(r); + if (!frp.isReceiver()) { + String optChannel = getOpticalChannel(frp.getPortNumber()); + setOpticalChannelFrequency(session, optChannel, Frequency.ofMHz(0)); + return optChannel + ":" + frp.getCentralFrequency().asGHz(); + } + return String.valueOf(frp.getCentralFrequency().asGHz()); + } +} diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDeviceDiscovery.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDeviceDiscovery.java new file mode 100644 index 00000000000..a61efe2b11b --- /dev/null +++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDeviceDiscovery.java @@ -0,0 +1,319 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This work was partially supported by EC H2020 project METRO-HAUL (761727). + */ + +package org.onosproject.drivers.odtn; + +import com.google.common.collect.ImmutableList; +import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine; +import org.onlab.packet.ChassisId; +import org.onosproject.drivers.utilities.XmlConfigParser; +import org.onosproject.net.ChannelSpacing; +import org.onosproject.net.DefaultAnnotations; +import org.onosproject.net.Device; +import org.onosproject.net.DeviceId; +import org.onosproject.net.OchSignal; +import org.onosproject.net.OduSignalType; +import org.onosproject.net.Port.Type; +import org.onosproject.net.PortNumber; +import org.onosproject.net.device.DefaultDeviceDescription; +import org.onosproject.net.device.DefaultPortDescription; +import org.onosproject.net.device.DefaultPortDescription.Builder; +import org.onosproject.net.device.DeviceDescription; +import org.onosproject.net.device.DeviceDescriptionDiscovery; +import org.onosproject.net.device.PortDescription; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.net.optical.device.OchPortHelper; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfDevice; +import org.onosproject.netconf.NetconfSession; +import org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery; +import org.slf4j.Logger; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static org.slf4j.LoggerFactory.getLogger; + + +/** + * Driver Implementation of the DeviceDescrption discovery for OpenConfig + * terminal devices. + * + */ +public class AdvaTerminalDeviceDiscovery + extends AbstractHandlerBehaviour + implements OdtnDeviceDescriptionDiscovery, DeviceDescriptionDiscovery { + + private static final String RPC_TAG_NETCONF_BASE = + ""; + + private static final String RPC_CLOSE_TAG = ""; + + private static final String OC_PLATFORM_TYPES_TRANSCEIVER = + "oc-platform-types:TRANSCEIVER"; + + private static final String OC_PLATFORM_TYPES_PORT = + "oc-platform-types:PORT"; + + private static final String OC_TRANSPORT_TYPES_OPTICAL_CHANNEL = + "oc-opt-types:OPTICAL_CHANNEL"; + + private static final Logger log = getLogger(AdvaTerminalDeviceDiscovery.class); + + + /** + * Returns the NetconfSession with the device for which the method was called. + * + * @param deviceId device indetifier + * + * @return The netconf session or null + */ + private NetconfSession getNetconfSession(DeviceId deviceId) { + NetconfController controller = handler().get(NetconfController.class); + NetconfDevice ncdev = controller.getDevicesMap().get(deviceId); + if (ncdev == null) { + log.trace("No netconf device, returning null session"); + return null; + } + return ncdev.getSession(); + } + + + /** + * Get the deviceId for which the methods apply. + * + * @return The deviceId as contained in the handler data + */ + private DeviceId did() { + return handler().data().deviceId(); + } + + + /** + * Construct a String with a Netconf filtered get RPC Message. + * + * @param filter A valid XML tree with the filter to apply in the get + * @return a String containing the RPC XML Document + */ + private String filteredGetBuilder(String filter) { + StringBuilder rpc = new StringBuilder(RPC_TAG_NETCONF_BASE); + rpc.append(""); + rpc.append(""); + rpc.append(filter); + rpc.append(""); + rpc.append(""); + rpc.append(RPC_CLOSE_TAG); + return rpc.toString(); + } + + + /** + * Builds a request to get Device Components, config and operational data. + * + * @return A string with the Netconf RPC for a get with subtree rpcing based on + * /components/ + */ + private String getTerminalDeviceBuilder() { + return filteredGetBuilder(""); + } + + + @Override + public DeviceDescription discoverDeviceDetails() { + return new DefaultDeviceDescription(handler().data().deviceId().uri(), + Device.Type.TERMINAL_DEVICE, + "ADVA", + "FSP3000C", + "3.1", + "", + new ChassisId("1")); + } + + + + /** + * Returns a list of PortDescriptions for the device. + * + * @return a list of descriptions. + * + * The RPC reply follows the following pattern: + * //CHECKSTYLE:OFF + *

{@code
+     * 
+     * 
+     * 
+     *   
+     *     ....
+     *     
+     *     ....
+     *     
+     *   
+     * 
+     * 
+     * }
+ * //CHECKSTYLE:ON + */ + @Override + public List discoverPortDetails() { + try { + NetconfSession session = getNetconfSession(did()); + if (session == null) { + log.error("discoverPortDetails called with null session for {}", did()); + return ImmutableList.of(); + } + + CompletableFuture fut = session.rpc(getTerminalDeviceBuilder()); + String rpcReply = fut.get(); + + XMLConfiguration xconf = (XMLConfiguration) XmlConfigParser.loadXmlString(rpcReply); + xconf.setExpressionEngine(new XPathExpressionEngine()); + + HierarchicalConfiguration logicalChannels = xconf.configurationAt("data/terminal-device/logical-channels"); + return parseLogicalChannels(logicalChannels); + } catch (Exception e) { + log.error("Exception discoverPortDetails() {}", did(), e); + return ImmutableList.of(); + } + } + + + + + /** + * Parses transceiver information from OpenConfig XML configuration. + * + * @param terminalDevice the XML document with components root. + * @return List of ports + * + * //CHECKSTYLE:OFF + *
{@code
+     *   
+     *     ....
+     *     
+     *     ....
+     *     
+     *   
+     * }
+ * //CHECKSTYLE:ON + */ + protected List parseLogicalChannels(HierarchicalConfiguration terminalDevice) { + return terminalDevice.configurationsAt("channel") + .stream() + .filter(channel -> !channel.getString("index", "unknown").equals("unknown")) + .map(channel -> { + try { + // Pass the root document for cross-reference + return parseLogicalChannel(channel); + } catch (Exception e) { + return null; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + + + /** + * Parses a component XML doc into a PortDescription. + * + * @param channel subtree to parse. It must be a component ot type PORT. + * case we need to check transceivers or optical channels. + * + * @return PortDescription or null if component does not have onos-index + */ + private PortDescription parseLogicalChannel( + HierarchicalConfiguration channel) { + + HierarchicalConfiguration config = channel.configurationAt("config"); + String logicalChannelIndex = config.getString("index"); + String description = config.getString("description"); + String rateClass = config.getString("rate-class"); + log.info("Parsing Component {} type {} speed {}", logicalChannelIndex, description, rateClass); + + Map annotations = new HashMap<>(); + annotations.put(OdtnDeviceDescriptionDiscovery.OC_LOGICAL_CHANNEL, logicalChannelIndex); + + // Store all properties as port properties + + Pattern clientPattern = Pattern.compile("(\\d*)/(\\d*)/c(\\d)"); // e.g. xe1/1 + Pattern linePattern = Pattern.compile("(\\d*)/(\\d*)/n(\\d)"); + Matcher clientMatch = clientPattern.matcher(description); + Matcher lineMatch = linePattern.matcher(description); + + Pattern portSpeedPattern = Pattern.compile("TRIB_RATE_([0-9.]*)G"); + Matcher portSpeedMatch = portSpeedPattern.matcher(rateClass); + + Builder builder = DefaultPortDescription.builder(); + + if (portSpeedMatch.find()) { + Long speed = Long.parseLong(portSpeedMatch.group(1)); + builder.portSpeed(speed * 1000); + } + + if (clientMatch.find()) { + Long num = Long.parseLong(clientMatch.group(1)); + Long portNum = 100 + num; + String connectionId = "connection:" + num.toString(); + + annotations.put(OdtnDeviceDescriptionDiscovery.OC_NAME, description); + annotations.putIfAbsent(PORT_TYPE, OdtnPortType.CLIENT.value()); + annotations.putIfAbsent(ONOS_PORT_INDEX, portNum.toString()); + annotations.putIfAbsent(CONNECTION_ID, connectionId); + + builder.withPortNumber(PortNumber.portNumber(portNum)); + builder.type(Type.PACKET); + + builder.annotations(DefaultAnnotations.builder().putAll(annotations).build()); + return builder.build(); + + } else if (lineMatch.find()) { + Long num = (Long.parseLong(lineMatch.group(1)) - 1) * 2 + Long.parseLong(lineMatch.group(2)); + Long portNum = 200 + num; + String connectionId = "connection:" + num.toString(); + + description = description.substring(0, description.length() - 6); + + annotations.putIfAbsent(PORT_TYPE, OdtnPortType.LINE.value()); + annotations.putIfAbsent(ONOS_PORT_INDEX, portNum.toString()); + annotations.putIfAbsent(CONNECTION_ID, connectionId); + annotations.put(OdtnDeviceDescriptionDiscovery.OC_NAME, "optch " + description); + + OchSignal signalId = OchSignal.newDwdmSlot(ChannelSpacing.CHL_50GHZ, 1); + return OchPortHelper.ochPortDescription( + PortNumber.portNumber(portNum), + true, + OduSignalType.ODU4, // TODO Client signal to be discovered + true, + signalId, + DefaultAnnotations.builder().putAll(annotations).build()); + + } else { + log.warn("Unexpected component description: {}", description); + return null; + } + + } +} diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDevicePowerConfig.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDevicePowerConfig.java new file mode 100644 index 00000000000..e76df4e91d2 --- /dev/null +++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/AdvaTerminalDevicePowerConfig.java @@ -0,0 +1,465 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This work was partially supported by EC H2020 project METRO-HAUL (761727). + */ + +package org.onosproject.drivers.odtn; + +import com.google.common.collect.Range; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine; +import org.onlab.osgi.DefaultServiceDirectory; +import org.onosproject.drivers.utilities.XmlConfigParser; +import org.onosproject.net.DeviceId; +import org.onosproject.net.PortNumber; +import org.onosproject.net.behaviour.PowerConfig; +import org.onosproject.net.device.DeviceService; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.netconf.DatastoreId; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfDevice; +import org.onosproject.netconf.NetconfException; +import org.onosproject.netconf.NetconfSession; +import org.slf4j.Logger; + +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.slf4j.LoggerFactory.getLogger; + +/** + * Driver Implementation of the PowerConfig for OpenConfig terminal devices. + */ +public class AdvaTerminalDevicePowerConfig + extends AbstractHandlerBehaviour implements PowerConfig { + + private static final String RPC_TAG_NETCONF_BASE = + ""; + + private static final String RPC_CLOSE_TAG = ""; + + private static final Logger log = getLogger(AdvaTerminalDevicePowerConfig.class); + + private ComponentType state = ComponentType.DIRECTION; + + /** + * Returns the NetconfSession with the device for which the method was called. + * + * @param deviceId device indetifier + * @return The netconf session or null + */ + private NetconfSession getNetconfSession(DeviceId deviceId) { + NetconfController controller = handler().get(NetconfController.class); + NetconfDevice ncdev = controller.getDevicesMap().get(deviceId); + if (ncdev == null) { + log.trace("No netconf device, returning null session"); + return null; + } + return ncdev.getSession(); + } + + /** + * Get the deviceId for which the methods apply. + * + * @return The deviceId as contained in the handler data + */ + private DeviceId did() { + return handler().data().deviceId(); + } + + /** + * Execute RPC request. + * + * @param session Netconf session + * @param message Netconf message in XML format + * @return XMLConfiguration object + */ + + private XMLConfiguration executeRpc(NetconfSession session, String message) { + try { + if (log.isDebugEnabled()) { + try { + StringWriter stringWriter = new StringWriter(); + XMLConfiguration xconf = (XMLConfiguration) XmlConfigParser.loadXmlString(message); + xconf.setExpressionEngine(new XPathExpressionEngine()); + xconf.save(stringWriter); + log.debug("Request {}", stringWriter.toString()); + } catch (ConfigurationException e) { + log.error("XML Config Exception ", e); + } + } + CompletableFuture fut = session.rpc(message); + String rpcReply = fut.get(); + XMLConfiguration xconf = (XMLConfiguration) XmlConfigParser.loadXmlString(rpcReply); + xconf.setExpressionEngine(new XPathExpressionEngine()); + if (log.isDebugEnabled()) { + try { + StringWriter stringWriter = new StringWriter(); + xconf.save(stringWriter); + log.debug("Response {}", stringWriter.toString()); + } catch (ConfigurationException e) { + log.error("XML Config Exception ", e); + } + } + return xconf; + } catch (NetconfException ne) { + log.error("Exception on Netconf protocol: {}.", ne); + } catch (InterruptedException ie) { + log.error("Interrupted Exception: {}.", ie); + } catch (ExecutionException ee) { + log.error("Concurrent Exception while executing Netconf operation: {}.", ee); + } + return null; + } + + /** + * Get the target-output-power value on specific optical-channel. + * + * @param port the port + * @param component the port component. It should be 'oc-name' in the Annotations of Port. + * 'oc-name' could be mapped to '/component/name' in openconfig yang. + * @return target power value + */ + @Override + public Optional getTargetPower(PortNumber port, T component) { + checkState(component); + return state.getTargetPower(port, component); + } + + @Override + public void setTargetPower(PortNumber port, T component, double power) { + checkState(component); + state.setTargetPower(port, component, power); + } + + @Override + public Optional currentPower(PortNumber port, T component) { + checkState(component); + return state.currentPower(port, component); + } + + @Override + public Optional currentInputPower(PortNumber port, T component) { + checkState(component); + return state.currentInputPower(port, component); + } + + @Override + public Optional> getTargetPowerRange(PortNumber port, T component) { + checkState(component); + return state.getTargetPowerRange(port, component); + } + + @Override + public Optional> getInputPowerRange(PortNumber port, T component) { + checkState(component); + return state.getInputPowerRange(port, component); + } + + @Override + public List getPorts(T component) { + checkState(component); + return state.getPorts(component); + } + + + /** + * Set the ComponentType to invoke proper methods for different template T. + * + * @param component the component. + */ + void checkState(Object component) { + String clsName = component.getClass().getName(); + switch (clsName) { + case "org.onosproject.net.Direction": + state = ComponentType.DIRECTION; + break; + case "org.onosproject.net.OchSignal": + state = ComponentType.OCHSIGNAL; + break; + default: + log.error("Cannot parse the component type {}.", clsName); + log.info("The component content is {}.", component.toString()); + } + state.adva = this; + } + + /** + * Component type. + */ + enum ComponentType { + + /** + * Direction. + */ + DIRECTION() { + @Override + public Optional getTargetPower(PortNumber port, Object component) { + return super.getTargetPower(port, component); + } + + @Override + public void setTargetPower(PortNumber port, Object component, double power) { + super.setTargetPower(port, component, power); + } + }, + + /** + * OchSignal. + */ + OCHSIGNAL() { + @Override + public Optional getTargetPower(PortNumber port, Object component) { + return super.getTargetPower(port, component); + } + + @Override + public void setTargetPower(PortNumber port, Object component, double power) { + super.setTargetPower(port, component, power); + } + }; + + + AdvaTerminalDevicePowerConfig adva; + + /** + * mirror method in the internal class. + * + * @param port port + * @param component component + * @return target power + */ + Optional getTargetPower(PortNumber port, Object component) { + NetconfSession session = adva.getNetconfSession(adva.did()); + checkNotNull(session); + String filter = parsePort(adva, port, null, null); + StringBuilder rpcReq = new StringBuilder(); + rpcReq.append(RPC_TAG_NETCONF_BASE) + .append("") + .append("") + .append("<" + DatastoreId.RUNNING + "/>") + .append("") + .append("") + .append(filter) + .append("") + .append("") + .append(RPC_CLOSE_TAG); + XMLConfiguration xconf = adva.executeRpc(session, rpcReq.toString()); + if (xconf == null) { + log.error("Error in executingRpc"); + return Optional.empty(); + } + try { + HierarchicalConfiguration config = + xconf.configurationAt("data/components/component/optical-channel/config"); + if (config == null || config.getString("target-output-power") == null) { + return Optional.empty(); + } + double power = Float.valueOf(config.getString("target-output-power")).doubleValue(); + return Optional.of(power); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } + + /** + * mirror method in the internal class. + * + * @param port port + * @param component component + * @param power target value + */ + void setTargetPower(PortNumber port, Object component, double power) { + NetconfSession session = adva.getNetconfSession(adva.did()); + checkNotNull(session); + String editConfig = parsePort(adva, port, null, power); + StringBuilder rpcReq = new StringBuilder(); + rpcReq.append(RPC_TAG_NETCONF_BASE) + .append("") + .append("<" + DatastoreId.CANDIDATE + "/>") + .append("") + .append(editConfig) + .append("") + .append("") + .append(RPC_CLOSE_TAG); + log.info("Setting power {}", rpcReq.toString()); + XMLConfiguration xconf = adva.executeRpc(session, rpcReq.toString()); + // The successful reply should be "" + if (!xconf.getRoot().getChild(0).getName().equals("ok")) { + log.error("The operation to set target-output-power of Port({}:{}) is failed.", + port.toString(), component.toString()); + } + try { + session.commit(); + } catch (NetconfException e) { + log.error("error committing channel power", e); + } + } + + /** + * mirror method in the internal class. + * + * @param port port + * @param component the component. + * @return current output power. + */ + Optional currentPower(PortNumber port, Object component) { + XMLConfiguration xconf = getOpticalChannelState( + adva, port, ""); + try { + HierarchicalConfiguration config = + xconf.configurationAt("data/components/component/optical-channel/state/output-power"); + if (config == null || config.getString("instant") == null) { + return Optional.empty(); + } + double currentPower = Float.valueOf(config.getString("instant")).doubleValue(); + return Optional.of(currentPower); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } + + /** + * mirror method in the internal class. + * + * @param port port + * @param component the component + * @return current input power + */ + Optional currentInputPower(PortNumber port, Object component) { + XMLConfiguration xconf = getOpticalChannelState( + adva, port, ""); + try { + HierarchicalConfiguration config = + xconf.configurationAt("data/components/component/optical-channel/state/input-power"); + if (config == null || config.getString("instant") == null) { + return Optional.empty(); + } + double currentPower = Float.valueOf(config.getString("instant")).doubleValue(); + return Optional.of(currentPower); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } + + Optional> getTargetPowerRange(PortNumber port, Object component) { + double targetMin = -30; + double targetMax = 1; + return Optional.of(Range.open(targetMin, targetMax)); + } + + Optional> getInputPowerRange(PortNumber port, Object component) { + double targetMin = -30; + double targetMax = 1; + return Optional.of(Range.open(targetMin, targetMax)); + } + + List getPorts(Object component) { + // FIXME + log.warn("Not Implemented Yet!"); + return new ArrayList(); + } + + /** + * Get filtered content under . + * + * @param pc power config instance + * @param port the port number + * @param underState the filter condition + * @return RPC reply + */ + private static XMLConfiguration getOpticalChannelState(AdvaTerminalDevicePowerConfig pc, + PortNumber port, String underState) { + NetconfSession session = pc.getNetconfSession(pc.did()); + checkNotNull(session); + String name = ocName(pc, port); + StringBuilder rpcReq = new StringBuilder(RPC_TAG_NETCONF_BASE); + rpcReq.append("") + .append("").append(name).append("") + .append("") + .append("") + .append(underState) + .append("") + .append(RPC_CLOSE_TAG); + XMLConfiguration xconf = pc.executeRpc(session, rpcReq.toString()); + return xconf; + } + + + /** + * Extract component name from portNumber's annotations. + * + * @param pc power config instance + * @param portNumber the port number + * @return the component name + */ + private static String ocName(AdvaTerminalDevicePowerConfig pc, PortNumber portNumber) { + DeviceService deviceService = DefaultServiceDirectory.getService(DeviceService.class); + DeviceId deviceId = pc.handler().data().deviceId(); + return deviceService.getPort(deviceId, portNumber).annotations().value("oc-name"); + } + + + /** + * Parse filtering string from port and component. + * + * @param portNumber Port Number + * @param component port component (optical-channel) + * @param power power value set. + * @return filtering string in xml format + */ + private static String parsePort(AdvaTerminalDevicePowerConfig pc, PortNumber portNumber, + Object component, Double power) { + if (component == null) { + String name = ocName(pc, portNumber); + StringBuilder sb = new StringBuilder(""); + sb.append(""); + if (power != null) { + // This is an edit-config operation. + sb.append("") + .append("") + .append(name) + .append("") + .append("") + .append("") + .append("") + .append("") + .append(power) + .append("") + .append("") + .append(""); + } else { + sb.append("") + .append(name) + .append(""); + } + + sb.append("").append(""); + return sb.toString(); + } else { + log.error("Cannot process the component {}.", component.getClass()); + return null; + } + } + } +} diff --git a/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/NokiaTerminalDevicePowerConfig.java b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/NokiaTerminalDevicePowerConfig.java new file mode 100644 index 00000000000..9893fdbda8a --- /dev/null +++ b/drivers/odtn-driver/src/main/java/org/onosproject/drivers/odtn/NokiaTerminalDevicePowerConfig.java @@ -0,0 +1,526 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This work was partially supported by EC H2020 project METRO-HAUL (761727). + */ + +package org.onosproject.drivers.odtn; + +import com.google.common.collect.Range; +import org.apache.commons.configuration.XMLConfiguration; +import org.onlab.osgi.DefaultServiceDirectory; +import org.onosproject.drivers.utilities.XmlConfigParser; +import org.onosproject.net.DeviceId; +import org.onosproject.net.PortNumber; +import org.onosproject.net.behaviour.PowerConfig; +import org.onosproject.net.device.DeviceService; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfDevice; +import org.onosproject.netconf.NetconfException; +import org.onosproject.netconf.NetconfSession; +import org.slf4j.Logger; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.slf4j.LoggerFactory.getLogger; + +/** + * Driver Implementation of the PowerConfig for OpenConfig terminal devices. + * Currently works only with PSI-2T. + * If you want to make it work with ROADM, you need to implement this interface again. + * + */ +public class NokiaTerminalDevicePowerConfig + extends AbstractHandlerBehaviour implements PowerConfig { + + private static final String RPC_TAG_NETCONF_BASE = + ""; + + private static final String RPC_CLOSE_TAG = ""; + + private static final String OPTICAL_CHANNEL = "OCH"; + + private static final Logger log = getLogger(NokiaTerminalDevicePowerConfig.class); + + private ComponentType state = ComponentType.DIRECTION; + + //The username and password are different from the username and password in the netconf-cfg file + private static final String USER_NAME = "admin"; + private static final String PASSWORD = "admin"; + + + /** + * Login to the device by providing the correct user and password in order to configure the device + * Returns the NetconfSession with the device for which the method was called. + * + * @param deviceId device identifier + * @param userName username to access the device + * @param passwd password to access the device + * @return The netconf session or null + */ + private NetconfSession getNetconfSessionAndLogin(DeviceId deviceId, String userName, String passwd) { + NetconfController nc = handler().get(NetconfController.class); + NetconfDevice ndev = nc.getDevicesMap().get(deviceId); + if (ndev == null) { + log.debug("NetConf device " + deviceId + " is not found, returning null session"); + return null; + } + NetconfSession ns = ndev.getSession(); + if (ns == null) { + log.error("discoverPorts called with null session for \n {}", deviceId); + return null; + } + + try { + String reply = ns.requestSync(buildLoginRpc(userName, passwd)); + if (reply.contains("")) { + return ns; + } else { + log.debug("Reply contains this: \n {}", reply); + return null; + } + } catch (NetconfException e) { + log.error("Can NOT login to the device", e); + } + return ns; + } + + /** + * Construct a rpc login message. + * + * @param userName username to access the device + * @param passwd password to access the device + * @return RPC message + */ + private String buildLoginRpc(String userName, String passwd) { + StringBuilder rpc = new StringBuilder(RPC_TAG_NETCONF_BASE); + rpc.append(""); + rpc.append(""); + rpc.append(userName); + rpc.append(""); + rpc.append(""); + rpc.append(passwd); + rpc.append(""); + rpc.append(""); + rpc.append(RPC_CLOSE_TAG); + return rpc.toString(); + } + + //crude way of removing rpc-reply envelope (copy from netconf session) + private String getDataOfRpcReply(String rpcReply) { + String data = null; + int begin = rpcReply.indexOf(""); + int end = rpcReply.lastIndexOf(""); + if (begin != -1 && end != -1) { + data = (String) rpcReply.subSequence(begin, end + "".length()); + } else { + data = rpcReply; + } + return data; + } + + /** + * Get the deviceId for which the methods apply. + * + * @return The deviceId as contained in the handler data + */ + private DeviceId did() { + return handler().data().deviceId(); + } + + /** + * Execute RPC request. + * @param session Netconf session + * @param message Netconf message in XML format + * @return XMLConfiguration object + */ + + //TODO: rewrite with requestSync operation.. + private XMLConfiguration executeRpcReq(NetconfSession session, String message) { + try { + String reply = session.requestSync(message); + String data = getDataOfRpcReply(reply); + log.debug("\n\n [executeRpcReq] RPC request returned this: \n {} \n\n", data); + XMLConfiguration cfg = (XMLConfiguration) XmlConfigParser.loadXmlString(getDataOfRpcReply(reply)); + return cfg; + } catch (NetconfException ne) { + log.error("Exception on NetConf protocol: {}.", ne); + } catch (Exception e) { + log.debug("Error loading data to internal XML Configuration format: \n {}", e); + } + return null; + } + + /** + * Get the target-output-power value on specific optical-channel. + * @param port the port + * @param component the port component. It should be 'oc-name' in the Annotations of Port. + * 'oc-name' could be mapped to '/component/name' in openconfig yang. + * @return target power value + */ + @Override + public Optional getTargetPower(PortNumber port, T component) { + checkState(component); + return state.getTargetPower(port, component); + } + + @Override + public void setTargetPower(PortNumber port, T component, double power) { + checkState(component); + state.setTargetPower(port, component, power); + } + + @Override + public Optional currentPower(PortNumber port, T component) { + checkState(component); + return state.currentPower(port, component); + } + + @Override + public Optional currentInputPower(PortNumber port, T component) { + checkState(component); + return state.currentInputPower(port, component); + } + + @Override + public Optional> getTargetPowerRange(PortNumber port, T component) { + checkState(component); + return state.getTargetPowerRange(port, component); + } + + @Override + public Optional> getInputPowerRange(PortNumber port, T component) { + checkState(component); + return state.getInputPowerRange(port, component); + } + + @Override + public List getPorts(T component) { + checkState(component); + return state.getPorts(component); + } + + + /** + * Set the ComponentType to invoke proper methods for different template T. + * @param component the component. + */ + void checkState(Object component) { + String clsName = component.getClass().getName(); + switch (clsName) { + case "org.onosproject.net.Direction": + state = ComponentType.DIRECTION; + break; + case "org.onosproject.net.OchSignal": + state = ComponentType.OCHSIGNAL; + break; + default: + log.error("Cannot parse the component type {}.", clsName); + log.info("The component content is {}.", component.toString()); + } + state.nokia = this; + } + + /** + * Component type. + */ + enum ComponentType { + + /** + * Direction. + */ + DIRECTION() { + @Override + public Optional getTargetPower(PortNumber port, Object component) { + return super.getTargetPower(port, component); + } + @Override + public void setTargetPower(PortNumber port, Object component, double power) { + super.setTargetPower(port, component, power); + } + }, + + /** + * OchSignal. + */ + OCHSIGNAL() { + @Override + public Optional getTargetPower(PortNumber port, Object component) { + return super.getTargetPower(port, component); + } + + @Override + public void setTargetPower(PortNumber port, Object component, double power) { + super.setTargetPower(port, component, power); + } + }; + + + + NokiaTerminalDevicePowerConfig nokia; + + /** + * mirror method in the internal class. + * @param port port + * @param component component + * @return target power + */ + //TODO: Overlap with getTargetPowerRange function.. + Optional getTargetPower(PortNumber port, Object component) { + NetconfSession session = nokia.getNetconfSessionAndLogin(nokia.did(), USER_NAME, PASSWORD); + checkNotNull(session); + String filter = parsePort(nokia, port, null, null); + if (filter != null) { + StringBuilder rpcReq = new StringBuilder(); + rpcReq.append(RPC_TAG_NETCONF_BASE) + .append("") + .append("") + .append(filter) + .append("") + .append("") + .append(RPC_CLOSE_TAG); + XMLConfiguration xconf = nokia.executeRpcReq(session, rpcReq.toString()); + log.debug("\n\n [getTargetPower] Obtained information " + + "from getTargetPower function is.. \n {} \n\n", xconf); + try { + String tpower = xconf.getString("components.component." + + "oc-opt-term:optical-channel." + + "oc-opt-term:config." + + "oc-opt-term:target-output-power"); + double power = Float.valueOf(tpower).doubleValue(); + log.debug("\n\n [getTargetPower] Target OUTPUT power is.. {} \n\n", power); + return Optional.of(power); + } catch (IllegalArgumentException e) { + log.debug("\n\n [getTargetPower] Something went wrong " + + "during the parsing of configuration in getTargetPower function.. \n\n"); + return Optional.empty(); + } + } else { + log.debug("Port you're trying to get ({}) is not optical", port.toString()); + return Optional.empty(); + } + } + + /** + * mirror method in the internal class. + * @param port port + * @param component component + * @param power target value + */ + void setTargetPower(PortNumber port, Object component, double power) { + NetconfSession session = nokia.getNetconfSessionAndLogin(nokia.did(), USER_NAME, PASSWORD); + checkNotNull(session); + String editConfig = parsePort(nokia, port, null, power); + if (editConfig != null) { + StringBuilder rpcReq = new StringBuilder(); + rpcReq.append(RPC_TAG_NETCONF_BASE) + .append("") + .append("") + .append("") + .append(editConfig) + .append("") + .append("") + .append(RPC_CLOSE_TAG); + XMLConfiguration xconf = nokia.executeRpcReq(session, rpcReq.toString()); + log.debug("\n\n [setTargetPower] Obtained information is.. \n {} \n\n", xconf); + // The successful reply should be "" + if (!xconf.getRoot().getChild(0).getName().equals("ok")) { + log.error("[setTargetPower] The operation " + + "to set target-output-power of Port({}:{}) is failed.", + port.toString(), component.toString()); + } else { + log.debug("[setTargetPower] Answer on request " + + "is following: \n {}\n", xconf.toString()); + } + } else { + log.debug("[setTargetPower] Port you're trying " + + "to set ({}) is not optical", port.toString()); + } + } + + /** + * mirror method in the internal class. + * @param port port + * @param component the component. + * @return current output power. + */ + Optional currentPower(PortNumber port, Object component) { + XMLConfiguration xconf = getOpticalChannelState( + nokia, port, "" + + "" + + ""); + try { + String oipower = xconf.getString("components.component." + + "oc-opt-term:optical-channel." + + "oc-opt-term:state." + + "oc-opt-term:output-power." + + "oc-opt-term:instant"); + log.debug("\n\n [currentPower] That's what we read: \n {} \n\n", oipower); + double currentPower = Float.valueOf(oipower).doubleValue(); + return Optional.of(currentPower); + } catch (Exception e) { + log.debug("\n\n [currentPower] Something went wrong " + + "during the parsing of obtained answer.. \n\n"); + return Optional.empty(); + } + } + + /** + * mirror method in the internal class. + * @param port port + * @param component the component + * @return current input power + */ + Optional currentInputPower(PortNumber port, Object component) { + XMLConfiguration xconf = getOpticalChannelState( + nokia, port, "" + + "" + + ""); + try { + String iipower = xconf.getString("components.component." + + "oc-opt-term:optical-channel." + + "oc-opt-term:state." + + "oc-opt-term:input-power." + + "oc-opt-term:instant"); + log.debug("\n\n [currentInputPower] That's what we read: \n {} \n\n", iipower); + double currentPower = Float.valueOf(iipower).doubleValue(); + + return Optional.of(currentPower); + } catch (Exception e) { + log.debug("\n\n [currentInputPower] Something went wrong " + + "during the parsing of obtained answer.. \n\n"); + return Optional.empty(); + } + } + + /** + * Getting target value of output power. + * @param port port + * @param component the component + * @return target output power range + */ + + Optional> getTargetPowerRange(PortNumber port, Object component) { + double targetMin = -20; + double targetMax = 5; + return Optional.of(Range.open(targetMin, targetMax)); + } + + Optional> getInputPowerRange(PortNumber port, Object component) { + double targetMin = -20; + double targetMax = 5; + return Optional.of(Range.open(targetMin, targetMax)); + } + + List getPorts(Object component) { + // FIXME + log.warn("[getPorts] Not Implemented Yet!"); + return new ArrayList(); + } + + /** + * Get filtered content under . + * @param pc power config instance + * @param port the port number + * @param underState the filter condition + * @return RPC reply + */ + private static XMLConfiguration getOpticalChannelState(NokiaTerminalDevicePowerConfig pc, + PortNumber port, String underState) { + NetconfSession session = pc.getNetconfSessionAndLogin(pc.did(), USER_NAME, PASSWORD); + checkNotNull(session); + String name = ocName(pc, port); + StringBuilder rpcReq = new StringBuilder(RPC_TAG_NETCONF_BASE); + rpcReq.append("") + .append("").append(name).append("") + .append("") + .append("") + .append(underState) + .append("") + .append("") + .append("") + .append(RPC_CLOSE_TAG); + XMLConfiguration xconf = pc.executeRpcReq(session, rpcReq.toString()); + return xconf; + } + + /** + * Extract component name from portNumber's annotations. + * @param pc power config instance + * @param portNumber the port number + * @return the component name + */ + private static String ocName(NokiaTerminalDevicePowerConfig pc, PortNumber portNumber) { + DeviceService deviceService = DefaultServiceDirectory.getService(DeviceService.class); + DeviceId deviceId = pc.handler().data().deviceId(); + String port = deviceService.getPort(deviceId, portNumber).annotations().value("oc-name"); + + // Applying some magic to return the correct port with the correct name + String portType = deviceService.getPort(deviceId, portNumber).type().toString(); + log.debug("\n\n [ocName] Type of the port taken from ONOS storage " + + "has following properties.. \n {} \n", portType); + if (portType.equals(OPTICAL_CHANNEL)) { + String[] textStr = port.split("-"); + String och = "OCH-" + textStr[1] + "-" + textStr[2] + "-" + textStr[3]; + log.debug("\n\n [ocName] Optical channel returned is.. {} \n\n", och); + return och; + } else { + log.debug("[ocName] This port is not an optical one"); + return null; + } + } + + /** + * Parse filtering string from port and component. + * @param portNumber Port Number + * @param component port component (optical-channel) + * @param power power value set. + * @return filtering string in xml format + */ + private static String parsePort(NokiaTerminalDevicePowerConfig pc, PortNumber portNumber, + Object component, Double power) { + if (component == null) { + String name = ocName(pc, portNumber); + if (name != null) { + StringBuilder sb = new StringBuilder(""); + sb.append("").append("").append(name).append(""); + if (power != null) { + // This is an edit-config operation. + sb.append("") + .append("") + .append("") + .append(power) + .append("") + .append("") + .append(""); + } + sb.append("").append(""); + return sb.toString(); + } + } else { + log.error("[parsePort] Cannot process the component {}.", component.getClass()); + return null; + } + return null; + } + } +} diff --git a/drivers/odtn-driver/src/main/resources/odtn-drivers.xml b/drivers/odtn-driver/src/main/resources/odtn-drivers.xml index 23d2d43df1b..174b2082e2a 100644 --- a/drivers/odtn-driver/src/main/resources/odtn-drivers.xml +++ b/drivers/odtn-driver/src/main/resources/odtn-drivers.xml @@ -147,6 +147,8 @@ impl="org.onosproject.net.optical.DefaultOpticalDevice"/> + urn:ietf:params:netconf:base:1.0| urn:ietf:params:netconf:capability:writable-running:1.0| urn:ietf:params:netconf:capability:notification:1.0| @@ -176,5 +178,19 @@ http://openconfig.net/yang/types/yang?module=openconfig-yang-types&revision=2017-07-30| urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&revision=2013-07-15 + + + + + + + + diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimeHandlerBehaviour.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimeHandlerBehaviour.java index 222cdaae353..49f79f9eaf8 100644 --- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimeHandlerBehaviour.java +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimeHandlerBehaviour.java @@ -38,7 +38,7 @@ public abstract class AbstractP4RuntimeHandlerBehaviour PiTranslationService translationService; - AbstractP4RuntimeHandlerBehaviour() { + public AbstractP4RuntimeHandlerBehaviour() { super(P4RuntimeController.class); } diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimePipelineProgrammable.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimePipelineProgrammable.java index bc162b2d3ed..041d930371f 100644 --- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimePipelineProgrammable.java +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/AbstractP4RuntimePipelineProgrammable.java @@ -16,14 +16,20 @@ package org.onosproject.drivers.p4runtime; +import org.onosproject.drivers.p4runtime.mirror.P4RuntimeDefaultEntryMirror; import org.onosproject.net.behaviour.PiPipelineProgrammable; +import org.onosproject.net.pi.model.PiPipelineModel; import org.onosproject.net.pi.model.PiPipeconf; +import org.onosproject.net.pi.runtime.PiTableEntry; +import org.onosproject.p4runtime.api.P4RuntimeReadClient; import org.slf4j.Logger; import java.nio.ByteBuffer; import java.util.Optional; import java.util.concurrent.CompletableFuture; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.SUPPORT_DEFAULT_TABLE_ENTRY; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY; import static java.util.concurrent.CompletableFuture.completedFuture; import static org.slf4j.LoggerFactory.getLogger; @@ -55,8 +61,9 @@ public CompletableFuture setPipeconf(PiPipeconf pipeconf) { // Hopefully the child class logged the problem. return completedFuture(false); } - - return client.setPipelineConfig(p4DeviceId, pipeconf, deviceDataBuffer); + CompletableFuture pipeconfSet = client.setPipelineConfig( + p4DeviceId, pipeconf, deviceDataBuffer); + return getDefaultEntries(pipeconfSet, pipeconf); } @Override @@ -70,4 +77,47 @@ public CompletableFuture isPipeconfSet(PiPipeconf pipeconf) { @Override public abstract Optional getDefaultPipeconf(); + + /** + * Once the pipeconf is set successfully, we should store all the default entries + * before notify other service to prevent overwriting the default entries. + * Default entries may be used in P4RuntimeFlowRuleProgrammable. + *

+ * This method returns a completable future with the result of the pipeconf set + * operation (which might not be true). + * + * @param pipeconfSet completable future for setting pipeconf + * @param pipeconf pipeconf + * @return completable future eventually true if the pipeconf set successfully + */ + private CompletableFuture getDefaultEntries(CompletableFuture pipeconfSet, PiPipeconf pipeconf) { + if (!driverBoolProperty( + SUPPORT_DEFAULT_TABLE_ENTRY, + DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY)) { + return pipeconfSet; + } + return pipeconfSet.thenApply(setSuccess -> { + if (!setSuccess) { + return setSuccess; + } + final P4RuntimeDefaultEntryMirror mirror = handler() + .get(P4RuntimeDefaultEntryMirror.class); + + final PiPipelineModel pipelineModel = pipeconf.pipelineModel(); + final P4RuntimeReadClient.ReadRequest request = client.read( + p4DeviceId, pipeconf); + // Read default entries from all non-constant tables. + // Ignore constant default entries. + pipelineModel.tables().stream() + .filter(t -> !t.isConstantTable()) + .forEach(t -> { + if (!t.constDefaultAction().isPresent()) { + request.defaultTableEntry(t.id()); + } + }); + final P4RuntimeReadClient.ReadResponse response = request.submitSync(); + mirror.sync(deviceId, response.all(PiTableEntry.class)); + return true; + }); + } } diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeDriverProperties.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeDriverProperties.java new file mode 100644 index 00000000000..ebc6eda3b63 --- /dev/null +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeDriverProperties.java @@ -0,0 +1,54 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.drivers.p4runtime; + +/** + * Driver properties for P4Runtime. + */ +public final class P4RuntimeDriverProperties { + + // hide default constructor + private P4RuntimeDriverProperties() { + } + + // When updating an existing rule, if true, we issue a DELETE operation + // before inserting the new one, otherwise we issue a MODIFY operation. This + // is useful fore devices that do not support MODIFY operations for table + // entries. + public static final String DELETE_BEFORE_UPDATE = "tableDeleteBeforeUpdate"; + public static final boolean DEFAULT_DELETE_BEFORE_UPDATE = false; + + // If true, we avoid querying the device and return what's already known by + // the ONOS store. + public static final String READ_FROM_MIRROR = "tableReadFromMirror"; + public static final boolean DEFAULT_READ_FROM_MIRROR = false; + + // If true, we read counters when reading table entries (if table has + // counters). Otherwise, we don't. + public static final String SUPPORT_TABLE_COUNTERS = "supportTableCounters"; + public static final boolean DEFAULT_SUPPORT_TABLE_COUNTERS = true; + + // If true, assumes that the device returns table entry message populated + // with direct counter values. If false, we issue a second P4Runtime request + // to read the direct counter values. + public static final String READ_COUNTERS_WITH_TABLE_ENTRIES = "tableReadCountersWithTableEntries"; + public static final boolean DEFAULT_READ_COUNTERS_WITH_TABLE_ENTRIES = true; + + // True if target supports reading and writing table entries. + public static final String SUPPORT_DEFAULT_TABLE_ENTRY = "supportDefaultTableEntry"; + public static final boolean DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY = true; +} \ No newline at end of file diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java index fbc512a060f..cdd04790fe0 100644 --- a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/P4RuntimeFlowRuleProgrammable.java @@ -21,6 +21,7 @@ import com.google.common.collect.Maps; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Striped; +import org.onosproject.drivers.p4runtime.mirror.P4RuntimeDefaultEntryMirror; import org.onosproject.drivers.p4runtime.mirror.P4RuntimeTableMirror; import org.onosproject.drivers.p4runtime.mirror.TimedEntry; import org.onosproject.net.flow.DefaultFlowEntry; @@ -28,7 +29,6 @@ import org.onosproject.net.flow.FlowRule; import org.onosproject.net.flow.FlowRuleProgrammable; import org.onosproject.net.pi.model.PiCounterType; -import org.onosproject.net.pi.model.PiPipelineInterpreter; import org.onosproject.net.pi.model.PiPipelineModel; import org.onosproject.net.pi.model.PiTableId; import org.onosproject.net.pi.runtime.PiCounterCell; @@ -37,6 +37,7 @@ import org.onosproject.net.pi.runtime.PiCounterCellId; import org.onosproject.net.pi.runtime.PiEntityType; import org.onosproject.net.pi.runtime.PiHandle; +import org.onosproject.net.pi.runtime.PiMatchKey; import org.onosproject.net.pi.runtime.PiTableEntry; import org.onosproject.net.pi.runtime.PiTableEntryHandle; import org.onosproject.net.pi.service.PiFlowRuleTranslator; @@ -58,7 +59,16 @@ import java.util.concurrent.locks.Lock; import java.util.stream.Collectors; -import static org.onosproject.drivers.p4runtime.P4RuntimeDriverUtils.getInterpreter; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_DELETE_BEFORE_UPDATE; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_READ_COUNTERS_WITH_TABLE_ENTRIES; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_READ_FROM_MIRROR; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DEFAULT_SUPPORT_TABLE_COUNTERS; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.DELETE_BEFORE_UPDATE; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.READ_COUNTERS_WITH_TABLE_ENTRIES; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.READ_FROM_MIRROR; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.SUPPORT_DEFAULT_TABLE_ENTRY; +import static org.onosproject.drivers.p4runtime.P4RuntimeDriverProperties.SUPPORT_TABLE_COUNTERS; import static org.onosproject.drivers.p4runtime.P4RuntimeFlowRuleProgrammable.Operation.APPLY; import static org.onosproject.drivers.p4runtime.P4RuntimeFlowRuleProgrammable.Operation.REMOVE; import static org.onosproject.net.flow.FlowEntry.FlowEntryState.ADDED; @@ -73,33 +83,6 @@ public class P4RuntimeFlowRuleProgrammable extends AbstractP4RuntimeHandlerBehaviour implements FlowRuleProgrammable { - // When updating an existing rule, if true, we issue a DELETE operation - // before inserting the new one, otherwise we issue a MODIFY operation. This - // is useful fore devices that do not support MODIFY operations for table - // entries. - private static final String DELETE_BEFORE_UPDATE = "tableDeleteBeforeUpdate"; - private static final boolean DEFAULT_DELETE_BEFORE_UPDATE = false; - - // If true, we avoid querying the device and return what's already known by - // the ONOS store. - private static final String READ_FROM_MIRROR = "tableReadFromMirror"; - private static final boolean DEFAULT_READ_FROM_MIRROR = false; - - // If true, we read counters when reading table entries (if table has - // counters). Otherwise, we don't. - private static final String SUPPORT_TABLE_COUNTERS = "supportTableCounters"; - private static final boolean DEFAULT_SUPPORT_TABLE_COUNTERS = true; - - // If true, assumes that the device returns table entry message populated - // with direct counter values. If false, we issue a second P4Runtime request - // to read the direct counter values. - private static final String READ_COUNTERS_WITH_TABLE_ENTRIES = "tableReadCountersWithTableEntries"; - private static final boolean DEFAULT_READ_COUNTERS_WITH_TABLE_ENTRIES = true; - - // True if target supports reading and writing table entries. - private static final String SUPPORT_DEFAULT_TABLE_ENTRY = "supportDefaultTableEntry"; - private static final boolean DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY = true; - // Used to make sure concurrent calls to write flow rules are serialized so // that each request gets consistent access to mirror state. private static final Striped WRITE_LOCKS = Striped.lock(30); @@ -107,6 +90,7 @@ public class P4RuntimeFlowRuleProgrammable private PiPipelineModel pipelineModel; private P4RuntimeTableMirror tableMirror; private PiFlowRuleTranslator translator; + private P4RuntimeDefaultEntryMirror defaultEntryMirror; @Override protected boolean setupBehaviour(String opName) { @@ -118,6 +102,7 @@ protected boolean setupBehaviour(String opName) { pipelineModel = pipeconf.pipelineModel(); tableMirror = handler().get(P4RuntimeTableMirror.class); translator = translationService.flowRuleTranslator(); + defaultEntryMirror = handler().get(P4RuntimeDefaultEntryMirror.class); return true; } @@ -128,7 +113,8 @@ public Collection getFlowEntries() { return Collections.emptyList(); } - if (driverBoolProperty(READ_FROM_MIRROR, DEFAULT_READ_FROM_MIRROR)) { + if (driverBoolProperty(READ_FROM_MIRROR, + DEFAULT_READ_FROM_MIRROR)) { return getFlowEntriesFromMirror(); } @@ -237,8 +223,12 @@ private FlowEntry forgeFlowEntry(PiTableEntry entry, translatedEntity = translator.lookup(handle); final TimedEntry timedEntry = tableMirror.get(handle); + // A default entry might not be present in the translation store if it + // was not inserted by an app. No need to log. if (!translatedEntity.isPresent()) { - log.warn("Table entry handle not found in translation store: {}", handle); + if (!isOriginalDefaultEntry(entry)) { + log.warn("Table entry handle not found in translation store: {}", handle); + } return null; } if (!translatedEntity.get().translated().equals(entry)) { @@ -390,9 +380,11 @@ private boolean appendEntryToWriteRequestOrSkip( final UpdateType updateType; final boolean supportDefaultEntry = driverBoolProperty( - SUPPORT_DEFAULT_TABLE_ENTRY, DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY); + SUPPORT_DEFAULT_TABLE_ENTRY, + DEFAULT_SUPPORT_DEFAULT_TABLE_ENTRY); final boolean deleteBeforeUpdate = driverBoolProperty( - DELETE_BEFORE_UPDATE, DEFAULT_DELETE_BEFORE_UPDATE); + DELETE_BEFORE_UPDATE, + DEFAULT_DELETE_BEFORE_UPDATE); if (driverOperation == APPLY) { if (piEntryOnDevice == null) { @@ -419,8 +411,8 @@ private boolean appendEntryToWriteRequestOrSkip( } else { // REMOVE. if (piEntryToApply.isDefaultAction()) { - // Cannot remove default action. Instead we should use the - // original defined by the interpreter (if any). + // Cannot remove default action. Instead we should modify it to + // use the original one as specified in the P4 program. final PiTableEntry originalDefaultEntry = getOriginalDefaultEntry( piEntryToApply.table()); if (originalDefaultEntry == null) { @@ -443,22 +435,16 @@ private boolean appendEntryToWriteRequestOrSkip( } private PiTableEntry getOriginalDefaultEntry(PiTableId tableId) { - final PiPipelineInterpreter interpreter = getInterpreter(handler()); - if (interpreter == null) { - log.warn("Missing interpreter for {}, cannot get default action", - deviceId); - return null; - } - if (!interpreter.getOriginalDefaultAction(tableId).isPresent()) { - log.warn("Interpreter of {} doesn't define a default action for " + - "table {}, cannot produce default action entry", - deviceId, tableId); - return null; - } - return PiTableEntry.builder() + final PiTableEntryHandle handle = PiTableEntry.builder() .forTable(tableId) - .withAction(interpreter.getOriginalDefaultAction(tableId).get()) - .build(); + .withMatchKey(PiMatchKey.EMPTY) + .build() + .handle(deviceId); + final TimedEntry originalDefaultEntry = defaultEntryMirror.get(handle); + if (originalDefaultEntry != null) { + return originalDefaultEntry.entry(); + } + return null; } private boolean isOriginalDefaultEntry(PiTableEntry entry) { @@ -466,8 +452,15 @@ private boolean isOriginalDefaultEntry(PiTableEntry entry) { return false; } final PiTableEntry originalDefaultEntry = getOriginalDefaultEntry(entry.table()); - return originalDefaultEntry != null && - originalDefaultEntry.action().equals(entry.action()); + if (originalDefaultEntry == null) { + return false; + } + // Sometimes the default action may be null + // e.g. In basic pipeline, the default action in wcmp_table is null + if (originalDefaultEntry.action() == null) { + return entry.action() == null; + } + return originalDefaultEntry.action().equals(entry.action()); } private Map readEntryCounters( diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java new file mode 100644 index 00000000000..95eb601b736 --- /dev/null +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/DistributedP4RuntimeDefaultEntryMirror.java @@ -0,0 +1,36 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.drivers.p4runtime.mirror; + +import org.onosproject.net.pi.runtime.PiEntityType; +import org.onosproject.net.pi.runtime.PiTableEntry; +import org.onosproject.net.pi.runtime.PiTableEntryHandle; +import org.osgi.service.component.annotations.Component; + +/** + * Distributed implementation of a P4Runtime default entry mirror. + */ +@Component(immediate = true, service = P4RuntimeDefaultEntryMirror.class) +public final class DistributedP4RuntimeDefaultEntryMirror + extends AbstractDistributedP4RuntimeMirror + + implements P4RuntimeDefaultEntryMirror { + + public DistributedP4RuntimeDefaultEntryMirror() { + super(PiEntityType.TABLE_ENTRY); + } +} diff --git a/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/P4RuntimeDefaultEntryMirror.java b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/P4RuntimeDefaultEntryMirror.java new file mode 100644 index 00000000000..d638bd80349 --- /dev/null +++ b/drivers/p4runtime/src/main/java/org/onosproject/drivers/p4runtime/mirror/P4RuntimeDefaultEntryMirror.java @@ -0,0 +1,29 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.drivers.p4runtime.mirror; + +import org.onosproject.net.pi.runtime.PiTableEntry; +import org.onosproject.net.pi.runtime.PiTableEntryHandle; + +/** + * This is a special mirror that gets updated once to store the original default + * table entries after the pipeline has been set. It is never updated with the + * device state. + */ +public interface P4RuntimeDefaultEntryMirror + extends P4RuntimeMirror { +} diff --git a/drivers/zte/BUILD b/drivers/zte/BUILD new file mode 100644 index 00000000000..b560a125898 --- /dev/null +++ b/drivers/zte/BUILD @@ -0,0 +1,43 @@ +COMPILE_DEPS = CORE_DEPS + JACKSON + [ + "@commons_jxpath//jar", + "@javax_ws_rs_api//jar", + "@httpcore_osgi//jar", + "//core/store/serializers:onos-core-serializers", + "//drivers/utilities:onos-drivers-utilities", + "//models/openconfig:onos-models-openconfig", + "//protocols/netconf/api:onos-protocols-netconf-api", + "//protocols/rest/api:onos-protocols-rest-api", + "//apps/odtn/api:onos-apps-odtn-api", + "//apps/optical-model:onos-apps-optical-model", + "//drivers/optical:onos-drivers-optical", +] + +BUNDLES = [ + ":onos-drivers-zte", + "//drivers/utilities:onos-drivers-utilities", +] + +osgi_jar_with_tests( + resources = glob(["src/main/resources/**"]), + resources_root = "src/main/resources", + deps = COMPILE_DEPS, +) + +onos_app( + app_name = "org.onosproject.drivers.zte", + category = "Drivers", + description = "Adds support for ZTE devices.", + included_bundles = BUNDLES, + required_apps = [ + "org.onosproject.netconf", + "org.onosproject.restsb", + "org.onosproject.netconf", + "org.onosproject.config", + "org.onosproject.odtn-api", + "org.onosproject.drivers.netconf", + "org.onosproject.drivers.optical", + "org.onosproject.optical-model", + ], + title = "ZTE Drivers", + url = "http://onosproject.org", +) diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDeviceDiscoveryImpl.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDeviceDiscoveryImpl.java new file mode 100644 index 00000000000..9f23f7b86d7 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDeviceDiscoveryImpl.java @@ -0,0 +1,225 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.drivers.zte; + +import com.google.common.collect.ImmutableList; +import com.google.common.io.CharSource; +import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine; +import org.onlab.packet.ChassisId; +import org.onosproject.drivers.utilities.XmlConfigParser; +import org.onosproject.net.ChannelSpacing; +import org.onosproject.net.DefaultAnnotations; +import org.onosproject.net.Device; +import org.onosproject.net.DeviceId; +import org.onosproject.net.OchSignal; +import org.onosproject.net.OduSignalType; +import org.onosproject.net.Port.Type; +import org.onosproject.net.PortNumber; +import org.onosproject.net.device.DefaultDeviceDescription; +import org.onosproject.net.device.DefaultPortDescription; +import org.onosproject.net.device.DefaultPortDescription.Builder; +import org.onosproject.net.device.DeviceDescription; +import org.onosproject.net.device.DeviceDescriptionDiscovery; +import org.onosproject.net.device.PortDescription; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.net.optical.device.OchPortHelper; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfException; +import org.onosproject.netconf.NetconfSession; +import org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery; +import org.onosproject.net.AnnotationKeys; +import org.slf4j.Logger; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +import static org.slf4j.LoggerFactory.getLogger; + +public class ZteDeviceDiscoveryImpl + extends AbstractHandlerBehaviour + implements OdtnDeviceDescriptionDiscovery, DeviceDescriptionDiscovery { + private final Logger log = getLogger(getClass()); + + @Override + public DeviceDescription discoverDeviceDetails() { + DeviceId deviceId = handler().data().deviceId(); + log.info("Discovering ZTE device {}", deviceId); + + NetconfController controller = handler().get(NetconfController.class); + NetconfSession session = controller.getDevicesMap().get(deviceId).getSession(); + + String hwVersion = "ZTE hw"; + String swVersion = "ZTE sw"; + String serialNumber = "000000000000"; + + try { + String reply = session.requestSync(buildDeviceInfoRequest()); + XMLConfiguration cfg = (XMLConfiguration) XmlConfigParser.loadXmlString(getDataOfRpcReply(reply)); + hwVersion = cfg.getString("components.component.state.hardware-version"); + swVersion = cfg.getString("components.component.state.software-version"); + serialNumber = cfg.getString("components.component.state.serial-no"); + } catch (NetconfException e) { + log.error("ZTE device discovery error.", e); + } + + return new DefaultDeviceDescription(deviceId.uri(), + Device.Type.OTN, + "ZTE", + hwVersion, + swVersion, + serialNumber, + new ChassisId(1)); + } + + private String buildDeviceInfoRequest() { + StringBuilder rpc = new StringBuilder(); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append("CHASSIS-1-1"); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + + return rpc.toString(); + } + + private String getDataOfRpcReply(String rpcReply) { + String data = null; + int begin = rpcReply.indexOf(""); + int end = rpcReply.lastIndexOf(""); + if (begin != -1 && end != -1) { + data = (String) rpcReply.subSequence(begin, end + "".length()); + } else { + data = rpcReply; + } + return data; + } + + @Override + public List discoverPortDetails() { + DeviceId deviceId = handler().data().deviceId(); + log.info("Discovering ZTE device ports {}", deviceId); + + NetconfController controller = handler().get(NetconfController.class); + NetconfSession session = controller.getDevicesMap().get(deviceId).getSession(); + XMLConfiguration cfg = new XMLConfiguration(); + try { + String reply = session.requestSync(buildPortDetailRequest(), 30); + String data = getDataOfRpcReply(reply); + if (data == null) { + log.error("No valid response found from {}:\n{}", deviceId, reply); + return ImmutableList.of(); + } + cfg.load(CharSource.wrap(data).openStream()); + return discoverPorts(cfg); + } catch (Exception e) { + log.error("ZTE device port discovery error.", e); + } + + return ImmutableList.of(); + } + + private String buildPortDetailRequest() { + StringBuilder rpc = new StringBuilder(); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + + return rpc.toString(); + } + + private List discoverPorts(XMLConfiguration cfg) { + cfg.setExpressionEngine(new XPathExpressionEngine()); + List components = cfg.configurationsAt("components/component"); + return components.stream() + .filter(this::isPortComponent) + .map(this::toPortDescriptionInternal) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + + private boolean isPortComponent(HierarchicalConfiguration component) { + String name = component.getString("name"); + String type = component.getString("state/type"); + + return name != null && name.startsWith("PORT") && type != null + && type.equals("openconfig-platform-types:PORT"); + } + + private PortDescription toPortDescriptionInternal(HierarchicalConfiguration component) { + Map annotations = new HashMap<>(); + String name = component.getString("name"); + String type = component.getString("state/type"); + + annotations.put(OdtnDeviceDescriptionDiscovery.OC_NAME, name); + annotations.put(OdtnDeviceDescriptionDiscovery.OC_TYPE, type); + annotations.putIfAbsent(AnnotationKeys.PORT_NAME, name); + + // PORT-1-4-C1 + String[] textStr = name.split("-"); + + // use different value of portNumber on the same equipment + String portComponentIndex = textStr[textStr.length - 1]; + int slotIndex = Integer.parseInt(textStr[2]); + int slotPortIndex = Integer.parseInt(portComponentIndex.substring(1)); + int portNumber = slotIndex * 10 + slotPortIndex; + + annotations.putIfAbsent(ONOS_PORT_INDEX, portComponentIndex); + annotations.putIfAbsent(CONNECTION_ID, "connection:" + Integer.parseInt(portComponentIndex.substring(1))); + + if (portComponentIndex.charAt(0) == 'L') { + // line + annotations.putIfAbsent(PORT_TYPE, OdtnPortType.LINE.value()); + OchSignal signalId = OchSignal.newDwdmSlot(ChannelSpacing.CHL_50GHZ, 1); + return OchPortHelper.ochPortDescription( + PortNumber.portNumber(portNumber + 100L), + true, + OduSignalType.ODUC2, + true, + signalId, + DefaultAnnotations.builder().putAll(annotations).build()); + } else if (portComponentIndex.charAt(0) == 'C') { + // client + annotations.putIfAbsent(PORT_TYPE, OdtnPortType.CLIENT.value()); + Builder builder = DefaultPortDescription.builder(); + builder.withPortNumber(PortNumber.portNumber(portNumber)) + .isEnabled(true) + .portSpeed(100000L) + .type(Type.PACKET) + .annotations(DefaultAnnotations.builder().putAll(annotations).build()); + + return builder.build(); + } + + return null; + } +} diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDriversLoader.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDriversLoader.java new file mode 100644 index 00000000000..f11c5031a24 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteDriversLoader.java @@ -0,0 +1,26 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.drivers.zte; + +import org.onosproject.net.driver.AbstractDriverLoader; +import org.osgi.service.component.annotations.Component; + +@Component(immediate = true) +public class ZteDriversLoader extends AbstractDriverLoader { + public ZteDriversLoader() { + super("/zte-drivers.xml"); + } +} diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteNetconfDeviceTransceiver.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteNetconfDeviceTransceiver.java new file mode 100644 index 00000000000..c0644267191 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteNetconfDeviceTransceiver.java @@ -0,0 +1,62 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.drivers.zte; + +import com.google.common.base.Strings; +import org.onosproject.net.DeviceId; +import org.onosproject.net.Port; +import org.onosproject.net.PortNumber; +import org.onosproject.net.device.DeviceService; +import org.onosproject.odtn.behaviour.ConfigurableTransceiver; +import org.onosproject.odtn.behaviour.PlainTransceiver; +import org.slf4j.Logger; + +import java.util.Collections; +import java.util.List; + +import static org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery.OC_NAME; +import static org.slf4j.LoggerFactory.getLogger; + +public class ZteNetconfDeviceTransceiver + extends PlainTransceiver + implements ConfigurableTransceiver { + + private final Logger log = getLogger(getClass()); + private static final String ANOTATION_NAME = "xc:operation"; + + @Override + public List enable(PortNumber client, PortNumber line, boolean enable) { + DeviceId deviceId = handler().data().deviceId(); + log.info("Discovering ZTE device {}", deviceId); + + Port port = handler().get(DeviceService.class).getPort(deviceId, client); + if (port == null) { + log.warn("{} does not exist on {}", client, deviceId); + return Collections.emptyList(); + } + + String component = port.annotations().value(OC_NAME); + if (Strings.isNullOrEmpty(component)) { + log.warn("{} annotation not found on {}@{}", OC_NAME, client, deviceId); + return Collections.emptyList(); + } + + String componentName = component.replace("PORT", "TRANSCEIVER"); + return enable(componentName, enable); + } + + +} diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZtePortStatisticsDiscovery.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZtePortStatisticsDiscovery.java new file mode 100644 index 00000000000..94e187521d7 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZtePortStatisticsDiscovery.java @@ -0,0 +1,163 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.drivers.zte; + +import com.google.common.base.Strings; +import com.google.common.collect.Lists; +import org.apache.commons.configuration.XMLConfiguration; +import org.onosproject.drivers.utilities.XmlConfigParser; +import org.onosproject.net.DeviceId; +import org.onosproject.net.Port; +import org.onosproject.net.device.DefaultPortStatistics; +import org.onosproject.net.device.DeviceService; +import org.onosproject.net.device.PortStatistics; +import org.onosproject.net.device.PortStatisticsDiscovery; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.netconf.NetconfController; +import org.onosproject.netconf.NetconfException; +import org.onosproject.netconf.NetconfSession; +import org.slf4j.Logger; + +import java.util.Collection; +import java.util.List; + +import static org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery.OC_NAME; +import static org.slf4j.LoggerFactory.getLogger; + +public class ZtePortStatisticsDiscovery extends AbstractHandlerBehaviour + implements PortStatisticsDiscovery { + + private static final Logger LOG = getLogger(ZtePortStatisticsDiscovery.class); + + @Override + public Collection discoverPortStatistics() { + DeviceId deviceId = handler().data().deviceId(); + LOG.debug("Discovering ZTE PortStatistics for device {}", deviceId); + + NetconfController controller = handler().get(NetconfController.class); + + if (null == controller) { + LOG.error("Cannot find NetconfController"); + return null; + } + + NetconfSession session = controller.getDevicesMap().get(deviceId).getSession(); + + if (null == session) { + LOG.error("No session available for device {}", deviceId); + return null; + } + + DeviceService deviceService = this.handler().get(DeviceService.class); + List ports = deviceService.getPorts(deviceId); + + Collection portStatistics = Lists.newArrayList(); + + ports.stream() + .filter(Port::isEnabled) + .filter(this::isClientPort) + .forEach(port -> portStatistics.add(discoverSpecifiedPortStatistics(session, deviceId, port))); + + return portStatistics; + } + + private boolean isClientPort(Port port) { + String portName = port.annotations().value(OC_NAME); + if (Strings.isNullOrEmpty(portName)) { + return false; + } + String[] portInfos = portName.split("-"); + return portInfos.length == 4 && portInfos[3].startsWith("C"); + } + + private String getDataOfRpcReply(String rpcReply) { + String data = null; + int begin = rpcReply.indexOf(""); + int end = rpcReply.lastIndexOf(""); + if (begin != -1 && end != -1) { + data = (String) rpcReply.subSequence(begin, end + "".length()); + } else { + data = rpcReply; + } + return data; + } + + private PortStatistics discoverSpecifiedPortStatistics(NetconfSession session, DeviceId deviceId, Port port) { + + String portName = port.annotations().value(OC_NAME); + String rpc = buildPortStatisticsRequest("INTERFACE" + portName.substring("PORT".length())); + + try { + String reply = session.requestSync(rpc); + XMLConfiguration cfg = (XMLConfiguration) XmlConfigParser.loadXmlString(getDataOfRpcReply(reply)); + DefaultPortStatistics.Builder builder = DefaultPortStatistics.builder(); + + builder.setPort(port.number()) + .setPacketsReceived(getInteger(cfg, "in-pks")) + .setPacketsSent(getInteger(cfg, "out-pkts")) + .setBytesReceived(getInteger(cfg, "in-octets")) + .setBytesSent(getInteger(cfg, "out-octets")) + .setPacketsRxDropped(getInteger(cfg, "in-fcs-errors")) + .setPacketsTxDropped(getInteger(cfg, "carrier-transitions")) + .setPacketsRxErrors(getInteger(cfg, "in-errors")) + .setPacketsTxErrors(getInteger(cfg, "out-errors")) + .setDeviceId(deviceId); + + return builder.build(); + } catch (NetconfException e) { + LOG.error("ZTE device portStatistic request error.", e); + return null; + } + } + + private String buildPortStatisticsRequest(String portName) { + StringBuilder rpc = new StringBuilder(); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(portName); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + rpc.append(""); + + return rpc.toString(); + } + + private int getInteger(XMLConfiguration cfg, String item) { + String numString = cfg.getString("interfaces.interface.state.counters." + item); + if (Strings.isNullOrEmpty(numString)) { + LOG.debug("Cannot get port statistic data for {}, set 0 as default.", item); + return 0; + } + + try { + return Integer.parseInt(numString); + } catch (NumberFormatException e) { + LOG.warn("Cannot convert data for {}", item); + return 0; + } + } +} diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteTransceiver.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteTransceiver.java new file mode 100644 index 00000000000..3a713adf0d0 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/ZteTransceiver.java @@ -0,0 +1,160 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.drivers.zte; + +import com.google.common.base.Strings; +import org.onosproject.net.DeviceId; +import org.onosproject.net.Port; +import org.onosproject.net.PortNumber; +import org.onosproject.net.device.DeviceService; +import org.onosproject.net.driver.AbstractHandlerBehaviour; +import org.onosproject.odtn.behaviour.ConfigurableTransceiver; +import org.onosproject.odtn.behaviour.OdtnTerminalDeviceDriver.Operation; +import org.onosproject.odtn.utils.openconfig.OpenConfigAssignmentHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigChannelHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigConfigOfAssignmentHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigConfigOfChannelHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigLogicalChannelAssignmentsHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigLogicalChannelsHandler; +import org.onosproject.odtn.utils.openconfig.OpenConfigTerminalDeviceHandler; +import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmentconfig.AssignmentTypeEnum; +import org.slf4j.Logger; + +import java.util.Collections; +import java.util.List; + +import static org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery.OC_NAME; +import static org.slf4j.LoggerFactory.getLogger; + +public class ZteTransceiver extends AbstractHandlerBehaviour + implements ConfigurableTransceiver { + + private final Logger log = getLogger(getClass()); + + private static final String ANOTATION_NAME = "xc:operation"; + + private final int[] clientPortIndexs = new int[] { + 20975681, 18878529, 19927105, 17829953, + 20975745, 18878593, 19927169, 17830017, + 20975809, 18878657, 19927233, 17830081, + 20975873, 18878721, 19927297, 17830145 + }; + + private final int[] linePortIndexs = new int[] { + 21499969, 19402817, 20451393, 18354241, + 21500033, 19402881, 20451457, 18354305 + }; + + @Override + public List enable(PortNumber client, PortNumber line, boolean enable) { + DeviceId deviceId = handler().data().deviceId(); + log.info("Discovering ZTE device {}", deviceId); + + Port clientPort = handler().get(DeviceService.class).getPort(deviceId, client); + if (clientPort == null) { + log.warn("{} does not exist on {}", client, deviceId); + return Collections.emptyList(); + } + + String clientName = clientPort.annotations().value(OC_NAME); + if (Strings.isNullOrEmpty(clientName)) { + log.warn("{} annotations not exist on {}@{}", OC_NAME, client, deviceId); + return Collections.emptyList(); + } + + Port linePort = handler().get(DeviceService.class).getPort(deviceId, line); + if (linePort == null) { + log.warn("{} does not exist on {}", line, deviceId); + return Collections.emptyList(); + } + + String lineName = linePort.annotations().value(OC_NAME); + if (Strings.isNullOrEmpty(lineName)) { + log.warn("{} annotations not exist on {}@{}", OC_NAME, line, deviceId); + return Collections.emptyList(); + } + + int clientIndex, lineIndex; + + try { + clientIndex = getPortIndex(clientName); + lineIndex = getPortIndex(lineName); + } catch (IllegalArgumentException e) { + return Collections.emptyList(); + } + + // create + // + OpenConfigTerminalDeviceHandler terminalDevice = new OpenConfigTerminalDeviceHandler(); + // add + OpenConfigLogicalChannelsHandler logicalChannels = + new OpenConfigLogicalChannelsHandler(terminalDevice); + // add "clientIndex" + OpenConfigChannelHandler channel = + new OpenConfigChannelHandler(clientIndex, logicalChannels); + + // add + if (enable) { + channel.addAnnotation(ANOTATION_NAME, Operation.MERGE.value()); + } else { + channel.addAnnotation(ANOTATION_NAME, Operation.DELETE.value()); + } + + // add "clientIndex" + OpenConfigConfigOfChannelHandler configOfChannel = + new OpenConfigConfigOfChannelHandler(channel); + configOfChannel.addIndex(clientIndex); + + // add + OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments = + new OpenConfigLogicalChannelAssignmentsHandler(channel); + + // add 1 + OpenConfigAssignmentHandler assignment = + new OpenConfigAssignmentHandler(1, logicalChannelAssignments); + + // add LOGICAL_CHANNEL + // "lineIndex" + // + OpenConfigConfigOfAssignmentHandler configOfAssignment = + new OpenConfigConfigOfAssignmentHandler(assignment); + configOfAssignment.addAssignmentType(AssignmentTypeEnum.LOGICAL_CHANNEL); + configOfAssignment.addLogicalChannel("" + lineIndex); + + return terminalDevice.getListCharSequence(); + } + + // index should be fixed + private int getPortIndex(String portName) throws IllegalArgumentException { + //PORT-1-4-C1 + String[] portInfos = portName.split("-"); + if (portInfos.length == 4) { + throw new IllegalArgumentException("ZTE device port name illegal."); + } + + int slotIndex = Integer.parseInt(portInfos[2]); + int index = Integer.parseInt(portInfos[3].substring(1)); + + if (portInfos[3].startsWith("C")) { + return clientPortIndexs[index * 4 - slotIndex]; + } else if (portInfos[3].startsWith("C")) { + return linePortIndexs[index * 4 - slotIndex]; + } + + throw new IllegalArgumentException("Connot match port index for ZTE device."); + } + +} diff --git a/drivers/zte/src/main/java/org/onosproject/drivers/zte/package-info.java b/drivers/zte/src/main/java/org/onosproject/drivers/zte/package-info.java new file mode 100644 index 00000000000..df337be6eb5 --- /dev/null +++ b/drivers/zte/src/main/java/org/onosproject/drivers/zte/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Zte netconf drivers. + */ +package org.onosproject.drivers.zte; \ No newline at end of file diff --git a/drivers/zte/src/main/resources/zte-drivers.xml b/drivers/zte/src/main/resources/zte-drivers.xml new file mode 100644 index 00000000000..1f1d7289500 --- /dev/null +++ b/drivers/zte/src/main/resources/zte-drivers.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + diff --git a/pipelines/fabric/BUILD b/pipelines/fabric/BUILD index 11dad5684f1..41ecec5e278 100644 --- a/pipelines/fabric/BUILD +++ b/pipelines/fabric/BUILD @@ -1,22 +1,9 @@ -COMPILE_DEPS = CORE_DEPS + KRYO + [ - "//protocols/p4runtime/model:onos-protocols-p4runtime-model", - "//protocols/p4runtime/api:onos-protocols-p4runtime-api", - "//providers/general/device:onos-providers-general-device", - "//pipelines/basic:onos-pipelines-basic", - "//core/store/serializers:onos-core-serializers", - "//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api", -] - BUNDLES = [ - "//pipelines/fabric:onos-pipelines-fabric", + "//pipelines/fabric/api:onos-pipelines-fabric-api", + "//pipelines/fabric/impl:onos-pipelines-fabric-impl", "//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api", ] -osgi_jar_with_tests( - test_deps = TEST_ADAPTERS, - deps = COMPILE_DEPS, -) - onos_app( app_name = "org.onosproject.pipelines.fabric", category = "Pipeline", diff --git a/pipelines/fabric/api/BUILD b/pipelines/fabric/api/BUILD new file mode 100644 index 00000000000..bd39481a2ec --- /dev/null +++ b/pipelines/fabric/api/BUILD @@ -0,0 +1,8 @@ +TEST_DEPS = TEST + [ + "//core/api:onos-api-tests", +] + +osgi_jar_with_tests( + test_deps = TEST_DEPS, + deps = CORE_DEPS, +) diff --git a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricPipeconfService.java b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricPipeconfService.java new file mode 100644 index 00000000000..071ec436112 --- /dev/null +++ b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricPipeconfService.java @@ -0,0 +1,58 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.pipelines.fabric; + +import com.google.common.annotations.Beta; +import org.onosproject.net.pi.model.DefaultPiPipeconf; +import org.onosproject.net.pi.model.PiPipeconf; + +import java.net.URL; + +/** + * A service to build fabric.p4-related pipeconfs. + *

+ * This service is provided such that third-party apps can build vendor-specific + * versions of the fabric.p4 pipeconf, without needing to depend on fabric.p4 + * behaviour implementations at compile time. + */ +@Beta +public interface FabricPipeconfService { + + /** + * Builds a pipeconf for fabric.p4. + *

+ * This method expects as input a pipeconf builder already populated with + * the pipeconf ID (i.e., {@link DefaultPiPipeconf.Builder#withId}) and + * target-specific extensions (i.e., {@link DefaultPiPipeconf.Builder#addExtension}. + * The implementation takes care of adding all the necessary behavior + * implementations specific to fabric.p4, depending on the profile name, + * e.g., adding INT-related behaviors for fabric-int profile). + *

+ * Finally, the implementation takes care of parsing the given P4Info file + * (in text format) as pipeconf pipeline model, and setting the pipeconf CPU + * port to the one contained in the given file URL. + * + * @param builder pipeconf builder already populated with ID and + * target-specific extensions + * @param profile fabric.p4 profile name + * @param p4InfoUrl URL to P4Info file in text format + * @param cpuPortUrl URL to txt file containing the CPU port + * @return pipeconf instance + */ + PiPipeconf buildFabricPipeconf(DefaultPiPipeconf.Builder builder, String profile, + URL p4InfoUrl, URL cpuPortUrl); +} diff --git a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/package-info.java b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/package-info.java new file mode 100644 index 00000000000..6c3b0e8c7f8 --- /dev/null +++ b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * API definitions for the fabric pipeconf. + */ +package org.onosproject.pipelines.fabric; diff --git a/pipelines/fabric/impl/BUILD b/pipelines/fabric/impl/BUILD new file mode 100644 index 00000000000..3e8824d1532 --- /dev/null +++ b/pipelines/fabric/impl/BUILD @@ -0,0 +1,15 @@ +COMPILE_DEPS = CORE_DEPS + KRYO + [ + "//pipelines/fabric/api:onos-pipelines-fabric-api", + "//protocols/p4runtime/model:onos-protocols-p4runtime-model", + "//protocols/p4runtime/api:onos-protocols-p4runtime-api", + "//providers/general/device:onos-providers-general-device", + "//pipelines/basic:onos-pipelines-basic", + "//core/store/serializers:onos-core-serializers", + "//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api", + "//drivers/p4runtime:onos-drivers-p4runtime", +] + +osgi_jar_with_tests( + test_deps = TEST_ADAPTERS, + deps = COMPILE_DEPS, +) diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfLoader.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfLoader.java new file mode 100644 index 00000000000..1b6c2ce6b9b --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfLoader.java @@ -0,0 +1,211 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.pipelines.fabric.impl; + +import org.onosproject.core.CoreService; +import org.onosproject.net.device.PortStatisticsDiscovery; +import org.onosproject.net.pi.model.DefaultPiPipeconf; +import org.onosproject.net.pi.model.PiPipeconf; +import org.onosproject.net.pi.model.PiPipeconfId; +import org.onosproject.net.pi.service.PiPipeconfService; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricPortStatisticsDiscovery; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.wiring.BundleWiring; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.ReferenceCardinality; +import org.slf4j.Logger; + +import java.io.File; +import java.io.FileNotFoundException; +import java.net.URL; +import java.util.Collection; +import java.util.Objects; +import java.util.stream.Collectors; + +import static java.lang.String.format; +import static org.onosproject.pipelines.fabric.impl.FabricPipeconfManager.build; +import static org.osgi.framework.wiring.BundleWiring.LISTRESOURCES_RECURSE; +import static org.slf4j.LoggerFactory.getLogger; + +/** + * Component responsible of building and registering fabric pipeconfs at app + * activation. + *

+ * This implementation looks at the content of the resource path for p4c output, + * automatically building different pipeconfs for different profiles, target and + * platforms. + */ +@Component(immediate = true) +public final class FabricPipeconfLoader { + + public static final String PIPELINE_APP_NAME = "org.onosproject.pipelines.fabric"; + + private static Logger log = getLogger(FabricPipeconfLoader.class); + + private static final String SEP = File.separator; + private static final String SPECTRUM = "spectrum"; + private static final String BMV2 = "bmv2"; + private static final String DEFAULT_PLATFORM = "default"; + private static final String BMV2_JSON = "bmv2.json"; + private static final String P4INFO_TXT = "p4info.txt"; + private static final String CPU_PORT_TXT = "cpu_port.txt"; + private static final String SPECTRUM_BIN = "spectrum.bin"; + + private static final String BASE_PIPECONF_ID = "org.onosproject.pipelines"; + private static final String P4C_OUT_PATH = "/p4c-out"; + // p4c-out/// + private static final String P4C_RES_BASE_PATH = P4C_OUT_PATH + "/%s/%s/%s/"; + + @Reference(cardinality = ReferenceCardinality.MANDATORY) + private PiPipeconfService piPipeconfService; + + @Reference(cardinality = ReferenceCardinality.MANDATORY) + private CoreService coreService; + + private Collection pipeconfs; + + + @Activate + public void activate() { + coreService.registerApplication(PIPELINE_APP_NAME); + // Registers all pipeconf at component activation. + pipeconfs = buildAllPipeconfs(); + pipeconfs.forEach(piPipeconfService::register); + log.info("Started"); + } + + @Deactivate + public void deactivate() { + pipeconfs.stream() + .map(PiPipeconf::id) + .forEach(piPipeconfService::unregister); + pipeconfs = null; + log.info("Stopped"); + } + + private Collection buildAllPipeconfs() { + return FrameworkUtil + .getBundle(this.getClass()) + .adapt(BundleWiring.class) + // List all resource files in /p4c-out + .listResources(P4C_OUT_PATH, "*", LISTRESOURCES_RECURSE) + .stream() + // Filter only directories + .filter(name -> name.endsWith(SEP)) + // Derive profile, target, and platform and build pipeconf. + .map(this::buildPipeconfFromPath) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + + private PiPipeconf buildPipeconfFromPath(String path) { + String[] pieces = path.split(SEP); + // We expect a path of 4 elements, e.g. + // p4c-out/// + if (pieces.length != 4) { + return null; + } + String profile = pieces[1]; + String target = pieces[2]; + String platform = pieces[3]; + final PiPipeconf pipeconf; + try { + switch (target) { + case BMV2: + pipeconf = bmv2Pipeconf(profile, platform); + break; + case SPECTRUM: + pipeconf = spectrumPipeconf(profile, platform); + break; + default: + log.warn("Unknown target '{}', skipping pipeconf build...", + target); + return null; + } + } catch (FileNotFoundException e) { + log.warn("Unable to build pipeconf at {} because file is missing: {}", + path, e.getMessage()); + return null; + } + + return pipeconf; + } + + private PiPipeconf bmv2Pipeconf(String profile, String platform) + throws FileNotFoundException { + final URL bmv2JsonUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + BMV2_JSON, profile, BMV2, platform)); + final URL p4InfoUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + P4INFO_TXT, profile, BMV2, platform)); + final URL cpuPortUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + CPU_PORT_TXT, profile, BMV2, platform)); + + checkFileExists(bmv2JsonUrl, BMV2_JSON); + checkFileExists(p4InfoUrl, P4INFO_TXT); + checkFileExists(cpuPortUrl, CPU_PORT_TXT); + + final DefaultPiPipeconf.Builder builder = DefaultPiPipeconf.builder() + .withId(makePipeconfId(platform, profile)) + .addBehaviour(PortStatisticsDiscovery.class, + FabricPortStatisticsDiscovery.class) + .addExtension(PiPipeconf.ExtensionType.BMV2_JSON, bmv2JsonUrl); + + return build(builder, profile, p4InfoUrl, cpuPortUrl); + } + + // FIXME: this method should be removed. Instead, there should be a + // third-party app using the FabricPipeconfService to register a + // Mellanox-specific version of the fabric pipeconfs. + private PiPipeconf spectrumPipeconf(String profile, String platform) + throws FileNotFoundException { + + final URL spectrumBinUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + SPECTRUM_BIN, profile, SPECTRUM, platform)); + final URL p4InfoUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + P4INFO_TXT, profile, SPECTRUM, platform)); + final URL cpuPortUrl = this.getClass().getResource(format( + P4C_RES_BASE_PATH + CPU_PORT_TXT, profile, SPECTRUM, platform)); + + checkFileExists(spectrumBinUrl, SPECTRUM_BIN); + checkFileExists(p4InfoUrl, P4INFO_TXT); + checkFileExists(cpuPortUrl, CPU_PORT_TXT); + + final DefaultPiPipeconf.Builder builder = DefaultPiPipeconf.builder() + .withId(makePipeconfId(platform, profile)) + .addExtension(PiPipeconf.ExtensionType.SPECTRUM_BIN, spectrumBinUrl); + + return build(builder, profile, p4InfoUrl, cpuPortUrl); + } + + private void checkFileExists(URL url, String name) + throws FileNotFoundException { + if (url == null) { + throw new FileNotFoundException(name); + } + } + + private PiPipeconfId makePipeconfId(String platform, String profile) { + final String id = platform.equals(DEFAULT_PLATFORM) + // Omit platform if default, e.g. with BMv2 pipeconf + ? format("%s.%s", BASE_PIPECONF_ID, profile) + : format("%s.%s.%s", BASE_PIPECONF_ID, profile, platform); + return new PiPipeconfId(id); + } +} diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java new file mode 100644 index 00000000000..f366e99e6b5 --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java @@ -0,0 +1,113 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.pipelines.fabric.impl; + +import org.onosproject.inbandtelemetry.api.IntProgrammable; + +import org.onosproject.net.behaviour.BngProgrammable; +import org.onosproject.net.behaviour.Pipeliner; +import org.onosproject.net.pi.model.DefaultPiPipeconf; +import org.onosproject.net.pi.model.PiPipeconf; +import org.onosproject.net.pi.model.PiPipelineInterpreter; +import org.onosproject.net.pi.model.PiPipelineModel; +import org.onosproject.p4runtime.model.P4InfoParser; +import org.onosproject.p4runtime.model.P4InfoParserException; +import org.onosproject.pipelines.fabric.FabricPipeconfService; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricIntProgrammable; +import org.onosproject.pipelines.fabric.impl.behaviour.bng.FabricBngProgrammable; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricInterpreter; +import org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.FabricPipeliner; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.slf4j.Logger; + +import java.net.URL; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.slf4j.LoggerFactory.getLogger; + +/** + * Implementation of the FabricPipeconfService. + */ +@Component(immediate = true, service = FabricPipeconfService.class) +public final class FabricPipeconfManager implements FabricPipeconfService { + + private static final String INT_PROFILE_SUFFIX = "-int"; + private static final String FULL_PROFILE_SUFFIX = "-full"; + private static final String BNG_PROFILE_SUFFIX = "-bng"; + + private static Logger log = getLogger(FabricPipeconfLoader.class); + + @Activate + public void activate() { + log.info("Started"); + } + + @Deactivate + public void deactivate() { + log.info("Stopped"); + } + + @Override + public PiPipeconf buildFabricPipeconf( + DefaultPiPipeconf.Builder builder, String profile, URL p4InfoUrl, URL cpuPortUrl) { + return build(builder, profile, p4InfoUrl, cpuPortUrl); + } + + static PiPipeconf build( + DefaultPiPipeconf.Builder pipeconfBuilder, + String profileName, URL p4InfoUrl, URL cpuPortUrl) { + checkNotNull(pipeconfBuilder, + "pipeconfBuilder cannot be null"); + checkArgument(profileName != null && !profileName.isEmpty(), + "profileName cannot be null or empty"); + checkNotNull(p4InfoUrl, + "p4InfoUrl cannot be null (check if file exists)"); + checkNotNull(cpuPortUrl, + "cpuPortUrl cannot be null (check if file exists)"); + + pipeconfBuilder + .withPipelineModel(parseP4Info(p4InfoUrl)) + .addBehaviour(PiPipelineInterpreter.class, FabricInterpreter.class) + .addBehaviour(Pipeliner.class, FabricPipeliner.class) + .addExtension(PiPipeconf.ExtensionType.P4_INFO_TEXT, p4InfoUrl) + .addExtension(PiPipeconf.ExtensionType.CPU_PORT_TXT, cpuPortUrl); + + // Add IntProgrammable behaviour for INT-enabled profiles. + if (profileName.endsWith(INT_PROFILE_SUFFIX) || + profileName.endsWith(FULL_PROFILE_SUFFIX)) { + pipeconfBuilder.addBehaviour(IntProgrammable.class, FabricIntProgrammable.class); + } + // Add BngProgrammable behavior for BNG-enabled pipelines. + if (profileName.endsWith(BNG_PROFILE_SUFFIX)) { + pipeconfBuilder.addBehaviour(BngProgrammable.class, FabricBngProgrammable.class); + } + return pipeconfBuilder.build(); + } + + private static PiPipelineModel parseP4Info(URL p4InfoUrl) { + try { + return P4InfoParser.parse(p4InfoUrl); + } catch (P4InfoParserException e) { + // FIXME: propagate exception that can be handled by whoever is + // trying to build pipeconfs. + throw new IllegalStateException(e); + } + } +} diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/AbstractFabricHandlerBehavior.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/AbstractFabricHandlerBehavior.java similarity index 98% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/AbstractFabricHandlerBehavior.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/AbstractFabricHandlerBehavior.java index db4da90e5d3..fe075767f23 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/AbstractFabricHandlerBehavior.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/AbstractFabricHandlerBehavior.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import org.onosproject.net.DeviceId; import org.onosproject.net.driver.AbstractHandlerBehaviour; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricCapabilities.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java similarity index 96% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricCapabilities.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java index b0ce2084f4d..6def74f23f0 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricCapabilities.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricCapabilities.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import org.onosproject.net.pi.model.PiPipeconf; import org.slf4j.Logger; @@ -38,7 +38,7 @@ public class FabricCapabilities { private final PiPipeconf pipeconf; - FabricCapabilities(PiPipeconf pipeconf) { + public FabricCapabilities(PiPipeconf pipeconf) { this.pipeconf = checkNotNull(pipeconf); } diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java similarity index 97% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java index 484ef5aff57..952df6f869f 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import org.onosproject.net.pi.model.PiActionId; import org.onosproject.net.pi.model.PiActionParamId; @@ -38,8 +38,6 @@ private FabricConstants() { PiMatchFieldId.of("ig_port"); public static final PiMatchFieldId HDR_VLAN_IS_VALID = PiMatchFieldId.of("vlan_is_valid"); - public static final PiMatchFieldId HDR_EG_PORT = - PiMatchFieldId.of("eg_port"); public static final PiMatchFieldId HDR_IPV6_SRC_NET_ID = PiMatchFieldId.of("ipv6_src_net_id"); public static final PiMatchFieldId HDR_C_TAG = PiMatchFieldId.of("c_tag"); @@ -47,8 +45,6 @@ private FabricConstants() { PiMatchFieldId.of("ipv4_src"); public static final PiMatchFieldId HDR_IPV6_DST = PiMatchFieldId.of("ipv6_dst"); - public static final PiMatchFieldId HDR_IS_MPLS = - PiMatchFieldId.of("is_mpls"); public static final PiMatchFieldId HDR_L4_DPORT = PiMatchFieldId.of("l4_dport"); public static final PiMatchFieldId HDR_PPPOE_CODE = @@ -72,6 +68,8 @@ private FabricConstants() { PiMatchFieldId.of("eth_type"); public static final PiMatchFieldId HDR_NEXT_ID = PiMatchFieldId.of("next_id"); + public static final PiMatchFieldId HDR_IP_ETH_TYPE = + PiMatchFieldId.of("ip_eth_type"); public static final PiMatchFieldId HDR_L4_SPORT = PiMatchFieldId.of("l4_sport"); public static final PiMatchFieldId HDR_ICMP_CODE = @@ -88,10 +86,8 @@ private FabricConstants() { PiMatchFieldId.of("line_id"); public static final PiMatchFieldId HDR_IPV4_DSCP = PiMatchFieldId.of("ipv4_dscp"); - public static final PiMatchFieldId HDR_IS_IPV4 = - PiMatchFieldId.of("is_ipv4"); - public static final PiMatchFieldId HDR_IS_IPV6 = - PiMatchFieldId.of("is_ipv6"); + public static final PiMatchFieldId HDR_EG_PORT = + PiMatchFieldId.of("eg_port"); public static final PiMatchFieldId HDR_GTP_IPV4_DST = PiMatchFieldId.of("gtp_ipv4_dst"); public static final PiMatchFieldId HDR_INT_IS_VALID = @@ -181,8 +177,8 @@ private FabricConstants() { PiCounterId.of("FabricIngress.filtering.fwd_classifier_counter"); public static final PiCounterId FABRIC_INGRESS_FORWARDING_BRIDGING_COUNTER = PiCounterId.of("FabricIngress.forwarding.bridging_counter"); - public static final PiCounterId FABRIC_INGRESS_FORWARDING_ROUTING_V4_COUNTER = - PiCounterId.of("FabricIngress.forwarding.routing_v4_counter"); + public static final PiCounterId FABRIC_INGRESS_NEXT_HASHED_COUNTER = + PiCounterId.of("FabricIngress.next.hashed_counter"); public static final PiCounterId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_COUNTER_SET_SOURCE = PiCounterId.of("FabricIngress.process_set_source_sink.counter_set_source"); public static final PiCounterId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_SOURCE_COUNTER_INT_SOURCE = @@ -205,8 +201,6 @@ private FabricConstants() { PiCounterId.of("FabricIngress.filtering.ingress_port_vlan_counter"); public static final PiCounterId FABRIC_INGRESS_FORWARDING_MPLS_COUNTER = PiCounterId.of("FabricIngress.forwarding.mpls_counter"); - public static final PiCounterId FABRIC_INGRESS_NEXT_HASHED_COUNTER = - PiCounterId.of("FabricIngress.next.hashed_counter"); // Action IDs public static final PiActionId FABRIC_INGRESS_NEXT_SET_NEXT_ID_XCONNECT = PiActionId.of("FabricIngress.next.set_next_id_xconnect"); diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricIntProgrammable.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricIntProgrammable.java similarity index 98% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricIntProgrammable.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricIntProgrammable.java index 17705768a39..4fc8286e440 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricIntProgrammable.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricIntProgrammable.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import com.google.common.collect.Sets; import org.onosproject.core.ApplicationId; @@ -42,6 +42,7 @@ import org.onosproject.net.pi.model.PiTableId; import org.onosproject.net.pi.runtime.PiAction; import org.onosproject.net.pi.runtime.PiActionParam; +import org.onosproject.pipelines.fabric.impl.FabricPipeconfLoader; import org.osgi.service.component.annotations.Reference; import org.osgi.service.component.annotations.ReferenceCardinality; @@ -108,7 +109,7 @@ private boolean setupBehaviour() { flowRuleService = handler().get(FlowRuleService.class); coreService = handler().get(CoreService.class); cfgService = handler().get(NetworkConfigService.class); - appId = coreService.getAppId(PipeconfLoader.PIPELINE_APP_NAME); + appId = coreService.getAppId(FabricPipeconfLoader.PIPELINE_APP_NAME); if (appId == null) { log.warn("Application ID is null. Cannot initialize behaviour."); return false; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java similarity index 99% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java index 8567a3aa498..816c0dd9265 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricPortStatisticsDiscovery.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricPortStatisticsDiscovery.java similarity index 96% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricPortStatisticsDiscovery.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricPortStatisticsDiscovery.java index ab44040069a..b461ad39338 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricPortStatisticsDiscovery.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricPortStatisticsDiscovery.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import org.onosproject.net.pi.model.PiCounterId; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java similarity index 97% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java index b501f33ef3d..78ef9a740de 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import com.google.common.collect.ImmutableMap; import org.onosproject.net.PortNumber; @@ -43,9 +43,9 @@ import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_PUSH; import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID; import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP; -import static org.onosproject.pipelines.fabric.FabricUtils.instruction; -import static org.onosproject.pipelines.fabric.FabricUtils.l2Instruction; -import static org.onosproject.pipelines.fabric.FabricUtils.l2Instructions; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.instruction; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instruction; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instructions; /** * Treatment translation logic. diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricUtils.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java similarity index 98% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricUtils.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java index ae000b517de..655f88d3d4f 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricUtils.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import org.onosproject.net.PortNumber; import org.onosproject.net.flow.TrafficSelector; diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/FabricBngProgrammable.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/FabricBngProgrammable.java new file mode 100644 index 00000000000..9b566c0eb0c --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/FabricBngProgrammable.java @@ -0,0 +1,408 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.pipelines.fabric.impl.behaviour.bng; + +import com.google.common.collect.ImmutableBiMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.onosproject.core.ApplicationId; +import org.onosproject.drivers.p4runtime.AbstractP4RuntimeHandlerBehaviour; +import org.onosproject.net.behaviour.BngProgrammable; +import org.onosproject.net.flow.DefaultFlowRule; +import org.onosproject.net.flow.DefaultTrafficSelector; +import org.onosproject.net.flow.DefaultTrafficTreatment; +import org.onosproject.net.flow.FlowRule; +import org.onosproject.net.flow.FlowRuleService; +import org.onosproject.net.flow.TableId; +import org.onosproject.net.flow.TrafficSelector; +import org.onosproject.net.flow.TrafficTreatment; +import org.onosproject.net.flow.criteria.Criterion; +import org.onosproject.net.flow.criteria.PiCriterion; +import org.onosproject.net.pi.model.PiCounterId; +import org.onosproject.net.pi.runtime.PiAction; +import org.onosproject.net.pi.runtime.PiActionParam; +import org.onosproject.net.pi.runtime.PiCounterCell; +import org.onosproject.net.pi.runtime.PiCounterCellData; +import org.onosproject.net.pi.runtime.PiCounterCellHandle; +import org.onosproject.net.pi.runtime.PiCounterCellId; +import org.onosproject.p4runtime.api.P4RuntimeWriteClient; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static com.google.common.base.Preconditions.checkArgument; + +public class FabricBngProgrammable extends AbstractP4RuntimeHandlerBehaviour + implements BngProgrammable { + + // Default priority of the inserted BNG rules. + private static final int DEFAULT_PRIORITY = 10; + // The index at which control plane packets are counted before the attachment is created. + private static final int DEFAULT_CONTROL_INDEX = 0; + // FIXME: retrieve this value from the table size in the PipelineModel + // Max number of supported attachments, useful to make sure to not read/write non-existing counters. + private static final int MAX_SUPPORTED_ATTACHMENTS = 1000; + + private static final ImmutableBiMap COUNTER_MAP = + ImmutableBiMap.builder() + .put(BngCounterType.DOWNSTREAM_RX, FabricConstants.FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_C_LINE_RX) + .put(BngCounterType.DOWNSTREAM_TX, FabricConstants.FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_C_LINE_TX) + .put(BngCounterType.UPSTREAM_TX, FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_TERMINATED) + .put(BngCounterType.UPSTREAM_DROPPED, FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_DROPPED) + .put(BngCounterType.CONTROL_PLANE, FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_CONTROL) + .build(); + + // FIXME: add these counters to the BNG pipeline + private static final ImmutableSet UNSUPPORTED_COUNTER = + ImmutableSet.of(BngCounterType.UPSTREAM_RX, BngCounterType.DOWNSTREAM_DROPPED); + + private FlowRuleService flowRuleService; + + @Override + protected boolean setupBehaviour(String opName) { + if (!super.setupBehaviour(opName)) { + return false; + } + flowRuleService = handler().get(FlowRuleService.class); + return true; + } + + @Override + public boolean init(ApplicationId appId) { + if (setupBehaviour("init()")) { + this.setupPuntToCpu(appId); + return true; + } + return false; + } + + @Override + public void cleanUp(ApplicationId appId) throws BngProgrammableException { + flowRuleService.removeFlowRulesById(appId); + this.resetControlTrafficCounter(); + } + + @Override + public void setupAttachment(Attachment attachmentInfo) throws BngProgrammableException { + checkArgument(attachmentInfo.type() == Attachment.AttachmentType.PPPoE); + List lstFlowRules = Lists.newArrayList(); + lstFlowRules.add(buildTLineMapFlowRule(attachmentInfo)); + // If the line is not active do not generate the rule for the table + // t_pppoe_term_v4 since term_disabled is @defaultonly action + if (attachmentInfo.lineActive()) { + lstFlowRules.add(buildTPppoeTermV4FlowRule(attachmentInfo)); + } + lstFlowRules.add(buildTLineSessionMapFlowRule(attachmentInfo)); + // Clean-up attachment related counters + this.resetCounters(attachmentInfo); + lstFlowRules.forEach(flowRule -> flowRuleService.applyFlowRules(flowRule)); + } + + @Override + public void removeAttachment(Attachment attachmentInfo) { + checkArgument(attachmentInfo.type() == Attachment.AttachmentType.PPPoE); + List lstFlowRules = Lists.newArrayList(); + lstFlowRules.add(buildTLineMapFlowRule(attachmentInfo)); + lstFlowRules.add(buildTPppoeTermV4FlowRule(attachmentInfo)); + lstFlowRules.add(buildTLineSessionMapFlowRule(attachmentInfo)); + + lstFlowRules.forEach(flowRule -> flowRuleService.removeFlowRules(flowRule)); + } + + @Override + public Map readCounters(Attachment attachmentInfo) + throws BngProgrammableException { + checkArgument(attachmentInfo.type() == Attachment.AttachmentType.PPPoE); + return readCounters(attachmentInfo.attachmentId().id(), Set.of(BngCounterType.values())); + } + + @Override + public PiCounterCellData readCounter(Attachment attachmentInfo, BngCounterType counter) + throws BngProgrammableException { + checkArgument(attachmentInfo.type() == Attachment.AttachmentType.PPPoE); + return readCounters(attachmentInfo.attachmentId().id(), Set.of(counter)) + .getOrDefault(counter, null); + } + + @Override + public void resetCounters(Attachment attachmentInfo) + throws BngProgrammableException { + checkArgument(attachmentInfo.type() == Attachment.AttachmentType.PPPoE); + resetCounters(attachmentInfo.attachmentId().id(), Set.of(BngCounterType.values())); + } + + @Override + public PiCounterCellData readControlTrafficCounter() + throws BngProgrammableException { + return readCounters(DEFAULT_CONTROL_INDEX, Set.of(BngCounterType.CONTROL_PLANE)) + .get(BngCounterType.CONTROL_PLANE); + } + + @Override + public void resetCounter(Attachment attachmentInfo, BngCounterType counter) + throws BngProgrammableException { + resetCounters(attachmentInfo.attachmentId().id(), Set.of(counter)); + } + + @Override + public void resetControlTrafficCounter() throws BngProgrammableException { + resetCounters(DEFAULT_CONTROL_INDEX, Set.of((BngCounterType.CONTROL_PLANE))); + } + + /** + * Read the specified counter at a specific index. + * + * @param index The index of the counter. + * @param counters The set of counters to read. + * @throws BngProgrammableException + */ + private Map readCounters( + long index, + Set counters) throws BngProgrammableException { + checkIndex(index); + Map readValues = Maps.newHashMap(); + Set counterCellIds = counters.stream() + .filter(c -> !UNSUPPORTED_COUNTER.contains(c)) + .map(c -> PiCounterCellId.ofIndirect(COUNTER_MAP.get(c), index)) + .collect(Collectors.toSet()); + // Check if there is any counter to read. + if (counterCellIds.size() != 0) { + Set counterCellHandles = counterCellIds.stream() + .map(cId -> PiCounterCellHandle.of(this.deviceId, cId)) + .collect(Collectors.toSet()); + + // Query the device. + Collection counterEntryResponse = client.read( + p4DeviceId, pipeconf) + .handles(counterCellHandles).submitSync() + .all(PiCounterCell.class); + + if (counterEntryResponse.size() == 0) { + throw new BngProgrammableException( + String.format("Error in reading counters %s", counters.toString())); + } + readValues.putAll(counterEntryResponse.stream().collect( + Collectors.toMap(counterCell -> COUNTER_MAP.inverse() + .get(counterCell.cellId().counterId()), + PiCounterCell::data))); + } + return readValues; + } + + /** + * Reset the specified counters at a specific index. + * + * @param index The index of the counter. + * @param counters The set of counters to reset. + */ + private void resetCounters(long index, Set counters) throws BngProgrammableException { + checkIndex(index); + Set counterCellIds = counters.stream() + .filter(c -> !UNSUPPORTED_COUNTER.contains(c)) + .map(c -> PiCounterCellId.ofIndirect(COUNTER_MAP.get(c), index)) + .collect(Collectors.toSet()); + if (counterCellIds.isEmpty()) { + // No counters to reset + log.info("No counters to reset."); + return; + } + Set counterCellData = counterCellIds.stream() + .map(cId -> new PiCounterCell(cId, 0, 0)) + .collect(Collectors.toSet()); + + // Query the device. + Collection counterEntryResponse = client.write( + p4DeviceId, pipeconf) + .modify(counterCellData).submitSync() + .all(); + counterEntryResponse.stream().filter(counterEntryResp -> !counterEntryResp.isSuccess()) + .forEach(counterEntryResp -> log.warn("A counter was not reset correctly: {}", + counterEntryResp.explanation())); + } + + /** + * Check if the index is in the range of max number of supported + * attachments. + * + * @param index + * @throws BngProgrammableException + */ + private void checkIndex(long index) throws BngProgrammableException { + if (index > MAX_SUPPORTED_ATTACHMENTS) { + throw new BngProgrammableException("Counter index too big. Value:" + + index + ", MAX:" + + MAX_SUPPORTED_ATTACHMENTS); + } + } + + /** + * Set the punt to CPU rules of the BNG from a specific Application ID. + * + * @param appId Application ID asking to recive BNG control plane packets. + */ + private void setupPuntToCpu(ApplicationId appId) { + for (Criterion c : PuntCpuCriterionFactory.getAllPuntCriterion()) { + FlowRule flPuntCpu = buildTPppoeCpFlowRule((PiCriterion) c, appId); + flowRuleService.applyFlowRules(flPuntCpu); + } + } + + /** + * Build the Flow Rule for the table t_pppoe_term_v4 of the ingress + * upstream. + * + * @param attachment + * @return + */ + private FlowRule buildTPppoeTermV4FlowRule(Attachment attachment) { + PiCriterion criterion = PiCriterion.builder() + .matchExact(FabricConstants.HDR_LINE_ID, + attachment.attachmentId().id()) + .matchExact(FabricConstants.HDR_IPV4_SRC, + attachment.ipAddress().toOctets()) + .matchExact(FabricConstants.HDR_PPPOE_SESSION_ID, + attachment.pppoeSessionId()) + // TODO: match on MAC SRC address (antispoofing) +// .matchExact(FabricConstants.HDR_ETH_SRC, +// attachment.macAddress.toBytes()) + .build(); + TrafficSelector trafficSelector = DefaultTrafficSelector.builder() + .matchPi(criterion) + .build(); + PiAction action = PiAction.builder() + .withId(attachment.lineActive() ? + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_ENABLED_V4 : + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_DISABLED) + .build(); + TrafficTreatment instTreatment = DefaultTrafficTreatment.builder() + .piTableAction(action) + .build(); + return buildFlowRule(trafficSelector, + instTreatment, + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_TERM_V4, + attachment.appId()); + } + + /** + * Build the Flow Rule for the table t_line_session_map of the ingress + * downstream. + * + * @param attachment + * @return + */ + private FlowRule buildTLineSessionMapFlowRule(Attachment attachment) { + PiCriterion criterion = PiCriterion.builder() + .matchExact(FabricConstants.HDR_LINE_ID, + attachment.attachmentId().id()) + .build(); + TrafficSelector trafficSelector = DefaultTrafficSelector.builder() + .matchPi(criterion) + .build(); + PiAction action; + if (attachment.lineActive()) { + action = PiAction.builder() + .withId(FabricConstants.FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_SET_SESSION) + .withParameter(new PiActionParam(FabricConstants.PPPOE_SESSION_ID, + attachment.pppoeSessionId())) + .build(); + } else { + action = PiAction.builder() + .withId(FabricConstants.FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_DROP) + .build(); + } + TrafficTreatment instTreatment = DefaultTrafficTreatment.builder() + .piTableAction(action) + .build(); + return buildFlowRule(trafficSelector, + instTreatment, + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_T_LINE_SESSION_MAP, + attachment.appId()); + } + + /** + * Build the flow rule for the table t_line_map of the BNG-U (common to both + * upstream and downstream). + * + * @param attachment + * @return + */ + private FlowRule buildTLineMapFlowRule(Attachment attachment) { + PiCriterion criterion = PiCriterion.builder() + .matchExact(FabricConstants.HDR_S_TAG, + attachment.sTag().toShort()) + .matchExact(FabricConstants.HDR_C_TAG, + attachment.cTag().toShort()) + .build(); + TrafficSelector trafficSelector = DefaultTrafficSelector.builder() + .matchPi(criterion) + .build(); + PiAction action = PiAction.builder() + .withId(FabricConstants.FABRIC_INGRESS_BNG_INGRESS_SET_LINE) + .withParameter(new PiActionParam(FabricConstants.LINE_ID, + attachment.attachmentId().id())) + .build(); + TrafficTreatment instTreatment = DefaultTrafficTreatment.builder() + .piTableAction(action) + .build(); + return buildFlowRule(trafficSelector, + instTreatment, + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_T_LINE_MAP, + attachment.appId()); + } + + /** + * Build the flow rule for the table t_pppoe_cp of the ingress upstream. + * + * @param criterion Criterion to build the flow rule. + * @return The built flow rule. + */ + private FlowRule buildTPppoeCpFlowRule(PiCriterion criterion, ApplicationId appId) { + TrafficSelector trafficSelector = DefaultTrafficSelector.builder() + .matchPi(criterion) + .build(); + TrafficTreatment instTreatment = DefaultTrafficTreatment.builder() + .piTableAction(PiAction.builder() + .withId(FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_PUNT_TO_CPU) + .build() + ) + .build(); + return buildFlowRule(trafficSelector, + instTreatment, + FabricConstants.FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_CP, + appId); + } + + private FlowRule buildFlowRule(TrafficSelector trafficSelector, + TrafficTreatment trafficTreatment, + TableId tableId, + ApplicationId appId) { + return DefaultFlowRule.builder() + .forDevice(data().deviceId()) + .withSelector(trafficSelector) + .withTreatment(trafficTreatment) + .withPriority(DEFAULT_PRIORITY) + .forTable(tableId) + .fromApp(appId) + .makePermanent() + .build(); + } +} diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/PuntCpuCriterionFactory.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/PuntCpuCriterionFactory.java new file mode 100644 index 00000000000..ff405632413 --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/PuntCpuCriterionFactory.java @@ -0,0 +1,102 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.pipelines.fabric.impl.behaviour.bng; + +import com.google.common.collect.ImmutableList; +import org.onosproject.net.flow.criteria.Criterion; +import org.onosproject.net.flow.criteria.PiCriterion; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; + +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Factory to build criteria to punt packet to the CPU from the BNG pipeline. + */ +final class PuntCpuCriterionFactory { + + private static final ImmutableList PPPOE_CODE = + ImmutableList.builder() + .add((byte) 0x09) // PADI + .add((byte) 0x07) // PADO + .add((byte) 0x19) // PADR + .add((byte) 0x65) // PADS + .add((byte) 0xa7) // PADT + .build(); + + private static final ImmutableList PPP_PROTOCOL = + ImmutableList.builder() + .add((short) 0xc021) // LCP + .add((short) 0x8021) // IPCP + .add((short) 0xc023) // PAP + .add((short) 0xc223) // CHAP + .build(); + + private static final byte PPP_PROTOCOL_DEFAULT_MASK = (byte) 0xFFFF; + + private PuntCpuCriterionFactory() { + // Hide constructor + } + + /** + * Build all the Protocol Independent criteria starting from all the PPPoE + * codes. + * + * @return The list of Protocol Independent criteria. + */ + static Set getAllPuntCriterion() { + Set criteria = PPPOE_CODE.stream() + .map(PuntCpuCriterionFactory::getPppoePiCriterion).collect(Collectors.toSet()); + + criteria.addAll(PPP_PROTOCOL.stream() + .map(PuntCpuCriterionFactory::getPppPiCriterion) + .collect(Collectors.toSet())); + return criteria; + } + + /** + * Build the Protocol Independent criterion related to the specific PPPoE + * code. + * + * @param pppoeCode PPPoE code field. + * @return The built criterion. + */ + private static PiCriterion getPppoePiCriterion(byte pppoeCode) { + return PiCriterion.builder() + .matchExact(FabricConstants.HDR_PPPOE_CODE, new byte[]{pppoeCode}) + .build(); + } + + /** + * Build the Protocol Independent criterion related to the specified PPPoE + * code and PPP protocol matching. + *

+ * Match on PPPoE Protocol will be done with 0xFFFF as mask. + * + * @param pppProtocol PPP protocol field. + * @return The built criterion. + */ + private static PiCriterion getPppPiCriterion(short pppProtocol) { + return PiCriterion.builder() + .matchExact(FabricConstants.HDR_PPPOE_CODE, 0) + .matchTernary(FabricConstants.HDR_PPPOE_PROTOCOL, + pppProtocol, + PPP_PROTOCOL_DEFAULT_MASK) + .build(); + } +} + diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/package-info.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/package-info.java new file mode 100644 index 00000000000..803c2b2fa6c --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/bng/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Implementation classes for BngProgrammable behaviour. + */ +package org.onosproject.pipelines.fabric.impl.behaviour.bng; \ No newline at end of file diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/package-info.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/package-info.java new file mode 100644 index 00000000000..75586a108cd --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Fabric pipeconf behaviour implementations. + */ +package org.onosproject.pipelines.fabric.impl.behaviour; \ No newline at end of file diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/AbstractObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java similarity index 88% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/AbstractObjectiveTranslator.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java index c2ca0ff01a5..c6301319191 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/AbstractObjectiveTranslator.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import org.onosproject.net.DeviceId; import org.onosproject.net.flow.DefaultFlowRule; @@ -28,8 +28,8 @@ import org.onosproject.net.pi.model.PiPipelineInterpreter; import org.onosproject.net.pi.model.PiTableId; import org.onosproject.net.pi.runtime.PiAction; -import org.onosproject.pipelines.fabric.FabricCapabilities; -import org.onosproject.pipelines.fabric.FabricInterpreter; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricInterpreter; import org.slf4j.Logger; import static com.google.common.base.Preconditions.checkNotNull; @@ -70,12 +70,18 @@ public abstract ObjectiveTranslation doTranslate(T obj) public FlowRule flowRule(T obj, PiTableId tableId, TrafficSelector selector, TrafficTreatment treatment) throws FabricPipelinerException { + return flowRule(obj, tableId, selector, treatment, obj.priority()); + } + + public FlowRule flowRule(T obj, PiTableId tableId, TrafficSelector selector, + TrafficTreatment treatment, Integer priority) + throws FabricPipelinerException { return DefaultFlowRule.builder() .withSelector(selector) .withTreatment(mapTreatmentToPiIfNeeded(treatment, tableId)) .forTable(tableId) .makePermanent() - .withPriority(obj.priority()) + .withPriority(priority) .forDevice(deviceId) .fromApp(obj.appId()) .build(); diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeCommons.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/Commons.java similarity index 91% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeCommons.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/Commons.java index 0c898c54807..b288eb4886d 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeCommons.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/Commons.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import org.onlab.packet.EthType; import org.onlab.packet.MacAddress; @@ -24,7 +24,7 @@ /** * Constants common to ForwardingFunctionType operations. */ -final class ForwardingFunctionTypeCommons { +final class Commons { static final Criterion MATCH_ETH_TYPE_IPV4 = Criteria.matchEthType( EthType.EtherType.IPV4.ethType()); @@ -37,7 +37,7 @@ final class ForwardingFunctionTypeCommons { static final Criterion MATCH_MPLS_BOS_TRUE = Criteria.matchMplsBos(true); static final Criterion MATCH_MPLS_BOS_FALSE = Criteria.matchMplsBos(false); - private ForwardingFunctionTypeCommons() { + private Commons() { // hides constructor. } } diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java similarity index 97% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java index 20cafde5145..eac2116a571 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipeliner.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipeliner.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.ImmutableList; import org.onlab.util.KryoNamespace; @@ -37,8 +37,8 @@ import org.onosproject.net.flowobjective.ObjectiveError; import org.onosproject.net.group.GroupDescription; import org.onosproject.net.group.GroupService; -import org.onosproject.pipelines.fabric.AbstractFabricHandlerBehavior; -import org.onosproject.pipelines.fabric.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.AbstractFabricHandlerBehavior; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; import org.onosproject.store.serializers.KryoNamespaces; import org.slf4j.Logger; @@ -50,7 +50,7 @@ import java.util.stream.Collectors; import static java.lang.String.format; -import static org.onosproject.pipelines.fabric.FabricUtils.outputPort; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort; import static org.slf4j.LoggerFactory.getLogger; /** diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerException.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerException.java similarity index 95% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerException.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerException.java index 7f6d71e96c3..6755e7540e4 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerException.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import org.onosproject.net.flowobjective.ObjectiveError; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FilteringObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java similarity index 62% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FilteringObjectiveTranslator.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java index e86f270c941..ae97a549810 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FilteringObjectiveTranslator.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.Lists; -import org.onlab.packet.EthType; import org.onlab.packet.Ethernet; import org.onlab.packet.MacAddress; import org.onlab.packet.VlanId; @@ -33,18 +32,24 @@ import org.onosproject.net.flow.criteria.PiCriterion; import org.onosproject.net.flow.criteria.PortCriterion; import org.onosproject.net.flow.criteria.VlanIdCriterion; +import org.onosproject.net.flow.instructions.Instructions; +import org.onosproject.net.flow.instructions.L2ModificationInstruction; import org.onosproject.net.flowobjective.FilteringObjective; +import org.onosproject.net.flowobjective.Objective; import org.onosproject.net.flowobjective.ObjectiveError; import org.onosproject.net.pi.runtime.PiAction; import org.onosproject.net.pi.runtime.PiActionParam; -import org.onosproject.pipelines.fabric.FabricCapabilities; -import org.onosproject.pipelines.fabric.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils; import java.util.Collection; import java.util.List; import static java.lang.String.format; -import static org.onosproject.pipelines.fabric.FabricUtils.criterion; +import static org.onosproject.net.flow.criteria.Criterion.Type.INNER_VLAN_VID; +import static org.onosproject.net.flow.criteria.Criterion.Type.VLAN_VID; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterion; /** * ObjectiveTranslator implementation for FilteringObjective. @@ -60,6 +65,8 @@ class FilteringObjectiveTranslator private static final byte[] ONE = new byte[]{1}; private static final byte[] ZERO = new byte[]{0}; + private static final short ETH_TYPE_EXACT_MASK = (short) 0xFFFF; + private static final PiAction DENY = PiAction.builder() .withId(FabricConstants.FABRIC_INGRESS_FILTERING_DENY) .build(); @@ -94,11 +101,53 @@ public ObjectiveTranslation doTranslate(FilteringObjective obj) obj.conditions(), Criterion.Type.ETH_DST_MASKED); ingressPortVlanRule(obj, inPort, outerVlan, innerVlan, resultBuilder); - fwdClassifierRules(obj, inPort, ethDst, ethDstMasked, resultBuilder); - + if (shouldAddFwdClassifierRule(obj)) { + fwdClassifierRules(obj, inPort, ethDst, ethDstMasked, resultBuilder); + } else { + log.debug("Skipping fwd classifier rules for device {}.", deviceId); + } return resultBuilder.build(); } + private boolean shouldAddFwdClassifierRule(FilteringObjective obj) { + // NOTE: in fabric pipeline the forwarding classifier acts similarly + // to the TMAC table of OFDPA that matches on input port. + + // Forwarding classifier rules should be added to translation when: + // - the operation is ADD OR + // - it doesn't refer to double tagged traffic OR + // - it refers to double tagged traffic + // and SR is triggering the removal of forwarding classifier rules. + return obj.op() == Objective.Operation.ADD || + !isDoubleTagged(obj) || + (isDoubleTagged(obj) && isLastDoubleTaggedForPort(obj)); + } + + /** + * Check if the given filtering objective is the last filtering objective + * for a double-tagged host for a specific port. + *

+ * {@see org.onosproject.segmentrouting.RoutingRulePopulator#buildDoubleTaggedFilteringObj()} + * {@see org.onosproject.segmentrouting.RoutingRulePopulator#processDoubleTaggedFilter()} + * + * @param obj Filtering objective to check. + * @return True if SR is signaling to remove the forwarding classifier rule, + * false otherwise. + */ + private boolean isLastDoubleTaggedForPort(FilteringObjective obj) { + Instructions.MetadataInstruction meta = obj.meta().writeMetadata(); + // SR is setting this metadata when a double tagged filtering objective + // is removed and no other hosts is sharing the same input port. + return (meta != null && (meta.metadata() & meta.metadataMask()) == 1); + } + + private boolean isDoubleTagged(FilteringObjective obj) { + return obj.meta() != null && + FabricUtils.l2Instruction(obj.meta(), L2ModificationInstruction.L2SubType.VLAN_POP) != null && + FabricUtils.criterion(obj.conditions(), VLAN_VID) != null && + FabricUtils.criterion(obj.conditions(), INNER_VLAN_VID) != null; + } + private void ingressPortVlanRule( FilteringObjective obj, Criterion inPortCriterion, @@ -112,6 +161,12 @@ private void ingressPortVlanRule( final boolean innerVlanValid = innerVlanCriterion != null && !innerVlanCriterion.vlanId().equals(VlanId.NONE); + if (innerVlanValid && !capabilities.supportDoubleVlanTerm()) { + throw new FabricPipelinerException( + "Found 2 VLAN IDs, but the pipeline does not support double VLAN termination", + ObjectiveError.UNSUPPORTED); + } + final PiCriterion piCriterion = PiCriterion.builder() .matchExact(FabricConstants.HDR_VLAN_IS_VALID, outerVlanValid ? ONE : ZERO) .build(); @@ -163,7 +218,7 @@ private void fwdClassifierRules( } else { final MacAddress dstMac = ethDstCriterion.mac(); flowRules.addAll(ipFwdClassifierRules(inPort, dstMac, obj)); - flowRules.add(mplsFwdClassifierRule(inPort, dstMac, obj)); + flowRules.addAll(mplsFwdClassifierRules(inPort, dstMac, obj)); } for (FlowRule f : flowRules) { @@ -207,21 +262,58 @@ private Collection ipFwdClassifierRules( return flowRules; } - private FlowRule mplsFwdClassifierRule( + private Collection mplsFwdClassifierRules( PortNumber inPort, MacAddress dstMac, FilteringObjective obj) throws FabricPipelinerException { - return fwdClassifierRule( - inPort, Ethernet.MPLS_UNICAST, dstMac, null, - fwdClassifierTreatment(FWD_MPLS), obj); + // Forwarding classifier for MPLS is composed of 2 rules + // with higher priority wrt standard forwarding classifier rules, + // this is due to overlap on ternary matching. + TrafficTreatment treatment = fwdClassifierTreatment(FWD_MPLS); + final PiCriterion ethTypeMplsIpv4 = PiCriterion.builder() + .matchTernary(FabricConstants.HDR_ETH_TYPE, + Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK) + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, + Ethernet.TYPE_IPV4) + .build(); + final TrafficSelector selectorMplsIpv4 = DefaultTrafficSelector.builder() + .matchInPort(inPort) + .matchPi(ethTypeMplsIpv4) + .matchEthDstMasked(dstMac, MacAddress.EXACT_MASK) + .build(); + + final PiCriterion ethTypeMplsIpv6 = PiCriterion.builder() + .matchTernary(FabricConstants.HDR_ETH_TYPE, + Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK) + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, + Ethernet.TYPE_IPV6) + .build(); + final TrafficSelector selectorMplsIpv6 = DefaultTrafficSelector.builder() + .matchInPort(inPort) + .matchPi(ethTypeMplsIpv6) + .matchEthDstMasked(dstMac, MacAddress.EXACT_MASK) + .build(); + + return List.of( + flowRule(obj, FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER, + selectorMplsIpv4, treatment, obj.priority() + 1), + flowRule(obj, FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER, + selectorMplsIpv6, treatment, obj.priority() + 1) + ); } private FlowRule fwdClassifierRule( PortNumber inPort, short ethType, MacAddress dstMac, MacAddress dstMacMask, TrafficTreatment treatment, FilteringObjective obj) throws FabricPipelinerException { + // Match on ip_eth_type that is the eth_type of the L3 protocol. + // i.e., if the packet has an IP header, ip_eth_type should + // contain the corresponding eth_type (for IPv4 or IPv6) + final PiCriterion ethTypeCriterion = PiCriterion.builder() + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, ethType) + .build(); final TrafficSelector selector = DefaultTrafficSelector.builder() .matchInPort(inPort) - .matchPi(mapEthTypeFwdClassifier(ethType)) + .matchPi(ethTypeCriterion) .matchEthDstMasked(dstMac, dstMacMask == null ? MacAddress.EXACT_MASK : dstMacMask) .build(); @@ -241,38 +333,4 @@ private TrafficTreatment fwdClassifierTreatment(byte fwdType) { .build(); } - - static PiCriterion mapEthTypeFwdClassifier(short ethType) { - // Map the Ethernet type to the validity bits of the fabric pipeline - switch (EthType.EtherType.lookup(ethType)) { - case IPV4: { - return PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_IPV4, ONE) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .build(); - } - case IPV6: { - return PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ONE) - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .build(); - } - case MPLS_UNICAST: { - return PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .matchExact(FabricConstants.HDR_IS_MPLS, ONE) - .build(); - } - default: { - return PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .build(); - } - } - } } diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionType.java similarity index 93% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionType.java index 4e13a74d094..1e33fa5135c 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionType.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -39,12 +39,12 @@ import static org.onosproject.net.flow.criteria.Criterion.Type.MPLS_BOS; import static org.onosproject.net.flow.criteria.Criterion.Type.MPLS_LABEL; import static org.onosproject.net.flow.criteria.Criterion.Type.VLAN_VID; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_ETH_DST_NONE; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_ETH_TYPE_IPV4; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_ETH_TYPE_IPV6; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_ETH_TYPE_MPLS; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_MPLS_BOS_FALSE; -import static org.onosproject.pipelines.fabric.pipeliner.ForwardingFunctionTypeCommons.MATCH_MPLS_BOS_TRUE; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_ETH_DST_NONE; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_ETH_TYPE_IPV4; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_ETH_TYPE_IPV6; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_ETH_TYPE_MPLS; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_MPLS_BOS_FALSE; +import static org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.Commons.MATCH_MPLS_BOS_TRUE; import static org.slf4j.LoggerFactory.getLogger; /** diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java similarity index 93% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingObjectiveTranslator.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java index 066af7de1fa..2cb7ba57fbf 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingObjectiveTranslator.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingObjectiveTranslator.java @@ -14,14 +14,12 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import org.onlab.packet.IpPrefix; import org.onlab.packet.MacAddress; import org.onosproject.core.ApplicationId; import org.onosproject.net.DeviceId; @@ -40,17 +38,17 @@ import org.onosproject.net.flowobjective.Objective; import org.onosproject.net.flowobjective.ObjectiveError; import org.onosproject.net.group.DefaultGroupDescription; +import org.onosproject.net.group.DefaultGroupKey; import org.onosproject.net.group.GroupBucket; import org.onosproject.net.group.GroupBuckets; -import org.onosproject.net.group.DefaultGroupKey; import org.onosproject.net.group.GroupDescription; import org.onosproject.net.group.GroupKey; import org.onosproject.net.pi.model.PiActionId; import org.onosproject.net.pi.model.PiTableId; import org.onosproject.net.pi.runtime.PiAction; import org.onosproject.net.pi.runtime.PiActionParam; -import org.onosproject.pipelines.fabric.FabricCapabilities; -import org.onosproject.pipelines.fabric.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; import java.util.List; import java.util.Map; @@ -58,9 +56,9 @@ import java.util.stream.Collectors; import static java.lang.String.format; -import static org.onosproject.pipelines.fabric.FabricUtils.criterionNotNull; -import static org.onosproject.pipelines.fabric.FabricUtils.outputPort; import static org.onosproject.net.group.DefaultGroupBucket.createCloneGroupBucket; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterionNotNull; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort; /** @@ -71,8 +69,6 @@ class ForwardingObjectiveTranslator //FIXME: Max number supported by PI static final int CLONE_TO_CPU_ID = 511; - private static final List DEFAULT_ROUTE_PREFIXES = Lists.newArrayList( - "0.0.0.0/1", "128.0.0.0/1"); private static final Set ACL_CRITERIA = ImmutableSet.of( Criterion.Type.IN_PORT, @@ -233,14 +229,12 @@ private void ipv4RoutingRule(ForwardingObjective obj, Set criteriaWit private void defaultIpv4Route(ForwardingObjective obj, ObjectiveTranslation.Builder resultBuilder) throws FabricPipelinerException { - - // Hack to work around the inability to program default rules. - for (String prefix : DEFAULT_ROUTE_PREFIXES) { - final TrafficSelector selector = DefaultTrafficSelector.builder() - .matchIPDst(IpPrefix.valueOf(prefix)).build(); - resultBuilder.addFlowRule(flowRule( - obj, FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V4, selector)); - } + ForwardingObjective defaultObj = obj.copy() + .withPriority(0) + .add(); + final TrafficSelector selector = DefaultTrafficSelector.emptySelector(); + resultBuilder.addFlowRule(flowRule( + defaultObj, FabricConstants.FABRIC_INGRESS_FORWARDING_ROUTING_V4, selector)); } private void mplsRule(ForwardingObjective obj, Set criteriaWithMeta, diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/NextObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java similarity index 97% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/NextObjectiveTranslator.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java index d06d3831079..4e3304d6310 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/NextObjectiveTranslator.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.Lists; import org.onlab.packet.VlanId; @@ -46,9 +46,9 @@ import org.onosproject.net.pi.runtime.PiActionParam; import org.onosproject.net.pi.runtime.PiActionProfileGroupId; import org.onosproject.net.pi.runtime.PiGroupKey; -import org.onosproject.pipelines.fabric.FabricCapabilities; -import org.onosproject.pipelines.fabric.FabricConstants; -import org.onosproject.pipelines.fabric.FabricUtils; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils; import java.util.Collection; import java.util.List; @@ -59,10 +59,10 @@ import static java.lang.String.format; import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID; import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP; -import static org.onosproject.pipelines.fabric.FabricUtils.criterion; -import static org.onosproject.pipelines.fabric.FabricUtils.l2Instruction; -import static org.onosproject.pipelines.fabric.FabricUtils.l2Instructions; -import static org.onosproject.pipelines.fabric.FabricUtils.outputPort; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.criterion; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instruction; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instructions; +import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort; /** * ObjectiveTranslator implementation for NextObjective. diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ObjectiveTranslation.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ObjectiveTranslation.java similarity index 99% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ObjectiveTranslation.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ObjectiveTranslation.java index 33ffeac178e..31ff6172634 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ObjectiveTranslation.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ObjectiveTranslation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/package-info.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/package-info.java similarity index 91% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/package-info.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/package-info.java index de2d2ee81b0..905c942ac2d 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/package-info.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/package-info.java @@ -17,4 +17,4 @@ /** * Pipeliner implementation classes for fabric.p4. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/package-info.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/package-info.java similarity index 86% rename from pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/package-info.java rename to pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/package-info.java index 2221ac33569..257d1a33499 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/package-info.java +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/package-info.java @@ -15,6 +15,6 @@ */ /** - * Trellis-compatible reference underlay pipeconf. + * Implementation classes for the fabric pipeconf. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl; \ No newline at end of file diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/service/package-info.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/service/package-info.java new file mode 100644 index 00000000000..c57b047e47f --- /dev/null +++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/service/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Fabric pipeconf service implementations. + */ +package org.onosproject.pipelines.fabric.impl.service; diff --git a/pipelines/fabric/src/main/resources/.gitignore b/pipelines/fabric/impl/src/main/resources/.gitignore similarity index 100% rename from pipelines/fabric/src/main/resources/.gitignore rename to pipelines/fabric/impl/src/main/resources/.gitignore diff --git a/pipelines/fabric/src/main/resources/Makefile b/pipelines/fabric/impl/src/main/resources/Makefile similarity index 65% rename from pipelines/fabric/src/main/resources/Makefile rename to pipelines/fabric/impl/src/main/resources/Makefile index fc096abb807..586319c5d7e 100644 --- a/pipelines/fabric/src/main/resources/Makefile +++ b/pipelines/fabric/impl/src/main/resources/Makefile @@ -7,7 +7,7 @@ fabric-spgw: @./bmv2-compile.sh "fabric-spgw" "-DWITH_SPGW" fabric-bng: - @./bmv2-compile.sh "fabric-bng" "-DWITH_BNG -DWITH_DOUBLE_VLAN_TERMINATION -DWITHOUT_XCONNECT" + @./bmv2-compile.sh "fabric-bng" "-DWITH_BNG -DWITHOUT_XCONNECT" fabric-int: @./bmv2-compile.sh "fabric-int" "-DWITH_INT_SOURCE -DWITH_INT_TRANSIT" @@ -18,13 +18,13 @@ fabric-spgw-int: fabric-full: @./bmv2-compile.sh "fabric-full" " -DWITH_MULTICAST -DWITH_IPV6 \ -DWITH_SIMPLE_NEXT -DWITH_HASHED_NEXT -DWITH_BNG -DWITH_SPGW \ - -DWITH_INT_SOURCE -DWITH_INT_TRANSIT -DWITH_INT_SINK -DWITH_DOUBLE_VLAN_TERMINATION" + -DWITH_INT_SOURCE -DWITH_INT_TRANSIT -DWITH_INT_SINK" constants: docker run -v $(ONOS_ROOT):/onos -w /onos/tools/dev/bin \ --entrypoint ./onos-gen-p4-constants opennetworking/p4mn:stable \ - -o /onos/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java \ - fabric /onos/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt + -o /onos/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java \ + fabric /onos/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt clean: rm -rf p4c-out/*/bmv2 diff --git a/pipelines/fabric/src/main/resources/bmv2-compile.sh b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh similarity index 97% rename from pipelines/fabric/src/main/resources/bmv2-compile.sh rename to pipelines/fabric/impl/src/main/resources/bmv2-compile.sh index 9f2c558b4da..2cc8a3f1efc 100755 --- a/pipelines/fabric/src/main/resources/bmv2-compile.sh +++ b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh @@ -3,7 +3,7 @@ set -e BMV2_CPU_PORT="255" -BMV2_PP_FLAGS="-DTARGET_BMV2 -DCPU_PORT=${BMV2_CPU_PORT} -DWITH_PORT_COUNTER" +BMV2_PP_FLAGS="-DTARGET_BMV2 -DCPU_PORT=${BMV2_CPU_PORT} -DWITH_PORT_COUNTER -DWITH_DEBUG" PROFILE=$1 OTHER_PP_FLAGS=$2 diff --git a/pipelines/fabric/src/main/resources/fabric.p4 b/pipelines/fabric/impl/src/main/resources/fabric.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/fabric.p4 rename to pipelines/fabric/impl/src/main/resources/fabric.p4 diff --git a/pipelines/fabric/src/main/resources/include/bng.p4 b/pipelines/fabric/impl/src/main/resources/include/bng.p4 similarity index 89% rename from pipelines/fabric/src/main/resources/include/bng.p4 rename to pipelines/fabric/impl/src/main/resources/include/bng.p4 index ede00018f75..5deb8ee2609 100644 --- a/pipelines/fabric/src/main/resources/include/bng.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/bng.p4 @@ -33,8 +33,8 @@ control bng_ingress_upstream( inout fabric_metadata_t fmeta, inout standard_metadata_t smeta) { - counter(BNG_MAX_SUBSC, CounterType.packets) c_terminated; - counter(BNG_MAX_SUBSC, CounterType.packets) c_dropped; + counter(BNG_MAX_SUBSC, CounterType.bytes) c_terminated; + counter(BNG_MAX_SUBSC, CounterType.bytes) c_dropped; counter(BNG_MAX_SUBSC, CounterType.packets) c_control; // TABLE: t_pppoe_cp @@ -64,8 +64,7 @@ control bng_ingress_upstream( @hidden action term_enabled(bit<16> eth_type) { - hdr.inner_vlan_tag.eth_type = eth_type; - fmeta.last_eth_type = eth_type; + hdr.eth_type.value = eth_type; hdr.pppoe.setInvalid(); c_terminated.count(fmeta.bng.line_id); } @@ -147,7 +146,7 @@ control bng_ingress_downstream( inout fabric_metadata_t fmeta, inout standard_metadata_t smeta) { - counter(BNG_MAX_SUBSC, CounterType.packets_and_bytes) c_line_rx; + counter(BNG_MAX_SUBSC, CounterType.bytes) c_line_rx; meter(BNG_MAX_SUBSC, MeterType.bytes) m_besteff; meter(BNG_MAX_SUBSC, MeterType.bytes) m_prio; @@ -262,12 +261,12 @@ control bng_egress_downstream( inout fabric_metadata_t fmeta, inout standard_metadata_t smeta) { - counter(BNG_MAX_SUBSC, CounterType.packets_and_bytes) c_line_tx; + counter(BNG_MAX_SUBSC, CounterType.bytes) c_line_tx; @hidden action encap() { - // Here we add PPPoE and modify the inner_vlan_tag Ethernet Type. - hdr.inner_vlan_tag.eth_type = ETHERTYPE_PPPOES; + // Here we add PPPoE and modify the Ethernet Type. + hdr.eth_type.value = ETHERTYPE_PPPOES; hdr.pppoe.setValid(); hdr.pppoe.version = 4w1; hdr.pppoe.type_id = 4w1; @@ -311,9 +310,6 @@ control bng_ingress( bng_ingress_upstream() upstream; bng_ingress_downstream() downstream; - vlan_id_t s_tag = 0; - vlan_id_t c_tag = 0; - // TABLE: t_line_map // Map s_tag and c_tag to a line ID to uniquely identify a subscriber @@ -323,29 +319,19 @@ control bng_ingress( table t_line_map { key = { - s_tag : exact @name("s_tag"); - c_tag : exact @name("c_tag"); + fmeta.bng.s_tag : exact @name("s_tag"); + fmeta.bng.c_tag : exact @name("c_tag"); } actions = { - @defaultonly nop; set_line; } size = BNG_MAX_SUBSC; - const default_action = nop; + // By default set the line ID to 0 + const default_action = set_line(0); } apply { - if(hdr.pppoe.isValid()) { - s_tag = hdr.vlan_tag.vlan_id; - c_tag = hdr.inner_vlan_tag.vlan_id; - } else { - // We expect the packet to be downstream, - // the tags are set by the next stage in the metadata. - s_tag = fmeta.vlan_id; - c_tag = fmeta.inner_vlan_id; - } - - // First map the double VLAN tags to a line ID + // First map the double VLAN tags to a line ID // If table miss line ID will be 0. t_line_map.apply(); diff --git a/pipelines/fabric/src/main/resources/include/checksum.p4 b/pipelines/fabric/impl/src/main/resources/include/checksum.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/checksum.p4 rename to pipelines/fabric/impl/src/main/resources/include/checksum.p4 diff --git a/pipelines/fabric/src/main/resources/include/control/acl.p4 b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4 similarity index 97% rename from pipelines/fabric/src/main/resources/include/control/acl.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/acl.p4 index 4c2df67280d..26267e9302a 100644 --- a/pipelines/fabric/src/main/resources/include/control/acl.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4 @@ -66,7 +66,7 @@ control Acl (inout parsed_headers_t hdr, hdr.ethernet.dst_addr: ternary @name("eth_src"); // 48 hdr.ethernet.src_addr: ternary @name("eth_dst"); // 48 hdr.vlan_tag.vlan_id: ternary @name("vlan_id"); // 12 - fabric_metadata.last_eth_type: ternary @name("eth_type"); //16 + hdr.eth_type.value: ternary @name("eth_type"); //16 hdr.ipv4.src_addr: ternary @name("ipv4_src"); // 32 hdr.ipv4.dst_addr: ternary @name("ipv4_dst"); // 32 hdr.icmp.icmp_type: ternary @name("icmp_type"); // 8 diff --git a/pipelines/fabric/src/main/resources/include/control/filtering.p4 b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4 similarity index 82% rename from pipelines/fabric/src/main/resources/include/control/filtering.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/filtering.p4 index a3213e9b0e5..a8fae49907b 100644 --- a/pipelines/fabric/src/main/resources/include/control/filtering.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4 @@ -48,14 +48,16 @@ control Filtering (inout parsed_headers_t hdr, permit(); } - // FIXME: remove the use of ternary match on valid inner VLAN. + // FIXME: remove the use of ternary match on inner VLAN. // Use multi-table approach to remove ternary matching table ingress_port_vlan { key = { standard_metadata.ingress_port : exact @name("ig_port"); hdr.vlan_tag.isValid() : exact @name("vlan_is_valid"); hdr.vlan_tag.vlan_id : ternary @name("vlan_id"); +#ifdef WITH_DOUBLE_VLAN_TERMINATION hdr.inner_vlan_tag.vlan_id : ternary @name("inner_vlan_id"); +#endif // WITH_DOUBLE_VLAN_TERMINATION } actions = { deny(); @@ -91,9 +93,8 @@ control Filtering (inout parsed_headers_t hdr, key = { standard_metadata.ingress_port : exact @name("ig_port"); hdr.ethernet.dst_addr : ternary @name("eth_dst"); - fabric_metadata.is_ipv4 : exact @name("is_ipv4"); - fabric_metadata.is_ipv6 : exact @name("is_ipv6"); - fabric_metadata.is_mpls : exact @name("is_mpls"); + hdr.eth_type.value : ternary @name("eth_type"); + fabric_metadata.ip_eth_type : exact @name("ip_eth_type"); } actions = { set_forwarding_type; @@ -126,22 +127,6 @@ control Filtering (inout parsed_headers_t hdr, fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1; } - // Set last_eth_type checking the validity of the L2.5 headers - if (hdr.mpls.isValid()) { - fabric_metadata.last_eth_type = ETHERTYPE_MPLS; - } else { - if (hdr.vlan_tag.isValid()) { -#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION) - if(hdr.inner_vlan_tag.isValid()) { - fabric_metadata.last_eth_type = hdr.inner_vlan_tag.eth_type; - } else -#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION - fabric_metadata.last_eth_type = hdr.vlan_tag.eth_type; - } else { - fabric_metadata.last_eth_type = hdr.ethernet.eth_type; - } - } - ingress_port_vlan.apply(); fwd_classifier.apply(); } diff --git a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 b/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4 similarity index 95% rename from pipelines/fabric/src/main/resources/include/control/forwarding.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4 index 89544eae8df..9b1e5238369 100644 --- a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4 @@ -84,15 +84,22 @@ control Forwarding (inout parsed_headers_t hdr, /* * IPv4 Routing Table. */ +#ifdef WTIH_DEBUG direct_counter(CounterType.packets_and_bytes) routing_v4_counter; +#endif // WITH_DEBUG action set_next_id_routing_v4(next_id_t next_id) { set_next_id(next_id); +#ifdef WTIH_DEBUG routing_v4_counter.count(); +#endif // WITH_DEBUG } action nop_routing_v4() { + // no-op +#ifdef WTIH_DEBUG routing_v4_counter.count(); +#endif // WITH_DEBUG } #ifdef _ROUTING_V4_TABLE_ANNOT @@ -107,8 +114,10 @@ control Forwarding (inout parsed_headers_t hdr, nop_routing_v4; @defaultonly nop; } - const default_action = nop(); + default_action = nop(); +#ifdef WTIH_DEBUG counters = routing_v4_counter; +#endif // WITH_DEBUG size = ROUTING_V4_TABLE_SIZE; } diff --git a/pipelines/fabric/src/main/resources/include/control/next.p4 b/pipelines/fabric/impl/src/main/resources/include/control/next.p4 similarity index 94% rename from pipelines/fabric/src/main/resources/include/control/next.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/next.p4 index e7f6e4411ef..577307e4f50 100644 --- a/pipelines/fabric/src/main/resources/include/control/next.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/control/next.p4 @@ -76,6 +76,10 @@ control Next (inout parsed_headers_t hdr, set_vlan(outer_vlan_id); fabric_metadata.push_double_vlan = _TRUE; fabric_metadata.inner_vlan_id = inner_vlan_id; +#ifdef WITH_BNG + fabric_metadata.bng.s_tag = outer_vlan_id; + fabric_metadata.bng.c_tag = inner_vlan_id; +#endif // WITH_BNG } #endif // WITH_DOUBLE_VLAN_TERMINATION @@ -104,7 +108,6 @@ control Next (inout parsed_headers_t hdr, action output_xconnect(port_num_t port_num) { output(port_num); - fabric_metadata.last_eth_type = ETHERTYPE_VLAN; xconnect_counter.count(); } @@ -174,6 +177,9 @@ control Next (inout parsed_headers_t hdr, * Execute an action profile selector based on next id. */ @max_group_size(HASHED_SELECTOR_MAX_GROUP_SIZE) + #ifdef _CUSTOM_HASHED_SELECTOR_ANNOTATION + _CUSTOM_HASHED_SELECTOR_ANNOTATION + #endif action_selector(HashAlgorithm.crc16, HASHED_ACT_PROFILE_SIZE, 32w16) hashed_selector; direct_counter(CounterType.packets_and_bytes) hashed_counter; @@ -263,7 +269,7 @@ control EgressNextControl (inout parsed_headers_t hdr, action pop_mpls_if_present() { hdr.mpls.setInvalid(); // Assuming there's an IP header after the MPLS one. - fabric_metadata.last_eth_type = fabric_metadata.ip_eth_type; + hdr.eth_type.value = fabric_metadata.ip_eth_type; } @hidden @@ -273,7 +279,7 @@ control EgressNextControl (inout parsed_headers_t hdr, hdr.mpls.tc = 3w0; hdr.mpls.bos = 1w1; // BOS = TRUE hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. - fabric_metadata.last_eth_type = ETHERTYPE_MPLS; + hdr.eth_type.value = ETHERTYPE_MPLS; } @hidden @@ -283,23 +289,20 @@ control EgressNextControl (inout parsed_headers_t hdr, hdr.vlan_tag.setValid(); hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; hdr.vlan_tag.pri = fabric_metadata.vlan_pri; - hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; + hdr.vlan_tag.eth_type = ETHERTYPE_VLAN; hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; - hdr.ethernet.eth_type = ETHERTYPE_VLAN; } #ifdef WITH_DOUBLE_VLAN_TERMINATION @hidden action push_inner_vlan() { - // Then push inner VLAN TAG, rewriting correclty the outer vlan eth_type - // and the ethernet eth_type + // Push inner VLAN TAG, rewriting correclty the outer vlan eth_type hdr.inner_vlan_tag.setValid(); hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; - hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; + hdr.inner_vlan_tag.eth_type = ETHERTYPE_VLAN; hdr.vlan_tag.eth_type = ETHERTYPE_VLAN; - hdr.ethernet.eth_type = ETHERTYPE_QINQ; } #endif // WITH_DOUBLE_VLAN_TERMINATION @@ -310,7 +313,6 @@ control EgressNextControl (inout parsed_headers_t hdr, direct_counter(CounterType.packets_and_bytes) egress_vlan_counter; action pop_vlan() { - hdr.ethernet.eth_type = fabric_metadata.last_eth_type; hdr.vlan_tag.setInvalid(); egress_vlan_counter.count(); } diff --git a/pipelines/fabric/src/main/resources/include/control/packetio.p4 b/pipelines/fabric/impl/src/main/resources/include/control/packetio.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/control/packetio.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/packetio.p4 diff --git a/pipelines/fabric/src/main/resources/include/control/port_counter.p4 b/pipelines/fabric/impl/src/main/resources/include/control/port_counter.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/control/port_counter.p4 rename to pipelines/fabric/impl/src/main/resources/include/control/port_counter.p4 diff --git a/pipelines/fabric/src/main/resources/include/define.p4 b/pipelines/fabric/impl/src/main/resources/include/define.p4 similarity index 98% rename from pipelines/fabric/src/main/resources/include/define.p4 rename to pipelines/fabric/impl/src/main/resources/include/define.p4 index 8058416cb47..92aa1825431 100644 --- a/pipelines/fabric/src/main/resources/include/define.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/define.p4 @@ -23,6 +23,10 @@ #define WITH_INT #endif +#if defined(WITH_BNG) +#define WITH_DOUBLE_VLAN_TERMINATION +#endif + #ifndef WITHOUT_XCONNECT #define WITH_XCONNECT #endif diff --git a/pipelines/fabric/src/main/resources/include/header.p4 b/pipelines/fabric/impl/src/main/resources/include/header.p4 similarity index 90% rename from pipelines/fabric/src/main/resources/include/header.p4 rename to pipelines/fabric/impl/src/main/resources/include/header.p4 index 09df685c0bc..bea96195ce3 100644 --- a/pipelines/fabric/src/main/resources/include/header.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/header.p4 @@ -36,14 +36,19 @@ header packet_out_header_t { header ethernet_t { mac_addr_t dst_addr; mac_addr_t src_addr; - bit<16> eth_type; +} + +// NOTE: splitting the eth_type from the ethernet header helps to match on +// the actual eth_type without checking validity bit of the VLAN tags. +header eth_type_t { + bit<16> value; } header vlan_tag_t { + bit<16> eth_type; bit<3> pri; bit<1> cfi; vlan_id_t vlan_id; - bit<16> eth_type; } header mpls_t { @@ -157,19 +162,17 @@ const bng_type_t BNG_TYPE_UPSTREAM = 2w0x1; const bng_type_t BNG_TYPE_DOWNSTREAM = 2w0x2;; struct bng_meta_t { - bit<2> type; // upstream or downstream - bit<32> line_id; // subscriber line - bit<16> pppoe_session_id; - bit<32> ds_meter_result; // for downstream metering + bit<2> type; // upstream or downstream + bit<32> line_id; // subscriber line + bit<16> pppoe_session_id; + bit<32> ds_meter_result; // for downstream metering + vlan_id_t s_tag; + vlan_id_t c_tag; } #endif // WITH_BNG //Custom metadata definition struct fabric_metadata_t { - bit<16> last_eth_type; - _BOOL is_ipv4; - _BOOL is_ipv6; - _BOOL is_mpls; bit<16> ip_eth_type; vlan_id_t vlan_id; bit<3> vlan_pri; @@ -205,9 +208,10 @@ struct fabric_metadata_t { struct parsed_headers_t { ethernet_t ethernet; vlan_tag_t vlan_tag; -#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION) +#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION) vlan_tag_t inner_vlan_tag; -#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION +#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION + eth_type_t eth_type; #ifdef WITH_BNG pppoe_t pppoe; #endif // WITH_BNG @@ -231,6 +235,7 @@ struct parsed_headers_t { #ifdef WITH_INT_SINK // INT Report encap ethernet_t report_ethernet; + eth_type_t report_eth_type; ipv4_t report_ipv4; udp_t report_udp; // INT Report header (support only fixed) diff --git a/pipelines/fabric/src/main/resources/include/int/int_header.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_header.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/int/int_header.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_header.p4 diff --git a/pipelines/fabric/src/main/resources/include/int/int_main.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_main.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/int/int_main.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_main.p4 diff --git a/pipelines/fabric/src/main/resources/include/int/int_report.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4 similarity index 98% rename from pipelines/fabric/src/main/resources/include/int/int_report.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_report.p4 index 8c48ba29fde..aaec185a295 100644 --- a/pipelines/fabric/src/main/resources/include/int/int_report.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4 @@ -50,7 +50,7 @@ control process_int_report ( hdr.report_ethernet.setValid(); hdr.report_ethernet.dst_addr = mon_mac; hdr.report_ethernet.src_addr = src_mac; - hdr.report_ethernet.eth_type = ETHERTYPE_IPV4; + hdr.report_eth_type.value = ETHERTYPE_IPV4; //Report IPV4 Header hdr.report_ipv4.setValid(); diff --git a/pipelines/fabric/src/main/resources/include/int/int_sink.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_sink.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/int/int_sink.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_sink.p4 diff --git a/pipelines/fabric/src/main/resources/include/int/int_source.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_source.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/int/int_source.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_source.p4 diff --git a/pipelines/fabric/src/main/resources/include/int/int_transit.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_transit.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/int/int_transit.p4 rename to pipelines/fabric/impl/src/main/resources/include/int/int_transit.p4 diff --git a/pipelines/fabric/src/main/resources/include/parser.p4 b/pipelines/fabric/impl/src/main/resources/include/parser.p4 similarity index 84% rename from pipelines/fabric/src/main/resources/include/parser.p4 rename to pipelines/fabric/impl/src/main/resources/include/parser.p4 index 3fadebfeb85..aa79179ca9f 100644 --- a/pipelines/fabric/src/main/resources/include/parser.p4 +++ b/pipelines/fabric/impl/src/main/resources/include/parser.p4 @@ -40,45 +40,46 @@ parser FabricParser (packet_in packet, state parse_ethernet { packet.extract(hdr.ethernet); - fabric_metadata.last_eth_type = hdr.ethernet.eth_type; fabric_metadata.vlan_id = DEFAULT_VLAN_ID; - transition select(hdr.ethernet.eth_type){ + transition select(packet.lookahead>()){ ETHERTYPE_QINQ: parse_vlan_tag; ETHERTYPE_QINQ_NON_STD: parse_vlan_tag; ETHERTYPE_VLAN: parse_vlan_tag; - ETHERTYPE_MPLS: parse_mpls; - ETHERTYPE_IPV4: pre_parse_ipv4; -#ifdef WITH_IPV6 - ETHERTYPE_IPV6: pre_parse_ipv6; -#endif // WITH_IPV6 - default: accept; + default: parse_eth_type; } } state parse_vlan_tag { packet.extract(hdr.vlan_tag); - transition select(hdr.vlan_tag.eth_type){ - ETHERTYPE_IPV4: pre_parse_ipv4; -#ifdef WITH_IPV6 - ETHERTYPE_IPV6: pre_parse_ipv6; -#endif // WITH_IPV6 - ETHERTYPE_MPLS: parse_mpls; -#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION) +#ifdef WITH_BNG + fabric_metadata.bng.s_tag = hdr.vlan_tag.vlan_id; +#endif // WITH_BNG + transition select(packet.lookahead>()){ +#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION) ETHERTYPE_VLAN: parse_inner_vlan_tag; -#endif // WITH_XCONNECT - default: accept; +#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION + default: parse_eth_type; } } -#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION) +#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION) state parse_inner_vlan_tag { packet.extract(hdr.inner_vlan_tag); - transition select(hdr.inner_vlan_tag.eth_type){ - ETHERTYPE_IPV4: pre_parse_ipv4; +#ifdef WITH_BNG + fabric_metadata.bng.c_tag = hdr.inner_vlan_tag.vlan_id; +#endif // WITH_BNG + transition parse_eth_type; + } +#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION + + state parse_eth_type { + packet.extract(hdr.eth_type); + transition select(hdr.eth_type.value) { + ETHERTYPE_MPLS: parse_mpls; + ETHERTYPE_IPV4: parse_ipv4; #ifdef WITH_IPV6 - ETHERTYPE_IPV6: pre_parse_ipv6; + ETHERTYPE_IPV6: parse_ipv6; #endif // WITH_IPV6 - ETHERTYPE_MPLS: parse_mpls; #ifdef WITH_BNG ETHERTYPE_PPPOED: parse_pppoe; ETHERTYPE_PPPOES: parse_pppoe; @@ -86,16 +87,15 @@ parser FabricParser (packet_in packet, default: accept; } } -#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION #ifdef WITH_BNG state parse_pppoe { packet.extract(hdr.pppoe); transition select(hdr.pppoe.protocol) { PPPOE_PROTOCOL_MPLS: parse_mpls; - PPPOE_PROTOCOL_IP4: pre_parse_ipv4; + PPPOE_PROTOCOL_IP4: parse_ipv4; #ifdef WITH_IPV6 - PPPOE_PROTOCOL_IP6: pre_parse_ipv6; + PPPOE_PROTOCOL_IP6: parse_ipv6; #endif // WITH_IPV6 default: accept; } @@ -104,7 +104,6 @@ parser FabricParser (packet_in packet, state parse_mpls { packet.extract(hdr.mpls); - fabric_metadata.is_mpls = _TRUE; fabric_metadata.mpls_label = hdr.mpls.label; fabric_metadata.mpls_ttl = hdr.mpls.ttl; // There is only one MPLS label for this fabric. @@ -122,11 +121,6 @@ parser FabricParser (packet_in packet, } } - // Intermediate state to set is_ipv4 - state pre_parse_ipv4 { - fabric_metadata.is_ipv4 = _TRUE; - transition parse_ipv4; - } state parse_ipv4 { packet.extract(hdr.ipv4); fabric_metadata.ip_proto = hdr.ipv4.protocol; @@ -142,11 +136,6 @@ parser FabricParser (packet_in packet, } #ifdef WITH_IPV6 - // Intermediate state to set is_ipv6 - state pre_parse_ipv6 { - fabric_metadata.is_ipv6 = _TRUE; - transition parse_ipv6; - } state parse_ipv6 { packet.extract(hdr.ipv6); fabric_metadata.ip_proto = hdr.ipv6.next_hdr; @@ -279,15 +268,17 @@ control FabricDeparser(packet_out packet,in parsed_headers_t hdr) { packet.emit(hdr.packet_in); #ifdef WITH_INT_SINK packet.emit(hdr.report_ethernet); + packet.emit(hdr.report_eth_type); packet.emit(hdr.report_ipv4); packet.emit(hdr.report_udp); packet.emit(hdr.report_fixed_header); #endif // WITH_INT_SINK packet.emit(hdr.ethernet); packet.emit(hdr.vlan_tag); -#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION) +#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION) packet.emit(hdr.inner_vlan_tag); -#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION +#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION + packet.emit(hdr.eth_type); #ifdef WITH_BNG packet.emit(hdr.pppoe); #endif // WITH_BNG @@ -325,4 +316,4 @@ control FabricDeparser(packet_out packet,in parsed_headers_t hdr) { } } -#endif +#endif \ No newline at end of file diff --git a/pipelines/fabric/src/main/resources/include/size.p4 b/pipelines/fabric/impl/src/main/resources/include/size.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/size.p4 rename to pipelines/fabric/impl/src/main/resources/include/size.p4 diff --git a/pipelines/fabric/src/main/resources/include/spgw.p4 b/pipelines/fabric/impl/src/main/resources/include/spgw.p4 similarity index 100% rename from pipelines/fabric/src/main/resources/include/spgw.p4 rename to pipelines/fabric/impl/src/main/resources/include/spgw.p4 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json similarity index 85% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json index 933529d0c6a..84ec0fe837b 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json @@ -4,43 +4,41 @@ "name" : "scalars_0", "id" : 0, "fields" : [ - ["tmp_0", 4, false], + ["tmp_0", 16, false], + ["tmp_1", 16, false], + ["tmp_2", 4, false], ["tmp", 32, false], - ["tmp_1", 32, false], - ["bng_ingress_s_tag", 12, false], - ["bng_ingress_c_tag", 12, false], + ["tmp_3", 32, false], ["bng_ingress_upstream_tmp", 1, false], ["bng_ingress_downstream_tmp", 1, false], ["bng_ingress_upstream_hasReturned", 1, false], ["egress_next_tmp", 1, false], - ["fabric_metadata_t._last_eth_type0", 16, false], - ["fabric_metadata_t._is_ipv41", 1, false], - ["fabric_metadata_t._is_ipv62", 1, false], - ["fabric_metadata_t._is_mpls3", 1, false], - ["fabric_metadata_t._ip_eth_type4", 16, false], - ["fabric_metadata_t._vlan_id5", 12, false], - ["fabric_metadata_t._vlan_pri6", 3, false], - ["fabric_metadata_t._vlan_cfi7", 1, false], - ["fabric_metadata_t._push_double_vlan8", 1, false], - ["fabric_metadata_t._inner_vlan_id9", 12, false], - ["fabric_metadata_t._inner_vlan_pri10", 3, false], - ["fabric_metadata_t._inner_vlan_cfi11", 1, false], - ["fabric_metadata_t._mpls_label12", 20, false], - ["fabric_metadata_t._mpls_ttl13", 8, false], - ["fabric_metadata_t._skip_forwarding14", 1, false], - ["fabric_metadata_t._skip_next15", 1, false], - ["fabric_metadata_t._fwd_type16", 3, false], - ["fabric_metadata_t._next_id17", 32, false], - ["fabric_metadata_t._is_multicast18", 1, false], - ["fabric_metadata_t._is_controller_packet_out19", 1, false], - ["fabric_metadata_t._ip_proto20", 8, false], - ["fabric_metadata_t._l4_sport21", 16, false], - ["fabric_metadata_t._l4_dport22", 16, false], - ["fabric_metadata_t._bng_type23", 2, false], - ["fabric_metadata_t._bng_line_id24", 32, false], - ["fabric_metadata_t._bng_pppoe_session_id25", 16, false], - ["fabric_metadata_t._bng_ds_meter_result26", 32, false], - ["_padding_0", 7, false] + ["fabric_metadata_t._ip_eth_type0", 16, false], + ["fabric_metadata_t._vlan_id1", 12, false], + ["fabric_metadata_t._vlan_pri2", 3, false], + ["fabric_metadata_t._vlan_cfi3", 1, false], + ["fabric_metadata_t._push_double_vlan4", 1, false], + ["fabric_metadata_t._inner_vlan_id5", 12, false], + ["fabric_metadata_t._inner_vlan_pri6", 3, false], + ["fabric_metadata_t._inner_vlan_cfi7", 1, false], + ["fabric_metadata_t._mpls_label8", 20, false], + ["fabric_metadata_t._mpls_ttl9", 8, false], + ["fabric_metadata_t._skip_forwarding10", 1, false], + ["fabric_metadata_t._skip_next11", 1, false], + ["fabric_metadata_t._fwd_type12", 3, false], + ["fabric_metadata_t._next_id13", 32, false], + ["fabric_metadata_t._is_multicast14", 1, false], + ["fabric_metadata_t._is_controller_packet_out15", 1, false], + ["fabric_metadata_t._ip_proto16", 8, false], + ["fabric_metadata_t._l4_sport17", 16, false], + ["fabric_metadata_t._l4_dport18", 16, false], + ["fabric_metadata_t._bng_type19", 2, false], + ["fabric_metadata_t._bng_line_id20", 32, false], + ["fabric_metadata_t._bng_pppoe_session_id21", 16, false], + ["fabric_metadata_t._bng_ds_meter_result22", 32, false], + ["fabric_metadata_t._bng_s_tag23", 12, false], + ["fabric_metadata_t._bng_c_tag24", 12, false], + ["_padding_0", 2, false] ] }, { @@ -77,23 +75,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "pppoe_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "pppoe_t", + "id" : 5, "fields" : [ ["version", 4, false], ["type_id", 4, false], @@ -105,7 +109,7 @@ }, { "name" : "mpls_t", - "id" : 5, + "id" : 6, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -115,7 +119,7 @@ }, { "name" : "ipv4_t", - "id" : 6, + "id" : 7, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -134,7 +138,7 @@ }, { "name" : "tcp_t", - "id" : 7, + "id" : 8, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -151,7 +155,7 @@ }, { "name" : "udp_t", - "id" : 8, + "id" : 9, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -161,7 +165,7 @@ }, { "name" : "icmp_t", - "id" : 9, + "id" : 10, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -173,7 +177,7 @@ }, { "name" : "packet_out_header_t", - "id" : 10, + "id" : 11, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -181,7 +185,7 @@ }, { "name" : "packet_in_header_t", - "id" : 11, + "id" : 12, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -225,57 +229,64 @@ "pi_omit" : true }, { - "name" : "pppoe", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "pppoe", + "id" : 6, "header_type" : "pppoe_t", "metadata" : false, "pi_omit" : true }, { "name" : "mpls", - "id" : 6, + "id" : 7, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 7, + "id" : 8, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 8, + "id" : 9, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 9, + "id" : 10, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 10, + "id" : 11, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 11, + "id" : 12, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 12, + "id" : 13, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true @@ -383,11 +394,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -396,11 +407,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "tmp_0"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -425,28 +436,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_0"] } ] }, @@ -462,21 +461,35 @@ } ], "op" : "extract" - } - ], - "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" }, { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_s_tag23"] + }, + { + "type" : "field", + "value" : ["vlan_tag", "vlan_id"] + } + ], + "op" : "set" }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_1"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8100", @@ -486,13 +499,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_1"] } ] }, @@ -508,21 +521,57 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_c_tag24"] + }, + { + "type" : "field", + "value" : ["inner_vlan_tag", "vlan_id"] + } + ], + "op" : "set" } ], "transitions" : [ { - "type" : "hexstr", - "value" : "0x0800", + "value" : "default", "mask" : null, - "next_state" : "pre_parse_ipv4" - }, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8847", "mask" : null, "next_state" : "parse_mpls" }, + { + "type" : "hexstr", + "value" : "0x0800", + "mask" : null, + "next_state" : "parse_ipv4" + }, { "type" : "hexstr", "value" : "0x8863", @@ -544,13 +593,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_pppoe", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -573,7 +622,7 @@ "type" : "hexstr", "value" : "0x0021", "mask" : null, - "next_state" : "pre_parse_ipv4" + "next_state" : "parse_ipv4" }, { "value" : "default", @@ -590,7 +639,7 @@ }, { "name" : "parse_mpls", - "id" : 6, + "id" : 7, "parser_ops" : [ { "parameters" : [ @@ -605,30 +654,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_mpls3"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "field", @@ -641,7 +667,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] }, { "type" : "field", @@ -654,7 +680,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] }, { "type" : "lookahead", @@ -680,47 +706,10 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] } ] }, - { - "name" : "pre_parse_ipv4", - "id" : 7, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv41"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv4", "id" : 8, @@ -738,7 +727,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto20"] + "value" : ["scalars", "fabric_metadata_t._ip_proto16"] }, { "type" : "field", @@ -751,7 +740,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -810,7 +799,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", @@ -823,7 +812,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] }, { "type" : "field", @@ -859,7 +848,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", @@ -872,7 +861,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] }, { "type" : "field", @@ -929,11 +918,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"] + "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"] } ], "meter_arrays" : [ @@ -942,7 +931,7 @@ "id" : 0, "source_info" : { "filename" : "include/bng.p4", - "line" : 152, + "line" : 151, "column" : 33, "source_fragment" : "m_besteff" }, @@ -956,7 +945,7 @@ "id" : 1, "source_info" : { "filename" : "include/bng.p4", - "line" : 153, + "line" : 152, "column" : 33, "source_fragment" : "m_prio" }, @@ -973,7 +962,7 @@ "source_info" : { "filename" : "include/bng.p4", "line" : 36, - "column" : 39, + "column" : 37, "source_fragment" : "c_terminated" }, "size" : 8192, @@ -985,7 +974,7 @@ "source_info" : { "filename" : "include/bng.p4", "line" : 37, - "column" : 39, + "column" : 37, "source_fragment" : "c_dropped" }, "size" : 8192, @@ -1008,8 +997,8 @@ "id" : 3, "source_info" : { "filename" : "include/bng.p4", - "line" : 150, - "column" : 49, + "line" : 149, + "column" : 37, "source_fragment" : "c_line_rx" }, "size" : 8192, @@ -1034,7 +1023,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -1063,21 +1052,9 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 8, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 9, + "id" : 8, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -1089,7 +1066,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 10, + "id" : 9, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -1101,31 +1078,31 @@ }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 11, + "id" : 10, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 12, + "id" : 11, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 13, + "id" : 12, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -1137,7 +1114,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 14, + "id" : 13, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -1149,11 +1126,11 @@ }, { "name" : "FabricEgress.bng_egress.downstream.c_line_tx", - "id" : 15, + "id" : 14, "source_info" : { "filename" : "include/bng.p4", - "line" : 265, - "column" : 49, + "line" : 264, + "column" : 37, "source_fragment" : "c_line_tx" }, "size" : 8192, @@ -1161,12 +1138,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 16, + "id" : 15, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -1347,15 +1324,9 @@ "runtime_data" : [], "primitives" : [] }, - { - "name" : "nop", - "id" : 8, - "runtime_data" : [], - "primitives" : [] - }, { "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu", - "id" : 9, + "id" : 8, "runtime_data" : [], "primitives" : [ { @@ -1386,7 +1357,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { @@ -1400,7 +1371,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_disabled", - "id" : 10, + "id" : 9, "runtime_data" : [], "primitives" : [ { @@ -1408,7 +1379,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type23"] + "value" : ["scalars", "fabric_metadata_t._bng_type19"] }, { "type" : "hexstr", @@ -1417,7 +1388,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 155, + "line" : 160, "column" : 36, "source_fragment" : "2w0x0; ..." } @@ -1432,7 +1403,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 75, + "line" : 74, "column" : 8, "source_fragment" : "mark_to_drop(smeta)" } @@ -1441,7 +1412,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4", - "id" : 11, + "id" : 10, "runtime_data" : [], "primitives" : [ { @@ -1449,26 +1420,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x0800" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 110, - "column" : 31, - "source_fragment" : "0x0800; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -1477,7 +1429,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 110, + "line" : 114, "column" : 31, "source_fragment" : "0x0800; ..." } @@ -1492,7 +1444,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 69, + "line" : 68, "column" : 8, "source_fragment" : "hdr.pppoe.setInvalid()" } @@ -1506,12 +1458,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 70, + "line" : 69, "column" : 8, "source_fragment" : "c_terminated.count(fmeta.bng.line_id)" } @@ -1520,7 +1472,7 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.set_session", - "id" : 12, + "id" : 11, "runtime_data" : [ { "name" : "pppoe_session_id", @@ -1533,7 +1485,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type23"] + "value" : ["scalars", "fabric_metadata_t._bng_type19"] }, { "type" : "hexstr", @@ -1542,7 +1494,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 157, + "line" : 162, "column" : 39, "source_fragment" : "2w0x2;; ..." } @@ -1552,7 +1504,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id25"] + "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"] }, { "type" : "runtime_data", @@ -1561,7 +1513,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 157, + "line" : 156, "column" : 35, "source_fragment" : "= pppoe_session_id; ..." } @@ -1575,12 +1527,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 158, + "line" : 157, "column" : 8, "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)" } @@ -1589,7 +1541,7 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.drop", - "id" : 13, + "id" : 12, "runtime_data" : [], "primitives" : [ { @@ -1597,7 +1549,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type23"] + "value" : ["scalars", "fabric_metadata_t._bng_type19"] }, { "type" : "hexstr", @@ -1606,7 +1558,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 157, + "line" : 162, "column" : 39, "source_fragment" : "2w0x2;; ..." } @@ -1620,12 +1572,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 163, + "line" : 162, "column" : 8, "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)" } @@ -1640,7 +1592,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 164, + "line" : 163, "column" : 8, "source_fragment" : "mark_to_drop(smeta)" } @@ -1649,19 +1601,19 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.qos_prio", - "id" : 14, + "id" : 13, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.downstream.qos_besteff", - "id" : 15, + "id" : 14, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.set_line", - "id" : 16, + "id" : 15, "runtime_data" : [ { "name" : "line_id", @@ -1674,7 +1626,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] }, { "type" : "runtime_data", @@ -1683,7 +1635,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 321, + "line" : 317, "column" : 30, "source_fragment" : "= line_id; ..." } @@ -1692,7 +1644,7 @@ }, { "name" : "FabricIngress.filtering.deny", - "id" : 17, + "id" : 16, "runtime_data" : [], "primitives" : [ { @@ -1700,7 +1652,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] }, { "type" : "expression", @@ -1729,7 +1681,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -1757,13 +1709,13 @@ }, { "name" : "FabricIngress.filtering.permit", - "id" : 18, + "id" : 17, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.filtering.permit_with_internal_vlan", - "id" : 19, + "id" : 18, "runtime_data" : [ { "name" : "vlan_id", @@ -1776,7 +1728,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -1794,7 +1746,7 @@ }, { "name" : "FabricIngress.filtering.set_forwarding_type", - "id" : 20, + "id" : 19, "runtime_data" : [ { "name" : "fwd_type", @@ -1807,7 +1759,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, { "type" : "runtime_data", @@ -1816,7 +1768,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 33, "source_fragment" : "= fwd_type; ..." } @@ -1825,7 +1777,7 @@ }, { "name" : "FabricIngress.forwarding.set_next_id_bridging", - "id" : 21, + "id" : 20, "runtime_data" : [ { "name" : "next_id", @@ -1838,7 +1790,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -1856,7 +1808,7 @@ }, { "name" : "FabricIngress.forwarding.pop_mpls_and_next", - "id" : 22, + "id" : 21, "runtime_data" : [ { "name" : "next_id", @@ -1869,7 +1821,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "hexstr", @@ -1888,7 +1840,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -1906,7 +1858,7 @@ }, { "name" : "FabricIngress.forwarding.set_next_id_routing_v4", - "id" : 23, + "id" : 22, "runtime_data" : [ { "name" : "next_id", @@ -1919,7 +1871,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -1937,13 +1889,13 @@ }, { "name" : "FabricIngress.forwarding.nop_routing_v4", - "id" : 24, + "id" : 23, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.acl.set_next_id_acl", - "id" : 25, + "id" : 24, "runtime_data" : [ { "name" : "next_id", @@ -1956,7 +1908,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -1974,7 +1926,7 @@ }, { "name" : "FabricIngress.acl.punt_to_cpu", - "id" : 26, + "id" : 25, "runtime_data" : [], "primitives" : [ { @@ -2001,7 +1953,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -2029,7 +1981,7 @@ }, { "name" : "FabricIngress.acl.set_clone_session_id", - "id" : 27, + "id" : 26, "runtime_data" : [ { "name" : "clone_id", @@ -2060,7 +2012,7 @@ }, { "name" : "FabricIngress.acl.drop", - "id" : 28, + "id" : 27, "runtime_data" : [], "primitives" : [ { @@ -2083,7 +2035,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -2111,13 +2063,13 @@ }, { "name" : "FabricIngress.acl.nop_acl", - "id" : 29, + "id" : 28, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.next.set_vlan", - "id" : 30, + "id" : 29, "runtime_data" : [ { "name" : "vlan_id", @@ -2130,7 +2082,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2148,7 +2100,7 @@ }, { "name" : "FabricIngress.next.set_double_vlan", - "id" : 31, + "id" : 30, "runtime_data" : [ { "name" : "outer_vlan_id", @@ -2165,7 +2117,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2184,7 +2136,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"] + "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"] }, { "type" : "expression", @@ -2213,7 +2165,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] }, { "type" : "runtime_data", @@ -2226,12 +2178,50 @@ "column" : 38, "source_fragment" : "= inner_vlan_id; ..." } + }, + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_s_tag23"] + }, + { + "type" : "runtime_data", + "value" : 0 + } + ], + "source_info" : { + "filename" : "include/control/next.p4", + "line" : 80, + "column" : 34, + "source_fragment" : "= outer_vlan_id; ..." + } + }, + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_c_tag24"] + }, + { + "type" : "runtime_data", + "value" : 1 + } + ], + "source_info" : { + "filename" : "include/control/next.p4", + "line" : 81, + "column" : 34, + "source_fragment" : "= inner_vlan_id; ..." + } } ] }, { "name" : "FabricIngress.next.output_hashed", - "id" : 32, + "id" : 31, "runtime_data" : [ { "name" : "port_num", @@ -2262,7 +2252,7 @@ }, { "name" : "FabricIngress.next.routing_hashed", - "id" : 33, + "id" : 32, "runtime_data" : [ { "name" : "port_num", @@ -2339,7 +2329,7 @@ }, { "name" : "FabricIngress.next.mpls_routing_hashed", - "id" : 34, + "id" : 33, "runtime_data" : [ { "name" : "port_num", @@ -2364,7 +2354,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "runtime_data", @@ -2439,7 +2429,7 @@ }, { "name" : "FabricIngress.next.set_mcast_group_id", - "id" : 35, + "id" : 34, "runtime_data" : [ { "name" : "group_id", @@ -2461,7 +2451,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -2471,7 +2461,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast18"] + "value" : ["scalars", "fabric_metadata_t._is_multicast14"] }, { "type" : "expression", @@ -2490,7 +2480,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 37, "source_fragment" : "= true; ..." } @@ -2499,7 +2489,7 @@ }, { "name" : "act", - "id" : 36, + "id" : 35, "runtime_data" : [], "primitives" : [ { @@ -2541,7 +2531,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] }, { "type" : "expression", @@ -2579,7 +2569,7 @@ }, { "name" : "act_0", - "id" : 37, + "id" : 36, "runtime_data" : [], "primitives" : [ { @@ -2587,7 +2577,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "field", @@ -2596,7 +2586,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." } @@ -2606,7 +2596,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] }, { "type" : "field", @@ -2615,7 +2605,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 37, "source_fragment" : "= hdr.vlan_tag.pri; ..." } @@ -2625,7 +2615,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] }, { "type" : "field", @@ -2634,7 +2624,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 37, "source_fragment" : "= hdr.vlan_tag.cfi; ..." } @@ -2643,7 +2633,7 @@ }, { "name" : "act_1", - "id" : 38, + "id" : 37, "runtime_data" : [], "primitives" : [ { @@ -2651,7 +2641,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] }, { "type" : "field", @@ -2660,7 +2650,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 116, + "line" : 117, "column" : 42, "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..." } @@ -2670,7 +2660,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"] }, { "type" : "field", @@ -2679,7 +2669,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 117, + "line" : 118, "column" : 43, "source_fragment" : "= hdr.inner_vlan_tag.pri; ..." } @@ -2689,7 +2679,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"] }, { "type" : "field", @@ -2698,7 +2688,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 118, + "line" : 119, "column" : 43, "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..." } @@ -2707,7 +2697,7 @@ }, { "name" : "act_2", - "id" : 39, + "id" : 38, "runtime_data" : [], "primitives" : [ { @@ -2715,7 +2705,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] }, { "type" : "hexstr", @@ -2724,7 +2714,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..." } @@ -2733,111 +2723,7 @@ }, { "name" : "act_3", - "id" : 40, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8847" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." - } - } - ] - }, - { - "name" : "act_4", - "id" : 41, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_5", - "id" : 42, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "= hdr.vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_6", - "id" : 43, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "= hdr.ethernet.eth_type; ..." - } - } - ] - }, - { - "name" : "act_7", - "id" : 44, + "id" : 39, "runtime_data" : [], "primitives" : [ { @@ -2894,8 +2780,8 @@ ] }, { - "name" : "act_8", - "id" : 45, + "name" : "act_4", + "id" : 40, "runtime_data" : [], "primitives" : [ { @@ -2903,7 +2789,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] }, { "type" : "expression", @@ -2939,7 +2825,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] } ], "source_info" : { @@ -2952,8 +2838,8 @@ ] }, { - "name" : "act_9", - "id" : 46, + "name" : "act_5", + "id" : 41, "runtime_data" : [], "primitives" : [ { @@ -2961,44 +2847,29 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "bng_ingress_s_tag"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "vlan_id"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 339, - "column" : 16, - "source_fragment" : "s_tag = hdr.vlan_tag.vlan_id" - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_c_tag"] + "value" : ["scalars", "bng_ingress_upstream_tmp"] }, { - "type" : "field", - "value" : ["inner_vlan_tag", "vlan_id"] + "type" : "expression", + "value" : { + "type" : "expression", + "value" : { + "op" : "b2d", + "left" : null, + "right" : { + "type" : "bool", + "value" : true + } + } + } } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 340, - "column" : 16, - "source_fragment" : "c_tag = hdr.inner_vlan_tag.vlan_id" - } + ] } ] }, { - "name" : "act_10", - "id" : 47, + "name" : "act_6", + "id" : 42, "runtime_data" : [], "primitives" : [ { @@ -3006,82 +2877,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "bng_ingress_s_tag"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 344, - "column" : 16, - "source_fragment" : "s_tag = fmeta.vlan_id; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_c_tag"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 345, - "column" : 16, - "source_fragment" : "c_tag = fmeta.inner_vlan_id; ..." - } - } - ] - }, - { - "name" : "act_11", - "id" : 48, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_upstream_tmp"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ] - } - ] - }, - { - "name" : "act_12", - "id" : 49, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_upstream_tmp"] + "value" : ["scalars", "bng_ingress_upstream_tmp"] }, { "type" : "expression", @@ -3102,8 +2898,8 @@ ] }, { - "name" : "act_13", - "id" : 50, + "name" : "act_7", + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -3111,7 +2907,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type23"] + "value" : ["scalars", "fabric_metadata_t._bng_type19"] }, { "type" : "hexstr", @@ -3120,7 +2916,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 156, + "line" : 161, "column" : 37, "source_fragment" : "2w0x1; ..." } @@ -3151,8 +2947,8 @@ ] }, { - "name" : "act_14", - "id" : 51, + "name" : "act_8", + "id" : 44, "runtime_data" : [], "primitives" : [ { @@ -3179,7 +2975,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 124, + "line" : 123, "column" : 12, "source_fragment" : "return" } @@ -3187,8 +2983,8 @@ ] }, { - "name" : "act_15", - "id" : 52, + "name" : "act_9", + "id" : 45, "runtime_data" : [], "primitives" : [ { @@ -3200,12 +2996,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 129, + "line" : 128, "column" : 20, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" } @@ -3213,8 +3009,8 @@ ] }, { - "name" : "act_16", - "id" : 53, + "name" : "act_10", + "id" : 46, "runtime_data" : [], "primitives" : [ { @@ -3243,8 +3039,8 @@ ] }, { - "name" : "act_17", - "id" : 54, + "name" : "act_11", + "id" : 47, "runtime_data" : [], "primitives" : [ { @@ -3273,8 +3069,8 @@ ] }, { - "name" : "act_18", - "id" : 55, + "name" : "act_12", + "id" : 48, "runtime_data" : [], "primitives" : [ { @@ -3286,16 +3082,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result26"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 236, + "line" : 235, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -3303,8 +3099,8 @@ ] }, { - "name" : "act_19", - "id" : 56, + "name" : "act_13", + "id" : 49, "runtime_data" : [], "primitives" : [ { @@ -3316,16 +3112,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result26"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 239, + "line" : 238, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -3334,13 +3130,13 @@ }, { "name" : "nop", - "id" : 57, + "id" : 50, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.bng_egress.downstream.encap_v4", - "id" : 58, + "id" : 51, "runtime_data" : [], "primitives" : [ { @@ -3348,7 +3144,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -3357,7 +3153,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 114, + "line" : 118, "column" : 33, "source_fragment" : "0x8864; ..." } @@ -3372,7 +3168,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 271, + "line" : 270, "column" : 8, "source_fragment" : "hdr.pppoe.setValid()" } @@ -3391,7 +3187,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 272, + "line" : 271, "column" : 8, "source_fragment" : "hdr.pppoe.version = 4w1" } @@ -3410,7 +3206,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 273, + "line" : 272, "column" : 8, "source_fragment" : "hdr.pppoe.type_id = 4w1" } @@ -3429,7 +3225,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 274, + "line" : 273, "column" : 8, "source_fragment" : "hdr.pppoe.code = 8w0" } @@ -3443,12 +3239,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id25"] + "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 275, + "line" : 274, "column" : 8, "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..." } @@ -3462,12 +3258,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id24"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id20"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 276, + "line" : 275, "column" : 8, "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)" } @@ -3509,7 +3305,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 281, + "line" : 280, "column" : 8, "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2" } @@ -3528,7 +3324,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 116, + "line" : 120, "column" : 35, "source_fragment" : "0x0021; ..." } @@ -3537,7 +3333,7 @@ }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 59, + "id" : 52, "runtime_data" : [], "primitives" : [ { @@ -3550,7 +3346,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -3560,25 +3356,25 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, - "column" : 38, - "source_fragment" : "= fabric_metadata.ip_eth_type; ..." + "line" : 272, + "column" : 8, + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..." } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 60, + "id" : 53, "runtime_data" : [], "primitives" : [ { @@ -3591,7 +3387,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -3605,12 +3401,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..." } @@ -3629,7 +3425,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -3648,7 +3444,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -3662,12 +3458,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..." } @@ -3677,7 +3473,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -3686,7 +3482,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -3695,7 +3491,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 61, + "id" : 54, "runtime_data" : [], "primitives" : [ { @@ -3708,7 +3504,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -3722,12 +3518,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -3741,12 +3537,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -3759,15 +3555,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -3779,40 +3575,21 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 62, + "id" : 55, "runtime_data" : [], "primitives" : [ { @@ -3825,7 +3602,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -3839,12 +3616,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -3858,12 +3635,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -3876,15 +3653,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -3896,40 +3673,21 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.push_inner_vlan", - "id" : 63, + "id" : 56, "runtime_data" : [], "primitives" : [ { @@ -3942,7 +3700,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 296, + "line" : 300, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.setValid()" } @@ -3956,12 +3714,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 297, + "line" : 301, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..." } @@ -3975,12 +3733,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 298, + "line" : 302, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..." } @@ -3994,12 +3752,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 299, + "line" : 303, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..." } @@ -4011,25 +3769,6 @@ "type" : "field", "value" : ["inner_vlan_tag", "eth_type"] }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 300, - "column" : 8, - "source_fragment" : "hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - }, { "type" : "hexstr", "value" : "0x8100" @@ -4037,7 +3776,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 107, + "line" : 111, "column" : 31, "source_fragment" : "0x8100; ..." } @@ -4047,46 +3786,27 @@ "parameters" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["vlan_tag", "eth_type"] }, { "type" : "hexstr", - "value" : "0x88a8" + "value" : "0x8100" } ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 105, + "line" : 111, "column" : 31, - "source_fragment" : "0x88A8; ..." + "source_fragment" : "0x8100; ..." } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 64, + "id" : 57, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..." - } - }, { "op" : "remove_header", "parameters" : [ @@ -4097,7 +3817,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -4105,8 +3825,8 @@ ] }, { - "name" : "act_20", - "id" : 65, + "name" : "act_14", + "id" : 58, "runtime_data" : [], "primitives" : [ { @@ -4122,8 +3842,8 @@ ] }, { - "name" : "act_21", - "id" : 66, + "name" : "act_15", + "id" : 59, "runtime_data" : [], "primitives" : [ { @@ -4173,8 +3893,8 @@ ] }, { - "name" : "act_22", - "id" : 67, + "name" : "act_16", + "id" : 60, "runtime_data" : [], "primitives" : [ { @@ -4187,7 +3907,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4195,8 +3915,8 @@ ] }, { - "name" : "act_23", - "id" : 68, + "name" : "act_17", + "id" : 61, "runtime_data" : [], "primitives" : [ { @@ -4225,8 +3945,8 @@ ] }, { - "name" : "act_24", - "id" : 69, + "name" : "act_18", + "id" : 62, "runtime_data" : [], "primitives" : [ { @@ -4255,8 +3975,8 @@ ] }, { - "name" : "act_25", - "id" : 70, + "name" : "act_19", + "id" : 63, "runtime_data" : [], "primitives" : [ { @@ -4269,7 +3989,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 351, + "line" : 353, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.setInvalid()" } @@ -4277,8 +3997,8 @@ ] }, { - "name" : "act_26", - "id" : 71, + "name" : "act_20", + "id" : 64, "runtime_data" : [], "primitives" : [ { @@ -4291,7 +4011,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4299,8 +4019,8 @@ ] }, { - "name" : "act_27", - "id" : 72, + "name" : "act_21", + "id" : 65, "runtime_data" : [], "primitives" : [ { @@ -4340,7 +4060,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -4348,8 +4068,8 @@ ] }, { - "name" : "act_28", - "id" : 73, + "name" : "act_22", + "id" : 66, "runtime_data" : [], "primitives" : [ { @@ -4362,7 +4082,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4370,8 +4090,8 @@ ] }, { - "name" : "act_29", - "id" : 74, + "name" : "act_23", + "id" : 67, "runtime_data" : [], "primitives" : [ { @@ -4411,7 +4131,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -4447,14 +4167,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [36], + "action_ids" : [35], "actions" : ["act"], "base_default_next" : "node_4", "next_tables" : { "act" : "node_4" }, "default_entry" : { - "action_id" : 36, + "action_id" : 35, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4465,7 +4185,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -4476,14 +4196,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [37], + "action_ids" : [36], "actions" : ["act_0"], "base_default_next" : "node_6", "next_tables" : { "act_0" : "node_6" }, "default_entry" : { - "action_id" : 37, + "action_id" : 36, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4494,7 +4214,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 116, + "line" : 117, "column" : 42, "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..." }, @@ -4505,14 +4225,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [38], + "action_ids" : [37], "actions" : ["act_1"], "base_default_next" : "node_8", "next_tables" : { "act_1" : "node_8" }, "default_entry" : { - "action_id" : 38, + "action_id" : 37, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4523,7 +4243,7 @@ "id" : 3, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -4534,130 +4254,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [39], + "action_ids" : [38], "actions" : ["act_2"], - "base_default_next" : "node_10", - "next_tables" : { - "act_2" : "node_10" - }, - "default_entry" : { - "action_id" : 39, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_3", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [40], - "actions" : ["act_3"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_3" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 40, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_4", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [41], - "actions" : ["act_4"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_4" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 41, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_5", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [42], - "actions" : ["act_5"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_5" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 42, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_6", - "id" : 7, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [43], - "actions" : ["act_6"], "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_6" : "FabricIngress.filtering.ingress_port_vlan" + "act_2" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { - "action_id" : 43, + "action_id" : 38, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4665,7 +4269,7 @@ }, { "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 8, + "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", "line" : 53, @@ -4704,7 +4308,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [17, 18, 19], + "action_ids" : [16, 17, 18], "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"], "base_default_next" : "FabricIngress.filtering.fwd_classifier", "next_tables" : { @@ -4713,7 +4317,7 @@ "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier" }, "default_entry" : { - "action_id" : 17, + "action_id" : 16, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4721,10 +4325,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 9, + "id" : 5, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -4742,21 +4346,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t._is_ipv41"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t._is_ipv62"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t._is_mpls3"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"], "mask" : null } ], @@ -4766,14 +4364,14 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [20], + "action_ids" : [19], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "node_19", + "base_default_next" : "node_12", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "node_19" + "FabricIngress.filtering.set_forwarding_type" : "node_12" }, "default_entry" : { - "action_id" : 20, + "action_id" : 19, "action_const" : true, "action_data" : ["0x0"], "action_entry_const" : true @@ -4781,7 +4379,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 10, + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -4792,7 +4390,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -4808,7 +4406,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [21, 3], + "action_ids" : [20, 2], "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -4816,7 +4414,7 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 3, + "action_id" : 2, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4824,7 +4422,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 11, + "id" : 7, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -4835,7 +4433,7 @@ { "match_type" : "exact", "name" : "mpls_label", - "target" : ["scalars", "fabric_metadata_t._mpls_label12"], + "target" : ["scalars", "fabric_metadata_t._mpls_label8"], "mask" : null } ], @@ -4845,7 +4443,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [22, 4], + "action_ids" : [21, 3], "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -4853,7 +4451,7 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 4, + "action_id" : 3, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4861,10 +4459,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 12, + "id" : 8, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -4879,10 +4477,10 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [23, 24, 5], + "action_ids" : [22, 23, 4], "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -4891,15 +4489,15 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 5, - "action_const" : true, + "action_id" : 4, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.acl.acl", - "id" : 13, + "id" : 9, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -4916,19 +4514,19 @@ { "match_type" : "ternary", "name" : "ip_proto", - "target" : ["scalars", "fabric_metadata_t._ip_proto20"], + "target" : ["scalars", "fabric_metadata_t._ip_proto16"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport21"], + "target" : ["scalars", "fabric_metadata_t._l4_sport17"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport22"], + "target" : ["scalars", "fabric_metadata_t._l4_dport18"], "mask" : null }, { @@ -4952,7 +4550,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t._last_eth_type0"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -4986,18 +4584,18 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [25, 26, 27, 28, 29], + "action_ids" : [24, 25, 26, 27, 28], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_27", + "base_default_next" : "node_20", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_27", - "FabricIngress.acl.punt_to_cpu" : "node_27", - "FabricIngress.acl.set_clone_session_id" : "node_27", - "FabricIngress.acl.drop" : "node_27", - "FabricIngress.acl.nop_acl" : "node_27" + "FabricIngress.acl.set_next_id_acl" : "node_20", + "FabricIngress.acl.punt_to_cpu" : "node_20", + "FabricIngress.acl.set_clone_session_id" : "node_20", + "FabricIngress.acl.drop" : "node_20", + "FabricIngress.acl.nop_acl" : "node_20" }, "default_entry" : { - "action_id" : 29, + "action_id" : 28, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5005,10 +4603,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 14, + "id" : 10, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -5016,7 +4614,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -5027,7 +4625,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [32, 33, 34, 7], + "action_ids" : [31, 32, 33, 6], "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"], "base_default_next" : "FabricIngress.next.multicast", "next_tables" : { @@ -5039,10 +4637,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 15, + "id" : 11, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -5050,7 +4648,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -5060,7 +4658,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [35, 8], + "action_ids" : [34, 7], "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"], "base_default_next" : "FabricIngress.next.next_vlan", "next_tables" : { @@ -5068,7 +4666,7 @@ "nop" : "FabricIngress.next.next_vlan" }, "default_entry" : { - "action_id" : 8, + "action_id" : 7, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5076,10 +4674,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 16, + "id" : 12, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -5087,7 +4685,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -5097,24 +4695,24 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [30, 31, 6], + "action_ids" : [29, 30, 5], "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"], - "base_default_next" : "node_31", + "base_default_next" : "node_24", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_31", - "FabricIngress.next.set_double_vlan" : "node_31", - "nop" : "node_31" + "FabricIngress.next.set_vlan" : "node_24", + "FabricIngress.next.set_double_vlan" : "node_24", + "nop" : "node_24" }, "default_entry" : { - "action_id" : 6, + "action_id" : 5, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_7", - "id" : 17, + "name" : "tbl_act_3", + "id" : 13, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -5128,22 +4726,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [44], - "actions" : ["act_7"], - "base_default_next" : "node_33", + "action_ids" : [39], + "actions" : ["act_3"], + "base_default_next" : "node_26", "next_tables" : { - "act_7" : "node_33" + "act_3" : "node_26" }, "default_entry" : { - "action_id" : 44, + "action_id" : 39, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_8", - "id" : 18, + "name" : "tbl_act_4", + "id" : 14, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -5157,72 +4755,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [45], - "actions" : ["act_8"], - "base_default_next" : "node_35", - "next_tables" : { - "act_8" : "node_35" - }, - "default_entry" : { - "action_id" : 45, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_9", - "id" : 19, - "source_info" : { - "filename" : "include/bng.p4", - "line" : 339, - "column" : 22, - "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [46], - "actions" : ["act_9"], - "base_default_next" : "FabricIngress.bng_ingress.t_line_map", - "next_tables" : { - "act_9" : "FabricIngress.bng_ingress.t_line_map" - }, - "default_entry" : { - "action_id" : 46, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_10", - "id" : 20, - "source_info" : { - "filename" : "include/bng.p4", - "line" : 344, - "column" : 22, - "source_fragment" : "= fmeta.vlan_id; ..." - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [47], - "actions" : ["act_10"], + "action_ids" : [40], + "actions" : ["act_4"], "base_default_next" : "FabricIngress.bng_ingress.t_line_map", "next_tables" : { - "act_10" : "FabricIngress.bng_ingress.t_line_map" + "act_4" : "FabricIngress.bng_ingress.t_line_map" }, "default_entry" : { - "action_id" : 47, + "action_id" : 40, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5230,10 +4770,10 @@ }, { "name" : "FabricIngress.bng_ingress.t_line_map", - "id" : 21, + "id" : 15, "source_info" : { "filename" : "include/bng.p4", - "line" : 324, + "line" : 320, "column" : 14, "source_fragment" : "t_line_map" }, @@ -5241,13 +4781,13 @@ { "match_type" : "exact", "name" : "s_tag", - "target" : ["scalars", "bng_ingress_s_tag"], + "target" : ["scalars", "fabric_metadata_t._bng_s_tag23"], "mask" : null }, { "match_type" : "exact", "name" : "c_tag", - "target" : ["scalars", "bng_ingress_c_tag"], + "target" : ["scalars", "fabric_metadata_t._bng_c_tag24"], "mask" : null } ], @@ -5257,26 +4797,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [2, 16], - "actions" : ["nop", "FabricIngress.bng_ingress.set_line"], - "base_default_next" : "node_39", + "action_ids" : [15], + "actions" : ["FabricIngress.bng_ingress.set_line"], + "base_default_next" : "node_29", "next_tables" : { - "nop" : "node_39", - "FabricIngress.bng_ingress.set_line" : "node_39" + "FabricIngress.bng_ingress.set_line" : "node_29" }, "default_entry" : { - "action_id" : 2, + "action_id" : 15, "action_const" : true, - "action_data" : [], + "action_data" : ["0x0"], "action_entry_const" : true } }, { - "name" : "tbl_act_11", - "id" : 22, + "name" : "tbl_act_5", + "id" : 16, "source_info" : { "filename" : "include/bng.p4", - "line" : 353, + "line" : 339, "column" : 31, "source_fragment" : "=" }, @@ -5287,14 +4826,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [50], - "actions" : ["act_13"], + "action_ids" : [43], + "actions" : ["act_7"], "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp", "next_tables" : { - "act_13" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp" + "act_7" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp" }, "default_entry" : { - "action_id" : 50, + "action_id" : 43, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5302,7 +4841,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp", - "id" : 23, + "id" : 17, "source_info" : { "filename" : "include/bng.p4", "line" : 48, @@ -5329,12 +4868,12 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [9, 0], + "action_ids" : [8, 0], "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_12", - "__MISS__" : "tbl_act_13" + "__HIT__" : "tbl_act_6", + "__MISS__" : "tbl_act_7" }, "default_entry" : { "action_id" : 0, @@ -5344,8 +4883,8 @@ } }, { - "name" : "tbl_act_12", - "id" : 24, + "name" : "tbl_act_6", + "id" : 18, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5353,22 +4892,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [48], - "actions" : ["act_11"], - "base_default_next" : "node_44", + "action_ids" : [41], + "actions" : ["act_5"], + "base_default_next" : "node_34", "next_tables" : { - "act_11" : "node_44" + "act_5" : "node_34" }, "default_entry" : { - "action_id" : 48, + "action_id" : 41, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_13", - "id" : 25, + "name" : "tbl_act_7", + "id" : 19, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5376,25 +4915,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [49], - "actions" : ["act_12"], - "base_default_next" : "node_44", + "action_ids" : [42], + "actions" : ["act_6"], + "base_default_next" : "node_34", "next_tables" : { - "act_12" : "node_44" + "act_6" : "node_34" }, "default_entry" : { - "action_id" : 49, + "action_id" : 42, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 26, + "name" : "tbl_act_8", + "id" : 20, "source_info" : { "filename" : "include/bng.p4", - "line" : 124, + "line" : 123, "column" : 12, "source_fragment" : "return" }, @@ -5405,14 +4944,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [51], - "actions" : ["act_14"], - "base_default_next" : "node_46", + "action_ids" : [44], + "actions" : ["act_8"], + "base_default_next" : "node_36", "next_tables" : { - "act_14" : "node_46" + "act_8" : "node_36" }, "default_entry" : { - "action_id" : 51, + "action_id" : 44, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5420,10 +4959,10 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4", - "id" : 27, + "id" : 21, "source_info" : { "filename" : "include/bng.p4", - "line" : 85, + "line" : 84, "column" : 10, "source_fragment" : "t_pppoe_term_v4" }, @@ -5431,7 +4970,7 @@ { "match_type" : "exact", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id24"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id20"], "mask" : null }, { @@ -5453,26 +4992,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [11, 10], + "action_ids" : [10, 9], "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_15", + "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_9", "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null }, "default_entry" : { - "action_id" : 10, + "action_id" : 9, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 28, + "name" : "tbl_act_9", + "id" : 22, "source_info" : { "filename" : "include/bng.p4", - "line" : 129, + "line" : 128, "column" : 20, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" }, @@ -5483,14 +5022,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [52], - "actions" : ["act_15"], + "action_ids" : [45], + "actions" : ["act_9"], "base_default_next" : null, "next_tables" : { - "act_15" : null + "act_9" : null }, "default_entry" : { - "action_id" : 52, + "action_id" : 45, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5498,10 +5037,10 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map", - "id" : 29, + "id" : 23, "source_info" : { "filename" : "include/bng.p4", - "line" : 167, + "line" : 166, "column" : 10, "source_fragment" : "t_line_session_map" }, @@ -5509,7 +5048,7 @@ { "match_type" : "exact", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id24"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id20"], "mask" : null } ], @@ -5519,12 +5058,12 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [1, 12, 13], + "action_ids" : [1, 11, 12], "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_16", - "__MISS__" : "tbl_act_17" + "__HIT__" : "tbl_act_10", + "__MISS__" : "tbl_act_11" }, "default_entry" : { "action_id" : 1, @@ -5534,8 +5073,8 @@ } }, { - "name" : "tbl_act_16", - "id" : 30, + "name" : "tbl_act_10", + "id" : 24, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5543,22 +5082,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [53], - "actions" : ["act_16"], - "base_default_next" : "node_53", + "action_ids" : [46], + "actions" : ["act_10"], + "base_default_next" : "node_43", "next_tables" : { - "act_16" : "node_53" + "act_10" : "node_43" }, "default_entry" : { - "action_id" : 53, + "action_id" : 46, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_17", - "id" : 31, + "name" : "tbl_act_11", + "id" : 25, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5566,14 +5105,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [54], - "actions" : ["act_17"], - "base_default_next" : "node_53", + "action_ids" : [47], + "actions" : ["act_11"], + "base_default_next" : "node_43", "next_tables" : { - "act_17" : "node_53" + "act_11" : "node_43" }, "default_entry" : { - "action_id" : 54, + "action_id" : 47, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5581,10 +5120,10 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4", - "id" : 32, + "id" : 26, "source_info" : { "filename" : "include/bng.p4", - "line" : 192, + "line" : 191, "column" : 10, "source_fragment" : "t_qos_v4" }, @@ -5592,7 +5131,7 @@ { "match_type" : "ternary", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id24"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id20"], "mask" : null }, { @@ -5620,26 +5159,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [14, 15], + "action_ids" : [13, 14], "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_18", - "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_19" + "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_12", + "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_13" }, "default_entry" : { - "action_id" : 15, + "action_id" : 14, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_18", - "id" : 33, + "name" : "tbl_act_12", + "id" : 27, "source_info" : { "filename" : "include/bng.p4", - "line" : 236, + "line" : 235, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -5650,25 +5189,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [55], - "actions" : ["act_18"], + "action_ids" : [48], + "actions" : ["act_12"], "base_default_next" : null, "next_tables" : { - "act_18" : null + "act_12" : null }, "default_entry" : { - "action_id" : 55, + "action_id" : 48, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_19", - "id" : 34, + "name" : "tbl_act_13", + "id" : 28, "source_info" : { "filename" : "include/bng.p4", - "line" : 239, + "line" : 238, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -5679,14 +5218,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [56], - "actions" : ["act_19"], + "action_ids" : [49], + "actions" : ["act_13"], "base_default_next" : null, "next_tables" : { - "act_19" : null + "act_13" : null }, "default_entry" : { - "action_id" : 56, + "action_id" : 49, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5699,7 +5238,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -5717,15 +5256,15 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto20"] + "value" : ["scalars", "fabric_metadata_t._ip_proto16"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] } ] } @@ -5760,7 +5299,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -5783,7 +5322,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 115, + "line" : 116, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.isValid()" }, @@ -5806,7 +5345,7 @@ "id" : 3, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -5816,93 +5355,24 @@ "op" : "not", "left" : null, "right" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - } - } - }, - "true_next" : "tbl_act_2", - "false_next" : "node_10" - }, - { - "name" : "node_10", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_3", - "false_next" : "node_12" - }, - { - "name" : "node_12", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_13", - "false_next" : "tbl_act_6" - }, - { - "name" : "node_13", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] + "type" : "expression", + "value" : { + "op" : "d2b", + "left" : null, + "right" : { + "type" : "field", + "value" : ["mpls", "$valid$"] + } + } } } }, - "true_next" : "tbl_act_4", - "false_next" : "tbl_act_5" + "true_next" : "tbl_act_2", + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { - "name" : "node_19", - "id" : 7, + "name" : "node_12", + "id" : 4, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -5920,7 +5390,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] } } }, @@ -5930,15 +5400,15 @@ } } }, - "true_next" : "node_20", + "true_next" : "node_13", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_20", - "id" : 8, + "name" : "node_13", + "id" : 5, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -5948,7 +5418,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -5957,14 +5427,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_22" + "false_next" : "node_15" }, { - "name" : "node_22", - "id" : 9, + "name" : "node_15", + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -5974,7 +5444,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -5983,14 +5453,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_24" + "false_next" : "node_17" }, { - "name" : "node_24", - "id" : 10, + "name" : "node_17", + "id" : 7, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -6000,7 +5470,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -6012,8 +5482,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_27", - "id" : 11, + "name" : "node_20", + "id" : 8, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -6031,7 +5501,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] } } }, @@ -6042,11 +5512,11 @@ } }, "true_next" : "FabricIngress.next.hashed", - "false_next" : "node_35" + "false_next" : "FabricIngress.bng_ingress.t_line_map" }, { - "name" : "node_31", - "id" : 12, + "name" : "node_24", + "id" : 9, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -6067,12 +5537,12 @@ } } }, - "true_next" : "tbl_act_7", - "false_next" : "node_33" + "true_next" : "tbl_act_3", + "false_next" : "node_26" }, { - "name" : "node_33", - "id" : 13, + "name" : "node_26", + "id" : 10, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -6093,38 +5563,15 @@ } } }, - "true_next" : "tbl_act_8", - "false_next" : "node_35" + "true_next" : "tbl_act_4", + "false_next" : "FabricIngress.bng_ingress.t_line_map" }, { - "name" : "node_35", - "id" : 14, + "name" : "node_29", + "id" : 11, "source_info" : { "filename" : "include/bng.p4", "line" : 338, - "column" : 15, - "source_fragment" : "hdr.pppoe.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["pppoe", "$valid$"] - } - } - }, - "true_next" : "tbl_act_9", - "false_next" : "tbl_act_10" - }, - { - "name" : "node_39", - "id" : 15, - "source_info" : { - "filename" : "include/bng.p4", - "line" : 352, "column" : 16, "source_fragment" : "hdr.pppoe.isValid()" }, @@ -6139,12 +5586,12 @@ } } }, - "true_next" : "tbl_act_11", + "true_next" : "tbl_act_5", "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map" }, { - "name" : "node_44", - "id" : 16, + "name" : "node_34", + "id" : 12, "expression" : { "type" : "expression", "value" : { @@ -6156,12 +5603,12 @@ } } }, - "true_next" : "tbl_act_14", - "false_next" : "node_46" + "true_next" : "tbl_act_8", + "false_next" : "node_36" }, { - "name" : "node_46", - "id" : 17, + "name" : "node_36", + "id" : 13, "expression" : { "type" : "expression", "value" : { @@ -6181,14 +5628,14 @@ } }, "false_next" : null, - "true_next" : "node_47" + "true_next" : "node_37" }, { - "name" : "node_47", - "id" : 18, + "name" : "node_37", + "id" : 14, "source_info" : { "filename" : "include/bng.p4", - "line" : 126, + "line" : 125, "column" : 12, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -6207,8 +5654,8 @@ "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4" }, { - "name" : "node_53", - "id" : 19, + "name" : "node_43", + "id" : 15, "expression" : { "type" : "expression", "value" : { @@ -6221,14 +5668,14 @@ } }, "false_next" : null, - "true_next" : "node_54" + "true_next" : "node_44" }, { - "name" : "node_54", - "id" : 20, + "name" : "node_44", + "id" : 16, "source_info" : { "filename" : "include/bng.p4", - "line" : 233, + "line" : 232, "column" : 16, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -6257,11 +5704,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_60", + "init_table" : "node_50", "tables" : [ { - "name" : "tbl_act_20", - "id" : 35, + "name" : "tbl_act_14", + "id" : 29, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -6275,22 +5722,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [65], - "actions" : ["act_20"], - "base_default_next" : "node_62", + "action_ids" : [58], + "actions" : ["act_14"], + "base_default_next" : "node_52", "next_tables" : { - "act_20" : "node_62" + "act_14" : "node_52" }, "default_entry" : { - "action_id" : 65, + "action_id" : 58, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_21", - "id" : 36, + "name" : "tbl_act_15", + "id" : 30, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -6304,25 +5751,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [66], - "actions" : ["act_21"], - "base_default_next" : "node_64", + "action_ids" : [59], + "actions" : ["act_15"], + "base_default_next" : "node_54", "next_tables" : { - "act_21" : "node_64" + "act_15" : "node_54" }, "default_entry" : { - "action_id" : 66, + "action_id" : 59, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_22", - "id" : 37, + "name" : "tbl_act_16", + "id" : 31, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6333,14 +5780,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [67], - "actions" : ["act_22"], - "base_default_next" : "node_66", + "action_ids" : [60], + "actions" : ["act_16"], + "base_default_next" : "node_56", "next_tables" : { - "act_22" : "node_66" + "act_16" : "node_56" }, "default_entry" : { - "action_id" : 67, + "action_id" : 60, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6348,10 +5795,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 38, + "id" : 32, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -6362,14 +5809,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [59], + "action_ids" : [52], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], - "base_default_next" : "node_70", + "base_default_next" : "node_60", "next_tables" : { - "FabricEgress.egress_next.pop_mpls_if_present" : "node_70" + "FabricEgress.egress_next.pop_mpls_if_present" : "node_60" }, "default_entry" : { - "action_id" : 59, + "action_id" : 52, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6377,10 +5824,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 39, + "id" : 33, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -6391,14 +5838,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [60], + "action_ids" : [53], "actions" : ["FabricEgress.egress_next.set_mpls"], - "base_default_next" : "node_70", + "base_default_next" : "node_60", "next_tables" : { - "FabricEgress.egress_next.set_mpls" : "node_70" + "FabricEgress.egress_next.set_mpls" : "node_60" }, "default_entry" : { - "action_id" : 60, + "action_id" : 53, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6406,10 +5853,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 40, + "id" : 34, "source_info" : { "filename" : "include/control/next.p4", - "line" : 347, + "line" : 349, "column" : 12, "source_fragment" : "push_vlan()" }, @@ -6420,14 +5867,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [61], + "action_ids" : [54], "actions" : ["FabricEgress.egress_next.push_vlan"], "base_default_next" : "tbl_egress_next_push_inner_vlan", "next_tables" : { "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan" }, "default_entry" : { - "action_id" : 61, + "action_id" : 54, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6435,10 +5882,10 @@ }, { "name" : "tbl_egress_next_push_inner_vlan", - "id" : 41, + "id" : 35, "source_info" : { "filename" : "include/control/next.p4", - "line" : 348, + "line" : 350, "column" : 12, "source_fragment" : "push_inner_vlan()" }, @@ -6449,25 +5896,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [63], + "action_ids" : [56], "actions" : ["FabricEgress.egress_next.push_inner_vlan"], - "base_default_next" : "node_80", + "base_default_next" : "node_70", "next_tables" : { - "FabricEgress.egress_next.push_inner_vlan" : "node_80" + "FabricEgress.egress_next.push_inner_vlan" : "node_70" }, "default_entry" : { - "action_id" : 63, + "action_id" : 56, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_23", - "id" : 42, + "name" : "tbl_act_17", + "id" : 36, "source_info" : { "filename" : "include/control/next.p4", - "line" : 351, + "line" : 353, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.setInvalid()" }, @@ -6478,14 +5925,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [70], - "actions" : ["act_25"], + "action_ids" : [63], + "actions" : ["act_19"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { - "act_25" : "FabricEgress.egress_next.egress_vlan" + "act_19" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 70, + "action_id" : 63, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6493,10 +5940,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 43, + "id" : 37, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -6504,7 +5951,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -6520,23 +5967,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [64, 57], + "action_ids" : [57, 50], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_24", - "__MISS__" : "tbl_act_25" + "__HIT__" : "tbl_act_18", + "__MISS__" : "tbl_act_19" }, "default_entry" : { - "action_id" : 57, + "action_id" : 50, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_24", - "id" : 44, + "name" : "tbl_act_18", + "id" : 38, "key" : [], "match_type" : "exact", "type" : "simple", @@ -6544,22 +5991,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [68], - "actions" : ["act_23"], - "base_default_next" : "node_77", + "action_ids" : [61], + "actions" : ["act_17"], + "base_default_next" : "node_67", "next_tables" : { - "act_23" : "node_77" + "act_17" : "node_67" }, "default_entry" : { - "action_id" : 68, + "action_id" : 61, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_25", - "id" : 45, + "name" : "tbl_act_19", + "id" : 39, "key" : [], "match_type" : "exact", "type" : "simple", @@ -6567,14 +6014,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [69], - "actions" : ["act_24"], - "base_default_next" : "node_77", + "action_ids" : [62], + "actions" : ["act_18"], + "base_default_next" : "node_67", "next_tables" : { - "act_24" : "node_77" + "act_18" : "node_67" }, "default_entry" : { - "action_id" : 69, + "action_id" : 62, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6582,10 +6029,10 @@ }, { "name" : "tbl_egress_next_push_vlan_0", - "id" : 46, + "id" : 40, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -6596,25 +6043,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [62], + "action_ids" : [55], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_80", + "base_default_next" : "node_70", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_80" + "FabricEgress.egress_next.push_vlan" : "node_70" }, "default_entry" : { - "action_id" : 62, + "action_id" : 55, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_26", - "id" : 47, + "name" : "tbl_act_20", + "id" : 41, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -6625,25 +6072,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [72], - "actions" : ["act_27"], - "base_default_next" : "node_82", + "action_ids" : [65], + "actions" : ["act_21"], + "base_default_next" : "node_72", "next_tables" : { - "act_27" : "node_82" + "act_21" : "node_72" }, "default_entry" : { - "action_id" : 72, + "action_id" : 65, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_27", - "id" : 48, + "name" : "tbl_act_21", + "id" : 42, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6654,25 +6101,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [71], - "actions" : ["act_26"], - "base_default_next" : "node_88", + "action_ids" : [64], + "actions" : ["act_20"], + "base_default_next" : "node_78", "next_tables" : { - "act_26" : "node_88" + "act_20" : "node_78" }, "default_entry" : { - "action_id" : 71, + "action_id" : 64, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_28", - "id" : 49, + "name" : "tbl_act_22", + "id" : 43, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -6683,25 +6130,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [74], - "actions" : ["act_29"], - "base_default_next" : "node_86", + "action_ids" : [67], + "actions" : ["act_23"], + "base_default_next" : "node_76", "next_tables" : { - "act_29" : "node_86" + "act_23" : "node_76" }, "default_entry" : { - "action_id" : 74, + "action_id" : 67, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_29", - "id" : 50, + "name" : "tbl_act_23", + "id" : 44, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6712,14 +6159,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [73], - "actions" : ["act_28"], - "base_default_next" : "node_88", + "action_ids" : [66], + "actions" : ["act_22"], + "base_default_next" : "node_78", "next_tables" : { - "act_28" : "node_88" + "act_22" : "node_78" }, "default_entry" : { - "action_id" : 73, + "action_id" : 66, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6727,10 +6174,10 @@ }, { "name" : "tbl_bng_egress_downstream_encap_v4", - "id" : 51, + "id" : 45, "source_info" : { "filename" : "include/bng.p4", - "line" : 295, + "line" : 294, "column" : 12, "source_fragment" : "encap_v4()" }, @@ -6741,14 +6188,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [58], + "action_ids" : [51], "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"], "base_default_next" : null, "next_tables" : { "FabricEgress.bng_egress.downstream.encap_v4" : null }, "default_entry" : { - "action_id" : 58, + "action_id" : 51, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6758,8 +6205,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_60", - "id" : 21, + "name" : "node_50", + "id" : 17, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -6777,7 +6224,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] } } }, @@ -6787,12 +6234,12 @@ } } }, - "true_next" : "tbl_act_20", - "false_next" : "node_62" + "true_next" : "tbl_act_14", + "false_next" : "node_52" }, { - "name" : "node_62", - "id" : 22, + "name" : "node_52", + "id" : 18, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -6813,15 +6260,15 @@ } } }, - "true_next" : "tbl_act_21", - "false_next" : "node_64" + "true_next" : "tbl_act_15", + "false_next" : "node_54" }, { - "name" : "node_64", - "id" : 23, + "name" : "node_54", + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -6840,7 +6287,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast18"] + "value" : ["scalars", "fabric_metadata_t._is_multicast14"] } } }, @@ -6866,15 +6313,15 @@ } } }, - "true_next" : "tbl_act_22", - "false_next" : "node_66" + "true_next" : "tbl_act_16", + "false_next" : "node_56" }, { - "name" : "node_66", - "id" : 24, + "name" : "node_56", + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -6884,7 +6331,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, "right" : { "type" : "hexstr", @@ -6892,15 +6339,15 @@ } } }, - "true_next" : "node_67", + "true_next" : "node_57", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_67", - "id" : 25, + "name" : "node_57", + "id" : 21, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -6916,14 +6363,14 @@ } }, "true_next" : "tbl_egress_next_pop_mpls_if_present", - "false_next" : "node_70" + "false_next" : "node_60" }, { - "name" : "node_70", - "id" : 26, + "name" : "node_60", + "id" : 22, "source_info" : { "filename" : "include/control/next.p4", - "line" : 345, + "line" : 347, "column" : 12, "source_fragment" : "fabric_metadata.push_double_vlan == true" }, @@ -6938,7 +6385,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"] + "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"] } } }, @@ -6949,14 +6396,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "tbl_act_23" + "false_next" : "tbl_act_17" }, { - "name" : "node_77", - "id" : 27, + "name" : "node_67", + "id" : 23, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -6978,15 +6425,15 @@ } } }, - "true_next" : "node_78", - "false_next" : "node_80" + "true_next" : "node_68", + "false_next" : "node_70" }, { - "name" : "node_78", - "id" : 28, + "name" : "node_68", + "id" : 24, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -6996,7 +6443,7 @@ "op" : "!=", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, "right" : { "type" : "hexstr", @@ -7005,14 +6452,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan_0", - "false_next" : "node_80" + "false_next" : "node_70" }, { - "name" : "node_80", - "id" : 29, + "name" : "node_70", + "id" : 25, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -7027,15 +6474,15 @@ } } }, - "true_next" : "tbl_act_26", - "false_next" : "node_84" + "true_next" : "tbl_act_20", + "false_next" : "node_74" }, { - "name" : "node_82", - "id" : 30, + "name" : "node_72", + "id" : 26, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -7053,15 +6500,15 @@ } } }, - "true_next" : "tbl_act_27", - "false_next" : "node_88" + "true_next" : "tbl_act_21", + "false_next" : "node_78" }, { - "name" : "node_84", - "id" : 31, + "name" : "node_74", + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -7076,15 +6523,15 @@ } } }, - "true_next" : "tbl_act_28", - "false_next" : "node_88" + "true_next" : "tbl_act_22", + "false_next" : "node_78" }, { - "name" : "node_86", - "id" : 32, + "name" : "node_76", + "id" : 28, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -7102,15 +6549,15 @@ } } }, - "true_next" : "tbl_act_29", - "false_next" : "node_88" + "true_next" : "tbl_act_23", + "false_next" : "node_78" }, { - "name" : "node_88", - "id" : 33, + "name" : "node_78", + "id" : 29, "source_info" : { "filename" : "include/bng.p4", - "line" : 369, + "line" : 355, "column" : 12, "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM" }, @@ -7120,7 +6567,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type23"] + "value" : ["scalars", "fabric_metadata_t._bng_type19"] }, "right" : { "type" : "hexstr", @@ -7129,14 +6576,14 @@ } }, "false_next" : null, - "true_next" : "node_89" + "true_next" : "node_79" }, { - "name" : "node_89", - "id" : 34, + "name" : "node_79", + "id" : 30, "source_info" : { "filename" : "include/bng.p4", - "line" : 294, + "line" : 293, "column" : 12, "source_fragment" : "hdr.ipv4.isValid()" }, diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt similarity index 96% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt index 98b6cac1980..9f6001e0753 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt @@ -148,15 +148,10 @@ tables { bitwidth: 12 match_type: EXACT } - action_refs { - id: 16819938 - annotations: "@defaultonly" - scope: DEFAULT_ONLY - } action_refs { id: 16829385 } - const_default_action_id: 16819938 + const_default_action_id: 16829385 size: 8192 } tables { @@ -222,20 +217,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -322,8 +311,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -868,7 +855,7 @@ counters { alias: "c_terminated" } spec { - unit: PACKETS + unit: BYTES } size: 8192 } @@ -879,7 +866,7 @@ counters { alias: "c_dropped" } spec { - unit: PACKETS + unit: BYTES } size: 8192 } @@ -901,7 +888,7 @@ counters { alias: "c_line_rx" } spec { - unit: BOTH + unit: BYTES } size: 8192 } @@ -934,7 +921,7 @@ counters { alias: "c_line_tx" } spec { - unit: BOTH + unit: BYTES } size: 8192 } @@ -982,17 +969,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318801025 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json similarity index 93% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json index 5a7432d41b5..4e69bae3413 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json @@ -5,15 +5,15 @@ "id" : 0, "fields" : [ ["last_ipv4_dscp_0", 6, false], - ["tmp_0", 4, false], + ["tmp_2", 16, false], + ["tmp_3", 16, false], + ["tmp_4", 4, false], ["tmp", 8, false], + ["tmp_0", 32, false], ["tmp_1", 32, false], - ["tmp_2", 32, false], - ["tmp_3", 32, false], + ["tmp_5", 32, false], ["spgw_ingress_tmp", 1, false], ["spgw_ingress_tmp_0", 1, false], - ["bng_ingress_s_tag", 12, false], - ["bng_ingress_c_tag", 12, false], ["bng_ingress_upstream_tmp", 1, false], ["bng_ingress_downstream_tmp", 1, false], ["spgw_normalizer_hasReturned", 1, false], @@ -22,47 +22,45 @@ ["key_0", 64, false], ["egress_next_tmp", 1, false], ["process_int_main_process_int_transit_hasReturned", 1, false], - ["fabric_metadata_t._last_eth_type0", 16, false], - ["fabric_metadata_t._is_ipv41", 1, false], - ["fabric_metadata_t._is_ipv62", 1, false], - ["fabric_metadata_t._is_mpls3", 1, false], - ["fabric_metadata_t._ip_eth_type4", 16, false], - ["fabric_metadata_t._vlan_id5", 12, false], - ["fabric_metadata_t._vlan_pri6", 3, false], - ["fabric_metadata_t._vlan_cfi7", 1, false], - ["fabric_metadata_t._push_double_vlan8", 1, false], - ["fabric_metadata_t._inner_vlan_id9", 12, false], - ["fabric_metadata_t._inner_vlan_pri10", 3, false], - ["fabric_metadata_t._inner_vlan_cfi11", 1, false], - ["fabric_metadata_t._mpls_label12", 20, false], - ["fabric_metadata_t._mpls_ttl13", 8, false], - ["fabric_metadata_t._skip_forwarding14", 1, false], - ["fabric_metadata_t._skip_next15", 1, false], - ["fabric_metadata_t._fwd_type16", 3, false], - ["fabric_metadata_t._next_id17", 32, false], - ["fabric_metadata_t._is_multicast18", 1, false], - ["fabric_metadata_t._is_controller_packet_out19", 1, false], - ["fabric_metadata_t._ip_proto20", 8, false], - ["fabric_metadata_t._l4_sport21", 16, false], - ["fabric_metadata_t._l4_dport22", 16, false], - ["fabric_metadata_t._spgw_direction23", 2, false], - ["fabric_metadata_t._spgw_ipv4_len24", 16, false], - ["fabric_metadata_t._spgw_teid25", 32, false], - ["fabric_metadata_t._spgw_s1u_enb_addr26", 32, false], - ["fabric_metadata_t._spgw_s1u_sgw_addr27", 32, false], - ["fabric_metadata_t._bng_type28", 2, false], - ["fabric_metadata_t._bng_line_id29", 32, false], - ["fabric_metadata_t._bng_pppoe_session_id30", 16, false], - ["fabric_metadata_t._bng_ds_meter_result31", 32, false], - ["fabric_metadata_t._int_meta_source32", 1, false], - ["fabric_metadata_t._int_meta_transit33", 1, false], - ["fabric_metadata_t._int_meta_sink34", 1, false], - ["fabric_metadata_t._int_meta_switch_id35", 32, false], - ["fabric_metadata_t._int_meta_new_words36", 8, false], - ["fabric_metadata_t._int_meta_new_bytes37", 16, false], - ["fabric_metadata_t._int_meta_ig_tstamp38", 32, false], - ["fabric_metadata_t._int_meta_eg_tstamp39", 32, false], - ["_padding_0", 7, false] + ["fabric_metadata_t._ip_eth_type0", 16, false], + ["fabric_metadata_t._vlan_id1", 12, false], + ["fabric_metadata_t._vlan_pri2", 3, false], + ["fabric_metadata_t._vlan_cfi3", 1, false], + ["fabric_metadata_t._push_double_vlan4", 1, false], + ["fabric_metadata_t._inner_vlan_id5", 12, false], + ["fabric_metadata_t._inner_vlan_pri6", 3, false], + ["fabric_metadata_t._inner_vlan_cfi7", 1, false], + ["fabric_metadata_t._mpls_label8", 20, false], + ["fabric_metadata_t._mpls_ttl9", 8, false], + ["fabric_metadata_t._skip_forwarding10", 1, false], + ["fabric_metadata_t._skip_next11", 1, false], + ["fabric_metadata_t._fwd_type12", 3, false], + ["fabric_metadata_t._next_id13", 32, false], + ["fabric_metadata_t._is_multicast14", 1, false], + ["fabric_metadata_t._is_controller_packet_out15", 1, false], + ["fabric_metadata_t._ip_proto16", 8, false], + ["fabric_metadata_t._l4_sport17", 16, false], + ["fabric_metadata_t._l4_dport18", 16, false], + ["fabric_metadata_t._spgw_direction19", 2, false], + ["fabric_metadata_t._spgw_ipv4_len20", 16, false], + ["fabric_metadata_t._spgw_teid21", 32, false], + ["fabric_metadata_t._spgw_s1u_enb_addr22", 32, false], + ["fabric_metadata_t._spgw_s1u_sgw_addr23", 32, false], + ["fabric_metadata_t._bng_type24", 2, false], + ["fabric_metadata_t._bng_line_id25", 32, false], + ["fabric_metadata_t._bng_pppoe_session_id26", 16, false], + ["fabric_metadata_t._bng_ds_meter_result27", 32, false], + ["fabric_metadata_t._bng_s_tag28", 12, false], + ["fabric_metadata_t._bng_c_tag29", 12, false], + ["fabric_metadata_t._int_meta_source30", 1, false], + ["fabric_metadata_t._int_meta_transit31", 1, false], + ["fabric_metadata_t._int_meta_sink32", 1, false], + ["fabric_metadata_t._int_meta_switch_id33", 32, false], + ["fabric_metadata_t._int_meta_new_words34", 8, false], + ["fabric_metadata_t._int_meta_new_bytes35", 16, false], + ["fabric_metadata_t._int_meta_ig_tstamp36", 32, false], + ["fabric_metadata_t._int_meta_eg_tstamp37", 32, false], + ["_padding_0", 2, false] ] }, { @@ -99,23 +97,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "pppoe_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "pppoe_t", + "id" : 5, "fields" : [ ["version", 4, false], ["type_id", 4, false], @@ -127,7 +131,7 @@ }, { "name" : "mpls_t", - "id" : 5, + "id" : 6, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -137,7 +141,7 @@ }, { "name" : "ipv4_t", - "id" : 6, + "id" : 7, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -156,7 +160,7 @@ }, { "name" : "udp_t", - "id" : 7, + "id" : 8, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -166,7 +170,7 @@ }, { "name" : "gtpu_t", - "id" : 8, + "id" : 9, "fields" : [ ["version", 3, false], ["pt", 1, false], @@ -181,7 +185,7 @@ }, { "name" : "ipv6_t", - "id" : 9, + "id" : 10, "fields" : [ ["version", 4, false], ["traffic_class", 8, false], @@ -195,7 +199,7 @@ }, { "name" : "tcp_t", - "id" : 10, + "id" : 11, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -212,7 +216,7 @@ }, { "name" : "icmp_t", - "id" : 11, + "id" : 12, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -224,7 +228,7 @@ }, { "name" : "packet_out_header_t", - "id" : 12, + "id" : 13, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -232,7 +236,7 @@ }, { "name" : "packet_in_header_t", - "id" : 13, + "id" : 14, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -240,7 +244,7 @@ }, { "name" : "report_fixed_header_t", - "id" : 14, + "id" : 15, "fields" : [ ["ver", 4, false], ["nproto", 4, false], @@ -255,7 +259,7 @@ }, { "name" : "intl4_shim_t", - "id" : 15, + "id" : 16, "fields" : [ ["int_type", 8, false], ["rsvd1", 8, false], @@ -265,7 +269,7 @@ }, { "name" : "int_header_t", - "id" : 16, + "id" : 17, "fields" : [ ["ver", 2, false], ["rep", 2, false], @@ -284,14 +288,14 @@ }, { "name" : "int_switch_id_t", - "id" : 17, + "id" : 18, "fields" : [ ["switch_id", 32, false] ] }, { "name" : "int_port_ids_t", - "id" : 18, + "id" : 19, "fields" : [ ["ingress_port_id", 16, false], ["egress_port_id", 16, false] @@ -299,14 +303,14 @@ }, { "name" : "int_hop_latency_t", - "id" : 19, + "id" : 20, "fields" : [ ["hop_latency", 32, false] ] }, { "name" : "int_q_occupancy_t", - "id" : 20, + "id" : 21, "fields" : [ ["q_id", 8, false], ["q_occupancy", 24, false] @@ -314,21 +318,21 @@ }, { "name" : "int_ingress_tstamp_t", - "id" : 21, + "id" : 22, "fields" : [ ["ingress_tstamp", 32, false] ] }, { "name" : "int_egress_tstamp_t", - "id" : 22, + "id" : 23, "fields" : [ ["egress_tstamp", 32, false] ] }, { "name" : "int_q_congestion_t", - "id" : 23, + "id" : 24, "fields" : [ ["q_id", 8, false], ["q_congestion", 24, false] @@ -336,14 +340,14 @@ }, { "name" : "int_egress_port_tx_util_t", - "id" : 24, + "id" : 25, "fields" : [ ["egress_port_tx_util", 32, false] ] }, { "name" : "int_data_t", - "id" : 25, + "id" : 26, "fields" : [ ["data", "*"] ], @@ -351,7 +355,7 @@ }, { "name" : "intl4_tail_t", - "id" : 26, + "id" : 27, "fields" : [ ["next_proto", 8, false], ["dest_port", 16, false], @@ -397,211 +401,225 @@ "pi_omit" : true }, { - "name" : "pppoe", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "pppoe", + "id" : 6, "header_type" : "pppoe_t", "metadata" : false, "pi_omit" : true }, { "name" : "mpls", - "id" : 6, + "id" : 7, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_ipv4", - "id" : 7, + "id" : 8, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_udp", - "id" : 8, + "id" : 9, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu", - "id" : 9, + "id" : 10, "header_type" : "gtpu_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_ipv4", - "id" : 10, + "id" : 11, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_udp", - "id" : 11, + "id" : 12, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 12, + "id" : 13, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv6", - "id" : 13, + "id" : 14, "header_type" : "ipv6_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 14, + "id" : 15, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 15, + "id" : 16, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 16, + "id" : 17, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 17, + "id" : 18, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 18, + "id" : 19, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "report_ethernet", - "id" : 19, + "id" : 20, "header_type" : "ethernet_t", "metadata" : false, "pi_omit" : true }, + { + "name" : "report_eth_type", + "id" : 21, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, { "name" : "report_ipv4", - "id" : 20, + "id" : 22, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "report_udp", - "id" : 21, + "id" : 23, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "report_fixed_header", - "id" : 22, + "id" : 24, "header_type" : "report_fixed_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_shim", - "id" : 23, + "id" : 25, "header_type" : "intl4_shim_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_header", - "id" : 24, + "id" : 26, "header_type" : "int_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_switch_id", - "id" : 25, + "id" : 27, "header_type" : "int_switch_id_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_port_ids", - "id" : 26, + "id" : 28, "header_type" : "int_port_ids_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_hop_latency", - "id" : 27, + "id" : 29, "header_type" : "int_hop_latency_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_occupancy", - "id" : 28, + "id" : 30, "header_type" : "int_q_occupancy_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_ingress_tstamp", - "id" : 29, + "id" : 31, "header_type" : "int_ingress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tstamp", - "id" : 30, + "id" : 32, "header_type" : "int_egress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_congestion", - "id" : 31, + "id" : 33, "header_type" : "int_q_congestion_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tx_util", - "id" : 32, + "id" : 34, "header_type" : "int_egress_port_tx_util_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_data", - "id" : 33, + "id" : 35, "header_type" : "int_data_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_tail", - "id" : 34, + "id" : 36, "header_type" : "intl4_tail_t", "metadata" : false, "pi_omit" : true @@ -728,11 +746,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -741,11 +759,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "tmp_2"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -770,34 +788,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, - { - "type" : "hexstr", - "value" : "0x86dd", - "mask" : null, - "next_state" : "pre_parse_ipv6" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_2"] } ] }, @@ -813,27 +813,35 @@ } ], "op" : "extract" - } - ], - "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" }, { - "type" : "hexstr", - "value" : "0x86dd", - "mask" : null, - "next_state" : "pre_parse_ipv6" + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_s_tag28"] + }, + { + "type" : "field", + "value" : ["vlan_tag", "vlan_id"] + } + ], + "op" : "set" }, { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_3"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8100", @@ -843,13 +851,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_3"] } ] }, @@ -865,26 +873,62 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_c_tag29"] + }, + { + "type" : "field", + "value" : ["inner_vlan_tag", "vlan_id"] + } + ], + "op" : "set" + } + ], + "transitions" : [ + { + "value" : "default", + "mask" : null, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" } ], "transitions" : [ { "type" : "hexstr", - "value" : "0x0800", + "value" : "0x8847", "mask" : null, - "next_state" : "pre_parse_ipv4" + "next_state" : "parse_mpls" }, { "type" : "hexstr", - "value" : "0x86dd", + "value" : "0x0800", "mask" : null, - "next_state" : "pre_parse_ipv6" + "next_state" : "parse_ipv4" }, { "type" : "hexstr", - "value" : "0x8847", + "value" : "0x86dd", "mask" : null, - "next_state" : "parse_mpls" + "next_state" : "parse_ipv6" }, { "type" : "hexstr", @@ -907,13 +951,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_pppoe", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -936,13 +980,13 @@ "type" : "hexstr", "value" : "0x0021", "mask" : null, - "next_state" : "pre_parse_ipv4" + "next_state" : "parse_ipv4" }, { "type" : "hexstr", "value" : "0x0057", "mask" : null, - "next_state" : "pre_parse_ipv6" + "next_state" : "parse_ipv6" }, { "value" : "default", @@ -959,7 +1003,7 @@ }, { "name" : "parse_mpls", - "id" : 6, + "id" : 7, "parser_ops" : [ { "parameters" : [ @@ -974,30 +1018,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_mpls3"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "field", @@ -1010,7 +1031,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] }, { "type" : "field", @@ -1023,7 +1044,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] }, { "type" : "lookahead", @@ -1055,50 +1076,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] } ] }, { - "name" : "pre_parse_ipv4", - "id" : 7, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv41"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, - { - "name" : "parse_ipv4", - "id" : 8, + "name" : "parse_ipv4", + "id" : 8, "parser_ops" : [ { "parameters" : [ @@ -1113,7 +1097,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto20"] + "value" : ["scalars", "fabric_metadata_t._ip_proto16"] }, { "type" : "field", @@ -1126,7 +1110,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -1181,46 +1165,9 @@ } ] }, - { - "name" : "pre_parse_ipv6", - "id" : 9, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv62"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv6" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv6", - "id" : 10, + "id" : 9, "parser_ops" : [ { "parameters" : [ @@ -1235,7 +1182,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto20"] + "value" : ["scalars", "fabric_metadata_t._ip_proto16"] }, { "type" : "field", @@ -1248,7 +1195,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -1292,7 +1239,7 @@ }, { "name" : "parse_tcp", - "id" : 11, + "id" : 10, "parser_ops" : [ { "parameters" : [ @@ -1307,7 +1254,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", @@ -1320,7 +1267,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] }, { "type" : "field", @@ -1341,7 +1288,7 @@ }, { "name" : "parse_udp", - "id" : 12, + "id" : 11, "parser_ops" : [ { "parameters" : [ @@ -1356,7 +1303,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", @@ -1369,7 +1316,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] }, { "type" : "field", @@ -1401,7 +1348,7 @@ }, { "name" : "parse_icmp", - "id" : 13, + "id" : 12, "parser_ops" : [ { "parameters" : [ @@ -1424,7 +1371,7 @@ }, { "name" : "parse_gtpu", - "id" : 14, + "id" : 13, "parser_ops" : [ { "parameters" : [ @@ -1495,7 +1442,7 @@ }, { "name" : "do_parse_gtpu", - "id" : 15, + "id" : 14, "parser_ops" : [ { "parameters" : [ @@ -1563,7 +1510,7 @@ }, { "name" : "parse_inner_udp", - "id" : 16, + "id" : 15, "parser_ops" : [ { "parameters" : [ @@ -1578,7 +1525,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", @@ -1591,7 +1538,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] }, { "type" : "field", @@ -1612,7 +1559,7 @@ }, { "name" : "parse_int", - "id" : 17, + "id" : 16, "parser_ops" : [], "transitions" : [ { @@ -1636,7 +1583,7 @@ }, { "name" : "parse_intl4_shim", - "id" : 18, + "id" : 17, "parser_ops" : [ { "parameters" : [ @@ -1679,13 +1626,13 @@ }, { "name" : "parse_int_data", - "id" : 19, + "id" : 18, "parser_ops" : [ { "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] }, { "type" : "expression", @@ -1757,7 +1704,7 @@ "type" : "expression", "value" : { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] } } ], @@ -1775,7 +1722,7 @@ }, { "name" : "parse_intl4_tail", - "id" : 20, + "id" : 19, "parser_ops" : [ { "parameters" : [ @@ -1806,11 +1753,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "report_ethernet", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "vlan_tag", "inner_vlan_tag", "pppoe", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "ipv6", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "int_data", "intl4_tail"] + "order" : ["packet_in", "report_ethernet", "report_eth_type", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "pppoe", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "ipv6", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "int_data", "intl4_tail"] } ], "meter_arrays" : [ @@ -1819,7 +1766,7 @@ "id" : 0, "source_info" : { "filename" : "include/bng.p4", - "line" : 152, + "line" : 151, "column" : 33, "source_fragment" : "m_besteff" }, @@ -1833,7 +1780,7 @@ "id" : 1, "source_info" : { "filename" : "include/bng.p4", - "line" : 153, + "line" : 152, "column" : 33, "source_fragment" : "m_prio" }, @@ -1886,7 +1833,7 @@ "source_info" : { "filename" : "include/bng.p4", "line" : 36, - "column" : 39, + "column" : 37, "source_fragment" : "c_terminated" }, "size" : 8192, @@ -1898,7 +1845,7 @@ "source_info" : { "filename" : "include/bng.p4", "line" : 37, - "column" : 39, + "column" : 37, "source_fragment" : "c_dropped" }, "size" : 8192, @@ -1921,8 +1868,8 @@ "id" : 6, "source_info" : { "filename" : "include/bng.p4", - "line" : 150, - "column" : 49, + "line" : 149, + "column" : 37, "source_fragment" : "c_line_rx" }, "size" : 8192, @@ -1947,7 +1894,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -1976,33 +1923,21 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 11, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.forwarding.routing_v6_counter", - "id" : 12, + "id" : 11, "is_direct" : true, "binding" : "FabricIngress.forwarding.routing_v6", "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 119, + "line" : 128, "column" : 50, "source_fragment" : "routing_v6_counter" } }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 13, + "id" : 12, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -2014,7 +1949,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 14, + "id" : 13, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -2026,55 +1961,55 @@ }, { "name" : "FabricIngress.next.xconnect_counter", - "id" : 15, + "id" : 14, "is_direct" : true, "binding" : "FabricIngress.next.xconnect", "source_info" : { "filename" : "include/control/next.p4", - "line" : 103, + "line" : 107, "column" : 50, "source_fragment" : "xconnect_counter" } }, { "name" : "FabricIngress.next.simple_counter", - "id" : 16, + "id" : 15, "is_direct" : true, "binding" : "FabricIngress.next.simple", "source_info" : { "filename" : "include/control/next.p4", - "line" : 137, + "line" : 140, "column" : 50, "source_fragment" : "simple_counter" } }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 17, + "id" : 16, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 18, + "id" : 17, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 19, + "id" : 18, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -2086,7 +2021,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 20, + "id" : 19, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -2098,11 +2033,11 @@ }, { "name" : "FabricEgress.bng_egress.downstream.c_line_tx", - "id" : 21, + "id" : 20, "source_info" : { "filename" : "include/bng.p4", - "line" : 265, - "column" : 49, + "line" : 264, + "column" : 37, "source_fragment" : "c_line_tx" }, "size" : 8192, @@ -2110,7 +2045,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source", - "id" : 22, + "id" : 21, "is_direct" : true, "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source", "source_info" : { @@ -2122,12 +2057,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 23, + "id" : 22, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -2411,15 +2346,9 @@ "runtime_data" : [], "primitives" : [] }, - { - "name" : "nop", - "id" : 15, - "runtime_data" : [], - "primitives" : [] - }, { "name" : "FabricIngress.spgw_ingress.gtpu_decap", - "id" : 16, + "id" : 15, "runtime_data" : [], "primitives" : [ { @@ -2471,7 +2400,7 @@ }, { "name" : "FabricIngress.spgw_ingress.set_dl_sess_info", - "id" : 17, + "id" : 16, "runtime_data" : [ { "name" : "teid", @@ -2492,7 +2421,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid25"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] }, { "type" : "runtime_data", @@ -2511,7 +2440,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] }, { "type" : "runtime_data", @@ -2530,7 +2459,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] }, { "type" : "runtime_data", @@ -2548,7 +2477,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.int_set_source", - "id" : 18, + "id" : 17, "runtime_data" : [], "primitives" : [ { @@ -2556,7 +2485,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source32"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source30"] }, { "type" : "expression", @@ -2584,7 +2513,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.int_set_sink", - "id" : 19, + "id" : 18, "runtime_data" : [], "primitives" : [ { @@ -2592,7 +2521,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"] + "value" : ["scalars", "fabric_metadata_t._int_meta_sink32"] }, { "type" : "expression", @@ -2620,7 +2549,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu", - "id" : 20, + "id" : 19, "runtime_data" : [], "primitives" : [ { @@ -2651,7 +2580,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { @@ -2665,7 +2594,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_disabled", - "id" : 21, + "id" : 20, "runtime_data" : [], "primitives" : [ { @@ -2673,7 +2602,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, { "type" : "hexstr", @@ -2682,7 +2611,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 155, + "line" : 160, "column" : 36, "source_fragment" : "2w0x0; ..." } @@ -2697,7 +2626,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 75, + "line" : 74, "column" : 8, "source_fragment" : "mark_to_drop(smeta)" } @@ -2706,7 +2635,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_disabled", - "id" : 22, + "id" : 21, "runtime_data" : [], "primitives" : [ { @@ -2714,7 +2643,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, { "type" : "hexstr", @@ -2723,7 +2652,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 155, + "line" : 160, "column" : 36, "source_fragment" : "2w0x0; ..." } @@ -2738,7 +2667,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 75, + "line" : 74, "column" : 8, "source_fragment" : "mark_to_drop(smeta)" } @@ -2747,7 +2676,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4", - "id" : 23, + "id" : 22, "runtime_data" : [], "primitives" : [ { @@ -2755,26 +2684,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x0800" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 110, - "column" : 31, - "source_fragment" : "0x0800; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -2783,7 +2693,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 110, + "line" : 114, "column" : 31, "source_fragment" : "0x0800; ..." } @@ -2798,7 +2708,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 69, + "line" : 68, "column" : 8, "source_fragment" : "hdr.pppoe.setInvalid()" } @@ -2812,12 +2722,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 70, + "line" : 69, "column" : 8, "source_fragment" : "c_terminated.count(fmeta.bng.line_id)" } @@ -2826,7 +2736,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v6", - "id" : 24, + "id" : 23, "runtime_data" : [], "primitives" : [ { @@ -2834,26 +2744,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x86dd" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 111, - "column" : 31, - "source_fragment" : "0x86dd; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -2862,7 +2753,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 111, + "line" : 115, "column" : 31, "source_fragment" : "0x86dd; ..." } @@ -2877,7 +2768,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 69, + "line" : 68, "column" : 8, "source_fragment" : "hdr.pppoe.setInvalid()" } @@ -2891,12 +2782,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 70, + "line" : 69, "column" : 8, "source_fragment" : "c_terminated.count(fmeta.bng.line_id)" } @@ -2905,7 +2796,7 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.set_session", - "id" : 25, + "id" : 24, "runtime_data" : [ { "name" : "pppoe_session_id", @@ -2918,7 +2809,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, { "type" : "hexstr", @@ -2927,7 +2818,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 157, + "line" : 162, "column" : 39, "source_fragment" : "2w0x2;; ..." } @@ -2937,7 +2828,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"] + "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"] }, { "type" : "runtime_data", @@ -2946,7 +2837,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 157, + "line" : 156, "column" : 35, "source_fragment" : "= pppoe_session_id; ..." } @@ -2960,12 +2851,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 158, + "line" : 157, "column" : 8, "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)" } @@ -2974,7 +2865,7 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.drop", - "id" : 26, + "id" : 25, "runtime_data" : [], "primitives" : [ { @@ -2982,7 +2873,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, { "type" : "hexstr", @@ -2991,7 +2882,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 157, + "line" : 162, "column" : 39, "source_fragment" : "2w0x2;; ..." } @@ -3005,12 +2896,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 163, + "line" : 162, "column" : 8, "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)" } @@ -3025,7 +2916,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 164, + "line" : 163, "column" : 8, "source_fragment" : "mark_to_drop(smeta)" } @@ -3034,31 +2925,31 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.qos_prio", - "id" : 27, + "id" : 26, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.downstream.qos_prio", - "id" : 28, + "id" : 27, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.downstream.qos_besteff", - "id" : 29, + "id" : 28, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.downstream.qos_besteff", - "id" : 30, + "id" : 29, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.bng_ingress.set_line", - "id" : 31, + "id" : 30, "runtime_data" : [ { "name" : "line_id", @@ -3071,7 +2962,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] }, { "type" : "runtime_data", @@ -3080,7 +2971,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 321, + "line" : 317, "column" : 30, "source_fragment" : "= line_id; ..." } @@ -3089,7 +2980,7 @@ }, { "name" : "FabricIngress.filtering.deny", - "id" : 32, + "id" : 31, "runtime_data" : [], "primitives" : [ { @@ -3097,7 +2988,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] }, { "type" : "expression", @@ -3126,7 +3017,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -3154,13 +3045,13 @@ }, { "name" : "FabricIngress.filtering.permit", - "id" : 33, + "id" : 32, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.filtering.permit_with_internal_vlan", - "id" : 34, + "id" : 33, "runtime_data" : [ { "name" : "vlan_id", @@ -3173,7 +3064,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -3191,7 +3082,7 @@ }, { "name" : "FabricIngress.filtering.set_forwarding_type", - "id" : 35, + "id" : 34, "runtime_data" : [ { "name" : "fwd_type", @@ -3204,7 +3095,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, { "type" : "runtime_data", @@ -3213,7 +3104,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 33, "source_fragment" : "= fwd_type; ..." } @@ -3222,7 +3113,7 @@ }, { "name" : "FabricIngress.forwarding.set_next_id_bridging", - "id" : 36, + "id" : 35, "runtime_data" : [ { "name" : "next_id", @@ -3235,7 +3126,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3253,7 +3144,7 @@ }, { "name" : "FabricIngress.forwarding.pop_mpls_and_next", - "id" : 37, + "id" : 36, "runtime_data" : [ { "name" : "next_id", @@ -3266,7 +3157,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "hexstr", @@ -3285,7 +3176,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3303,7 +3194,7 @@ }, { "name" : "FabricIngress.forwarding.set_next_id_routing_v4", - "id" : 38, + "id" : 37, "runtime_data" : [ { "name" : "next_id", @@ -3316,7 +3207,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3334,13 +3225,13 @@ }, { "name" : "FabricIngress.forwarding.nop_routing_v4", - "id" : 39, + "id" : 38, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.forwarding.set_next_id_routing_v6", - "id" : 40, + "id" : 39, "runtime_data" : [ { "name" : "next_id", @@ -3353,7 +3244,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3371,7 +3262,7 @@ }, { "name" : "FabricIngress.acl.set_next_id_acl", - "id" : 41, + "id" : 40, "runtime_data" : [ { "name" : "next_id", @@ -3384,7 +3275,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3402,7 +3293,7 @@ }, { "name" : "FabricIngress.acl.punt_to_cpu", - "id" : 42, + "id" : 41, "runtime_data" : [], "primitives" : [ { @@ -3429,7 +3320,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -3457,7 +3348,7 @@ }, { "name" : "FabricIngress.acl.set_clone_session_id", - "id" : 43, + "id" : 42, "runtime_data" : [ { "name" : "clone_id", @@ -3488,7 +3379,7 @@ }, { "name" : "FabricIngress.acl.drop", - "id" : 44, + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -3511,7 +3402,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] }, { "type" : "expression", @@ -3539,13 +3430,13 @@ }, { "name" : "FabricIngress.acl.nop_acl", - "id" : 45, + "id" : 44, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricIngress.next.set_vlan", - "id" : 46, + "id" : 45, "runtime_data" : [ { "name" : "vlan_id", @@ -3558,7 +3449,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -3576,7 +3467,7 @@ }, { "name" : "FabricIngress.next.set_double_vlan", - "id" : 47, + "id" : 46, "runtime_data" : [ { "name" : "outer_vlan_id", @@ -3593,7 +3484,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -3612,7 +3503,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"] + "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"] }, { "type" : "expression", @@ -3641,7 +3532,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] }, { "type" : "runtime_data", @@ -3654,12 +3545,50 @@ "column" : 38, "source_fragment" : "= inner_vlan_id; ..." } + }, + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_s_tag28"] + }, + { + "type" : "runtime_data", + "value" : 0 + } + ], + "source_info" : { + "filename" : "include/control/next.p4", + "line" : 80, + "column" : 34, + "source_fragment" : "= outer_vlan_id; ..." + } + }, + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "fabric_metadata_t._bng_c_tag29"] + }, + { + "type" : "runtime_data", + "value" : 1 + } + ], + "source_info" : { + "filename" : "include/control/next.p4", + "line" : 81, + "column" : 34, + "source_fragment" : "= inner_vlan_id; ..." + } } ] }, { "name" : "FabricIngress.next.output_xconnect", - "id" : 48, + "id" : 47, "runtime_data" : [ { "name" : "port_num", @@ -3685,31 +3614,12 @@ "column" : 5, "source_fragment" : "standard_metadata.egress_spec = port_num; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricIngress.next.set_next_id_xconnect", - "id" : 49, + "id" : 48, "runtime_data" : [ { "name" : "next_id", @@ -3722,7 +3632,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id17"] + "value" : ["scalars", "fabric_metadata_t._next_id13"] }, { "type" : "runtime_data", @@ -3731,7 +3641,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 112, + "line" : 115, "column" : 32, "source_fragment" : "= next_id; ..." } @@ -3740,7 +3650,7 @@ }, { "name" : "FabricIngress.next.output_simple", - "id" : 50, + "id" : 49, "runtime_data" : [ { "name" : "port_num", @@ -3771,7 +3681,7 @@ }, { "name" : "FabricIngress.next.routing_simple", - "id" : 51, + "id" : 50, "runtime_data" : [ { "name" : "port_num", @@ -3848,7 +3758,7 @@ }, { "name" : "FabricIngress.next.mpls_routing_simple", - "id" : 52, + "id" : 51, "runtime_data" : [ { "name" : "port_num", @@ -3873,7 +3783,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "runtime_data", @@ -3948,7 +3858,7 @@ }, { "name" : "FabricIngress.next.output_hashed", - "id" : 53, + "id" : 52, "runtime_data" : [ { "name" : "port_num", @@ -3979,7 +3889,7 @@ }, { "name" : "FabricIngress.next.routing_hashed", - "id" : 54, + "id" : 53, "runtime_data" : [ { "name" : "port_num", @@ -4056,7 +3966,7 @@ }, { "name" : "FabricIngress.next.mpls_routing_hashed", - "id" : 55, + "id" : 54, "runtime_data" : [ { "name" : "port_num", @@ -4081,7 +3991,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, { "type" : "runtime_data", @@ -4156,7 +4066,7 @@ }, { "name" : "FabricIngress.next.set_mcast_group_id", - "id" : 56, + "id" : 55, "runtime_data" : [ { "name" : "group_id", @@ -4178,7 +4088,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -4188,7 +4098,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast18"] + "value" : ["scalars", "fabric_metadata_t._is_multicast14"] }, { "type" : "expression", @@ -4207,7 +4117,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 37, "source_fragment" : "= true; ..." } @@ -4216,7 +4126,7 @@ }, { "name" : "act", - "id" : 57, + "id" : 56, "runtime_data" : [], "primitives" : [ { @@ -4252,7 +4162,7 @@ }, { "name" : "act_0", - "id" : 58, + "id" : 57, "runtime_data" : [], "primitives" : [ { @@ -4312,7 +4222,7 @@ }, { "name" : "act_1", - "id" : 59, + "id" : 58, "runtime_data" : [], "primitives" : [ { @@ -4338,7 +4248,7 @@ }, { "name" : "act_2", - "id" : 60, + "id" : 59, "runtime_data" : [], "primitives" : [ { @@ -4360,7 +4270,7 @@ }, { "name" : "act_3", - "id" : 61, + "id" : 60, "runtime_data" : [], "primitives" : [ { @@ -4424,7 +4334,7 @@ }, { "name" : "act_4", - "id" : 62, + "id" : 61, "runtime_data" : [], "primitives" : [ { @@ -4466,7 +4376,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] }, { "type" : "expression", @@ -4504,7 +4414,7 @@ }, { "name" : "act_5", - "id" : 63, + "id" : 62, "runtime_data" : [], "primitives" : [ { @@ -4512,7 +4422,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "field", @@ -4521,7 +4431,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." } @@ -4531,7 +4441,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] }, { "type" : "field", @@ -4540,7 +4450,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 37, "source_fragment" : "= hdr.vlan_tag.pri; ..." } @@ -4550,7 +4460,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] }, { "type" : "field", @@ -4559,7 +4469,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 37, "source_fragment" : "= hdr.vlan_tag.cfi; ..." } @@ -4568,7 +4478,7 @@ }, { "name" : "act_6", - "id" : 64, + "id" : 63, "runtime_data" : [], "primitives" : [ { @@ -4576,7 +4486,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] }, { "type" : "field", @@ -4585,7 +4495,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 116, + "line" : 117, "column" : 42, "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..." } @@ -4595,7 +4505,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"] }, { "type" : "field", @@ -4604,7 +4514,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 117, + "line" : 118, "column" : 43, "source_fragment" : "= hdr.inner_vlan_tag.pri; ..." } @@ -4614,7 +4524,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"] }, { "type" : "field", @@ -4623,7 +4533,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 118, + "line" : 119, "column" : 43, "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..." } @@ -4632,7 +4542,7 @@ }, { "name" : "act_7", - "id" : 65, + "id" : 64, "runtime_data" : [], "primitives" : [ { @@ -4640,7 +4550,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] }, { "type" : "hexstr", @@ -4649,7 +4559,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..." } @@ -4658,111 +4568,7 @@ }, { "name" : "act_8", - "id" : 66, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8847" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." - } - } - ] - }, - { - "name" : "act_9", - "id" : 67, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_10", - "id" : 68, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "= hdr.vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_11", - "id" : 69, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "= hdr.ethernet.eth_type; ..." - } - } - ] - }, - { - "name" : "act_12", - "id" : 70, + "id" : 65, "runtime_data" : [], "primitives" : [ { @@ -4791,8 +4597,8 @@ ] }, { - "name" : "act_13", - "id" : 71, + "name" : "act_9", + "id" : 66, "runtime_data" : [], "primitives" : [ { @@ -4821,8 +4627,8 @@ ] }, { - "name" : "act_14", - "id" : 72, + "name" : "act_10", + "id" : 67, "runtime_data" : [], "primitives" : [ { @@ -4843,8 +4649,8 @@ ] }, { - "name" : "act_15", - "id" : 73, + "name" : "act_11", + "id" : 68, "runtime_data" : [], "primitives" : [ { @@ -4852,7 +4658,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction23"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] }, { "type" : "hexstr", @@ -4861,7 +4667,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 143, + "line" : 147, "column" : 36, "source_fragment" : "2w1; ..." } @@ -4869,8 +4675,8 @@ ] }, { - "name" : "act_16", - "id" : 74, + "name" : "act_12", + "id" : 69, "runtime_data" : [], "primitives" : [ { @@ -4899,8 +4705,8 @@ ] }, { - "name" : "act_17", - "id" : 75, + "name" : "act_13", + "id" : 70, "runtime_data" : [], "primitives" : [ { @@ -4929,8 +4735,8 @@ ] }, { - "name" : "act_18", - "id" : 76, + "name" : "act_14", + "id" : 71, "runtime_data" : [], "primitives" : [ { @@ -4938,7 +4744,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction23"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] }, { "type" : "hexstr", @@ -4947,7 +4753,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 144, + "line" : 148, "column" : 38, "source_fragment" : "2w2; ..." } @@ -4955,8 +4761,8 @@ ] }, { - "name" : "act_19", - "id" : 77, + "name" : "act_15", + "id" : 72, "runtime_data" : [], "primitives" : [ { @@ -4964,7 +4770,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction23"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] }, { "type" : "hexstr", @@ -4973,7 +4779,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 142, + "line" : 146, "column" : 37, "source_fragment" : "2w0; ..." } @@ -5010,8 +4816,8 @@ ] }, { - "name" : "act_20", - "id" : 78, + "name" : "act_16", + "id" : 73, "runtime_data" : [], "primitives" : [ { @@ -5040,8 +4846,8 @@ ] }, { - "name" : "act_21", - "id" : 79, + "name" : "act_17", + "id" : 74, "runtime_data" : [], "primitives" : [ { @@ -5049,7 +4855,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] }, { "type" : "field", @@ -5066,8 +4872,8 @@ ] }, { - "name" : "act_22", - "id" : 80, + "name" : "act_18", + "id" : 75, "runtime_data" : [], "primitives" : [ { @@ -5075,7 +4881,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] }, { "type" : "expression", @@ -5111,7 +4917,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] } ], "source_info" : { @@ -5124,8 +4930,8 @@ ] }, { - "name" : "act_23", - "id" : 81, + "name" : "act_19", + "id" : 76, "runtime_data" : [], "primitives" : [ { @@ -5133,7 +4939,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_3"] + "value" : ["scalars", "tmp_5"] }, { "type" : "expression", @@ -5169,7 +4975,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_3"] + "value" : ["scalars", "tmp_5"] } ], "source_info" : { @@ -5182,8 +4988,8 @@ ] }, { - "name" : "act_24", - "id" : 82, + "name" : "act_20", + "id" : 77, "runtime_data" : [], "primitives" : [ { @@ -5208,98 +5014,8 @@ ] }, { - "name" : "act_25", - "id" : 83, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_s_tag"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "vlan_id"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 339, - "column" : 16, - "source_fragment" : "s_tag = hdr.vlan_tag.vlan_id" - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_c_tag"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "vlan_id"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 340, - "column" : 16, - "source_fragment" : "c_tag = hdr.inner_vlan_tag.vlan_id" - } - } - ] - }, - { - "name" : "act_26", - "id" : 84, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_s_tag"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 344, - "column" : 16, - "source_fragment" : "s_tag = fmeta.vlan_id; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "bng_ingress_c_tag"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] - } - ], - "source_info" : { - "filename" : "include/bng.p4", - "line" : 345, - "column" : 16, - "source_fragment" : "c_tag = fmeta.inner_vlan_id; ..." - } - } - ] - }, - { - "name" : "act_27", - "id" : 85, + "name" : "act_21", + "id" : 78, "runtime_data" : [], "primitives" : [ { @@ -5328,8 +5044,8 @@ ] }, { - "name" : "act_28", - "id" : 86, + "name" : "act_22", + "id" : 79, "runtime_data" : [], "primitives" : [ { @@ -5358,8 +5074,8 @@ ] }, { - "name" : "act_29", - "id" : 87, + "name" : "act_23", + "id" : 80, "runtime_data" : [], "primitives" : [ { @@ -5367,7 +5083,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, { "type" : "hexstr", @@ -5376,7 +5092,7 @@ ], "source_info" : { "filename" : "include/control/../header.p4", - "line" : 156, + "line" : 161, "column" : 37, "source_fragment" : "2w0x1; ..." } @@ -5407,8 +5123,8 @@ ] }, { - "name" : "act_30", - "id" : 88, + "name" : "act_24", + "id" : 81, "runtime_data" : [], "primitives" : [ { @@ -5435,7 +5151,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 124, + "line" : 123, "column" : 12, "source_fragment" : "return" } @@ -5443,8 +5159,8 @@ ] }, { - "name" : "act_31", - "id" : 89, + "name" : "act_25", + "id" : 82, "runtime_data" : [], "primitives" : [ { @@ -5456,12 +5172,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 129, + "line" : 128, "column" : 20, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" } @@ -5469,8 +5185,8 @@ ] }, { - "name" : "act_32", - "id" : 90, + "name" : "act_26", + "id" : 83, "runtime_data" : [], "primitives" : [ { @@ -5482,12 +5198,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 137, + "line" : 136, "column" : 19, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" } @@ -5495,8 +5211,8 @@ ] }, { - "name" : "act_33", - "id" : 91, + "name" : "act_27", + "id" : 84, "runtime_data" : [], "primitives" : [ { @@ -5546,7 +5262,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 110, + "line" : 109, "column" : 12, "source_fragment" : "hdr.ipv6.src_addr[127:64]" } @@ -5554,8 +5270,8 @@ ] }, { - "name" : "act_34", - "id" : 92, + "name" : "act_28", + "id" : 85, "runtime_data" : [], "primitives" : [ { @@ -5584,8 +5300,8 @@ ] }, { - "name" : "act_35", - "id" : 93, + "name" : "act_29", + "id" : 86, "runtime_data" : [], "primitives" : [ { @@ -5614,8 +5330,8 @@ ] }, { - "name" : "act_36", - "id" : 94, + "name" : "act_30", + "id" : 87, "runtime_data" : [], "primitives" : [ { @@ -5627,16 +5343,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 236, + "line" : 235, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -5644,8 +5360,8 @@ ] }, { - "name" : "act_37", - "id" : 95, + "name" : "act_31", + "id" : 88, "runtime_data" : [], "primitives" : [ { @@ -5657,16 +5373,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 239, + "line" : 238, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -5674,8 +5390,8 @@ ] }, { - "name" : "act_38", - "id" : 96, + "name" : "act_32", + "id" : 89, "runtime_data" : [], "primitives" : [ { @@ -5687,16 +5403,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 248, + "line" : 247, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -5704,8 +5420,8 @@ ] }, { - "name" : "act_39", - "id" : 97, + "name" : "act_33", + "id" : 90, "runtime_data" : [], "primitives" : [ { @@ -5717,16 +5433,16 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"] + "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 251, + "line" : 250, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" } @@ -5735,43 +5451,43 @@ }, { "name" : "nop", - "id" : 98, + "id" : 91, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 99, + "id" : 92, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 100, + "id" : 93, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 101, + "id" : 94, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 102, + "id" : 95, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 103, + "id" : 96, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.spgw_egress.gtpu_encap", - "id" : 104, + "id" : 97, "runtime_data" : [], "primitives" : [ { @@ -5822,7 +5538,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 125, + "line" : 129, "column" : 28, "source_fragment" : "5; ..." } @@ -5978,7 +5694,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 138, + "line" : 142, "column" : 32, "source_fragment" : "64; ..." } @@ -5997,7 +5713,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 122, + "line" : 126, "column" : 25, "source_fragment" : "17; ..." } @@ -6011,7 +5727,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] } ], "source_info" : { @@ -6030,7 +5746,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] } ], "source_info" : { @@ -6131,7 +5847,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] }, "right" : { "type" : "hexstr", @@ -6330,7 +6046,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] } ], "source_info" : { @@ -6349,7 +6065,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid25"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] } ], "source_info" : { @@ -6363,7 +6079,7 @@ }, { "name" : "FabricEgress.bng_egress.downstream.encap_v4", - "id" : 105, + "id" : 98, "runtime_data" : [], "primitives" : [ { @@ -6371,7 +6087,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -6380,7 +6096,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 114, + "line" : 118, "column" : 33, "source_fragment" : "0x8864; ..." } @@ -6395,7 +6111,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 271, + "line" : 270, "column" : 8, "source_fragment" : "hdr.pppoe.setValid()" } @@ -6414,7 +6130,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 272, + "line" : 271, "column" : 8, "source_fragment" : "hdr.pppoe.version = 4w1" } @@ -6433,7 +6149,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 273, + "line" : 272, "column" : 8, "source_fragment" : "hdr.pppoe.type_id = 4w1" } @@ -6452,7 +6168,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 274, + "line" : 273, "column" : 8, "source_fragment" : "hdr.pppoe.code = 8w0" } @@ -6466,12 +6182,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"] + "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 275, + "line" : 274, "column" : 8, "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..." } @@ -6485,12 +6201,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 276, + "line" : 275, "column" : 8, "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)" } @@ -6532,7 +6248,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 281, + "line" : 280, "column" : 8, "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2" } @@ -6551,7 +6267,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 116, + "line" : 120, "column" : 35, "source_fragment" : "0x0021; ..." } @@ -6560,7 +6276,7 @@ }, { "name" : "FabricEgress.bng_egress.downstream.encap_v6", - "id" : 106, + "id" : 99, "runtime_data" : [], "primitives" : [ { @@ -6568,7 +6284,7 @@ "parameters" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -6577,7 +6293,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 114, + "line" : 118, "column" : 33, "source_fragment" : "0x8864; ..." } @@ -6592,7 +6308,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 271, + "line" : 270, "column" : 8, "source_fragment" : "hdr.pppoe.setValid()" } @@ -6611,7 +6327,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 272, + "line" : 271, "column" : 8, "source_fragment" : "hdr.pppoe.version = 4w1" } @@ -6630,7 +6346,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 273, + "line" : 272, "column" : 8, "source_fragment" : "hdr.pppoe.type_id = 4w1" } @@ -6649,7 +6365,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 274, + "line" : 273, "column" : 8, "source_fragment" : "hdr.pppoe.code = 8w0" } @@ -6663,12 +6379,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"] + "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 275, + "line" : 274, "column" : 8, "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..." } @@ -6682,12 +6398,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_line_id29"] + "value" : ["scalars", "fabric_metadata_t._bng_line_id25"] } ], "source_info" : { "filename" : "include/bng.p4", - "line" : 276, + "line" : 275, "column" : 8, "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)" } @@ -6729,7 +6445,7 @@ ], "source_info" : { "filename" : "include/bng.p4", - "line" : 288, + "line" : 287, "column" : 8, "source_fragment" : "hdr.pppoe.length = hdr.ipv6.payload_len + 16w42" } @@ -6748,7 +6464,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 117, + "line" : 121, "column" : 35, "source_fragment" : "0x0057; ..." } @@ -6757,7 +6473,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp", - "id" : 107, + "id" : 100, "runtime_data" : [ { "name" : "max_hop", @@ -6825,7 +6541,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 153, + "line" : 157, "column" : 36, "source_fragment" : "4; ..." } @@ -7116,7 +6832,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] } ], "source_info" : { @@ -7243,7 +6959,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 149, + "line" : 153, "column" : 24, "source_fragment" : "0x1; ..." } @@ -7252,7 +6968,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata", - "id" : 108, + "id" : 101, "runtime_data" : [ { "name" : "switch_id", @@ -7265,7 +6981,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit31"] }, { "type" : "expression", @@ -7294,7 +7010,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] }, { "type" : "runtime_data", @@ -7312,13 +7028,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", - "id" : 109, + "id" : 102, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", - "id" : 110, + "id" : 103, "runtime_data" : [], "primitives" : [ { @@ -7392,7 +7108,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -7406,7 +7122,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -7434,7 +7150,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -7448,7 +7164,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -7475,7 +7191,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", - "id" : 111, + "id" : 104, "runtime_data" : [], "primitives" : [ { @@ -7517,7 +7233,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -7531,7 +7247,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -7559,7 +7275,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -7573,7 +7289,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -7600,7 +7316,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", - "id" : 112, + "id" : 105, "runtime_data" : [], "primitives" : [ { @@ -7708,7 +7424,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -7722,7 +7438,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -7750,7 +7466,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -7764,7 +7480,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -7791,7 +7507,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", - "id" : 113, + "id" : 106, "runtime_data" : [], "primitives" : [ { @@ -7878,7 +7594,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -7892,7 +7608,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -7920,7 +7636,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -7934,7 +7650,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -7961,7 +7677,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", - "id" : 114, + "id" : 107, "runtime_data" : [], "primitives" : [ { @@ -8114,7 +7830,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -8128,7 +7844,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -8156,7 +7872,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -8170,7 +7886,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -8197,7 +7913,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", - "id" : 115, + "id" : 108, "runtime_data" : [], "primitives" : [ { @@ -8318,7 +8034,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -8332,7 +8048,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -8360,7 +8076,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -8374,7 +8090,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -8401,7 +8117,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", - "id" : 116, + "id" : 109, "runtime_data" : [], "primitives" : [ { @@ -8588,7 +8304,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -8602,7 +8318,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -8630,7 +8346,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -8644,7 +8360,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -8671,7 +8387,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", - "id" : 117, + "id" : 110, "runtime_data" : [], "primitives" : [ { @@ -8698,7 +8414,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -8713,7 +8429,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -8727,7 +8443,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -8755,7 +8471,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -8769,7 +8485,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -8796,7 +8512,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", - "id" : 118, + "id" : 111, "runtime_data" : [], "primitives" : [ { @@ -8889,7 +8605,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -8904,7 +8620,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -8918,7 +8634,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -8946,7 +8662,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -8960,7 +8676,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -8987,7 +8703,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", - "id" : 119, + "id" : 112, "runtime_data" : [], "primitives" : [ { @@ -9048,7 +8764,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -9063,7 +8779,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -9077,7 +8793,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -9105,7 +8821,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -9119,7 +8835,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -9146,7 +8862,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", - "id" : 120, + "id" : 113, "runtime_data" : [], "primitives" : [ { @@ -9273,7 +8989,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -9288,7 +9004,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -9302,7 +9018,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -9330,7 +9046,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -9344,7 +9060,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -9371,7 +9087,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", - "id" : 121, + "id" : 114, "runtime_data" : [], "primitives" : [ { @@ -9477,7 +9193,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -9492,7 +9208,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -9506,7 +9222,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -9534,7 +9250,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -9548,7 +9264,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -9575,7 +9291,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", - "id" : 122, + "id" : 115, "runtime_data" : [], "primitives" : [ { @@ -9747,7 +9463,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -9762,7 +9478,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -9776,7 +9492,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -9804,7 +9520,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -9818,7 +9534,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -9845,7 +9561,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", - "id" : 123, + "id" : 116, "runtime_data" : [], "primitives" : [ { @@ -9985,7 +9701,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -10000,7 +9716,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10014,7 +9730,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10042,7 +9758,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10056,7 +9772,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10083,7 +9799,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", - "id" : 124, + "id" : 117, "runtime_data" : [], "primitives" : [ { @@ -10289,7 +10005,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id33"] } ], "source_info" : { @@ -10304,7 +10020,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10318,7 +10034,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10346,7 +10062,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10360,7 +10076,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10387,13 +10103,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", - "id" : 125, + "id" : 118, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", - "id" : 126, + "id" : 119, "runtime_data" : [], "primitives" : [ { @@ -10435,7 +10151,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10449,7 +10165,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10477,7 +10193,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10491,7 +10207,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10518,7 +10234,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", - "id" : 127, + "id" : 120, "runtime_data" : [], "primitives" : [ { @@ -10579,7 +10295,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10593,7 +10309,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10621,7 +10337,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10635,7 +10351,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10662,7 +10378,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", - "id" : 128, + "id" : 121, "runtime_data" : [], "primitives" : [ { @@ -10757,7 +10473,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10771,7 +10487,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10799,7 +10515,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10813,7 +10529,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10840,7 +10556,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", - "id" : 129, + "id" : 122, "runtime_data" : [], "primitives" : [ { @@ -10905,7 +10621,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -10919,7 +10635,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -10947,7 +10663,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -10961,7 +10677,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -10988,7 +10704,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", - "id" : 130, + "id" : 123, "runtime_data" : [], "primitives" : [ { @@ -11087,7 +10803,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11101,7 +10817,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -11129,7 +10845,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -11143,7 +10859,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -11170,7 +10886,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", - "id" : 131, + "id" : 124, "runtime_data" : [], "primitives" : [ { @@ -11288,7 +11004,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11302,7 +11018,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -11330,7 +11046,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -11344,7 +11060,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -11371,7 +11087,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", - "id" : 132, + "id" : 125, "runtime_data" : [], "primitives" : [ { @@ -11523,7 +11239,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11537,7 +11253,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -11565,7 +11281,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -11579,7 +11295,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -11606,7 +11322,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", - "id" : 133, + "id" : 126, "runtime_data" : [], "primitives" : [ { @@ -11648,7 +11364,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11662,7 +11378,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -11690,7 +11406,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -11704,7 +11420,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -11731,7 +11447,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", - "id" : 134, + "id" : 127, "runtime_data" : [], "primitives" : [ { @@ -11807,7 +11523,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11821,7 +11537,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -11849,7 +11565,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -11863,7 +11579,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -11890,7 +11606,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", - "id" : 135, + "id" : 128, "runtime_data" : [], "primitives" : [ { @@ -11985,7 +11701,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -11999,7 +11715,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -12027,7 +11743,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -12041,7 +11757,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -12068,7 +11784,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", - "id" : 136, + "id" : 129, "runtime_data" : [], "primitives" : [ { @@ -12197,7 +11913,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -12211,7 +11927,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -12239,7 +11955,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -12253,7 +11969,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -12280,7 +11996,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", - "id" : 137, + "id" : 130, "runtime_data" : [], "primitives" : [ { @@ -12379,7 +12095,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -12393,7 +12109,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -12421,7 +12137,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -12435,7 +12151,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -12462,7 +12178,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", - "id" : 138, + "id" : 131, "runtime_data" : [], "primitives" : [ { @@ -12595,7 +12311,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -12609,7 +12325,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -12637,7 +12353,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -12651,7 +12367,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -12678,7 +12394,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", - "id" : 139, + "id" : 132, "runtime_data" : [], "primitives" : [ { @@ -12830,7 +12546,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -12844,7 +12560,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -12872,7 +12588,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -12886,7 +12602,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -12913,7 +12629,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", - "id" : 140, + "id" : 133, "runtime_data" : [], "primitives" : [ { @@ -13099,7 +12815,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, { "type" : "expression", @@ -13113,7 +12829,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] }, "right" : { "type" : "hexstr", @@ -13141,7 +12857,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, { "type" : "expression", @@ -13155,7 +12871,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] }, "right" : { "type" : "hexstr", @@ -13182,7 +12898,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_report.do_report_encapsulation", - "id" : 141, + "id" : 134, "runtime_data" : [ { "name" : "src_mac", @@ -13264,7 +12980,7 @@ "parameters" : [ { "type" : "field", - "value" : ["report_ethernet", "eth_type"] + "value" : ["report_eth_type", "value"] }, { "type" : "hexstr", @@ -13273,7 +12989,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 110, + "line" : 114, "column" : 31, "source_fragment" : "0x0800; ..." } @@ -13501,7 +13217,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 122, + "line" : 126, "column" : 25, "source_fragment" : "17; ..." } @@ -13687,7 +13403,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 159, + "line" : 163, "column" : 31, "source_fragment" : "0; ..." } @@ -13782,7 +13498,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 163, + "line" : 167, "column" : 21, "source_fragment" : "1; ..." } @@ -13829,7 +13545,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_sink.restore_header", - "id" : 142, + "id" : 135, "runtime_data" : [], "primitives" : [ { @@ -13874,7 +13590,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_sink.int_sink", - "id" : 143, + "id" : 136, "runtime_data" : [], "primitives" : [ { @@ -14205,7 +13921,7 @@ }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 144, + "id" : 137, "runtime_data" : [], "primitives" : [ { @@ -14218,7 +13934,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -14228,25 +13944,25 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, - "column" : 38, - "source_fragment" : "= fabric_metadata.ip_eth_type; ..." + "line" : 272, + "column" : 8, + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..." } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 145, + "id" : 138, "runtime_data" : [], "primitives" : [ { @@ -14259,7 +13975,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -14273,12 +13989,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..." } @@ -14297,7 +14013,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -14316,7 +14032,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -14330,12 +14046,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..." } @@ -14345,7 +14061,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -14354,7 +14070,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -14363,7 +14079,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 146, + "id" : 139, "runtime_data" : [], "primitives" : [ { @@ -14376,7 +14092,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -14390,12 +14106,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -14409,12 +14125,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -14427,15 +14143,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -14447,40 +14163,21 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 147, + "id" : 140, "runtime_data" : [], "primitives" : [ { @@ -14493,7 +14190,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -14507,12 +14204,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -14526,12 +14223,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -14544,15 +14241,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -14564,40 +14261,21 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.push_inner_vlan", - "id" : 148, + "id" : 141, "runtime_data" : [], "primitives" : [ { @@ -14610,7 +14288,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 296, + "line" : 300, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.setValid()" } @@ -14624,12 +14302,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 297, + "line" : 301, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..." } @@ -14643,12 +14321,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 298, + "line" : 302, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..." } @@ -14662,12 +14340,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"] + "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 299, + "line" : 303, "column" : 8, "source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..." } @@ -14679,25 +14357,6 @@ "type" : "field", "value" : ["inner_vlan_tag", "eth_type"] }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 300, - "column" : 8, - "source_fragment" : "hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." - } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - }, { "type" : "hexstr", "value" : "0x8100" @@ -14705,7 +14364,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 107, + "line" : 111, "column" : 31, "source_fragment" : "0x8100; ..." } @@ -14715,46 +14374,27 @@ "parameters" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["vlan_tag", "eth_type"] }, { "type" : "hexstr", - "value" : "0x88a8" + "value" : "0x8100" } ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 105, + "line" : 111, "column" : 31, - "source_fragment" : "0x88A8; ..." + "source_fragment" : "0x8100; ..." } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 149, + "id" : 142, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..." - } - }, { "op" : "remove_header", "parameters" : [ @@ -14765,7 +14405,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -14773,8 +14413,8 @@ ] }, { - "name" : "act_40", - "id" : 150, + "name" : "act_34", + "id" : 143, "runtime_data" : [], "primitives" : [ { @@ -14790,8 +14430,8 @@ ] }, { - "name" : "act_41", - "id" : 151, + "name" : "act_35", + "id" : 144, "runtime_data" : [], "primitives" : [ { @@ -14841,8 +14481,8 @@ ] }, { - "name" : "act_42", - "id" : 152, + "name" : "act_36", + "id" : 145, "runtime_data" : [], "primitives" : [ { @@ -14855,7 +14495,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -14863,8 +14503,8 @@ ] }, { - "name" : "act_43", - "id" : 153, + "name" : "act_37", + "id" : 146, "runtime_data" : [], "primitives" : [ { @@ -14893,8 +14533,8 @@ ] }, { - "name" : "act_44", - "id" : 154, + "name" : "act_38", + "id" : 147, "runtime_data" : [], "primitives" : [ { @@ -14923,8 +14563,8 @@ ] }, { - "name" : "act_45", - "id" : 155, + "name" : "act_39", + "id" : 148, "runtime_data" : [], "primitives" : [ { @@ -14937,7 +14577,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 351, + "line" : 353, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.setInvalid()" } @@ -14945,8 +14585,8 @@ ] }, { - "name" : "act_46", - "id" : 156, + "name" : "act_40", + "id" : 149, "runtime_data" : [], "primitives" : [ { @@ -14959,7 +14599,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -14967,8 +14607,8 @@ ] }, { - "name" : "act_47", - "id" : 157, + "name" : "act_41", + "id" : 150, "runtime_data" : [], "primitives" : [ { @@ -15008,7 +14648,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -15016,8 +14656,8 @@ ] }, { - "name" : "act_48", - "id" : 158, + "name" : "act_42", + "id" : 151, "runtime_data" : [], "primitives" : [ { @@ -15030,7 +14670,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -15038,8 +14678,8 @@ ] }, { - "name" : "act_49", - "id" : 159, + "name" : "act_43", + "id" : 152, "runtime_data" : [], "primitives" : [ { @@ -15079,7 +14719,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -15087,8 +14727,8 @@ ] }, { - "name" : "act_50", - "id" : 160, + "name" : "act_44", + "id" : 153, "runtime_data" : [], "primitives" : [ { @@ -15101,7 +14741,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 377, + "line" : 379, "column" : 45, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -15109,8 +14749,8 @@ ] }, { - "name" : "act_51", - "id" : 161, + "name" : "act_45", + "id" : 154, "runtime_data" : [], "primitives" : [ { @@ -15150,7 +14790,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 376, + "line" : 378, "column" : 16, "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1" } @@ -15158,8 +14798,8 @@ ] }, { - "name" : "act_52", - "id" : 162, + "name" : "act_46", + "id" : 155, "runtime_data" : [], "primitives" : [ { @@ -15188,8 +14828,8 @@ ] }, { - "name" : "act_53", - "id" : 163, + "name" : "act_47", + "id" : 156, "runtime_data" : [], "primitives" : [ { @@ -15224,8 +14864,8 @@ ] }, { - "name" : "act_54", - "id" : 164, + "name" : "act_48", + "id" : 157, "runtime_data" : [], "primitives" : [ { @@ -15251,7 +14891,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] } } }, @@ -15273,8 +14913,8 @@ ] }, { - "name" : "act_55", - "id" : 165, + "name" : "act_49", + "id" : 158, "runtime_data" : [], "primitives" : [ { @@ -15322,8 +14962,8 @@ ] }, { - "name" : "act_56", - "id" : 166, + "name" : "act_50", + "id" : 159, "runtime_data" : [], "primitives" : [ { @@ -15349,7 +14989,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes35"] } } }, @@ -15371,8 +15011,8 @@ ] }, { - "name" : "act_57", - "id" : 167, + "name" : "act_51", + "id" : 160, "runtime_data" : [], "primitives" : [ { @@ -15398,7 +15038,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words34"] } } }, @@ -15448,14 +15088,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [58], + "action_ids" : [57], "actions" : ["act_0"], "base_default_next" : "node_3", "next_tables" : { "act_0" : "node_3" }, "default_entry" : { - "action_id" : 58, + "action_id" : 57, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15477,14 +15117,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [57], + "action_ids" : [56], "actions" : ["act"], "base_default_next" : "node_5", "next_tables" : { "act" : "node_5" }, "default_entry" : { - "action_id" : 57, + "action_id" : 56, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15506,14 +15146,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [61], + "action_ids" : [60], "actions" : ["act_3"], "base_default_next" : "node_7", "next_tables" : { "act_3" : "node_7" }, "default_entry" : { - "action_id" : 61, + "action_id" : 60, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15535,14 +15175,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [59], + "action_ids" : [58], "actions" : ["act_1"], "base_default_next" : "node_10", "next_tables" : { "act_1" : "node_10" }, "default_entry" : { - "action_id" : 59, + "action_id" : 58, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15564,14 +15204,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [60], + "action_ids" : [59], "actions" : ["act_2"], "base_default_next" : "node_10", "next_tables" : { "act_2" : "node_10" }, "default_entry" : { - "action_id" : 60, + "action_id" : 59, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15593,14 +15233,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [62], + "action_ids" : [61], "actions" : ["act_4"], "base_default_next" : "node_12", "next_tables" : { "act_4" : "node_12" }, "default_entry" : { - "action_id" : 62, + "action_id" : 61, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15611,7 +15251,7 @@ "id" : 6, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -15622,14 +15262,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [63], + "action_ids" : [62], "actions" : ["act_5"], "base_default_next" : "node_14", "next_tables" : { "act_5" : "node_14" }, "default_entry" : { - "action_id" : 63, + "action_id" : 62, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15640,7 +15280,7 @@ "id" : 7, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 116, + "line" : 117, "column" : 42, "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..." }, @@ -15651,14 +15291,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [64], + "action_ids" : [63], "actions" : ["act_6"], "base_default_next" : "node_16", "next_tables" : { "act_6" : "node_16" }, "default_entry" : { - "action_id" : 64, + "action_id" : 63, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15669,7 +15309,7 @@ "id" : 8, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -15680,143 +15320,27 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [65], + "action_ids" : [64], "actions" : ["act_7"], - "base_default_next" : "node_18", + "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_7" : "node_18" + "act_7" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { - "action_id" : 65, + "action_id" : 64, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_8", + "name" : "FabricIngress.filtering.ingress_port_vlan", "id" : 9, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [66], - "actions" : ["act_8"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_8" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 66, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_9", - "id" : 10, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [67], - "actions" : ["act_9"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_9" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 67, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_10", - "id" : 11, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [68], - "actions" : ["act_10"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_10" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 68, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_11", - "id" : 12, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [69], - "actions" : ["act_11"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_11" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 69, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 13, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 53, - "column" : 10, - "source_fragment" : "ingress_port_vlan" + "line" : 53, + "column" : 10, + "source_fragment" : "ingress_port_vlan" }, "key" : [ { @@ -15850,7 +15374,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [32, 33, 34], + "action_ids" : [31, 32, 33], "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"], "base_default_next" : "FabricIngress.filtering.fwd_classifier", "next_tables" : { @@ -15859,7 +15383,7 @@ "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier" }, "default_entry" : { - "action_id" : 32, + "action_id" : 31, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15867,10 +15391,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 14, + "id" : 10, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -15888,21 +15412,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t._is_ipv41"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t._is_ipv62"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t._is_mpls3"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"], "mask" : null } ], @@ -15912,22 +15430,22 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [35], + "action_ids" : [34], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "tbl_act_12", + "base_default_next" : "tbl_act_8", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "tbl_act_12" + "FabricIngress.filtering.set_forwarding_type" : "tbl_act_8" }, "default_entry" : { - "action_id" : 35, + "action_id" : 34, "action_const" : true, "action_data" : ["0x0"], "action_entry_const" : true } }, { - "name" : "tbl_act_12", - "id" : 15, + "name" : "tbl_act_8", + "id" : 11, "key" : [], "match_type" : "exact", "type" : "simple", @@ -15935,14 +15453,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [78], - "actions" : ["act_20"], - "base_default_next" : "node_28", + "action_ids" : [73], + "actions" : ["act_16"], + "base_default_next" : "node_21", "next_tables" : { - "act_20" : "node_28" + "act_16" : "node_21" }, "default_entry" : { - "action_id" : 78, + "action_id" : 73, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -15950,7 +15468,7 @@ }, { "name" : "FabricIngress.spgw_ingress.s1u_filter_table", - "id" : 16, + "id" : 12, "source_info" : { "filename" : "include/spgw.p4", "line" : 83, @@ -15975,8 +15493,8 @@ "actions" : ["nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_13", - "__MISS__" : "tbl_act_14" + "__HIT__" : "tbl_act_9", + "__MISS__" : "tbl_act_10" }, "default_entry" : { "action_id" : 1, @@ -15986,8 +15504,8 @@ } }, { - "name" : "tbl_act_13", - "id" : 17, + "name" : "tbl_act_9", + "id" : 13, "key" : [], "match_type" : "exact", "type" : "simple", @@ -15995,22 +15513,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [70], - "actions" : ["act_12"], - "base_default_next" : "node_32", + "action_ids" : [65], + "actions" : ["act_8"], + "base_default_next" : "node_25", "next_tables" : { - "act_12" : "node_32" + "act_8" : "node_25" }, "default_entry" : { - "action_id" : 70, + "action_id" : 65, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 18, + "name" : "tbl_act_10", + "id" : 14, "key" : [], "match_type" : "exact", "type" : "simple", @@ -16018,22 +15536,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [71], - "actions" : ["act_13"], - "base_default_next" : "node_32", + "action_ids" : [66], + "actions" : ["act_9"], + "base_default_next" : "node_25", "next_tables" : { - "act_13" : "node_32" + "act_9" : "node_25" }, "default_entry" : { - "action_id" : 71, + "action_id" : 66, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 19, + "name" : "tbl_act_11", + "id" : 15, "source_info" : { "filename" : "include/spgw.p4", "line" : 149, @@ -16047,22 +15565,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [72], - "actions" : ["act_14"], - "base_default_next" : "tbl_act_16", + "action_ids" : [67], + "actions" : ["act_10"], + "base_default_next" : "tbl_act_12", "next_tables" : { - "act_14" : "tbl_act_16" + "act_10" : "tbl_act_12" }, "default_entry" : { - "action_id" : 72, + "action_id" : 67, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_16", - "id" : 20, + "name" : "tbl_act_12", + "id" : 16, "source_info" : { "filename" : "include/spgw.p4", "line" : 151, @@ -16076,14 +15594,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [73], - "actions" : ["act_15"], + "action_ids" : [68], + "actions" : ["act_11"], "base_default_next" : "tbl_spgw_ingress_gtpu_decap", "next_tables" : { - "act_15" : "tbl_spgw_ingress_gtpu_decap" + "act_11" : "tbl_spgw_ingress_gtpu_decap" }, "default_entry" : { - "action_id" : 73, + "action_id" : 68, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16091,7 +15609,7 @@ }, { "name" : "tbl_spgw_ingress_gtpu_decap", - "id" : 21, + "id" : 17, "source_info" : { "filename" : "include/spgw.p4", "line" : 152, @@ -16105,14 +15623,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [16], + "action_ids" : [15], "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"], - "base_default_next" : "node_42", + "base_default_next" : "node_35", "next_tables" : { - "FabricIngress.spgw_ingress.gtpu_decap" : "node_42" + "FabricIngress.spgw_ingress.gtpu_decap" : "node_35" }, "default_entry" : { - "action_id" : 16, + "action_id" : 15, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16120,7 +15638,7 @@ }, { "name" : "FabricIngress.spgw_ingress.dl_sess_lookup", - "id" : 22, + "id" : 18, "source_info" : { "filename" : "include/spgw.p4", "line" : 70, @@ -16141,12 +15659,12 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [17, 0], + "action_ids" : [16, 0], "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_17", - "__MISS__" : "tbl_act_18" + "__HIT__" : "tbl_act_13", + "__MISS__" : "tbl_act_14" }, "default_entry" : { "action_id" : 0, @@ -16156,8 +15674,8 @@ } }, { - "name" : "tbl_act_17", - "id" : 23, + "name" : "tbl_act_13", + "id" : 19, "key" : [], "match_type" : "exact", "type" : "simple", @@ -16165,22 +15683,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [74], - "actions" : ["act_16"], - "base_default_next" : "node_39", + "action_ids" : [69], + "actions" : ["act_12"], + "base_default_next" : "node_32", "next_tables" : { - "act_16" : "node_39" + "act_12" : "node_32" }, "default_entry" : { - "action_id" : 74, + "action_id" : 69, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_18", - "id" : 24, + "name" : "tbl_act_14", + "id" : 20, "key" : [], "match_type" : "exact", "type" : "simple", @@ -16188,22 +15706,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [75], - "actions" : ["act_17"], - "base_default_next" : "node_39", + "action_ids" : [70], + "actions" : ["act_13"], + "base_default_next" : "node_32", "next_tables" : { - "act_17" : "node_39" + "act_13" : "node_32" }, "default_entry" : { - "action_id" : 75, + "action_id" : 70, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_19", - "id" : 25, + "name" : "tbl_act_15", + "id" : 21, "source_info" : { "filename" : "include/spgw.p4", "line" : 154, @@ -16217,22 +15735,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [76], - "actions" : ["act_18"], - "base_default_next" : "node_42", + "action_ids" : [71], + "actions" : ["act_14"], + "base_default_next" : "node_35", "next_tables" : { - "act_18" : "node_42" + "act_14" : "node_35" }, "default_entry" : { - "action_id" : 76, + "action_id" : 71, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_20", - "id" : 26, + "name" : "tbl_act_16", + "id" : 22, "source_info" : { "filename" : "include/spgw.p4", "line" : 156, @@ -16246,22 +15764,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [77], - "actions" : ["act_19"], - "base_default_next" : "node_42", + "action_ids" : [72], + "actions" : ["act_15"], + "base_default_next" : "node_35", "next_tables" : { - "act_19" : "node_42" + "act_15" : "node_35" }, "default_entry" : { - "action_id" : 77, + "action_id" : 72, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_21", - "id" : 27, + "name" : "tbl_act_17", + "id" : 23, "source_info" : { "filename" : "include/spgw.p4", "line" : 175, @@ -16275,14 +15793,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [79], - "actions" : ["act_21"], - "base_default_next" : "node_44", + "action_ids" : [74], + "actions" : ["act_17"], + "base_default_next" : "node_37", "next_tables" : { - "act_21" : "node_44" + "act_17" : "node_37" }, "default_entry" : { - "action_id" : 79, + "action_id" : 74, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16290,7 +15808,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 28, + "id" : 24, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -16301,7 +15819,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -16317,7 +15835,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [36, 7], + "action_ids" : [35, 6], "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -16325,7 +15843,7 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 7, + "action_id" : 6, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16333,7 +15851,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 29, + "id" : 25, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -16344,7 +15862,7 @@ { "match_type" : "exact", "name" : "mpls_label", - "target" : ["scalars", "fabric_metadata_t._mpls_label12"], + "target" : ["scalars", "fabric_metadata_t._mpls_label8"], "mask" : null } ], @@ -16354,7 +15872,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [37, 8], + "action_ids" : [36, 7], "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -16362,7 +15880,7 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 8, + "action_id" : 7, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16370,10 +15888,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 30, + "id" : 26, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -16388,10 +15906,10 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [38, 39, 9], + "action_ids" : [37, 38, 8], "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -16400,18 +15918,18 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 9, - "action_const" : true, + "action_id" : 8, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.forwarding.routing_v6", - "id" : 31, + "id" : 27, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 126, + "line" : 135, "column" : 10, "source_fragment" : "routing_v6" }, @@ -16429,7 +15947,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [40, 10], + "action_ids" : [39, 9], "actions" : ["FabricIngress.forwarding.set_next_id_routing_v6", "nop"], "base_default_next" : "FabricIngress.acl.acl", "next_tables" : { @@ -16437,7 +15955,7 @@ "nop" : "FabricIngress.acl.acl" }, "default_entry" : { - "action_id" : 10, + "action_id" : 9, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16445,7 +15963,7 @@ }, { "name" : "FabricIngress.acl.acl", - "id" : 32, + "id" : 28, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -16462,19 +15980,19 @@ { "match_type" : "ternary", "name" : "ip_proto", - "target" : ["scalars", "fabric_metadata_t._ip_proto20"], + "target" : ["scalars", "fabric_metadata_t._ip_proto16"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport21"], + "target" : ["scalars", "fabric_metadata_t._l4_sport17"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport22"], + "target" : ["scalars", "fabric_metadata_t._l4_dport18"], "mask" : null }, { @@ -16498,7 +16016,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t._last_eth_type0"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -16532,18 +16050,18 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [41, 42, 43, 44, 45], + "action_ids" : [40, 41, 42, 43, 44], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_54", + "base_default_next" : "node_47", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_54", - "FabricIngress.acl.punt_to_cpu" : "node_54", - "FabricIngress.acl.set_clone_session_id" : "node_54", - "FabricIngress.acl.drop" : "node_54", - "FabricIngress.acl.nop_acl" : "node_54" + "FabricIngress.acl.set_next_id_acl" : "node_47", + "FabricIngress.acl.punt_to_cpu" : "node_47", + "FabricIngress.acl.set_clone_session_id" : "node_47", + "FabricIngress.acl.drop" : "node_47", + "FabricIngress.acl.nop_acl" : "node_47" }, "default_entry" : { - "action_id" : 45, + "action_id" : 44, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16551,10 +16069,10 @@ }, { "name" : "FabricIngress.next.xconnect", - "id" : 33, + "id" : 29, "source_info" : { "filename" : "include/control/next.p4", - "line" : 116, + "line" : 119, "column" : 10, "source_fragment" : "xconnect" }, @@ -16568,7 +16086,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -16578,7 +16096,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [48, 49, 12], + "action_ids" : [47, 48, 11], "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"], "base_default_next" : "FabricIngress.next.simple", "next_tables" : { @@ -16587,7 +16105,7 @@ "nop" : "FabricIngress.next.simple" }, "default_entry" : { - "action_id" : 12, + "action_id" : 11, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16595,10 +16113,10 @@ }, { "name" : "FabricIngress.next.simple", - "id" : 34, + "id" : 30, "source_info" : { "filename" : "include/control/next.p4", - "line" : 155, + "line" : 158, "column" : 10, "source_fragment" : "simple" }, @@ -16606,7 +16124,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -16616,7 +16134,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [50, 51, 52, 13], + "action_ids" : [49, 50, 51, 12], "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "FabricIngress.next.mpls_routing_simple", "nop"], "base_default_next" : "FabricIngress.next.hashed", "next_tables" : { @@ -16626,7 +16144,7 @@ "nop" : "FabricIngress.next.hashed" }, "default_entry" : { - "action_id" : 13, + "action_id" : 12, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16634,10 +16152,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 35, + "id" : 31, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -16645,7 +16163,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -16656,7 +16174,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [53, 54, 55, 14], + "action_ids" : [52, 53, 54, 13], "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"], "base_default_next" : "FabricIngress.next.multicast", "next_tables" : { @@ -16668,10 +16186,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 36, + "id" : 32, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -16679,7 +16197,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -16689,7 +16207,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [56, 15], + "action_ids" : [55, 14], "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"], "base_default_next" : "FabricIngress.next.next_vlan", "next_tables" : { @@ -16697,7 +16215,7 @@ "nop" : "FabricIngress.next.next_vlan" }, "default_entry" : { - "action_id" : 15, + "action_id" : 14, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16705,10 +16223,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 37, + "id" : 33, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -16716,7 +16234,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id17"], + "target" : ["scalars", "fabric_metadata_t._next_id13"], "mask" : null } ], @@ -16726,24 +16244,24 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [46, 47, 11], + "action_ids" : [45, 46, 10], "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"], - "base_default_next" : "node_60", + "base_default_next" : "node_53", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_60", - "FabricIngress.next.set_double_vlan" : "node_60", - "nop" : "node_60" + "FabricIngress.next.set_vlan" : "node_53", + "FabricIngress.next.set_double_vlan" : "node_53", + "nop" : "node_53" }, "default_entry" : { - "action_id" : 11, + "action_id" : 10, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_22", - "id" : 38, + "name" : "tbl_act_18", + "id" : 34, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -16757,22 +16275,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [80], - "actions" : ["act_22"], - "base_default_next" : "node_62", + "action_ids" : [75], + "actions" : ["act_18"], + "base_default_next" : "node_55", "next_tables" : { - "act_22" : "node_62" + "act_18" : "node_55" }, "default_entry" : { - "action_id" : 80, + "action_id" : 75, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_23", - "id" : 39, + "name" : "tbl_act_19", + "id" : 35, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -16786,14 +16304,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [81], - "actions" : ["act_23"], + "action_ids" : [76], + "actions" : ["act_19"], "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source", "next_tables" : { - "act_23" : "FabricIngress.process_set_source_sink.tb_set_source" + "act_19" : "FabricIngress.process_set_source_sink.tb_set_source" }, "default_entry" : { - "action_id" : 81, + "action_id" : 76, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16801,7 +16319,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.tb_set_source", - "id" : 40, + "id" : 36, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 46, @@ -16822,7 +16340,7 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [18, 2], + "action_ids" : [17, 2], "actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"], "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink", "next_tables" : { @@ -16838,7 +16356,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.tb_set_sink", - "id" : 41, + "id" : 37, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 67, @@ -16859,12 +16377,12 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [19, 3], + "action_ids" : [18, 3], "actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "nop"], - "base_default_next" : "node_66", + "base_default_next" : "node_59", "next_tables" : { - "FabricIngress.process_set_source_sink.int_set_sink" : "node_66", - "nop" : "node_66" + "FabricIngress.process_set_source_sink.int_set_sink" : "node_59", + "nop" : "node_59" }, "default_entry" : { "action_id" : 3, @@ -16874,71 +16392,13 @@ } }, { - "name" : "tbl_act_24", - "id" : 42, - "source_info" : { - "filename" : "include/int/int_main.p4", - "line" : 89, - "column" : 12, - "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [82], - "actions" : ["act_24"], - "base_default_next" : "node_68", - "next_tables" : { - "act_24" : "node_68" - }, - "default_entry" : { - "action_id" : 82, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_25", - "id" : 43, - "source_info" : { - "filename" : "include/bng.p4", - "line" : 339, - "column" : 22, - "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [83], - "actions" : ["act_25"], - "base_default_next" : "FabricIngress.bng_ingress.t_line_map", - "next_tables" : { - "act_25" : "FabricIngress.bng_ingress.t_line_map" - }, - "default_entry" : { - "action_id" : 83, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_26", - "id" : 44, + "name" : "tbl_act_20", + "id" : 38, "source_info" : { - "filename" : "include/bng.p4", - "line" : 344, - "column" : 22, - "source_fragment" : "= fmeta.vlan_id; ..." + "filename" : "include/int/int_main.p4", + "line" : 89, + "column" : 12, + "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)" }, "key" : [], "match_type" : "exact", @@ -16947,14 +16407,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [84], - "actions" : ["act_26"], + "action_ids" : [77], + "actions" : ["act_20"], "base_default_next" : "FabricIngress.bng_ingress.t_line_map", "next_tables" : { - "act_26" : "FabricIngress.bng_ingress.t_line_map" + "act_20" : "FabricIngress.bng_ingress.t_line_map" }, "default_entry" : { - "action_id" : 84, + "action_id" : 77, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -16962,10 +16422,10 @@ }, { "name" : "FabricIngress.bng_ingress.t_line_map", - "id" : 45, + "id" : 39, "source_info" : { "filename" : "include/bng.p4", - "line" : 324, + "line" : 320, "column" : 14, "source_fragment" : "t_line_map" }, @@ -16973,13 +16433,13 @@ { "match_type" : "exact", "name" : "s_tag", - "target" : ["scalars", "bng_ingress_s_tag"], + "target" : ["scalars", "fabric_metadata_t._bng_s_tag28"], "mask" : null }, { "match_type" : "exact", "name" : "c_tag", - "target" : ["scalars", "bng_ingress_c_tag"], + "target" : ["scalars", "fabric_metadata_t._bng_c_tag29"], "mask" : null } ], @@ -16989,26 +16449,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [6, 31], - "actions" : ["nop", "FabricIngress.bng_ingress.set_line"], - "base_default_next" : "node_72", + "action_ids" : [30], + "actions" : ["FabricIngress.bng_ingress.set_line"], + "base_default_next" : "node_62", "next_tables" : { - "nop" : "node_72", - "FabricIngress.bng_ingress.set_line" : "node_72" + "FabricIngress.bng_ingress.set_line" : "node_62" }, "default_entry" : { - "action_id" : 6, + "action_id" : 30, "action_const" : true, - "action_data" : [], + "action_data" : ["0x0"], "action_entry_const" : true } }, { - "name" : "tbl_act_27", - "id" : 46, + "name" : "tbl_act_21", + "id" : 40, "source_info" : { "filename" : "include/bng.p4", - "line" : 353, + "line" : 339, "column" : 31, "source_fragment" : "=" }, @@ -17019,14 +16478,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [87], - "actions" : ["act_29"], + "action_ids" : [80], + "actions" : ["act_23"], "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp", "next_tables" : { - "act_29" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp" + "act_23" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp" }, "default_entry" : { - "action_id" : 87, + "action_id" : 80, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17034,7 +16493,7 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp", - "id" : 47, + "id" : 41, "source_info" : { "filename" : "include/bng.p4", "line" : 48, @@ -17061,12 +16520,12 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [20, 4], + "action_ids" : [19, 4], "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_28", - "__MISS__" : "tbl_act_29" + "__HIT__" : "tbl_act_22", + "__MISS__" : "tbl_act_23" }, "default_entry" : { "action_id" : 4, @@ -17076,8 +16535,8 @@ } }, { - "name" : "tbl_act_28", - "id" : 48, + "name" : "tbl_act_22", + "id" : 42, "key" : [], "match_type" : "exact", "type" : "simple", @@ -17085,22 +16544,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [85], - "actions" : ["act_27"], - "base_default_next" : "node_77", + "action_ids" : [78], + "actions" : ["act_21"], + "base_default_next" : "node_67", "next_tables" : { - "act_27" : "node_77" + "act_21" : "node_67" }, "default_entry" : { - "action_id" : 85, + "action_id" : 78, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_29", - "id" : 49, + "name" : "tbl_act_23", + "id" : 43, "key" : [], "match_type" : "exact", "type" : "simple", @@ -17108,25 +16567,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [86], - "actions" : ["act_28"], - "base_default_next" : "node_77", + "action_ids" : [79], + "actions" : ["act_22"], + "base_default_next" : "node_67", "next_tables" : { - "act_28" : "node_77" + "act_22" : "node_67" }, "default_entry" : { - "action_id" : 86, + "action_id" : 79, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_30", - "id" : 50, + "name" : "tbl_act_24", + "id" : 44, "source_info" : { "filename" : "include/bng.p4", - "line" : 124, + "line" : 123, "column" : 12, "source_fragment" : "return" }, @@ -17137,14 +16596,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [88], - "actions" : ["act_30"], - "base_default_next" : "node_79", + "action_ids" : [81], + "actions" : ["act_24"], + "base_default_next" : "node_69", "next_tables" : { - "act_30" : "node_79" + "act_24" : "node_69" }, "default_entry" : { - "action_id" : 88, + "action_id" : 81, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17152,10 +16611,10 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4", - "id" : 51, + "id" : 45, "source_info" : { "filename" : "include/bng.p4", - "line" : 85, + "line" : 84, "column" : 10, "source_fragment" : "t_pppoe_term_v4" }, @@ -17163,7 +16622,7 @@ { "match_type" : "exact", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id29"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id25"], "mask" : null }, { @@ -17185,26 +16644,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [23, 21], + "action_ids" : [22, 20], "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_31", + "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_25", "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null }, "default_entry" : { - "action_id" : 21, + "action_id" : 20, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_31", - "id" : 52, + "name" : "tbl_act_25", + "id" : 46, "source_info" : { "filename" : "include/bng.p4", - "line" : 129, + "line" : 128, "column" : 20, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" }, @@ -17215,25 +16674,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [89], - "actions" : ["act_31"], + "action_ids" : [82], + "actions" : ["act_25"], "base_default_next" : null, "next_tables" : { - "act_31" : null + "act_25" : null }, "default_entry" : { - "action_id" : 89, + "action_id" : 82, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_32", - "id" : 53, + "name" : "tbl_act_26", + "id" : 47, "source_info" : { "filename" : "include/bng.p4", - "line" : 110, + "line" : 109, "column" : 12, "source_fragment" : "hdr.ipv6.src_addr[127:64]" }, @@ -17244,14 +16703,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [91], - "actions" : ["act_33"], + "action_ids" : [84], + "actions" : ["act_27"], "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6", "next_tables" : { - "act_33" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6" + "act_27" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6" }, "default_entry" : { - "action_id" : 91, + "action_id" : 84, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17259,10 +16718,10 @@ }, { "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6", - "id" : 54, + "id" : 48, "source_info" : { "filename" : "include/bng.p4", - "line" : 107, + "line" : 106, "column" : 10, "source_fragment" : "t_pppoe_term_v6" }, @@ -17270,7 +16729,7 @@ { "match_type" : "exact", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id29"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id25"], "mask" : null }, { @@ -17292,26 +16751,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [24, 22], + "action_ids" : [23, 21], "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v6", "FabricIngress.bng_ingress.upstream.term_disabled"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_33", + "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_27", "FabricIngress.bng_ingress.upstream.term_enabled_v6" : null }, "default_entry" : { - "action_id" : 22, + "action_id" : 21, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_33", - "id" : 55, + "name" : "tbl_act_27", + "id" : 49, "source_info" : { "filename" : "include/bng.p4", - "line" : 137, + "line" : 136, "column" : 19, "source_fragment" : "c_dropped.count(fmeta.bng.line_id)" }, @@ -17322,14 +16781,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [90], - "actions" : ["act_32"], + "action_ids" : [83], + "actions" : ["act_26"], "base_default_next" : null, "next_tables" : { - "act_32" : null + "act_26" : null }, "default_entry" : { - "action_id" : 90, + "action_id" : 83, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17337,10 +16796,10 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map", - "id" : 56, + "id" : 50, "source_info" : { "filename" : "include/bng.p4", - "line" : 167, + "line" : 166, "column" : 10, "source_fragment" : "t_line_session_map" }, @@ -17348,7 +16807,7 @@ { "match_type" : "exact", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id29"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id25"], "mask" : null } ], @@ -17358,12 +16817,12 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [5, 25, 26], + "action_ids" : [5, 24, 25], "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_34", - "__MISS__" : "tbl_act_35" + "__HIT__" : "tbl_act_28", + "__MISS__" : "tbl_act_29" }, "default_entry" : { "action_id" : 5, @@ -17373,8 +16832,8 @@ } }, { - "name" : "tbl_act_34", - "id" : 57, + "name" : "tbl_act_28", + "id" : 51, "key" : [], "match_type" : "exact", "type" : "simple", @@ -17382,22 +16841,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [92], - "actions" : ["act_34"], - "base_default_next" : "node_90", + "action_ids" : [85], + "actions" : ["act_28"], + "base_default_next" : "node_80", "next_tables" : { - "act_34" : "node_90" + "act_28" : "node_80" }, "default_entry" : { - "action_id" : 92, + "action_id" : 85, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_35", - "id" : 58, + "name" : "tbl_act_29", + "id" : 52, "key" : [], "match_type" : "exact", "type" : "simple", @@ -17405,14 +16864,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [93], - "actions" : ["act_35"], - "base_default_next" : "node_90", + "action_ids" : [86], + "actions" : ["act_29"], + "base_default_next" : "node_80", "next_tables" : { - "act_35" : "node_90" + "act_29" : "node_80" }, "default_entry" : { - "action_id" : 93, + "action_id" : 86, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17420,10 +16879,10 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4", - "id" : 59, + "id" : 53, "source_info" : { "filename" : "include/bng.p4", - "line" : 192, + "line" : 191, "column" : 10, "source_fragment" : "t_qos_v4" }, @@ -17431,7 +16890,7 @@ { "match_type" : "ternary", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id29"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id25"], "mask" : null }, { @@ -17459,26 +16918,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [27, 29], + "action_ids" : [26, 28], "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_36", - "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_37" + "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_30", + "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_31" }, "default_entry" : { - "action_id" : 29, + "action_id" : 28, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_36", - "id" : 60, + "name" : "tbl_act_30", + "id" : 54, "source_info" : { "filename" : "include/bng.p4", - "line" : 236, + "line" : 235, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -17489,25 +16948,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [94], - "actions" : ["act_36"], + "action_ids" : [87], + "actions" : ["act_30"], "base_default_next" : null, "next_tables" : { - "act_36" : null + "act_30" : null }, "default_entry" : { - "action_id" : 94, + "action_id" : 87, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_37", - "id" : 61, + "name" : "tbl_act_31", + "id" : 55, "source_info" : { "filename" : "include/bng.p4", - "line" : 239, + "line" : 238, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -17518,14 +16977,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [95], - "actions" : ["act_37"], + "action_ids" : [88], + "actions" : ["act_31"], "base_default_next" : null, "next_tables" : { - "act_37" : null + "act_31" : null }, "default_entry" : { - "action_id" : 95, + "action_id" : 88, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17533,10 +16992,10 @@ }, { "name" : "FabricIngress.bng_ingress.downstream.t_qos_v6", - "id" : 62, + "id" : 56, "source_info" : { "filename" : "include/bng.p4", - "line" : 208, + "line" : 207, "column" : 10, "source_fragment" : "t_qos_v6" }, @@ -17544,7 +17003,7 @@ { "match_type" : "ternary", "name" : "line_id", - "target" : ["scalars", "fabric_metadata_t._bng_line_id29"], + "target" : ["scalars", "fabric_metadata_t._bng_line_id25"], "mask" : null }, { @@ -17566,26 +17025,26 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [28, 30], + "action_ids" : [27, 29], "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"], "base_default_next" : null, "next_tables" : { - "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_38", - "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_39" + "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_32", + "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_33" }, "default_entry" : { - "action_id" : 30, + "action_id" : 29, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_38", - "id" : 63, + "name" : "tbl_act_32", + "id" : 57, "source_info" : { "filename" : "include/bng.p4", - "line" : 248, + "line" : 247, "column" : 24, "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -17596,25 +17055,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [96], - "actions" : ["act_38"], + "action_ids" : [89], + "actions" : ["act_32"], "base_default_next" : null, "next_tables" : { - "act_38" : null + "act_32" : null }, "default_entry" : { - "action_id" : 96, + "action_id" : 89, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_39", - "id" : 64, + "name" : "tbl_act_33", + "id" : 58, "source_info" : { "filename" : "include/bng.p4", - "line" : 251, + "line" : 250, "column" : 24, "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)" }, @@ -17625,14 +17084,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [97], - "actions" : ["act_39"], + "action_ids" : [90], + "actions" : ["act_33"], "base_default_next" : null, "next_tables" : { - "act_39" : null + "act_33" : null }, "default_entry" : { - "action_id" : 97, + "action_id" : 90, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -17645,7 +17104,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -17663,15 +17122,15 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto20"] + "value" : ["scalars", "fabric_metadata_t._ip_proto16"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport21"] + "value" : ["scalars", "fabric_metadata_t._l4_sport17"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport22"] + "value" : ["scalars", "fabric_metadata_t._l4_dport18"] } ] } @@ -17783,7 +17242,7 @@ "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -17806,7 +17265,7 @@ "id" : 5, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 115, + "line" : 116, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.isValid()" }, @@ -17829,7 +17288,7 @@ "id" : 6, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -17852,80 +17311,11 @@ } }, "true_next" : "tbl_act_7", - "false_next" : "node_18" - }, - { - "name" : "node_18", - "id" : 7, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_8", - "false_next" : "node_20" - }, - { - "name" : "node_20", - "id" : 8, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_21", - "false_next" : "tbl_act_11" + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { "name" : "node_21", - "id" : 9, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] - } - } - }, - "true_next" : "tbl_act_9", - "false_next" : "tbl_act_10" - }, - { - "name" : "node_28", - "id" : 10, + "id" : 7, "source_info" : { "filename" : "include/spgw.p4", "line" : 144, @@ -17947,8 +17337,8 @@ "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup" }, { - "name" : "node_32", - "id" : 11, + "name" : "node_25", + "id" : 8, "source_info" : { "filename" : "include/spgw.p4", "line" : 148, @@ -17973,12 +17363,12 @@ } } }, - "true_next" : "tbl_act_15", - "false_next" : "tbl_act_16" + "true_next" : "tbl_act_11", + "false_next" : "tbl_act_12" }, { - "name" : "node_39", - "id" : 12, + "name" : "node_32", + "id" : 9, "expression" : { "type" : "expression", "value" : { @@ -17990,12 +17380,12 @@ } } }, - "true_next" : "tbl_act_19", - "false_next" : "tbl_act_20" + "true_next" : "tbl_act_15", + "false_next" : "tbl_act_16" }, { - "name" : "node_42", - "id" : 13, + "name" : "node_35", + "id" : 10, "expression" : { "type" : "expression", "value" : { @@ -18014,12 +17404,12 @@ } } }, - "true_next" : "tbl_act_21", - "false_next" : "node_44" + "true_next" : "tbl_act_17", + "false_next" : "node_37" }, { - "name" : "node_44", - "id" : 14, + "name" : "node_37", + "id" : 11, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -18037,7 +17427,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] } } }, @@ -18047,15 +17437,15 @@ } } }, - "true_next" : "node_45", + "true_next" : "node_38", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_45", - "id" : 15, + "name" : "node_38", + "id" : 12, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -18065,7 +17455,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -18074,14 +17464,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_47" + "false_next" : "node_40" }, { - "name" : "node_47", - "id" : 16, + "name" : "node_40", + "id" : 13, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -18091,7 +17481,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -18100,14 +17490,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_49" + "false_next" : "node_42" }, { - "name" : "node_49", - "id" : 17, + "name" : "node_42", + "id" : 14, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -18117,7 +17507,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -18126,14 +17516,14 @@ } }, "true_next" : "FabricIngress.forwarding.routing_v4", - "false_next" : "node_51" + "false_next" : "node_44" }, { - "name" : "node_51", - "id" : 18, + "name" : "node_44", + "id" : 15, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 145, + "line" : 154, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST" }, @@ -18143,7 +17533,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type16"] + "value" : ["scalars", "fabric_metadata_t._fwd_type12"] }, "right" : { "type" : "hexstr", @@ -18155,8 +17545,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_54", - "id" : 19, + "name" : "node_47", + "id" : 16, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -18174,7 +17564,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next15"] + "value" : ["scalars", "fabric_metadata_t._skip_next11"] } } }, @@ -18185,11 +17575,11 @@ } }, "true_next" : "FabricIngress.next.xconnect", - "false_next" : "node_68" + "false_next" : "FabricIngress.bng_ingress.t_line_map" }, { - "name" : "node_60", - "id" : 20, + "name" : "node_53", + "id" : 17, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -18210,12 +17600,12 @@ } } }, - "true_next" : "tbl_act_22", - "false_next" : "node_62" + "true_next" : "tbl_act_18", + "false_next" : "node_55" }, { - "name" : "node_62", - "id" : 21, + "name" : "node_55", + "id" : 18, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -18236,12 +17626,12 @@ } } }, - "true_next" : "tbl_act_23", + "true_next" : "tbl_act_19", "false_next" : "FabricIngress.process_set_source_sink.tb_set_source" }, { - "name" : "node_66", - "id" : 22, + "name" : "node_59", + "id" : 19, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 86, @@ -18259,7 +17649,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"] + "value" : ["scalars", "fabric_metadata_t._int_meta_sink32"] } } }, @@ -18269,38 +17659,15 @@ } } }, - "true_next" : "tbl_act_24", - "false_next" : "node_68" + "true_next" : "tbl_act_20", + "false_next" : "FabricIngress.bng_ingress.t_line_map" }, { - "name" : "node_68", - "id" : 23, + "name" : "node_62", + "id" : 20, "source_info" : { "filename" : "include/bng.p4", "line" : 338, - "column" : 15, - "source_fragment" : "hdr.pppoe.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["pppoe", "$valid$"] - } - } - }, - "true_next" : "tbl_act_25", - "false_next" : "tbl_act_26" - }, - { - "name" : "node_72", - "id" : 24, - "source_info" : { - "filename" : "include/bng.p4", - "line" : 352, "column" : 16, "source_fragment" : "hdr.pppoe.isValid()" }, @@ -18315,12 +17682,12 @@ } } }, - "true_next" : "tbl_act_27", + "true_next" : "tbl_act_21", "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map" }, { - "name" : "node_77", - "id" : 25, + "name" : "node_67", + "id" : 21, "expression" : { "type" : "expression", "value" : { @@ -18332,12 +17699,12 @@ } } }, - "true_next" : "tbl_act_30", - "false_next" : "node_79" + "true_next" : "tbl_act_24", + "false_next" : "node_69" }, { - "name" : "node_79", - "id" : 26, + "name" : "node_69", + "id" : 22, "expression" : { "type" : "expression", "value" : { @@ -18357,14 +17724,14 @@ } }, "false_next" : null, - "true_next" : "node_80" + "true_next" : "node_70" }, { - "name" : "node_80", - "id" : 27, + "name" : "node_70", + "id" : 23, "source_info" : { "filename" : "include/bng.p4", - "line" : 126, + "line" : 125, "column" : 12, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -18380,14 +17747,14 @@ } }, "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4", - "false_next" : "node_83" + "false_next" : "node_73" }, { - "name" : "node_83", - "id" : 28, + "name" : "node_73", + "id" : 24, "source_info" : { "filename" : "include/bng.p4", - "line" : 134, + "line" : 133, "column" : 17, "source_fragment" : "hdr.ipv6.isValid()" }, @@ -18403,11 +17770,11 @@ } }, "false_next" : null, - "true_next" : "tbl_act_32" + "true_next" : "tbl_act_26" }, { - "name" : "node_90", - "id" : 29, + "name" : "node_80", + "id" : 25, "expression" : { "type" : "expression", "value" : { @@ -18420,14 +17787,14 @@ } }, "false_next" : null, - "true_next" : "node_91" + "true_next" : "node_81" }, { - "name" : "node_91", - "id" : 30, + "name" : "node_81", + "id" : 26, "source_info" : { "filename" : "include/bng.p4", - "line" : 233, + "line" : 232, "column" : 16, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -18443,14 +17810,14 @@ } }, "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4", - "false_next" : "node_95" + "false_next" : "node_85" }, { - "name" : "node_95", - "id" : 31, + "name" : "node_85", + "id" : 27, "source_info" : { "filename" : "include/bng.p4", - "line" : 245, + "line" : 244, "column" : 21, "source_fragment" : "hdr.ipv6.isValid()" }, @@ -18479,11 +17846,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_101", + "init_table" : "node_91", "tables" : [ { - "name" : "tbl_act_40", - "id" : 65, + "name" : "tbl_act_34", + "id" : 59, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -18497,22 +17864,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [150], - "actions" : ["act_40"], - "base_default_next" : "node_103", + "action_ids" : [143], + "actions" : ["act_34"], + "base_default_next" : "node_93", "next_tables" : { - "act_40" : "node_103" + "act_34" : "node_93" }, "default_entry" : { - "action_id" : 150, + "action_id" : 143, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_41", - "id" : 66, + "name" : "tbl_act_35", + "id" : 60, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -18526,25 +17893,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [151], - "actions" : ["act_41"], - "base_default_next" : "node_105", + "action_ids" : [144], + "actions" : ["act_35"], + "base_default_next" : "node_95", "next_tables" : { - "act_41" : "node_105" + "act_35" : "node_95" }, "default_entry" : { - "action_id" : 151, + "action_id" : 144, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_42", - "id" : 67, + "name" : "tbl_act_36", + "id" : 61, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -18555,14 +17922,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [152], - "actions" : ["act_42"], - "base_default_next" : "node_107", + "action_ids" : [145], + "actions" : ["act_36"], + "base_default_next" : "node_97", "next_tables" : { - "act_42" : "node_107" + "act_36" : "node_97" }, "default_entry" : { - "action_id" : 152, + "action_id" : 145, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18570,10 +17937,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 68, + "id" : 62, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -18584,14 +17951,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [144], + "action_ids" : [137], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], - "base_default_next" : "node_111", + "base_default_next" : "node_101", "next_tables" : { - "FabricEgress.egress_next.pop_mpls_if_present" : "node_111" + "FabricEgress.egress_next.pop_mpls_if_present" : "node_101" }, "default_entry" : { - "action_id" : 144, + "action_id" : 137, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18599,10 +17966,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 69, + "id" : 63, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -18613,14 +17980,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [145], + "action_ids" : [138], "actions" : ["FabricEgress.egress_next.set_mpls"], - "base_default_next" : "node_111", + "base_default_next" : "node_101", "next_tables" : { - "FabricEgress.egress_next.set_mpls" : "node_111" + "FabricEgress.egress_next.set_mpls" : "node_101" }, "default_entry" : { - "action_id" : 145, + "action_id" : 138, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18628,10 +17995,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 70, + "id" : 64, "source_info" : { "filename" : "include/control/next.p4", - "line" : 347, + "line" : 349, "column" : 12, "source_fragment" : "push_vlan()" }, @@ -18642,14 +18009,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [146], + "action_ids" : [139], "actions" : ["FabricEgress.egress_next.push_vlan"], "base_default_next" : "tbl_egress_next_push_inner_vlan", "next_tables" : { "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan" }, "default_entry" : { - "action_id" : 146, + "action_id" : 139, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18657,10 +18024,10 @@ }, { "name" : "tbl_egress_next_push_inner_vlan", - "id" : 71, + "id" : 65, "source_info" : { "filename" : "include/control/next.p4", - "line" : 348, + "line" : 350, "column" : 12, "source_fragment" : "push_inner_vlan()" }, @@ -18671,25 +18038,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [148], + "action_ids" : [141], "actions" : ["FabricEgress.egress_next.push_inner_vlan"], - "base_default_next" : "node_121", + "base_default_next" : "node_111", "next_tables" : { - "FabricEgress.egress_next.push_inner_vlan" : "node_121" + "FabricEgress.egress_next.push_inner_vlan" : "node_111" }, "default_entry" : { - "action_id" : 148, + "action_id" : 141, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_43", - "id" : 72, + "name" : "tbl_act_37", + "id" : 66, "source_info" : { "filename" : "include/control/next.p4", - "line" : 351, + "line" : 353, "column" : 12, "source_fragment" : "hdr.inner_vlan_tag.setInvalid()" }, @@ -18700,14 +18067,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [155], - "actions" : ["act_45"], + "action_ids" : [148], + "actions" : ["act_39"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { - "act_45" : "FabricEgress.egress_next.egress_vlan" + "act_39" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 155, + "action_id" : 148, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18715,10 +18082,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 73, + "id" : 67, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -18726,7 +18093,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -18742,23 +18109,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [149, 101], + "action_ids" : [142, 94], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_44", - "__MISS__" : "tbl_act_45" + "__HIT__" : "tbl_act_38", + "__MISS__" : "tbl_act_39" }, "default_entry" : { - "action_id" : 101, + "action_id" : 94, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_44", - "id" : 74, + "name" : "tbl_act_38", + "id" : 68, "key" : [], "match_type" : "exact", "type" : "simple", @@ -18766,22 +18133,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [153], - "actions" : ["act_43"], - "base_default_next" : "node_118", + "action_ids" : [146], + "actions" : ["act_37"], + "base_default_next" : "node_108", "next_tables" : { - "act_43" : "node_118" + "act_37" : "node_108" }, "default_entry" : { - "action_id" : 153, + "action_id" : 146, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_45", - "id" : 75, + "name" : "tbl_act_39", + "id" : 69, "key" : [], "match_type" : "exact", "type" : "simple", @@ -18789,14 +18156,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [154], - "actions" : ["act_44"], - "base_default_next" : "node_118", + "action_ids" : [147], + "actions" : ["act_38"], + "base_default_next" : "node_108", "next_tables" : { - "act_44" : "node_118" + "act_38" : "node_108" }, "default_entry" : { - "action_id" : 154, + "action_id" : 147, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -18804,10 +18171,10 @@ }, { "name" : "tbl_egress_next_push_vlan_0", - "id" : 76, + "id" : 70, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -18818,25 +18185,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [147], + "action_ids" : [140], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_121", + "base_default_next" : "node_111", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_121" + "FabricEgress.egress_next.push_vlan" : "node_111" }, "default_entry" : { - "action_id" : 147, + "action_id" : 140, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_46", - "id" : 77, + "name" : "tbl_act_40", + "id" : 71, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -18847,25 +18214,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [157], - "actions" : ["act_47"], - "base_default_next" : "node_123", + "action_ids" : [150], + "actions" : ["act_41"], + "base_default_next" : "node_113", "next_tables" : { - "act_47" : "node_123" + "act_41" : "node_113" }, "default_entry" : { - "action_id" : 157, + "action_id" : 150, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_47", - "id" : 78, + "name" : "tbl_act_41", + "id" : 72, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -18876,25 +18243,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [156], - "actions" : ["act_46"], - "base_default_next" : "node_133", + "action_ids" : [149], + "actions" : ["act_40"], + "base_default_next" : "node_123", "next_tables" : { - "act_46" : "node_133" + "act_40" : "node_123" }, "default_entry" : { - "action_id" : 156, + "action_id" : 149, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_48", - "id" : 79, + "name" : "tbl_act_42", + "id" : 73, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -18905,25 +18272,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [159], - "actions" : ["act_49"], - "base_default_next" : "node_127", + "action_ids" : [152], + "actions" : ["act_43"], + "base_default_next" : "node_117", "next_tables" : { - "act_49" : "node_127" + "act_43" : "node_117" }, "default_entry" : { - "action_id" : 159, + "action_id" : 152, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_49", - "id" : 80, + "name" : "tbl_act_43", + "id" : 74, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -18934,25 +18301,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [158], - "actions" : ["act_48"], - "base_default_next" : "node_133", + "action_ids" : [151], + "actions" : ["act_42"], + "base_default_next" : "node_123", "next_tables" : { - "act_48" : "node_133" + "act_42" : "node_123" }, "default_entry" : { - "action_id" : 158, + "action_id" : 151, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_50", - "id" : 81, + "name" : "tbl_act_44", + "id" : 75, "source_info" : { "filename" : "include/control/next.p4", - "line" : 376, + "line" : 378, "column" : 35, "source_fragment" : "=" }, @@ -18963,25 +18330,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [161], - "actions" : ["act_51"], - "base_default_next" : "node_131", + "action_ids" : [154], + "actions" : ["act_45"], + "base_default_next" : "node_121", "next_tables" : { - "act_51" : "node_131" + "act_45" : "node_121" }, "default_entry" : { - "action_id" : 161, + "action_id" : 154, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_51", - "id" : 82, + "name" : "tbl_act_45", + "id" : 76, "source_info" : { "filename" : "include/control/next.p4", - "line" : 377, + "line" : 379, "column" : 45, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -18992,14 +18359,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [160], - "actions" : ["act_50"], - "base_default_next" : "node_133", + "action_ids" : [153], + "actions" : ["act_44"], + "base_default_next" : "node_123", "next_tables" : { - "act_50" : "node_133" + "act_44" : "node_123" }, "default_entry" : { - "action_id" : 160, + "action_id" : 153, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19007,7 +18374,7 @@ }, { "name" : "tbl_spgw_egress_gtpu_encap", - "id" : 83, + "id" : 77, "source_info" : { "filename" : "include/spgw.p4", "line" : 228, @@ -19021,14 +18388,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [104], + "action_ids" : [97], "actions" : ["FabricEgress.spgw_egress.gtpu_encap"], - "base_default_next" : "node_135", + "base_default_next" : "node_125", "next_tables" : { - "FabricEgress.spgw_egress.gtpu_encap" : "node_135" + "FabricEgress.spgw_egress.gtpu_encap" : "node_125" }, "default_entry" : { - "action_id" : 104, + "action_id" : 97, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19036,10 +18403,10 @@ }, { "name" : "tbl_bng_egress_downstream_encap_v4", - "id" : 84, + "id" : 78, "source_info" : { "filename" : "include/bng.p4", - "line" : 295, + "line" : 294, "column" : 12, "source_fragment" : "encap_v4()" }, @@ -19050,14 +18417,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [105], + "action_ids" : [98], "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"], - "base_default_next" : "node_140", + "base_default_next" : "node_130", "next_tables" : { - "FabricEgress.bng_egress.downstream.encap_v4" : "node_140" + "FabricEgress.bng_egress.downstream.encap_v4" : "node_130" }, "default_entry" : { - "action_id" : 105, + "action_id" : 98, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19065,10 +18432,10 @@ }, { "name" : "tbl_bng_egress_downstream_encap_v6", - "id" : 85, + "id" : 79, "source_info" : { "filename" : "include/bng.p4", - "line" : 300, + "line" : 299, "column" : 12, "source_fragment" : "encap_v6()" }, @@ -19079,14 +18446,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [106], + "action_ids" : [99], "actions" : ["FabricEgress.bng_egress.downstream.encap_v6"], - "base_default_next" : "node_140", + "base_default_next" : "node_130", "next_tables" : { - "FabricEgress.bng_egress.downstream.encap_v6" : "node_140" + "FabricEgress.bng_egress.downstream.encap_v6" : "node_130" }, "default_entry" : { - "action_id" : 106, + "action_id" : 99, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19094,7 +18461,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "id" : 86, + "id" : 80, "source_info" : { "filename" : "include/int/int_source.p4", "line" : 66, @@ -19117,13 +18484,13 @@ { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport21"], + "target" : ["scalars", "fabric_metadata_t._l4_sport17"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport22"], + "target" : ["scalars", "fabric_metadata_t._l4_dport18"], "mask" : null } ], @@ -19133,23 +18500,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [107, 98], + "action_ids" : [100, 91], "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"], - "base_default_next" : "node_143", + "base_default_next" : "node_133", "next_tables" : { - "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_143", - "nop" : "node_143" + "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_133", + "nop" : "node_133" }, "default_entry" : { - "action_id" : 98, + "action_id" : 91, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_52", - "id" : 87, + "name" : "tbl_act_46", + "id" : 81, "key" : [], "match_type" : "exact", "type" : "simple", @@ -19157,14 +18524,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [162], - "actions" : ["act_52"], + "action_ids" : [155], + "actions" : ["act_46"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", "next_tables" : { - "act_52" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" + "act_46" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" }, "default_entry" : { - "action_id" : 162, + "action_id" : 155, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19172,7 +18539,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", - "id" : 88, + "id" : 82, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 315, @@ -19193,23 +18560,23 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [108, 99], + "action_ids" : [101, 92], "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"], - "base_default_next" : "node_146", + "base_default_next" : "node_136", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_146", - "nop" : "node_146" + "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_136", + "nop" : "node_136" }, "default_entry" : { - "action_id" : 99, + "action_id" : 92, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_53", - "id" : 89, + "name" : "tbl_act_47", + "id" : 83, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 420, @@ -19223,14 +18590,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [163], - "actions" : ["act_53"], - "base_default_next" : "node_148", + "action_ids" : [156], + "actions" : ["act_47"], + "base_default_next" : "node_138", "next_tables" : { - "act_53" : "node_148" + "act_47" : "node_138" }, "default_entry" : { - "action_id" : 163, + "action_id" : 156, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -19238,7 +18605,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003", - "id" : 90, + "id" : 84, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 331, @@ -19259,7 +18626,7 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 102], + "action_ids" : [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 95], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", "next_tables" : { @@ -19282,7 +18649,7 @@ "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407" }, "default_entry" : { - "action_id" : 102, + "action_id" : 95, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -19302,7 +18669,7 @@ } ], "action_entry" : { - "action_id" : 109, + "action_id" : 102, "action_data" : [] }, "priority" : 1 @@ -19321,7 +18688,7 @@ } ], "action_entry" : { - "action_id" : 110, + "action_id" : 103, "action_data" : [] }, "priority" : 2 @@ -19340,7 +18707,7 @@ } ], "action_entry" : { - "action_id" : 111, + "action_id" : 104, "action_data" : [] }, "priority" : 3 @@ -19359,7 +18726,7 @@ } ], "action_entry" : { - "action_id" : 112, + "action_id" : 105, "action_data" : [] }, "priority" : 4 @@ -19378,7 +18745,7 @@ } ], "action_entry" : { - "action_id" : 113, + "action_id" : 106, "action_data" : [] }, "priority" : 5 @@ -19397,7 +18764,7 @@ } ], "action_entry" : { - "action_id" : 114, + "action_id" : 107, "action_data" : [] }, "priority" : 6 @@ -19416,7 +18783,7 @@ } ], "action_entry" : { - "action_id" : 115, + "action_id" : 108, "action_data" : [] }, "priority" : 7 @@ -19435,7 +18802,7 @@ } ], "action_entry" : { - "action_id" : 116, + "action_id" : 109, "action_data" : [] }, "priority" : 8 @@ -19454,7 +18821,7 @@ } ], "action_entry" : { - "action_id" : 117, + "action_id" : 110, "action_data" : [] }, "priority" : 9 @@ -19473,7 +18840,7 @@ } ], "action_entry" : { - "action_id" : 118, + "action_id" : 111, "action_data" : [] }, "priority" : 10 @@ -19492,7 +18859,7 @@ } ], "action_entry" : { - "action_id" : 119, + "action_id" : 112, "action_data" : [] }, "priority" : 11 @@ -19511,7 +18878,7 @@ } ], "action_entry" : { - "action_id" : 120, + "action_id" : 113, "action_data" : [] }, "priority" : 12 @@ -19530,7 +18897,7 @@ } ], "action_entry" : { - "action_id" : 121, + "action_id" : 114, "action_data" : [] }, "priority" : 13 @@ -19549,7 +18916,7 @@ } ], "action_entry" : { - "action_id" : 122, + "action_id" : 115, "action_data" : [] }, "priority" : 14 @@ -19568,7 +18935,7 @@ } ], "action_entry" : { - "action_id" : 123, + "action_id" : 116, "action_data" : [] }, "priority" : 15 @@ -19587,7 +18954,7 @@ } ], "action_entry" : { - "action_id" : 124, + "action_id" : 117, "action_data" : [] }, "priority" : 16 @@ -19596,7 +18963,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", - "id" : 91, + "id" : 85, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 375, @@ -19617,30 +18984,30 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 103], + "action_ids" : [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 96], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"], - "base_default_next" : "tbl_act_54", + "base_default_next" : "tbl_act_48", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_54", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_54", - "NoAction" : "tbl_act_54" + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_48", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_48", + "NoAction" : "tbl_act_48" }, "default_entry" : { - "action_id" : 103, + "action_id" : 96, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -19660,7 +19027,7 @@ } ], "action_entry" : { - "action_id" : 125, + "action_id" : 118, "action_data" : [] }, "priority" : 1 @@ -19679,7 +19046,7 @@ } ], "action_entry" : { - "action_id" : 126, + "action_id" : 119, "action_data" : [] }, "priority" : 2 @@ -19698,7 +19065,7 @@ } ], "action_entry" : { - "action_id" : 127, + "action_id" : 120, "action_data" : [] }, "priority" : 3 @@ -19717,7 +19084,7 @@ } ], "action_entry" : { - "action_id" : 128, + "action_id" : 121, "action_data" : [] }, "priority" : 4 @@ -19736,7 +19103,7 @@ } ], "action_entry" : { - "action_id" : 129, + "action_id" : 122, "action_data" : [] }, "priority" : 5 @@ -19755,7 +19122,7 @@ } ], "action_entry" : { - "action_id" : 130, + "action_id" : 123, "action_data" : [] }, "priority" : 6 @@ -19774,7 +19141,7 @@ } ], "action_entry" : { - "action_id" : 131, + "action_id" : 124, "action_data" : [] }, "priority" : 7 @@ -19793,7 +19160,7 @@ } ], "action_entry" : { - "action_id" : 132, + "action_id" : 125, "action_data" : [] }, "priority" : 8 @@ -19812,7 +19179,7 @@ } ], "action_entry" : { - "action_id" : 133, + "action_id" : 126, "action_data" : [] }, "priority" : 9 @@ -19831,7 +19198,7 @@ } ], "action_entry" : { - "action_id" : 134, + "action_id" : 127, "action_data" : [] }, "priority" : 10 @@ -19850,7 +19217,7 @@ } ], "action_entry" : { - "action_id" : 135, + "action_id" : 128, "action_data" : [] }, "priority" : 11 @@ -19869,7 +19236,7 @@ } ], "action_entry" : { - "action_id" : 136, + "action_id" : 129, "action_data" : [] }, "priority" : 12 @@ -19888,7 +19255,7 @@ } ], "action_entry" : { - "action_id" : 137, + "action_id" : 130, "action_data" : [] }, "priority" : 13 @@ -19907,7 +19274,7 @@ } ], "action_entry" : { - "action_id" : 138, + "action_id" : 131, "action_data" : [] }, "priority" : 14 @@ -19926,7 +19293,7 @@ } ], "action_entry" : { - "action_id" : 139, + "action_id" : 132, "action_data" : [] }, "priority" : 15 @@ -19945,7 +19312,7 @@ } ], "action_entry" : { - "action_id" : 140, + "action_id" : 133, "action_data" : [] }, "priority" : 16 @@ -19953,8 +19320,8 @@ ] }, { - "name" : "tbl_act_54", - "id" : 92, + "name" : "tbl_act_48", + "id" : 86, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 425, @@ -19968,22 +19335,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [165], - "actions" : ["act_55"], - "base_default_next" : "node_152", + "action_ids" : [158], + "actions" : ["act_49"], + "base_default_next" : "node_142", "next_tables" : { - "act_55" : "node_152" + "act_49" : "node_142" }, "default_entry" : { - "action_id" : 165, + "action_id" : 158, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_55", - "id" : 93, + "name" : "tbl_act_49", + "id" : 87, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 428, @@ -19997,22 +19364,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [164], - "actions" : ["act_54"], - "base_default_next" : "node_154", + "action_ids" : [157], + "actions" : ["act_48"], + "base_default_next" : "node_144", "next_tables" : { - "act_54" : "node_154" + "act_48" : "node_144" }, "default_entry" : { - "action_id" : 164, + "action_id" : 157, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_56", - "id" : 94, + "name" : "tbl_act_50", + "id" : 88, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 431, @@ -20026,22 +19393,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [166], - "actions" : ["act_56"], - "base_default_next" : "node_156", + "action_ids" : [159], + "actions" : ["act_50"], + "base_default_next" : "node_146", "next_tables" : { - "act_56" : "node_156" + "act_50" : "node_146" }, "default_entry" : { - "action_id" : 166, + "action_id" : 159, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_57", - "id" : 95, + "name" : "tbl_act_51", + "id" : 89, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 434, @@ -20055,14 +19422,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [167], - "actions" : ["act_57"], - "base_default_next" : "node_158", + "action_ids" : [160], + "actions" : ["act_51"], + "base_default_next" : "node_148", "next_tables" : { - "act_57" : "node_158" + "act_51" : "node_148" }, "default_entry" : { - "action_id" : 167, + "action_id" : 160, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -20070,7 +19437,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_report.tb_generate_report", - "id" : 96, + "id" : 90, "source_info" : { "filename" : "include/int/int_report.p4", "line" : 86, @@ -20084,15 +19451,15 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [141, 100], + "action_ids" : [134, 93], "actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "nop"], - "base_default_next" : "node_160", + "base_default_next" : "node_150", "next_tables" : { - "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_160", - "nop" : "node_160" + "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_150", + "nop" : "node_150" }, "default_entry" : { - "action_id" : 100, + "action_id" : 93, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -20100,7 +19467,7 @@ }, { "name" : "tbl_process_int_main_process_int_sink_restore_header", - "id" : 97, + "id" : 91, "source_info" : { "filename" : "include/int/int_sink.p4", "line" : 53, @@ -20114,14 +19481,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [142], + "action_ids" : [135], "actions" : ["FabricEgress.process_int_main.process_int_sink.restore_header"], "base_default_next" : "tbl_process_int_main_process_int_sink_int_sink", "next_tables" : { "FabricEgress.process_int_main.process_int_sink.restore_header" : "tbl_process_int_main_process_int_sink_int_sink" }, "default_entry" : { - "action_id" : 142, + "action_id" : 135, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -20129,7 +19496,7 @@ }, { "name" : "tbl_process_int_main_process_int_sink_int_sink", - "id" : 98, + "id" : 92, "source_info" : { "filename" : "include/int/int_sink.p4", "line" : 54, @@ -20143,14 +19510,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [143], + "action_ids" : [136], "actions" : ["FabricEgress.process_int_main.process_int_sink.int_sink"], "base_default_next" : null, "next_tables" : { "FabricEgress.process_int_main.process_int_sink.int_sink" : null }, "default_entry" : { - "action_id" : 143, + "action_id" : 136, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -20160,8 +19527,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_101", - "id" : 32, + "name" : "node_91", + "id" : 28, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -20179,7 +19546,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] } } }, @@ -20189,12 +19556,12 @@ } } }, - "true_next" : "tbl_act_40", - "false_next" : "node_103" + "true_next" : "tbl_act_34", + "false_next" : "node_93" }, { - "name" : "node_103", - "id" : 33, + "name" : "node_93", + "id" : 29, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -20215,15 +19582,15 @@ } } }, - "true_next" : "tbl_act_41", - "false_next" : "node_105" + "true_next" : "tbl_act_35", + "false_next" : "node_95" }, { - "name" : "node_105", - "id" : 34, + "name" : "node_95", + "id" : 30, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -20242,7 +19609,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast18"] + "value" : ["scalars", "fabric_metadata_t._is_multicast14"] } } }, @@ -20268,15 +19635,15 @@ } } }, - "true_next" : "tbl_act_42", - "false_next" : "node_107" + "true_next" : "tbl_act_36", + "false_next" : "node_97" }, { - "name" : "node_107", - "id" : 35, + "name" : "node_97", + "id" : 31, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -20286,7 +19653,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label12"] + "value" : ["scalars", "fabric_metadata_t._mpls_label8"] }, "right" : { "type" : "hexstr", @@ -20294,15 +19661,15 @@ } } }, - "true_next" : "node_108", + "true_next" : "node_98", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_108", - "id" : 36, + "name" : "node_98", + "id" : 32, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -20318,14 +19685,14 @@ } }, "true_next" : "tbl_egress_next_pop_mpls_if_present", - "false_next" : "node_111" + "false_next" : "node_101" }, { - "name" : "node_111", - "id" : 37, + "name" : "node_101", + "id" : 33, "source_info" : { "filename" : "include/control/next.p4", - "line" : 345, + "line" : 347, "column" : 12, "source_fragment" : "fabric_metadata.push_double_vlan == true" }, @@ -20340,7 +19707,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"] + "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"] } } }, @@ -20351,14 +19718,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "tbl_act_43" + "false_next" : "tbl_act_37" }, { - "name" : "node_118", - "id" : 38, + "name" : "node_108", + "id" : 34, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -20380,15 +19747,15 @@ } } }, - "true_next" : "node_119", - "false_next" : "node_121" + "true_next" : "node_109", + "false_next" : "node_111" }, { - "name" : "node_119", - "id" : 39, + "name" : "node_109", + "id" : 35, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -20398,7 +19765,7 @@ "op" : "!=", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, "right" : { "type" : "hexstr", @@ -20407,14 +19774,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan_0", - "false_next" : "node_121" + "false_next" : "node_111" }, { - "name" : "node_121", - "id" : 40, + "name" : "node_111", + "id" : 36, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -20429,15 +19796,15 @@ } } }, - "true_next" : "tbl_act_46", - "false_next" : "node_125" + "true_next" : "tbl_act_40", + "false_next" : "node_115" }, { - "name" : "node_123", - "id" : 41, + "name" : "node_113", + "id" : 37, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -20455,15 +19822,15 @@ } } }, - "true_next" : "tbl_act_47", - "false_next" : "node_133" + "true_next" : "tbl_act_41", + "false_next" : "node_123" }, { - "name" : "node_125", - "id" : 42, + "name" : "node_115", + "id" : 38, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -20478,15 +19845,15 @@ } } }, - "true_next" : "tbl_act_48", - "false_next" : "node_129" + "true_next" : "tbl_act_42", + "false_next" : "node_119" }, { - "name" : "node_127", - "id" : 43, + "name" : "node_117", + "id" : 39, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -20504,15 +19871,15 @@ } } }, - "true_next" : "tbl_act_49", - "false_next" : "node_133" + "true_next" : "tbl_act_43", + "false_next" : "node_123" }, { - "name" : "node_129", - "id" : 44, + "name" : "node_119", + "id" : 40, "source_info" : { "filename" : "include/control/next.p4", - "line" : 375, + "line" : 377, "column" : 21, "source_fragment" : "hdr.ipv6.isValid()" }, @@ -20527,15 +19894,15 @@ } } }, - "true_next" : "tbl_act_50", - "false_next" : "node_133" + "true_next" : "tbl_act_44", + "false_next" : "node_123" }, { - "name" : "node_131", - "id" : 45, + "name" : "node_121", + "id" : 41, "source_info" : { "filename" : "include/control/next.p4", - "line" : 377, + "line" : 379, "column" : 20, "source_fragment" : "hdr.ipv6.hop_limit == 0" }, @@ -20553,12 +19920,12 @@ } } }, - "true_next" : "tbl_act_51", - "false_next" : "node_133" + "true_next" : "tbl_act_45", + "false_next" : "node_123" }, { - "name" : "node_133", - "id" : 46, + "name" : "node_123", + "id" : 42, "source_info" : { "filename" : "include/spgw.p4", "line" : 227, @@ -20571,7 +19938,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction23"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] }, "right" : { "type" : "hexstr", @@ -20580,14 +19947,14 @@ } }, "true_next" : "tbl_spgw_egress_gtpu_encap", - "false_next" : "node_135" + "false_next" : "node_125" }, { - "name" : "node_135", - "id" : 47, + "name" : "node_125", + "id" : 43, "source_info" : { "filename" : "include/bng.p4", - "line" : 369, + "line" : 355, "column" : 12, "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM" }, @@ -20597,7 +19964,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._bng_type28"] + "value" : ["scalars", "fabric_metadata_t._bng_type24"] }, "right" : { "type" : "hexstr", @@ -20605,15 +19972,15 @@ } } }, - "true_next" : "node_136", - "false_next" : "node_140" + "true_next" : "node_126", + "false_next" : "node_130" }, { - "name" : "node_136", - "id" : 48, + "name" : "node_126", + "id" : 44, "source_info" : { "filename" : "include/bng.p4", - "line" : 294, + "line" : 293, "column" : 12, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -20629,14 +19996,14 @@ } }, "true_next" : "tbl_bng_egress_downstream_encap_v4", - "false_next" : "node_138" + "false_next" : "node_128" }, { - "name" : "node_138", - "id" : 49, + "name" : "node_128", + "id" : 45, "source_info" : { "filename" : "include/bng.p4", - "line" : 299, + "line" : 298, "column" : 17, "source_fragment" : "hdr.ipv6.isValid()" }, @@ -20652,11 +20019,11 @@ } }, "true_next" : "tbl_bng_egress_downstream_encap_v6", - "false_next" : "node_140" + "false_next" : "node_130" }, { - "name" : "node_140", - "id" : 50, + "name" : "node_130", + "id" : 46, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 102, @@ -20732,11 +20099,11 @@ } }, "false_next" : null, - "true_next" : "node_141" + "true_next" : "node_131" }, { - "name" : "node_141", - "id" : 51, + "name" : "node_131", + "id" : 47, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 106, @@ -20754,7 +20121,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source32"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source30"] } } }, @@ -20765,11 +20132,11 @@ } }, "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "false_next" : "node_143" + "false_next" : "node_133" }, { - "name" : "node_143", - "id" : 52, + "name" : "node_133", + "id" : 48, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 110, @@ -20788,11 +20155,11 @@ } }, "false_next" : null, - "true_next" : "tbl_act_52" + "true_next" : "tbl_act_46" }, { - "name" : "node_146", - "id" : 53, + "name" : "node_136", + "id" : 49, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 419, @@ -20810,7 +20177,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit31"] } } }, @@ -20820,12 +20187,12 @@ } } }, - "true_next" : "tbl_act_53", - "false_next" : "node_148" + "true_next" : "tbl_act_47", + "false_next" : "node_138" }, { - "name" : "node_148", - "id" : 54, + "name" : "node_138", + "id" : 50, "expression" : { "type" : "expression", "value" : { @@ -20845,11 +20212,11 @@ } }, "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003", - "false_next" : "node_158" + "false_next" : "node_148" }, { - "name" : "node_152", - "id" : 55, + "name" : "node_142", + "id" : 51, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 427, @@ -20867,12 +20234,12 @@ } } }, - "true_next" : "tbl_act_55", - "false_next" : "node_154" + "true_next" : "tbl_act_49", + "false_next" : "node_144" }, { - "name" : "node_154", - "id" : 56, + "name" : "node_144", + "id" : 52, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 430, @@ -20890,12 +20257,12 @@ } } }, - "true_next" : "tbl_act_56", - "false_next" : "node_156" + "true_next" : "tbl_act_50", + "false_next" : "node_146" }, { - "name" : "node_156", - "id" : 57, + "name" : "node_146", + "id" : 53, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 433, @@ -20913,12 +20280,12 @@ } } }, - "true_next" : "tbl_act_57", - "false_next" : "node_158" + "true_next" : "tbl_act_51", + "false_next" : "node_148" }, { - "name" : "node_158", - "id" : 58, + "name" : "node_148", + "id" : 54, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 115, @@ -20940,11 +20307,11 @@ } }, "true_next" : "FabricEgress.process_int_main.process_int_report.tb_generate_report", - "false_next" : "node_160" + "false_next" : "node_150" }, { - "name" : "node_160", - "id" : 59, + "name" : "node_150", + "id" : 55, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 119, @@ -20962,7 +20329,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"] + "value" : ["scalars", "fabric_metadata_t._int_meta_sink32"] } } }, diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt similarity index 97% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt index 2a1ca9edcd2..33ed7da5d19 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt @@ -306,15 +306,10 @@ tables { bitwidth: 12 match_type: EXACT } - action_refs { - id: 16819938 - annotations: "@defaultonly" - scope: DEFAULT_ONLY - } action_refs { id: 16829385 } - const_default_action_id: 16819938 + const_default_action_id: 16829385 size: 8192 } tables { @@ -380,20 +375,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -480,8 +469,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -1419,7 +1406,7 @@ counters { alias: "c_terminated" } spec { - unit: PACKETS + unit: BYTES } size: 8192 } @@ -1430,7 +1417,7 @@ counters { alias: "c_dropped" } spec { - unit: PACKETS + unit: BYTES } size: 8192 } @@ -1452,7 +1439,7 @@ counters { alias: "c_line_rx" } spec { - unit: BOTH + unit: BYTES } size: 8192 } @@ -1485,7 +1472,7 @@ counters { alias: "c_line_tx" } spec { - unit: BOTH + unit: BYTES } size: 8192 } @@ -1566,17 +1553,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318799210 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json similarity index 93% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json index 7aa76429aba..0d0ce6ae3d5 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json @@ -5,39 +5,37 @@ "id" : 0, "fields" : [ ["last_ipv4_dscp_0", 6, false], - ["tmp_0", 4, false], + ["tmp_0", 16, false], + ["tmp_1", 16, false], + ["tmp_2", 4, false], ["tmp", 32, false], - ["tmp_1", 32, false], + ["tmp_3", 32, false], ["egress_next_tmp", 1, false], ["process_int_main_process_int_transit_hasReturned", 1, false], - ["fabric_metadata_t._last_eth_type0", 16, false], - ["fabric_metadata_t._is_ipv41", 1, false], - ["fabric_metadata_t._is_ipv62", 1, false], - ["fabric_metadata_t._is_mpls3", 1, false], - ["fabric_metadata_t._ip_eth_type4", 16, false], - ["fabric_metadata_t._vlan_id5", 12, false], - ["fabric_metadata_t._vlan_pri6", 3, false], - ["fabric_metadata_t._vlan_cfi7", 1, false], - ["fabric_metadata_t._mpls_label8", 20, false], - ["fabric_metadata_t._mpls_ttl9", 8, false], - ["fabric_metadata_t._skip_forwarding10", 1, false], - ["fabric_metadata_t._skip_next11", 1, false], - ["fabric_metadata_t._fwd_type12", 3, false], - ["fabric_metadata_t._next_id13", 32, false], - ["fabric_metadata_t._is_multicast14", 1, false], - ["fabric_metadata_t._is_controller_packet_out15", 1, false], - ["fabric_metadata_t._ip_proto16", 8, false], - ["fabric_metadata_t._l4_sport17", 16, false], - ["fabric_metadata_t._l4_dport18", 16, false], - ["fabric_metadata_t._int_meta_source19", 1, false], - ["fabric_metadata_t._int_meta_transit20", 1, false], - ["fabric_metadata_t._int_meta_sink21", 1, false], - ["fabric_metadata_t._int_meta_switch_id22", 32, false], - ["fabric_metadata_t._int_meta_new_words23", 8, false], - ["fabric_metadata_t._int_meta_new_bytes24", 16, false], - ["fabric_metadata_t._int_meta_ig_tstamp25", 32, false], - ["fabric_metadata_t._int_meta_eg_tstamp26", 32, false], - ["_padding_0", 3, false] + ["fabric_metadata_t._ip_eth_type0", 16, false], + ["fabric_metadata_t._vlan_id1", 12, false], + ["fabric_metadata_t._vlan_pri2", 3, false], + ["fabric_metadata_t._vlan_cfi3", 1, false], + ["fabric_metadata_t._mpls_label4", 20, false], + ["fabric_metadata_t._mpls_ttl5", 8, false], + ["fabric_metadata_t._skip_forwarding6", 1, false], + ["fabric_metadata_t._skip_next7", 1, false], + ["fabric_metadata_t._fwd_type8", 3, false], + ["fabric_metadata_t._next_id9", 32, false], + ["fabric_metadata_t._is_multicast10", 1, false], + ["fabric_metadata_t._is_controller_packet_out11", 1, false], + ["fabric_metadata_t._ip_proto12", 8, false], + ["fabric_metadata_t._l4_sport13", 16, false], + ["fabric_metadata_t._l4_dport14", 16, false], + ["fabric_metadata_t._int_meta_source15", 1, false], + ["fabric_metadata_t._int_meta_transit16", 1, false], + ["fabric_metadata_t._int_meta_sink17", 1, false], + ["fabric_metadata_t._int_meta_switch_id18", 32, false], + ["fabric_metadata_t._int_meta_new_words19", 8, false], + ["fabric_metadata_t._int_meta_new_bytes20", 16, false], + ["fabric_metadata_t._int_meta_ig_tstamp21", 32, false], + ["fabric_metadata_t._int_meta_eg_tstamp22", 32, false], + ["_padding_0", 6, false] ] }, { @@ -74,23 +72,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "mpls_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "mpls_t", + "id" : 5, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -100,7 +104,7 @@ }, { "name" : "ipv4_t", - "id" : 5, + "id" : 6, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -119,7 +123,7 @@ }, { "name" : "tcp_t", - "id" : 6, + "id" : 7, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -136,7 +140,7 @@ }, { "name" : "udp_t", - "id" : 7, + "id" : 8, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -146,7 +150,7 @@ }, { "name" : "icmp_t", - "id" : 8, + "id" : 9, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -158,7 +162,7 @@ }, { "name" : "packet_out_header_t", - "id" : 9, + "id" : 10, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -166,7 +170,7 @@ }, { "name" : "packet_in_header_t", - "id" : 10, + "id" : 11, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -174,7 +178,7 @@ }, { "name" : "intl4_shim_t", - "id" : 11, + "id" : 12, "fields" : [ ["int_type", 8, false], ["rsvd1", 8, false], @@ -184,7 +188,7 @@ }, { "name" : "int_header_t", - "id" : 12, + "id" : 13, "fields" : [ ["ver", 2, false], ["rep", 2, false], @@ -203,14 +207,14 @@ }, { "name" : "int_switch_id_t", - "id" : 13, + "id" : 14, "fields" : [ ["switch_id", 32, false] ] }, { "name" : "int_port_ids_t", - "id" : 14, + "id" : 15, "fields" : [ ["ingress_port_id", 16, false], ["egress_port_id", 16, false] @@ -218,14 +222,14 @@ }, { "name" : "int_hop_latency_t", - "id" : 15, + "id" : 16, "fields" : [ ["hop_latency", 32, false] ] }, { "name" : "int_q_occupancy_t", - "id" : 16, + "id" : 17, "fields" : [ ["q_id", 8, false], ["q_occupancy", 24, false] @@ -233,21 +237,21 @@ }, { "name" : "int_ingress_tstamp_t", - "id" : 17, + "id" : 18, "fields" : [ ["ingress_tstamp", 32, false] ] }, { "name" : "int_egress_tstamp_t", - "id" : 18, + "id" : 19, "fields" : [ ["egress_tstamp", 32, false] ] }, { "name" : "int_q_congestion_t", - "id" : 19, + "id" : 20, "fields" : [ ["q_id", 8, false], ["q_congestion", 24, false] @@ -255,14 +259,14 @@ }, { "name" : "int_egress_port_tx_util_t", - "id" : 20, + "id" : 21, "fields" : [ ["egress_port_tx_util", 32, false] ] }, { "name" : "intl4_tail_t", - "id" : 21, + "id" : 22, "fields" : [ ["next_proto", 8, false], ["dest_port", 16, false], @@ -308,127 +312,134 @@ "pi_omit" : true }, { - "name" : "mpls", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "mpls", + "id" : 6, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 6, + "id" : 7, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 7, + "id" : 8, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 8, + "id" : 9, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 9, + "id" : 10, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 10, + "id" : 11, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 11, + "id" : 12, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_shim", - "id" : 12, + "id" : 13, "header_type" : "intl4_shim_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_header", - "id" : 13, + "id" : 14, "header_type" : "int_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_switch_id", - "id" : 14, + "id" : 15, "header_type" : "int_switch_id_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_port_ids", - "id" : 15, + "id" : 16, "header_type" : "int_port_ids_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_hop_latency", - "id" : 16, + "id" : 17, "header_type" : "int_hop_latency_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_occupancy", - "id" : 17, + "id" : 18, "header_type" : "int_q_occupancy_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_ingress_tstamp", - "id" : 18, + "id" : 19, "header_type" : "int_ingress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tstamp", - "id" : 19, + "id" : 20, "header_type" : "int_egress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_congestion", - "id" : 20, + "id" : 21, "header_type" : "int_q_congestion_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tx_util", - "id" : 21, + "id" : 22, "header_type" : "int_egress_port_tx_util_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_tail", - "id" : 22, + "id" : 23, "header_type" : "intl4_tail_t", "metadata" : false, "pi_omit" : true @@ -536,11 +547,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -549,11 +560,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "tmp_0"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -578,28 +589,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_0"] } ] }, @@ -615,21 +614,22 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_1"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" } ], "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, { "type" : "hexstr", "value" : "0x8100", @@ -639,13 +639,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_1"] } ] }, @@ -665,17 +665,40 @@ ], "transitions" : [ { - "type" : "hexstr", - "value" : "0x0800", + "value" : "default", "mask" : null, - "next_state" : "pre_parse_ipv4" - }, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8847", "mask" : null, "next_state" : "parse_mpls" }, + { + "type" : "hexstr", + "value" : "0x0800", + "mask" : null, + "next_state" : "parse_ipv4" + }, { "value" : "default", "mask" : null, @@ -685,13 +708,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_mpls", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -706,30 +729,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_mpls3"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "field", @@ -742,7 +742,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "field", @@ -755,7 +755,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] }, { "type" : "lookahead", @@ -781,47 +781,10 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] } ] }, - { - "name" : "pre_parse_ipv4", - "id" : 6, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv41"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv4", "id" : 7, @@ -839,7 +802,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", @@ -852,7 +815,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -924,7 +887,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -937,7 +900,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -973,7 +936,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -986,7 +949,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1146,11 +1109,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"] + "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"] } ], "meter_arrays" : [], @@ -1186,7 +1149,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -1215,21 +1178,9 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 5, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 6, + "id" : 5, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -1241,7 +1192,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 7, + "id" : 6, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -1253,43 +1204,43 @@ }, { "name" : "FabricIngress.next.xconnect_counter", - "id" : 8, + "id" : 7, "is_direct" : true, "binding" : "FabricIngress.next.xconnect", "source_info" : { "filename" : "include/control/next.p4", - "line" : 103, + "line" : 107, "column" : 50, "source_fragment" : "xconnect_counter" } }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 9, + "id" : 8, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 10, + "id" : 9, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 11, + "id" : 10, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -1301,7 +1252,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 12, + "id" : 11, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -1313,7 +1264,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source", - "id" : 13, + "id" : 12, "is_direct" : true, "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source", "source_info" : { @@ -1325,12 +1276,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 14, + "id" : 13, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -1521,7 +1472,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source19"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source15"] }, { "type" : "expression", @@ -1557,7 +1508,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] }, { "type" : "expression", @@ -1586,7 +1537,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -1633,7 +1584,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -1664,7 +1615,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, { "type" : "runtime_data", @@ -1673,7 +1624,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 33, "source_fragment" : "= fwd_type; ..." } @@ -1695,7 +1646,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1726,7 +1677,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "hexstr", @@ -1745,7 +1696,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1776,7 +1727,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1813,7 +1764,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1858,7 +1809,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -1940,7 +1891,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -1987,7 +1938,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2031,25 +1982,6 @@ "column" : 5, "source_fragment" : "standard_metadata.egress_spec = port_num; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, @@ -2068,7 +2000,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2077,7 +2009,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 112, + "line" : 115, "column" : 32, "source_fragment" : "= next_id; ..." } @@ -2219,7 +2151,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "runtime_data", @@ -2316,7 +2248,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -2326,7 +2258,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] }, { "type" : "expression", @@ -2345,7 +2277,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 37, "source_fragment" : "= true; ..." } @@ -2396,7 +2328,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] }, { "type" : "expression", @@ -2442,7 +2374,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "field", @@ -2451,7 +2383,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." } @@ -2461,7 +2393,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] }, { "type" : "field", @@ -2470,7 +2402,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 37, "source_fragment" : "= hdr.vlan_tag.pri; ..." } @@ -2480,7 +2412,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] }, { "type" : "field", @@ -2489,7 +2421,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 37, "source_fragment" : "= hdr.vlan_tag.cfi; ..." } @@ -2506,7 +2438,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "hexstr", @@ -2515,7 +2447,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..." } @@ -2526,110 +2458,6 @@ "name" : "act_2", "id" : 32, "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8847" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." - } - } - ] - }, - { - "name" : "act_3", - "id" : 33, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_4", - "id" : 34, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "= hdr.vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_5", - "id" : 35, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "= hdr.ethernet.eth_type; ..." - } - } - ] - }, - { - "name" : "act_6", - "id" : 36, - "runtime_data" : [], "primitives" : [ { "op" : "assign", @@ -2685,8 +2513,8 @@ ] }, { - "name" : "act_7", - "id" : 37, + "name" : "act_3", + "id" : 33, "runtime_data" : [], "primitives" : [ { @@ -2694,7 +2522,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] }, { "type" : "expression", @@ -2730,7 +2558,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] } ], "source_info" : { @@ -2744,37 +2572,37 @@ }, { "name" : "nop", - "id" : 38, + "id" : 34, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 39, + "id" : 35, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 40, + "id" : 36, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 41, + "id" : 37, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 42, + "id" : 38, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp", - "id" : 43, + "id" : 39, "runtime_data" : [ { "name" : "max_hop", @@ -2842,7 +2670,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 153, + "line" : 157, "column" : 36, "source_fragment" : "4; ..." } @@ -3133,7 +2961,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] } ], "source_info" : { @@ -3260,7 +3088,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 149, + "line" : 153, "column" : 24, "source_fragment" : "0x1; ..." } @@ -3269,7 +3097,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata", - "id" : 44, + "id" : 40, "runtime_data" : [ { "name" : "switch_id", @@ -3282,7 +3110,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit20"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit16"] }, { "type" : "expression", @@ -3311,7 +3139,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] }, { "type" : "runtime_data", @@ -3329,13 +3157,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", - "id" : 45, + "id" : 41, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", - "id" : 46, + "id" : 42, "runtime_data" : [], "primitives" : [ { @@ -3409,7 +3237,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -3423,7 +3251,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -3451,7 +3279,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -3465,7 +3293,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -3492,7 +3320,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", - "id" : 47, + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -3534,7 +3362,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -3548,7 +3376,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -3576,7 +3404,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -3590,7 +3418,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -3617,7 +3445,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", - "id" : 48, + "id" : 44, "runtime_data" : [], "primitives" : [ { @@ -3725,7 +3553,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -3739,7 +3567,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -3767,7 +3595,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -3781,7 +3609,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -3808,7 +3636,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", - "id" : 49, + "id" : 45, "runtime_data" : [], "primitives" : [ { @@ -3895,7 +3723,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -3909,7 +3737,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -3937,7 +3765,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -3951,7 +3779,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -3978,7 +3806,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", - "id" : 50, + "id" : 46, "runtime_data" : [], "primitives" : [ { @@ -4131,7 +3959,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -4145,7 +3973,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -4173,7 +4001,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -4187,7 +4015,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -4214,7 +4042,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", - "id" : 51, + "id" : 47, "runtime_data" : [], "primitives" : [ { @@ -4335,7 +4163,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -4349,7 +4177,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -4377,7 +4205,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -4391,7 +4219,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -4418,7 +4246,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", - "id" : 52, + "id" : 48, "runtime_data" : [], "primitives" : [ { @@ -4605,7 +4433,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -4619,7 +4447,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -4647,7 +4475,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -4661,7 +4489,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -4688,7 +4516,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", - "id" : 53, + "id" : 49, "runtime_data" : [], "primitives" : [ { @@ -4715,7 +4543,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -4730,7 +4558,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -4744,7 +4572,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -4772,7 +4600,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -4786,7 +4614,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -4813,7 +4641,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", - "id" : 54, + "id" : 50, "runtime_data" : [], "primitives" : [ { @@ -4906,7 +4734,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -4921,7 +4749,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -4935,7 +4763,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -4963,7 +4791,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -4977,7 +4805,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -5004,7 +4832,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", - "id" : 55, + "id" : 51, "runtime_data" : [], "primitives" : [ { @@ -5065,7 +4893,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -5080,7 +4908,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -5094,7 +4922,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -5122,7 +4950,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -5136,7 +4964,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -5163,7 +4991,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", - "id" : 56, + "id" : 52, "runtime_data" : [], "primitives" : [ { @@ -5290,7 +5118,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -5305,7 +5133,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -5319,7 +5147,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -5347,7 +5175,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -5361,7 +5189,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -5388,7 +5216,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", - "id" : 57, + "id" : 53, "runtime_data" : [], "primitives" : [ { @@ -5494,7 +5322,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -5509,7 +5337,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -5523,7 +5351,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -5551,7 +5379,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -5565,7 +5393,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -5592,7 +5420,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", - "id" : 58, + "id" : 54, "runtime_data" : [], "primitives" : [ { @@ -5764,7 +5592,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -5779,7 +5607,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -5793,7 +5621,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -5821,7 +5649,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -5835,7 +5663,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -5862,7 +5690,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", - "id" : 59, + "id" : 55, "runtime_data" : [], "primitives" : [ { @@ -6002,7 +5830,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -6017,7 +5845,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6031,7 +5859,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6059,7 +5887,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6073,7 +5901,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -6100,7 +5928,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", - "id" : 60, + "id" : 56, "runtime_data" : [], "primitives" : [ { @@ -6306,7 +6134,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"] } ], "source_info" : { @@ -6321,7 +6149,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6335,7 +6163,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6363,7 +6191,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6377,7 +6205,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -6404,13 +6232,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", - "id" : 61, + "id" : 57, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", - "id" : 62, + "id" : 58, "runtime_data" : [], "primitives" : [ { @@ -6452,7 +6280,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6466,7 +6294,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6494,7 +6322,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6508,7 +6336,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -6535,7 +6363,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", - "id" : 63, + "id" : 59, "runtime_data" : [], "primitives" : [ { @@ -6596,7 +6424,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6610,7 +6438,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6638,7 +6466,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6652,7 +6480,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -6679,7 +6507,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", - "id" : 64, + "id" : 60, "runtime_data" : [], "primitives" : [ { @@ -6774,7 +6602,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6788,7 +6616,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6816,7 +6644,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6830,7 +6658,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -6857,7 +6685,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", - "id" : 65, + "id" : 61, "runtime_data" : [], "primitives" : [ { @@ -6922,7 +6750,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -6936,7 +6764,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -6964,7 +6792,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -6978,7 +6806,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7005,7 +6833,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", - "id" : 66, + "id" : 62, "runtime_data" : [], "primitives" : [ { @@ -7104,7 +6932,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -7118,7 +6946,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -7146,7 +6974,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -7160,7 +6988,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7187,7 +7015,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", - "id" : 67, + "id" : 63, "runtime_data" : [], "primitives" : [ { @@ -7305,7 +7133,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -7319,7 +7147,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -7347,7 +7175,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -7361,7 +7189,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7388,7 +7216,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", - "id" : 68, + "id" : 64, "runtime_data" : [], "primitives" : [ { @@ -7540,7 +7368,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -7554,7 +7382,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -7582,7 +7410,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -7596,7 +7424,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7623,7 +7451,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", - "id" : 69, + "id" : 65, "runtime_data" : [], "primitives" : [ { @@ -7665,7 +7493,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -7679,7 +7507,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -7707,7 +7535,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -7721,7 +7549,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7748,7 +7576,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", - "id" : 70, + "id" : 66, "runtime_data" : [], "primitives" : [ { @@ -7824,7 +7652,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -7838,7 +7666,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -7866,7 +7694,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -7880,7 +7708,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -7907,7 +7735,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", - "id" : 71, + "id" : 67, "runtime_data" : [], "primitives" : [ { @@ -8002,7 +7830,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -8016,7 +7844,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -8044,7 +7872,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -8058,7 +7886,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -8085,7 +7913,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", - "id" : 72, + "id" : 68, "runtime_data" : [], "primitives" : [ { @@ -8214,7 +8042,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -8228,7 +8056,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -8256,7 +8084,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -8270,7 +8098,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -8297,7 +8125,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", - "id" : 73, + "id" : 69, "runtime_data" : [], "primitives" : [ { @@ -8396,7 +8224,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -8410,7 +8238,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -8438,7 +8266,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -8452,7 +8280,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -8479,7 +8307,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", - "id" : 74, + "id" : 70, "runtime_data" : [], "primitives" : [ { @@ -8612,7 +8440,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -8626,7 +8454,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -8654,7 +8482,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -8668,7 +8496,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -8695,7 +8523,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", - "id" : 75, + "id" : 71, "runtime_data" : [], "primitives" : [ { @@ -8847,7 +8675,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -8861,7 +8689,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -8889,7 +8717,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -8903,7 +8731,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -8930,7 +8758,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", - "id" : 76, + "id" : 72, "runtime_data" : [], "primitives" : [ { @@ -9116,7 +8944,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, { "type" : "expression", @@ -9130,7 +8958,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] }, "right" : { "type" : "hexstr", @@ -9158,7 +8986,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, { "type" : "expression", @@ -9172,7 +9000,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] }, "right" : { "type" : "hexstr", @@ -9199,7 +9027,7 @@ }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 77, + "id" : 73, "runtime_data" : [], "primitives" : [ { @@ -9212,7 +9040,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -9222,25 +9050,25 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, - "column" : 38, - "source_fragment" : "= fabric_metadata.ip_eth_type; ..." + "line" : 272, + "column" : 8, + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..." } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 78, + "id" : 74, "runtime_data" : [], "primitives" : [ { @@ -9253,7 +9081,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -9267,12 +9095,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..." } @@ -9291,7 +9119,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -9310,7 +9138,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -9324,12 +9152,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..." } @@ -9339,7 +9167,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -9348,7 +9176,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -9357,7 +9185,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 79, + "id" : 75, "runtime_data" : [], "primitives" : [ { @@ -9370,7 +9198,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -9384,12 +9212,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -9403,12 +9231,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -9421,15 +9249,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -9441,61 +9269,23 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 80, + "id" : 76, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..." - } - }, { "op" : "remove_header", "parameters" : [ @@ -9506,7 +9296,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -9514,8 +9304,8 @@ ] }, { - "name" : "act_8", - "id" : 81, + "name" : "act_4", + "id" : 77, "runtime_data" : [], "primitives" : [ { @@ -9531,8 +9321,8 @@ ] }, { - "name" : "act_9", - "id" : 82, + "name" : "act_5", + "id" : 78, "runtime_data" : [], "primitives" : [ { @@ -9582,8 +9372,8 @@ ] }, { - "name" : "act_10", - "id" : 83, + "name" : "act_6", + "id" : 79, "runtime_data" : [], "primitives" : [ { @@ -9596,7 +9386,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -9604,8 +9394,8 @@ ] }, { - "name" : "act_11", - "id" : 84, + "name" : "act_7", + "id" : 80, "runtime_data" : [], "primitives" : [ { @@ -9634,8 +9424,8 @@ ] }, { - "name" : "act_12", - "id" : 85, + "name" : "act_8", + "id" : 81, "runtime_data" : [], "primitives" : [ { @@ -9664,8 +9454,8 @@ ] }, { - "name" : "act_13", - "id" : 86, + "name" : "act_9", + "id" : 82, "runtime_data" : [], "primitives" : [ { @@ -9678,7 +9468,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -9686,8 +9476,8 @@ ] }, { - "name" : "act_14", - "id" : 87, + "name" : "act_10", + "id" : 83, "runtime_data" : [], "primitives" : [ { @@ -9727,7 +9517,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -9735,8 +9525,8 @@ ] }, { - "name" : "act_15", - "id" : 88, + "name" : "act_11", + "id" : 84, "runtime_data" : [], "primitives" : [ { @@ -9749,7 +9539,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -9757,8 +9547,8 @@ ] }, { - "name" : "act_16", - "id" : 89, + "name" : "act_12", + "id" : 85, "runtime_data" : [], "primitives" : [ { @@ -9798,7 +9588,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -9806,8 +9596,8 @@ ] }, { - "name" : "act_17", - "id" : 90, + "name" : "act_13", + "id" : 86, "runtime_data" : [], "primitives" : [ { @@ -9836,8 +9626,8 @@ ] }, { - "name" : "act_18", - "id" : 91, + "name" : "act_14", + "id" : 87, "runtime_data" : [], "primitives" : [ { @@ -9872,8 +9662,8 @@ ] }, { - "name" : "act_19", - "id" : 92, + "name" : "act_15", + "id" : 88, "runtime_data" : [], "primitives" : [ { @@ -9899,7 +9689,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] } } }, @@ -9921,8 +9711,8 @@ ] }, { - "name" : "act_20", - "id" : 93, + "name" : "act_16", + "id" : 89, "runtime_data" : [], "primitives" : [ { @@ -9970,8 +9760,8 @@ ] }, { - "name" : "act_21", - "id" : 94, + "name" : "act_17", + "id" : 90, "runtime_data" : [], "primitives" : [ { @@ -9997,7 +9787,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"] } } }, @@ -10019,8 +9809,8 @@ ] }, { - "name" : "act_22", - "id" : 95, + "name" : "act_18", + "id" : 91, "runtime_data" : [], "primitives" : [ { @@ -10046,7 +9836,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"] } } }, @@ -10114,7 +9904,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -10143,7 +9933,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -10156,128 +9946,12 @@ "direct_meters" : null, "action_ids" : [31], "actions" : ["act_1"], - "base_default_next" : "node_8", - "next_tables" : { - "act_1" : "node_8" - }, - "default_entry" : { - "action_id" : 31, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_2", - "id" : 3, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [32], - "actions" : ["act_2"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_2" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 32, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_3", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [33], - "actions" : ["act_3"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_3" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 33, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_4", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [34], - "actions" : ["act_4"], "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_4" : "FabricIngress.filtering.ingress_port_vlan" + "act_1" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { - "action_id" : 34, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_5", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [35], - "actions" : ["act_5"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_5" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 35, + "action_id" : 31, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -10285,7 +9959,7 @@ }, { "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 7, + "id" : 3, "source_info" : { "filename" : "include/control/filtering.p4", "line" : 53, @@ -10310,12 +9984,6 @@ "name" : "vlan_id", "target" : ["vlan_tag", "vlan_id"], "mask" : null - }, - { - "match_type" : "ternary", - "name" : "inner_vlan_id", - "target" : ["inner_vlan_tag", "vlan_id"], - "mask" : null } ], "match_type" : "ternary", @@ -10341,10 +10009,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 8, + "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -10362,21 +10030,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t._is_ipv41"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t._is_ipv62"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t._is_mpls3"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"], "mask" : null } ], @@ -10388,9 +10050,9 @@ "direct_meters" : null, "action_ids" : [12], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "node_17", + "base_default_next" : "node_10", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "node_17" + "FabricIngress.filtering.set_forwarding_type" : "node_10" }, "default_entry" : { "action_id" : 12, @@ -10401,7 +10063,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 9, + "id" : 5, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -10412,7 +10074,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -10444,7 +10106,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 10, + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -10455,7 +10117,7 @@ { "match_type" : "exact", "name" : "mpls_label", - "target" : ["scalars", "fabric_metadata_t._mpls_label8"], + "target" : ["scalars", "fabric_metadata_t._mpls_label4"], "mask" : null } ], @@ -10481,10 +10143,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 11, + "id" : 7, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -10499,7 +10161,7 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [15, 16, 3], @@ -10512,14 +10174,14 @@ }, "default_entry" : { "action_id" : 3, - "action_const" : true, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.acl.acl", - "id" : 12, + "id" : 8, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -10536,19 +10198,19 @@ { "match_type" : "ternary", "name" : "ip_proto", - "target" : ["scalars", "fabric_metadata_t._ip_proto16"], + "target" : ["scalars", "fabric_metadata_t._ip_proto12"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport17"], + "target" : ["scalars", "fabric_metadata_t._l4_sport13"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport18"], + "target" : ["scalars", "fabric_metadata_t._l4_dport14"], "mask" : null }, { @@ -10572,7 +10234,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t._last_eth_type0"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -10608,13 +10270,13 @@ "direct_meters" : null, "action_ids" : [17, 18, 19, 20, 21], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_25", + "base_default_next" : "node_18", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_25", - "FabricIngress.acl.punt_to_cpu" : "node_25", - "FabricIngress.acl.set_clone_session_id" : "node_25", - "FabricIngress.acl.drop" : "node_25", - "FabricIngress.acl.nop_acl" : "node_25" + "FabricIngress.acl.set_next_id_acl" : "node_18", + "FabricIngress.acl.punt_to_cpu" : "node_18", + "FabricIngress.acl.set_clone_session_id" : "node_18", + "FabricIngress.acl.drop" : "node_18", + "FabricIngress.acl.nop_acl" : "node_18" }, "default_entry" : { "action_id" : 21, @@ -10625,10 +10287,10 @@ }, { "name" : "FabricIngress.next.xconnect", - "id" : 13, + "id" : 9, "source_info" : { "filename" : "include/control/next.p4", - "line" : 116, + "line" : 119, "column" : 10, "source_fragment" : "xconnect" }, @@ -10642,7 +10304,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -10669,10 +10331,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 14, + "id" : 10, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -10680,7 +10342,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -10703,10 +10365,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 15, + "id" : 11, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -10714,7 +10376,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -10740,10 +10402,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 16, + "id" : 12, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -10751,7 +10413,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -10763,10 +10425,10 @@ "direct_meters" : null, "action_ids" : [22, 4], "actions" : ["FabricIngress.next.set_vlan", "nop"], - "base_default_next" : "node_30", + "base_default_next" : "node_23", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_30", - "nop" : "node_30" + "FabricIngress.next.set_vlan" : "node_23", + "nop" : "node_23" }, "default_entry" : { "action_id" : 4, @@ -10776,8 +10438,8 @@ } }, { - "name" : "tbl_act_6", - "id" : 17, + "name" : "tbl_act_2", + "id" : 13, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -10791,22 +10453,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [36], - "actions" : ["act_6"], - "base_default_next" : "node_32", + "action_ids" : [32], + "actions" : ["act_2"], + "base_default_next" : "node_25", "next_tables" : { - "act_6" : "node_32" + "act_2" : "node_25" }, "default_entry" : { - "action_id" : 36, + "action_id" : 32, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_7", - "id" : 18, + "name" : "tbl_act_3", + "id" : 14, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -10820,14 +10482,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [37], - "actions" : ["act_7"], + "action_ids" : [33], + "actions" : ["act_3"], "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source", "next_tables" : { - "act_7" : "FabricIngress.process_set_source_sink.tb_set_source" + "act_3" : "FabricIngress.process_set_source_sink.tb_set_source" }, "default_entry" : { - "action_id" : 37, + "action_id" : 33, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -10835,7 +10497,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.tb_set_source", - "id" : 19, + "id" : 15, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 46, @@ -10877,7 +10539,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -10895,15 +10557,15 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] } ] } @@ -10938,7 +10600,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -10961,7 +10623,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -10984,80 +10646,11 @@ } }, "true_next" : "tbl_act_1", - "false_next" : "node_8" - }, - { - "name" : "node_8", - "id" : 3, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_2", - "false_next" : "node_10" + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { "name" : "node_10", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_11", - "false_next" : "tbl_act_5" - }, - { - "name" : "node_11", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] - } - } - }, - "true_next" : "tbl_act_3", - "false_next" : "tbl_act_4" - }, - { - "name" : "node_17", - "id" : 6, + "id" : 3, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -11075,7 +10668,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] } } }, @@ -11085,15 +10678,15 @@ } } }, - "true_next" : "node_18", + "true_next" : "node_11", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_18", - "id" : 7, + "name" : "node_11", + "id" : 4, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -11103,7 +10696,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -11112,14 +10705,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_20" + "false_next" : "node_13" }, { - "name" : "node_20", - "id" : 8, + "name" : "node_13", + "id" : 5, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -11129,7 +10722,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -11138,14 +10731,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_22" + "false_next" : "node_15" }, { - "name" : "node_22", - "id" : 9, + "name" : "node_15", + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -11155,7 +10748,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -11167,8 +10760,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_25", - "id" : 10, + "name" : "node_18", + "id" : 7, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -11186,7 +10779,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] } } }, @@ -11200,8 +10793,8 @@ "true_next" : "FabricIngress.next.xconnect" }, { - "name" : "node_30", - "id" : 11, + "name" : "node_23", + "id" : 8, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -11222,12 +10815,12 @@ } } }, - "true_next" : "tbl_act_6", - "false_next" : "node_32" + "true_next" : "tbl_act_2", + "false_next" : "node_25" }, { - "name" : "node_32", - "id" : 12, + "name" : "node_25", + "id" : 9, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -11248,7 +10841,7 @@ } } }, - "true_next" : "tbl_act_7", + "true_next" : "tbl_act_3", "false_next" : "FabricIngress.process_set_source_sink.tb_set_source" } ] @@ -11262,11 +10855,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_37", + "init_table" : "node_30", "tables" : [ { - "name" : "tbl_act_8", - "id" : 20, + "name" : "tbl_act_4", + "id" : 16, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -11280,22 +10873,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [81], - "actions" : ["act_8"], - "base_default_next" : "node_39", + "action_ids" : [77], + "actions" : ["act_4"], + "base_default_next" : "node_32", "next_tables" : { - "act_8" : "node_39" + "act_4" : "node_32" }, "default_entry" : { - "action_id" : 81, + "action_id" : 77, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_9", - "id" : 21, + "name" : "tbl_act_5", + "id" : 17, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -11309,25 +10902,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [82], - "actions" : ["act_9"], - "base_default_next" : "node_41", + "action_ids" : [78], + "actions" : ["act_5"], + "base_default_next" : "node_34", "next_tables" : { - "act_9" : "node_41" + "act_5" : "node_34" }, "default_entry" : { - "action_id" : 82, + "action_id" : 78, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_10", - "id" : 22, + "name" : "tbl_act_6", + "id" : 18, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -11338,14 +10931,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [83], - "actions" : ["act_10"], - "base_default_next" : "node_43", + "action_ids" : [79], + "actions" : ["act_6"], + "base_default_next" : "node_36", "next_tables" : { - "act_10" : "node_43" + "act_6" : "node_36" }, "default_entry" : { - "action_id" : 83, + "action_id" : 79, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11353,10 +10946,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 23, + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -11367,14 +10960,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [77], + "action_ids" : [73], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 77, + "action_id" : 73, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11382,10 +10975,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 24, + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -11396,14 +10989,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [78], + "action_ids" : [74], "actions" : ["FabricEgress.egress_next.set_mpls"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 78, + "action_id" : 74, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11411,10 +11004,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 25, + "id" : 21, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -11422,7 +11015,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -11438,23 +11031,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [80, 40], + "action_ids" : [76, 36], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_11", - "__MISS__" : "tbl_act_12" + "__HIT__" : "tbl_act_7", + "__MISS__" : "tbl_act_8" }, "default_entry" : { - "action_id" : 40, + "action_id" : 36, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_11", - "id" : 26, + "name" : "tbl_act_7", + "id" : 22, "key" : [], "match_type" : "exact", "type" : "simple", @@ -11462,22 +11055,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [84], - "actions" : ["act_11"], - "base_default_next" : "node_50", + "action_ids" : [80], + "actions" : ["act_7"], + "base_default_next" : "node_43", "next_tables" : { - "act_11" : "node_50" + "act_7" : "node_43" }, "default_entry" : { - "action_id" : 84, + "action_id" : 80, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_12", - "id" : 27, + "name" : "tbl_act_8", + "id" : 23, "key" : [], "match_type" : "exact", "type" : "simple", @@ -11485,14 +11078,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [85], - "actions" : ["act_12"], - "base_default_next" : "node_50", + "action_ids" : [81], + "actions" : ["act_8"], + "base_default_next" : "node_43", "next_tables" : { - "act_12" : "node_50" + "act_8" : "node_43" }, "default_entry" : { - "action_id" : 85, + "action_id" : 81, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11500,10 +11093,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 28, + "id" : 24, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -11514,25 +11107,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [79], + "action_ids" : [75], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_53", + "base_default_next" : "node_46", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_53" + "FabricEgress.egress_next.push_vlan" : "node_46" }, "default_entry" : { - "action_id" : 79, + "action_id" : 75, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_13", - "id" : 29, + "name" : "tbl_act_9", + "id" : 25, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -11543,25 +11136,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [87], - "actions" : ["act_14"], - "base_default_next" : "node_55", + "action_ids" : [83], + "actions" : ["act_10"], + "base_default_next" : "node_48", "next_tables" : { - "act_14" : "node_55" + "act_10" : "node_48" }, "default_entry" : { - "action_id" : 87, + "action_id" : 83, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 30, + "name" : "tbl_act_10", + "id" : 26, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -11572,25 +11165,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [86], - "actions" : ["act_13"], - "base_default_next" : "node_61", + "action_ids" : [82], + "actions" : ["act_9"], + "base_default_next" : "node_54", "next_tables" : { - "act_13" : "node_61" + "act_9" : "node_54" }, "default_entry" : { - "action_id" : 86, + "action_id" : 82, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 31, + "name" : "tbl_act_11", + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -11601,25 +11194,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [89], - "actions" : ["act_16"], - "base_default_next" : "node_59", + "action_ids" : [85], + "actions" : ["act_12"], + "base_default_next" : "node_52", "next_tables" : { - "act_16" : "node_59" + "act_12" : "node_52" }, "default_entry" : { - "action_id" : 89, + "action_id" : 85, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_16", - "id" : 32, + "name" : "tbl_act_12", + "id" : 28, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -11630,14 +11223,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [88], - "actions" : ["act_15"], - "base_default_next" : "node_61", + "action_ids" : [84], + "actions" : ["act_11"], + "base_default_next" : "node_54", "next_tables" : { - "act_15" : "node_61" + "act_11" : "node_54" }, "default_entry" : { - "action_id" : 88, + "action_id" : 84, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11645,7 +11238,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "id" : 33, + "id" : 29, "source_info" : { "filename" : "include/int/int_source.p4", "line" : 66, @@ -11668,13 +11261,13 @@ { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport17"], + "target" : ["scalars", "fabric_metadata_t._l4_sport13"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport18"], + "target" : ["scalars", "fabric_metadata_t._l4_dport14"], "mask" : null } ], @@ -11684,23 +11277,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [43, 38], + "action_ids" : [39, 34], "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"], - "base_default_next" : "node_64", + "base_default_next" : "node_57", "next_tables" : { - "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_64", - "nop" : "node_64" + "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_57", + "nop" : "node_57" }, "default_entry" : { - "action_id" : 38, + "action_id" : 34, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_17", - "id" : 34, + "name" : "tbl_act_13", + "id" : 30, "key" : [], "match_type" : "exact", "type" : "simple", @@ -11708,14 +11301,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [90], - "actions" : ["act_17"], + "action_ids" : [86], + "actions" : ["act_13"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", "next_tables" : { - "act_17" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" + "act_13" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" }, "default_entry" : { - "action_id" : 90, + "action_id" : 86, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11723,7 +11316,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", - "id" : 35, + "id" : 31, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 315, @@ -11744,23 +11337,23 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [44, 39], + "action_ids" : [40, 35], "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"], - "base_default_next" : "node_67", + "base_default_next" : "node_60", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_67", - "nop" : "node_67" + "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_60", + "nop" : "node_60" }, "default_entry" : { - "action_id" : 39, + "action_id" : 35, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_18", - "id" : 36, + "name" : "tbl_act_14", + "id" : 32, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 420, @@ -11774,14 +11367,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [91], - "actions" : ["act_18"], - "base_default_next" : "node_69", + "action_ids" : [87], + "actions" : ["act_14"], + "base_default_next" : "node_62", "next_tables" : { - "act_18" : "node_69" + "act_14" : "node_62" }, "default_entry" : { - "action_id" : 91, + "action_id" : 87, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -11789,7 +11382,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003", - "id" : 37, + "id" : 33, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 331, @@ -11810,7 +11403,7 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 41], + "action_ids" : [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 37], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", "next_tables" : { @@ -11833,7 +11426,7 @@ "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407" }, "default_entry" : { - "action_id" : 41, + "action_id" : 37, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -11853,7 +11446,7 @@ } ], "action_entry" : { - "action_id" : 45, + "action_id" : 41, "action_data" : [] }, "priority" : 1 @@ -11872,7 +11465,7 @@ } ], "action_entry" : { - "action_id" : 46, + "action_id" : 42, "action_data" : [] }, "priority" : 2 @@ -11891,7 +11484,7 @@ } ], "action_entry" : { - "action_id" : 47, + "action_id" : 43, "action_data" : [] }, "priority" : 3 @@ -11910,7 +11503,7 @@ } ], "action_entry" : { - "action_id" : 48, + "action_id" : 44, "action_data" : [] }, "priority" : 4 @@ -11929,7 +11522,7 @@ } ], "action_entry" : { - "action_id" : 49, + "action_id" : 45, "action_data" : [] }, "priority" : 5 @@ -11948,7 +11541,7 @@ } ], "action_entry" : { - "action_id" : 50, + "action_id" : 46, "action_data" : [] }, "priority" : 6 @@ -11967,7 +11560,7 @@ } ], "action_entry" : { - "action_id" : 51, + "action_id" : 47, "action_data" : [] }, "priority" : 7 @@ -11986,7 +11579,7 @@ } ], "action_entry" : { - "action_id" : 52, + "action_id" : 48, "action_data" : [] }, "priority" : 8 @@ -12005,7 +11598,7 @@ } ], "action_entry" : { - "action_id" : 53, + "action_id" : 49, "action_data" : [] }, "priority" : 9 @@ -12024,7 +11617,7 @@ } ], "action_entry" : { - "action_id" : 54, + "action_id" : 50, "action_data" : [] }, "priority" : 10 @@ -12043,7 +11636,7 @@ } ], "action_entry" : { - "action_id" : 55, + "action_id" : 51, "action_data" : [] }, "priority" : 11 @@ -12062,7 +11655,7 @@ } ], "action_entry" : { - "action_id" : 56, + "action_id" : 52, "action_data" : [] }, "priority" : 12 @@ -12081,7 +11674,7 @@ } ], "action_entry" : { - "action_id" : 57, + "action_id" : 53, "action_data" : [] }, "priority" : 13 @@ -12100,7 +11693,7 @@ } ], "action_entry" : { - "action_id" : 58, + "action_id" : 54, "action_data" : [] }, "priority" : 14 @@ -12119,7 +11712,7 @@ } ], "action_entry" : { - "action_id" : 59, + "action_id" : 55, "action_data" : [] }, "priority" : 15 @@ -12138,7 +11731,7 @@ } ], "action_entry" : { - "action_id" : 60, + "action_id" : 56, "action_data" : [] }, "priority" : 16 @@ -12147,7 +11740,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", - "id" : 38, + "id" : 34, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 375, @@ -12168,30 +11761,30 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 42], + "action_ids" : [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 38], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"], - "base_default_next" : "tbl_act_19", + "base_default_next" : "tbl_act_15", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_19", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_19", - "NoAction" : "tbl_act_19" + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_15", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_15", + "NoAction" : "tbl_act_15" }, "default_entry" : { - "action_id" : 42, + "action_id" : 38, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -12211,7 +11804,7 @@ } ], "action_entry" : { - "action_id" : 61, + "action_id" : 57, "action_data" : [] }, "priority" : 1 @@ -12230,7 +11823,7 @@ } ], "action_entry" : { - "action_id" : 62, + "action_id" : 58, "action_data" : [] }, "priority" : 2 @@ -12249,7 +11842,7 @@ } ], "action_entry" : { - "action_id" : 63, + "action_id" : 59, "action_data" : [] }, "priority" : 3 @@ -12268,7 +11861,7 @@ } ], "action_entry" : { - "action_id" : 64, + "action_id" : 60, "action_data" : [] }, "priority" : 4 @@ -12287,7 +11880,7 @@ } ], "action_entry" : { - "action_id" : 65, + "action_id" : 61, "action_data" : [] }, "priority" : 5 @@ -12306,7 +11899,7 @@ } ], "action_entry" : { - "action_id" : 66, + "action_id" : 62, "action_data" : [] }, "priority" : 6 @@ -12325,7 +11918,7 @@ } ], "action_entry" : { - "action_id" : 67, + "action_id" : 63, "action_data" : [] }, "priority" : 7 @@ -12344,7 +11937,7 @@ } ], "action_entry" : { - "action_id" : 68, + "action_id" : 64, "action_data" : [] }, "priority" : 8 @@ -12363,7 +11956,7 @@ } ], "action_entry" : { - "action_id" : 69, + "action_id" : 65, "action_data" : [] }, "priority" : 9 @@ -12382,7 +11975,7 @@ } ], "action_entry" : { - "action_id" : 70, + "action_id" : 66, "action_data" : [] }, "priority" : 10 @@ -12401,7 +11994,7 @@ } ], "action_entry" : { - "action_id" : 71, + "action_id" : 67, "action_data" : [] }, "priority" : 11 @@ -12420,7 +12013,7 @@ } ], "action_entry" : { - "action_id" : 72, + "action_id" : 68, "action_data" : [] }, "priority" : 12 @@ -12439,7 +12032,7 @@ } ], "action_entry" : { - "action_id" : 73, + "action_id" : 69, "action_data" : [] }, "priority" : 13 @@ -12458,7 +12051,7 @@ } ], "action_entry" : { - "action_id" : 74, + "action_id" : 70, "action_data" : [] }, "priority" : 14 @@ -12477,7 +12070,7 @@ } ], "action_entry" : { - "action_id" : 75, + "action_id" : 71, "action_data" : [] }, "priority" : 15 @@ -12496,7 +12089,7 @@ } ], "action_entry" : { - "action_id" : 76, + "action_id" : 72, "action_data" : [] }, "priority" : 16 @@ -12504,8 +12097,8 @@ ] }, { - "name" : "tbl_act_19", - "id" : 39, + "name" : "tbl_act_15", + "id" : 35, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 425, @@ -12519,22 +12112,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [93], - "actions" : ["act_20"], - "base_default_next" : "node_73", + "action_ids" : [89], + "actions" : ["act_16"], + "base_default_next" : "node_66", "next_tables" : { - "act_20" : "node_73" + "act_16" : "node_66" }, "default_entry" : { - "action_id" : 93, + "action_id" : 89, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_20", - "id" : 40, + "name" : "tbl_act_16", + "id" : 36, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 428, @@ -12548,22 +12141,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [92], - "actions" : ["act_19"], - "base_default_next" : "node_75", + "action_ids" : [88], + "actions" : ["act_15"], + "base_default_next" : "node_68", "next_tables" : { - "act_19" : "node_75" + "act_15" : "node_68" }, "default_entry" : { - "action_id" : 92, + "action_id" : 88, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_21", - "id" : 41, + "name" : "tbl_act_17", + "id" : 37, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 431, @@ -12577,22 +12170,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [94], - "actions" : ["act_21"], - "base_default_next" : "node_77", + "action_ids" : [90], + "actions" : ["act_17"], + "base_default_next" : "node_70", "next_tables" : { - "act_21" : "node_77" + "act_17" : "node_70" }, "default_entry" : { - "action_id" : 94, + "action_id" : 90, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_22", - "id" : 42, + "name" : "tbl_act_18", + "id" : 38, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 434, @@ -12606,14 +12199,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [95], - "actions" : ["act_22"], + "action_ids" : [91], + "actions" : ["act_18"], "base_default_next" : null, "next_tables" : { - "act_22" : null + "act_18" : null }, "default_entry" : { - "action_id" : 95, + "action_id" : 91, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12623,8 +12216,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_37", - "id" : 13, + "name" : "node_30", + "id" : 10, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -12642,7 +12235,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] } } }, @@ -12652,12 +12245,12 @@ } } }, - "true_next" : "tbl_act_8", - "false_next" : "node_39" + "true_next" : "tbl_act_4", + "false_next" : "node_32" }, { - "name" : "node_39", - "id" : 14, + "name" : "node_32", + "id" : 11, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -12678,15 +12271,15 @@ } } }, - "true_next" : "tbl_act_9", - "false_next" : "node_41" + "true_next" : "tbl_act_5", + "false_next" : "node_34" }, { - "name" : "node_41", - "id" : 15, + "name" : "node_34", + "id" : 12, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -12705,7 +12298,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] } } }, @@ -12731,15 +12324,15 @@ } } }, - "true_next" : "tbl_act_10", - "false_next" : "node_43" + "true_next" : "tbl_act_6", + "false_next" : "node_36" }, { - "name" : "node_43", - "id" : 16, + "name" : "node_36", + "id" : 13, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -12749,7 +12342,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, "right" : { "type" : "hexstr", @@ -12757,15 +12350,15 @@ } } }, - "true_next" : "node_44", + "true_next" : "node_37", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_44", - "id" : 17, + "name" : "node_37", + "id" : 14, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -12784,11 +12377,11 @@ "false_next" : "FabricEgress.egress_next.egress_vlan" }, { - "name" : "node_50", - "id" : 18, + "name" : "node_43", + "id" : 15, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -12810,15 +12403,15 @@ } } }, - "true_next" : "node_51", - "false_next" : "node_53" + "true_next" : "node_44", + "false_next" : "node_46" }, { - "name" : "node_51", - "id" : 19, + "name" : "node_44", + "id" : 16, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -12828,7 +12421,7 @@ "op" : "!=", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, "right" : { "type" : "hexstr", @@ -12837,14 +12430,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "node_53" + "false_next" : "node_46" }, { - "name" : "node_53", - "id" : 20, + "name" : "node_46", + "id" : 17, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -12859,15 +12452,15 @@ } } }, - "true_next" : "tbl_act_13", - "false_next" : "node_57" + "true_next" : "tbl_act_9", + "false_next" : "node_50" }, { - "name" : "node_55", - "id" : 21, + "name" : "node_48", + "id" : 18, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -12885,15 +12478,15 @@ } } }, - "true_next" : "tbl_act_14", - "false_next" : "node_61" + "true_next" : "tbl_act_10", + "false_next" : "node_54" }, { - "name" : "node_57", - "id" : 22, + "name" : "node_50", + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -12908,15 +12501,15 @@ } } }, - "true_next" : "tbl_act_15", - "false_next" : "node_61" + "true_next" : "tbl_act_11", + "false_next" : "node_54" }, { - "name" : "node_59", - "id" : 23, + "name" : "node_52", + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -12934,12 +12527,12 @@ } } }, - "true_next" : "tbl_act_16", - "false_next" : "node_61" + "true_next" : "tbl_act_12", + "false_next" : "node_54" }, { - "name" : "node_61", - "id" : 24, + "name" : "node_54", + "id" : 21, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 102, @@ -13015,11 +12608,11 @@ } }, "false_next" : null, - "true_next" : "node_62" + "true_next" : "node_55" }, { - "name" : "node_62", - "id" : 25, + "name" : "node_55", + "id" : 22, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 106, @@ -13037,7 +12630,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source19"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source15"] } } }, @@ -13048,11 +12641,11 @@ } }, "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "false_next" : "node_64" + "false_next" : "node_57" }, { - "name" : "node_64", - "id" : 26, + "name" : "node_57", + "id" : 23, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 110, @@ -13071,11 +12664,11 @@ } }, "false_next" : null, - "true_next" : "tbl_act_17" + "true_next" : "tbl_act_13" }, { - "name" : "node_67", - "id" : 27, + "name" : "node_60", + "id" : 24, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 419, @@ -13093,7 +12686,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit20"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit16"] } } }, @@ -13103,12 +12696,12 @@ } } }, - "true_next" : "tbl_act_18", - "false_next" : "node_69" + "true_next" : "tbl_act_14", + "false_next" : "node_62" }, { - "name" : "node_69", - "id" : 28, + "name" : "node_62", + "id" : 25, "expression" : { "type" : "expression", "value" : { @@ -13131,8 +12724,8 @@ "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003" }, { - "name" : "node_73", - "id" : 29, + "name" : "node_66", + "id" : 26, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 427, @@ -13150,12 +12743,12 @@ } } }, - "true_next" : "tbl_act_20", - "false_next" : "node_75" + "true_next" : "tbl_act_16", + "false_next" : "node_68" }, { - "name" : "node_75", - "id" : 30, + "name" : "node_68", + "id" : 27, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 430, @@ -13173,12 +12766,12 @@ } } }, - "true_next" : "tbl_act_21", - "false_next" : "node_77" + "true_next" : "tbl_act_17", + "false_next" : "node_70" }, { - "name" : "node_77", - "id" : 31, + "name" : "node_70", + "id" : 28, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 433, @@ -13197,7 +12790,7 @@ } }, "false_next" : null, - "true_next" : "tbl_act_22" + "true_next" : "tbl_act_18" } ] } diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt similarity index 96% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt index 9a5f7e1ba2d..6a64bd12c10 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt @@ -49,12 +49,6 @@ tables { bitwidth: 12 match_type: TERNARY } - match_fields { - id: 4 - name: "inner_vlan_id" - bitwidth: 12 - match_type: TERNARY - } action_refs { id: 16836487 } @@ -88,20 +82,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -188,8 +176,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -886,17 +872,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318801025 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-mlnx/spectrum/default/README.md b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-mlnx/spectrum/default/README.md similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-mlnx/spectrum/default/README.md rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-mlnx/spectrum/default/README.md diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json similarity index 94% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json index a4997b3607e..a3e31ffa972 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json @@ -5,49 +5,46 @@ "id" : 0, "fields" : [ ["last_ipv4_dscp_0", 6, false], - ["tmp_0", 4, false], + ["tmp_2", 16, false], + ["tmp_3", 16, false], + ["tmp_4", 4, false], ["tmp", 8, false], + ["tmp_0", 32, false], ["tmp_1", 32, false], - ["tmp_2", 32, false], ["spgw_ingress_tmp", 1, false], ["spgw_ingress_tmp_0", 1, false], ["spgw_normalizer_hasReturned", 1, false], ["spgw_ingress_hasReturned", 1, false], ["egress_next_tmp", 1, false], ["process_int_main_process_int_transit_hasReturned", 1, false], - ["fabric_metadata_t._last_eth_type0", 16, false], - ["fabric_metadata_t._is_ipv41", 1, false], - ["fabric_metadata_t._is_ipv62", 1, false], - ["fabric_metadata_t._is_mpls3", 1, false], - ["fabric_metadata_t._ip_eth_type4", 16, false], - ["fabric_metadata_t._vlan_id5", 12, false], - ["fabric_metadata_t._vlan_pri6", 3, false], - ["fabric_metadata_t._vlan_cfi7", 1, false], - ["fabric_metadata_t._mpls_label8", 20, false], - ["fabric_metadata_t._mpls_ttl9", 8, false], - ["fabric_metadata_t._skip_forwarding10", 1, false], - ["fabric_metadata_t._skip_next11", 1, false], - ["fabric_metadata_t._fwd_type12", 3, false], - ["fabric_metadata_t._next_id13", 32, false], - ["fabric_metadata_t._is_multicast14", 1, false], - ["fabric_metadata_t._is_controller_packet_out15", 1, false], - ["fabric_metadata_t._ip_proto16", 8, false], - ["fabric_metadata_t._l4_sport17", 16, false], - ["fabric_metadata_t._l4_dport18", 16, false], - ["fabric_metadata_t._spgw_direction19", 2, false], - ["fabric_metadata_t._spgw_ipv4_len20", 16, false], - ["fabric_metadata_t._spgw_teid21", 32, false], - ["fabric_metadata_t._spgw_s1u_enb_addr22", 32, false], - ["fabric_metadata_t._spgw_s1u_sgw_addr23", 32, false], - ["fabric_metadata_t._int_meta_source24", 1, false], - ["fabric_metadata_t._int_meta_transit25", 1, false], - ["fabric_metadata_t._int_meta_sink26", 1, false], - ["fabric_metadata_t._int_meta_switch_id27", 32, false], - ["fabric_metadata_t._int_meta_new_words28", 8, false], - ["fabric_metadata_t._int_meta_new_bytes29", 16, false], - ["fabric_metadata_t._int_meta_ig_tstamp30", 32, false], - ["fabric_metadata_t._int_meta_eg_tstamp31", 32, false], - ["_padding_0", 5, false] + ["fabric_metadata_t._ip_eth_type0", 16, false], + ["fabric_metadata_t._vlan_id1", 12, false], + ["fabric_metadata_t._vlan_pri2", 3, false], + ["fabric_metadata_t._vlan_cfi3", 1, false], + ["fabric_metadata_t._mpls_label4", 20, false], + ["fabric_metadata_t._mpls_ttl5", 8, false], + ["fabric_metadata_t._skip_forwarding6", 1, false], + ["fabric_metadata_t._skip_next7", 1, false], + ["fabric_metadata_t._fwd_type8", 3, false], + ["fabric_metadata_t._next_id9", 32, false], + ["fabric_metadata_t._is_multicast10", 1, false], + ["fabric_metadata_t._is_controller_packet_out11", 1, false], + ["fabric_metadata_t._ip_proto12", 8, false], + ["fabric_metadata_t._l4_sport13", 16, false], + ["fabric_metadata_t._l4_dport14", 16, false], + ["fabric_metadata_t._spgw_direction15", 2, false], + ["fabric_metadata_t._spgw_ipv4_len16", 16, false], + ["fabric_metadata_t._spgw_teid17", 32, false], + ["fabric_metadata_t._spgw_s1u_enb_addr18", 32, false], + ["fabric_metadata_t._spgw_s1u_sgw_addr19", 32, false], + ["fabric_metadata_t._int_meta_source20", 1, false], + ["fabric_metadata_t._int_meta_transit21", 1, false], + ["fabric_metadata_t._int_meta_sink22", 1, false], + ["fabric_metadata_t._int_meta_switch_id23", 32, false], + ["fabric_metadata_t._int_meta_new_words24", 8, false], + ["fabric_metadata_t._int_meta_new_bytes25", 16, false], + ["fabric_metadata_t._int_meta_ig_tstamp26", 32, false], + ["fabric_metadata_t._int_meta_eg_tstamp27", 32, false] ] }, { @@ -84,23 +81,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "mpls_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "mpls_t", + "id" : 5, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -110,7 +113,7 @@ }, { "name" : "ipv4_t", - "id" : 5, + "id" : 6, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -129,7 +132,7 @@ }, { "name" : "udp_t", - "id" : 6, + "id" : 7, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -139,7 +142,7 @@ }, { "name" : "gtpu_t", - "id" : 7, + "id" : 8, "fields" : [ ["version", 3, false], ["pt", 1, false], @@ -154,7 +157,7 @@ }, { "name" : "tcp_t", - "id" : 8, + "id" : 9, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -171,7 +174,7 @@ }, { "name" : "icmp_t", - "id" : 9, + "id" : 10, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -183,7 +186,7 @@ }, { "name" : "packet_out_header_t", - "id" : 10, + "id" : 11, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -191,7 +194,7 @@ }, { "name" : "packet_in_header_t", - "id" : 11, + "id" : 12, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -199,7 +202,7 @@ }, { "name" : "intl4_shim_t", - "id" : 12, + "id" : 13, "fields" : [ ["int_type", 8, false], ["rsvd1", 8, false], @@ -209,7 +212,7 @@ }, { "name" : "int_header_t", - "id" : 13, + "id" : 14, "fields" : [ ["ver", 2, false], ["rep", 2, false], @@ -228,14 +231,14 @@ }, { "name" : "int_switch_id_t", - "id" : 14, + "id" : 15, "fields" : [ ["switch_id", 32, false] ] }, { "name" : "int_port_ids_t", - "id" : 15, + "id" : 16, "fields" : [ ["ingress_port_id", 16, false], ["egress_port_id", 16, false] @@ -243,14 +246,14 @@ }, { "name" : "int_hop_latency_t", - "id" : 16, + "id" : 17, "fields" : [ ["hop_latency", 32, false] ] }, { "name" : "int_q_occupancy_t", - "id" : 17, + "id" : 18, "fields" : [ ["q_id", 8, false], ["q_occupancy", 24, false] @@ -258,21 +261,21 @@ }, { "name" : "int_ingress_tstamp_t", - "id" : 18, + "id" : 19, "fields" : [ ["ingress_tstamp", 32, false] ] }, { "name" : "int_egress_tstamp_t", - "id" : 19, + "id" : 20, "fields" : [ ["egress_tstamp", 32, false] ] }, { "name" : "int_q_congestion_t", - "id" : 20, + "id" : 21, "fields" : [ ["q_id", 8, false], ["q_congestion", 24, false] @@ -280,14 +283,14 @@ }, { "name" : "int_egress_port_tx_util_t", - "id" : 21, + "id" : 22, "fields" : [ ["egress_port_tx_util", 32, false] ] }, { "name" : "intl4_tail_t", - "id" : 22, + "id" : 23, "fields" : [ ["next_proto", 8, false], ["dest_port", 16, false], @@ -333,162 +336,169 @@ "pi_omit" : true }, { - "name" : "mpls", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "mpls", + "id" : 6, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_ipv4", - "id" : 6, + "id" : 7, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_udp", - "id" : 7, + "id" : 8, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu", - "id" : 8, + "id" : 9, "header_type" : "gtpu_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_ipv4", - "id" : 9, + "id" : 10, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_udp", - "id" : 10, + "id" : 11, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 11, + "id" : 12, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 12, + "id" : 13, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 13, + "id" : 14, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 14, + "id" : 15, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 15, + "id" : 16, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 16, + "id" : 17, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_shim", - "id" : 17, + "id" : 18, "header_type" : "intl4_shim_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_header", - "id" : 18, + "id" : 19, "header_type" : "int_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_switch_id", - "id" : 19, + "id" : 20, "header_type" : "int_switch_id_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_port_ids", - "id" : 20, + "id" : 21, "header_type" : "int_port_ids_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_hop_latency", - "id" : 21, + "id" : 22, "header_type" : "int_hop_latency_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_occupancy", - "id" : 22, + "id" : 23, "header_type" : "int_q_occupancy_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_ingress_tstamp", - "id" : 23, + "id" : 24, "header_type" : "int_ingress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tstamp", - "id" : 24, + "id" : 25, "header_type" : "int_egress_tstamp_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_q_congestion", - "id" : 25, + "id" : 26, "header_type" : "int_q_congestion_t", "metadata" : false, "pi_omit" : true }, { "name" : "int_egress_tx_util", - "id" : 26, + "id" : 27, "header_type" : "int_egress_port_tx_util_t", "metadata" : false, "pi_omit" : true }, { "name" : "intl4_tail", - "id" : 27, + "id" : 28, "header_type" : "intl4_tail_t", "metadata" : false, "pi_omit" : true @@ -596,11 +606,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -609,11 +619,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "tmp_2"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -638,28 +648,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_2"] } ] }, @@ -675,21 +673,22 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_3"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" } ], "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, { "type" : "hexstr", "value" : "0x8100", @@ -699,13 +698,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_3"] } ] }, @@ -725,17 +724,40 @@ ], "transitions" : [ { - "type" : "hexstr", - "value" : "0x0800", + "value" : "default", "mask" : null, - "next_state" : "pre_parse_ipv4" - }, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8847", "mask" : null, "next_state" : "parse_mpls" }, + { + "type" : "hexstr", + "value" : "0x0800", + "mask" : null, + "next_state" : "parse_ipv4" + }, { "value" : "default", "mask" : null, @@ -745,13 +767,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_mpls", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -766,30 +788,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_mpls3"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "field", @@ -802,7 +801,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "field", @@ -815,7 +814,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] }, { "type" : "lookahead", @@ -841,47 +840,10 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] } ] }, - { - "name" : "pre_parse_ipv4", - "id" : 6, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv41"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv4", "id" : 7, @@ -899,7 +861,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", @@ -912,7 +874,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -984,7 +946,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -997,7 +959,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1033,7 +995,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -1046,7 +1008,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1255,7 +1217,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -1268,7 +1230,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1400,11 +1362,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"] + "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"] } ], "meter_arrays" : [], @@ -1452,7 +1414,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -1481,21 +1443,9 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 6, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 7, + "id" : 6, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -1507,7 +1457,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 8, + "id" : 7, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -1519,43 +1469,43 @@ }, { "name" : "FabricIngress.next.xconnect_counter", - "id" : 9, + "id" : 8, "is_direct" : true, "binding" : "FabricIngress.next.xconnect", "source_info" : { "filename" : "include/control/next.p4", - "line" : 103, + "line" : 107, "column" : 50, "source_fragment" : "xconnect_counter" } }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 10, + "id" : 9, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 11, + "id" : 10, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 12, + "id" : 11, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -1567,7 +1517,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 13, + "id" : 12, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -1579,7 +1529,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source", - "id" : 14, + "id" : 13, "is_direct" : true, "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source", "source_info" : { @@ -1591,12 +1541,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 15, + "id" : 14, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -1925,7 +1875,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid17"] }, { "type" : "runtime_data", @@ -1944,7 +1894,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"] }, { "type" : "runtime_data", @@ -1963,7 +1913,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"] }, { "type" : "runtime_data", @@ -1989,7 +1939,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source20"] }, { "type" : "expression", @@ -2025,7 +1975,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] }, { "type" : "expression", @@ -2054,7 +2004,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -2101,7 +2051,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2132,7 +2082,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, { "type" : "runtime_data", @@ -2141,7 +2091,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 33, "source_fragment" : "= fwd_type; ..." } @@ -2163,7 +2113,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2194,7 +2144,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "hexstr", @@ -2213,7 +2163,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2244,7 +2194,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2281,7 +2231,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2326,7 +2276,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -2408,7 +2358,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -2455,7 +2405,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2499,32 +2449,13 @@ "column" : 5, "source_fragment" : "standard_metadata.egress_spec = port_num; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } - } - ] - }, - { - "name" : "FabricIngress.next.set_next_id_xconnect", - "id" : 28, - "runtime_data" : [ + } + ] + }, + { + "name" : "FabricIngress.next.set_next_id_xconnect", + "id" : 28, + "runtime_data" : [ { "name" : "next_id", "bitwidth" : 32 @@ -2536,7 +2467,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2545,7 +2476,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 112, + "line" : 115, "column" : 32, "source_fragment" : "= next_id; ..." } @@ -2687,7 +2618,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "runtime_data", @@ -2784,7 +2715,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -2794,7 +2725,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] }, { "type" : "expression", @@ -2813,7 +2744,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 37, "source_fragment" : "= true; ..." } @@ -3072,7 +3003,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] }, { "type" : "expression", @@ -3118,7 +3049,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "field", @@ -3127,7 +3058,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." } @@ -3137,7 +3068,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] }, { "type" : "field", @@ -3146,7 +3077,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 37, "source_fragment" : "= hdr.vlan_tag.pri; ..." } @@ -3156,7 +3087,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] }, { "type" : "field", @@ -3165,7 +3096,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 37, "source_fragment" : "= hdr.vlan_tag.cfi; ..." } @@ -3182,7 +3113,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "hexstr", @@ -3191,7 +3122,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..." } @@ -3202,110 +3133,6 @@ "name" : "act_7", "id" : 41, "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8847" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." - } - } - ] - }, - { - "name" : "act_8", - "id" : 42, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_9", - "id" : 43, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "= hdr.vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_10", - "id" : 44, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "= hdr.ethernet.eth_type; ..." - } - } - ] - }, - { - "name" : "act_11", - "id" : 45, - "runtime_data" : [], "primitives" : [ { "op" : "assign", @@ -3333,8 +3160,8 @@ ] }, { - "name" : "act_12", - "id" : 46, + "name" : "act_8", + "id" : 42, "runtime_data" : [], "primitives" : [ { @@ -3363,8 +3190,8 @@ ] }, { - "name" : "act_13", - "id" : 47, + "name" : "act_9", + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -3385,8 +3212,8 @@ ] }, { - "name" : "act_14", - "id" : 48, + "name" : "act_10", + "id" : 44, "runtime_data" : [], "primitives" : [ { @@ -3394,7 +3221,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3403,7 +3230,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 143, + "line" : 147, "column" : 36, "source_fragment" : "2w1; ..." } @@ -3411,8 +3238,8 @@ ] }, { - "name" : "act_15", - "id" : 49, + "name" : "act_11", + "id" : 45, "runtime_data" : [], "primitives" : [ { @@ -3441,8 +3268,8 @@ ] }, { - "name" : "act_16", - "id" : 50, + "name" : "act_12", + "id" : 46, "runtime_data" : [], "primitives" : [ { @@ -3471,8 +3298,8 @@ ] }, { - "name" : "act_17", - "id" : 51, + "name" : "act_13", + "id" : 47, "runtime_data" : [], "primitives" : [ { @@ -3480,7 +3307,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3489,7 +3316,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 144, + "line" : 148, "column" : 38, "source_fragment" : "2w2; ..." } @@ -3497,8 +3324,8 @@ ] }, { - "name" : "act_18", - "id" : 52, + "name" : "act_14", + "id" : 48, "runtime_data" : [], "primitives" : [ { @@ -3506,7 +3333,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3515,7 +3342,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 142, + "line" : 146, "column" : 37, "source_fragment" : "2w0; ..." } @@ -3552,8 +3379,8 @@ ] }, { - "name" : "act_19", - "id" : 53, + "name" : "act_15", + "id" : 49, "runtime_data" : [], "primitives" : [ { @@ -3582,8 +3409,8 @@ ] }, { - "name" : "act_20", - "id" : 54, + "name" : "act_16", + "id" : 50, "runtime_data" : [], "primitives" : [ { @@ -3591,7 +3418,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] }, { "type" : "field", @@ -3608,8 +3435,8 @@ ] }, { - "name" : "act_21", - "id" : 55, + "name" : "act_17", + "id" : 51, "runtime_data" : [], "primitives" : [ { @@ -3617,7 +3444,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] }, { "type" : "expression", @@ -3653,7 +3480,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] } ], "source_info" : { @@ -3666,8 +3493,8 @@ ] }, { - "name" : "act_22", - "id" : 56, + "name" : "act_18", + "id" : 52, "runtime_data" : [], "primitives" : [ { @@ -3675,7 +3502,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] }, { "type" : "expression", @@ -3711,7 +3538,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] } ], "source_info" : { @@ -3725,37 +3552,37 @@ }, { "name" : "nop", - "id" : 57, + "id" : 53, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 58, + "id" : 54, "runtime_data" : [], "primitives" : [] }, { "name" : "nop", - "id" : 59, + "id" : 55, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 60, + "id" : 56, "runtime_data" : [], "primitives" : [] }, { "name" : "NoAction", - "id" : 61, + "id" : 57, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.spgw_egress.gtpu_encap", - "id" : 62, + "id" : 58, "runtime_data" : [], "primitives" : [ { @@ -3806,7 +3633,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 125, + "line" : 129, "column" : 28, "source_fragment" : "5; ..." } @@ -3962,7 +3789,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 138, + "line" : 142, "column" : 32, "source_fragment" : "64; ..." } @@ -3981,7 +3808,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 122, + "line" : 126, "column" : 25, "source_fragment" : "17; ..." } @@ -3995,7 +3822,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"] } ], "source_info" : { @@ -4014,7 +3841,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"] } ], "source_info" : { @@ -4115,7 +3942,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] }, "right" : { "type" : "hexstr", @@ -4314,7 +4141,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] } ], "source_info" : { @@ -4333,7 +4160,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid17"] } ], "source_info" : { @@ -4347,7 +4174,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp", - "id" : 63, + "id" : 59, "runtime_data" : [ { "name" : "max_hop", @@ -4415,7 +4242,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 153, + "line" : 157, "column" : 36, "source_fragment" : "4; ..." } @@ -4706,7 +4533,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] } ], "source_info" : { @@ -4833,7 +4660,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 149, + "line" : 153, "column" : 24, "source_fragment" : "0x1; ..." } @@ -4842,7 +4669,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata", - "id" : 64, + "id" : 60, "runtime_data" : [ { "name" : "switch_id", @@ -4855,7 +4682,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit21"] }, { "type" : "expression", @@ -4884,7 +4711,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] }, { "type" : "runtime_data", @@ -4902,13 +4729,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", - "id" : 65, + "id" : 61, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", - "id" : 66, + "id" : 62, "runtime_data" : [], "primitives" : [ { @@ -4982,7 +4809,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -4996,7 +4823,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5024,7 +4851,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5038,7 +4865,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5065,7 +4892,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", - "id" : 67, + "id" : 63, "runtime_data" : [], "primitives" : [ { @@ -5107,7 +4934,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -5121,7 +4948,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5149,7 +4976,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5163,7 +4990,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5190,7 +5017,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", - "id" : 68, + "id" : 64, "runtime_data" : [], "primitives" : [ { @@ -5298,7 +5125,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -5312,7 +5139,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5340,7 +5167,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5354,7 +5181,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5381,7 +5208,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", - "id" : 69, + "id" : 65, "runtime_data" : [], "primitives" : [ { @@ -5468,7 +5295,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -5482,7 +5309,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5510,7 +5337,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5524,7 +5351,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5551,7 +5378,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", - "id" : 70, + "id" : 66, "runtime_data" : [], "primitives" : [ { @@ -5704,7 +5531,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -5718,7 +5545,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5746,7 +5573,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5760,7 +5587,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5787,7 +5614,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", - "id" : 71, + "id" : 67, "runtime_data" : [], "primitives" : [ { @@ -5908,7 +5735,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -5922,7 +5749,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -5950,7 +5777,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -5964,7 +5791,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -5991,7 +5818,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", - "id" : 72, + "id" : 68, "runtime_data" : [], "primitives" : [ { @@ -6178,7 +6005,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -6192,7 +6019,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -6220,7 +6047,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -6234,7 +6061,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -6261,7 +6088,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", - "id" : 73, + "id" : 69, "runtime_data" : [], "primitives" : [ { @@ -6288,7 +6115,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -6303,7 +6130,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -6317,7 +6144,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -6345,7 +6172,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -6359,7 +6186,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -6386,7 +6213,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", - "id" : 74, + "id" : 70, "runtime_data" : [], "primitives" : [ { @@ -6479,7 +6306,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -6494,7 +6321,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -6508,7 +6335,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -6536,7 +6363,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -6550,7 +6377,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -6577,7 +6404,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", - "id" : 75, + "id" : 71, "runtime_data" : [], "primitives" : [ { @@ -6638,7 +6465,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -6653,7 +6480,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -6667,7 +6494,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -6695,7 +6522,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -6709,7 +6536,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -6736,7 +6563,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", - "id" : 76, + "id" : 72, "runtime_data" : [], "primitives" : [ { @@ -6863,7 +6690,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -6878,7 +6705,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -6892,7 +6719,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -6920,7 +6747,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -6934,7 +6761,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -6961,7 +6788,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", - "id" : 77, + "id" : 73, "runtime_data" : [], "primitives" : [ { @@ -7067,7 +6894,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -7082,7 +6909,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -7096,7 +6923,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -7124,7 +6951,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -7138,7 +6965,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -7165,7 +6992,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", - "id" : 78, + "id" : 74, "runtime_data" : [], "primitives" : [ { @@ -7337,7 +7164,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -7352,7 +7179,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -7366,7 +7193,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -7394,7 +7221,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -7408,7 +7235,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -7435,7 +7262,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", - "id" : 79, + "id" : 75, "runtime_data" : [], "primitives" : [ { @@ -7575,7 +7402,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -7590,7 +7417,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -7604,7 +7431,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -7632,7 +7459,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -7646,7 +7473,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -7673,7 +7500,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", - "id" : 80, + "id" : 76, "runtime_data" : [], "primitives" : [ { @@ -7879,7 +7706,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"] + "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"] } ], "source_info" : { @@ -7894,7 +7721,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -7908,7 +7735,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -7936,7 +7763,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -7950,7 +7777,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -7977,13 +7804,13 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", - "id" : 81, + "id" : 77, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", - "id" : 82, + "id" : 78, "runtime_data" : [], "primitives" : [ { @@ -8025,7 +7852,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8039,7 +7866,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8067,7 +7894,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8081,7 +7908,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8108,7 +7935,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", - "id" : 83, + "id" : 79, "runtime_data" : [], "primitives" : [ { @@ -8169,7 +7996,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8183,7 +8010,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8211,7 +8038,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8225,7 +8052,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8252,7 +8079,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", - "id" : 84, + "id" : 80, "runtime_data" : [], "primitives" : [ { @@ -8347,7 +8174,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8361,7 +8188,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8389,7 +8216,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8403,7 +8230,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8430,7 +8257,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", - "id" : 85, + "id" : 81, "runtime_data" : [], "primitives" : [ { @@ -8495,7 +8322,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8509,7 +8336,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8537,7 +8364,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8551,7 +8378,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8578,7 +8405,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", - "id" : 86, + "id" : 82, "runtime_data" : [], "primitives" : [ { @@ -8677,7 +8504,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8691,7 +8518,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8719,7 +8546,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8733,7 +8560,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8760,7 +8587,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", - "id" : 87, + "id" : 83, "runtime_data" : [], "primitives" : [ { @@ -8878,7 +8705,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -8892,7 +8719,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -8920,7 +8747,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -8934,7 +8761,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -8961,7 +8788,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", - "id" : 88, + "id" : 84, "runtime_data" : [], "primitives" : [ { @@ -9113,7 +8940,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9127,7 +8954,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -9155,7 +8982,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -9169,7 +8996,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -9196,7 +9023,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", - "id" : 89, + "id" : 85, "runtime_data" : [], "primitives" : [ { @@ -9238,7 +9065,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9252,7 +9079,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -9280,7 +9107,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -9294,7 +9121,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -9321,7 +9148,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", - "id" : 90, + "id" : 86, "runtime_data" : [], "primitives" : [ { @@ -9397,7 +9224,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9411,7 +9238,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -9439,7 +9266,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -9453,7 +9280,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -9480,7 +9307,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", - "id" : 91, + "id" : 87, "runtime_data" : [], "primitives" : [ { @@ -9575,7 +9402,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9589,7 +9416,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -9617,7 +9444,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -9631,7 +9458,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -9658,7 +9485,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", - "id" : 92, + "id" : 88, "runtime_data" : [], "primitives" : [ { @@ -9787,7 +9614,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9801,7 +9628,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -9829,7 +9656,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -9843,7 +9670,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -9870,7 +9697,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", - "id" : 93, + "id" : 89, "runtime_data" : [], "primitives" : [ { @@ -9969,7 +9796,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -9983,7 +9810,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -10011,7 +9838,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -10025,7 +9852,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -10052,7 +9879,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", - "id" : 94, + "id" : 90, "runtime_data" : [], "primitives" : [ { @@ -10185,7 +10012,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -10199,7 +10026,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -10227,7 +10054,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -10241,7 +10068,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -10268,7 +10095,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", - "id" : 95, + "id" : 91, "runtime_data" : [], "primitives" : [ { @@ -10420,7 +10247,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -10434,7 +10261,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -10462,7 +10289,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -10476,7 +10303,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -10503,7 +10330,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", - "id" : 96, + "id" : 92, "runtime_data" : [], "primitives" : [ { @@ -10689,7 +10516,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, { "type" : "expression", @@ -10703,7 +10530,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] }, "right" : { "type" : "hexstr", @@ -10731,7 +10558,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, { "type" : "expression", @@ -10745,7 +10572,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] }, "right" : { "type" : "hexstr", @@ -10772,7 +10599,7 @@ }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 97, + "id" : 93, "runtime_data" : [], "primitives" : [ { @@ -10785,7 +10612,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -10795,25 +10622,25 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, - "column" : 38, - "source_fragment" : "= fabric_metadata.ip_eth_type; ..." + "line" : 272, + "column" : 8, + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..." } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 98, + "id" : 94, "runtime_data" : [], "primitives" : [ { @@ -10826,7 +10653,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -10840,12 +10667,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..." } @@ -10864,7 +10691,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -10883,7 +10710,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -10897,12 +10724,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..." } @@ -10912,7 +10739,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -10921,7 +10748,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -10930,7 +10757,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 99, + "id" : 95, "runtime_data" : [], "primitives" : [ { @@ -10943,7 +10770,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -10957,12 +10784,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -10976,12 +10803,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -10994,15 +10821,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -11014,61 +10841,23 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 100, + "id" : 96, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..." - } - }, { "op" : "remove_header", "parameters" : [ @@ -11079,7 +10868,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -11087,8 +10876,8 @@ ] }, { - "name" : "act_23", - "id" : 101, + "name" : "act_19", + "id" : 97, "runtime_data" : [], "primitives" : [ { @@ -11104,8 +10893,8 @@ ] }, { - "name" : "act_24", - "id" : 102, + "name" : "act_20", + "id" : 98, "runtime_data" : [], "primitives" : [ { @@ -11155,8 +10944,8 @@ ] }, { - "name" : "act_25", - "id" : 103, + "name" : "act_21", + "id" : 99, "runtime_data" : [], "primitives" : [ { @@ -11169,7 +10958,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -11177,8 +10966,8 @@ ] }, { - "name" : "act_26", - "id" : 104, + "name" : "act_22", + "id" : 100, "runtime_data" : [], "primitives" : [ { @@ -11207,8 +10996,8 @@ ] }, { - "name" : "act_27", - "id" : 105, + "name" : "act_23", + "id" : 101, "runtime_data" : [], "primitives" : [ { @@ -11237,8 +11026,8 @@ ] }, { - "name" : "act_28", - "id" : 106, + "name" : "act_24", + "id" : 102, "runtime_data" : [], "primitives" : [ { @@ -11251,7 +11040,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -11259,8 +11048,8 @@ ] }, { - "name" : "act_29", - "id" : 107, + "name" : "act_25", + "id" : 103, "runtime_data" : [], "primitives" : [ { @@ -11300,7 +11089,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -11308,8 +11097,8 @@ ] }, { - "name" : "act_30", - "id" : 108, + "name" : "act_26", + "id" : 104, "runtime_data" : [], "primitives" : [ { @@ -11322,7 +11111,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -11330,8 +11119,8 @@ ] }, { - "name" : "act_31", - "id" : 109, + "name" : "act_27", + "id" : 105, "runtime_data" : [], "primitives" : [ { @@ -11371,7 +11160,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -11379,8 +11168,8 @@ ] }, { - "name" : "act_32", - "id" : 110, + "name" : "act_28", + "id" : 106, "runtime_data" : [], "primitives" : [ { @@ -11409,8 +11198,8 @@ ] }, { - "name" : "act_33", - "id" : 111, + "name" : "act_29", + "id" : 107, "runtime_data" : [], "primitives" : [ { @@ -11445,8 +11234,8 @@ ] }, { - "name" : "act_34", - "id" : 112, + "name" : "act_30", + "id" : 108, "runtime_data" : [], "primitives" : [ { @@ -11472,7 +11261,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] } } }, @@ -11494,8 +11283,8 @@ ] }, { - "name" : "act_35", - "id" : 113, + "name" : "act_31", + "id" : 109, "runtime_data" : [], "primitives" : [ { @@ -11543,8 +11332,8 @@ ] }, { - "name" : "act_36", - "id" : 114, + "name" : "act_32", + "id" : 110, "runtime_data" : [], "primitives" : [ { @@ -11570,7 +11359,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"] } } }, @@ -11592,8 +11381,8 @@ ] }, { - "name" : "act_37", - "id" : 115, + "name" : "act_33", + "id" : 111, "runtime_data" : [], "primitives" : [ { @@ -11619,7 +11408,7 @@ }, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"] + "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"] } } }, @@ -11832,7 +11621,7 @@ "id" : 6, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -11861,7 +11650,7 @@ "id" : 7, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -11874,128 +11663,12 @@ "direct_meters" : null, "action_ids" : [40], "actions" : ["act_6"], - "base_default_next" : "node_16", - "next_tables" : { - "act_6" : "node_16" - }, - "default_entry" : { - "action_id" : 40, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_7", - "id" : 8, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [41], - "actions" : ["act_7"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_7" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 41, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_8", - "id" : 9, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [42], - "actions" : ["act_8"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_8" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 42, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_9", - "id" : 10, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [43], - "actions" : ["act_9"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_9" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 43, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_10", - "id" : 11, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [44], - "actions" : ["act_10"], "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_10" : "FabricIngress.filtering.ingress_port_vlan" + "act_6" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { - "action_id" : 44, + "action_id" : 40, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12003,7 +11676,7 @@ }, { "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 12, + "id" : 8, "source_info" : { "filename" : "include/control/filtering.p4", "line" : 53, @@ -12028,12 +11701,6 @@ "name" : "vlan_id", "target" : ["vlan_tag", "vlan_id"], "mask" : null - }, - { - "match_type" : "ternary", - "name" : "inner_vlan_id", - "target" : ["inner_vlan_tag", "vlan_id"], - "mask" : null } ], "match_type" : "ternary", @@ -12059,10 +11726,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 13, + "id" : 9, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -12080,21 +11747,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t._is_ipv41"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t._is_ipv62"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t._is_mpls3"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"], "mask" : null } ], @@ -12106,9 +11767,9 @@ "direct_meters" : null, "action_ids" : [16], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "tbl_act_11", + "base_default_next" : "tbl_act_7", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "tbl_act_11" + "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7" }, "default_entry" : { "action_id" : 16, @@ -12118,8 +11779,8 @@ } }, { - "name" : "tbl_act_11", - "id" : 14, + "name" : "tbl_act_7", + "id" : 10, "key" : [], "match_type" : "exact", "type" : "simple", @@ -12127,14 +11788,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [53], - "actions" : ["act_19"], - "base_default_next" : "node_26", + "action_ids" : [49], + "actions" : ["act_15"], + "base_default_next" : "node_19", "next_tables" : { - "act_19" : "node_26" + "act_15" : "node_19" }, "default_entry" : { - "action_id" : 53, + "action_id" : 49, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12142,7 +11803,7 @@ }, { "name" : "FabricIngress.spgw_ingress.s1u_filter_table", - "id" : 15, + "id" : 11, "source_info" : { "filename" : "include/spgw.p4", "line" : 83, @@ -12167,8 +11828,8 @@ "actions" : ["nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_12", - "__MISS__" : "tbl_act_13" + "__HIT__" : "tbl_act_8", + "__MISS__" : "tbl_act_9" }, "default_entry" : { "action_id" : 1, @@ -12178,8 +11839,8 @@ } }, { - "name" : "tbl_act_12", - "id" : 16, + "name" : "tbl_act_8", + "id" : 12, "key" : [], "match_type" : "exact", "type" : "simple", @@ -12187,22 +11848,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [45], - "actions" : ["act_11"], - "base_default_next" : "node_30", + "action_ids" : [41], + "actions" : ["act_7"], + "base_default_next" : "node_23", "next_tables" : { - "act_11" : "node_30" + "act_7" : "node_23" }, "default_entry" : { - "action_id" : 45, + "action_id" : 41, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_13", - "id" : 17, + "name" : "tbl_act_9", + "id" : 13, "key" : [], "match_type" : "exact", "type" : "simple", @@ -12210,22 +11871,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [46], - "actions" : ["act_12"], - "base_default_next" : "node_30", + "action_ids" : [42], + "actions" : ["act_8"], + "base_default_next" : "node_23", "next_tables" : { - "act_12" : "node_30" + "act_8" : "node_23" }, "default_entry" : { - "action_id" : 46, + "action_id" : 42, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 18, + "name" : "tbl_act_10", + "id" : 14, "source_info" : { "filename" : "include/spgw.p4", "line" : 149, @@ -12239,22 +11900,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [47], - "actions" : ["act_13"], - "base_default_next" : "tbl_act_15", + "action_ids" : [43], + "actions" : ["act_9"], + "base_default_next" : "tbl_act_11", "next_tables" : { - "act_13" : "tbl_act_15" + "act_9" : "tbl_act_11" }, "default_entry" : { - "action_id" : 47, + "action_id" : 43, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 19, + "name" : "tbl_act_11", + "id" : 15, "source_info" : { "filename" : "include/spgw.p4", "line" : 151, @@ -12268,14 +11929,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [48], - "actions" : ["act_14"], + "action_ids" : [44], + "actions" : ["act_10"], "base_default_next" : "tbl_spgw_ingress_gtpu_decap", "next_tables" : { - "act_14" : "tbl_spgw_ingress_gtpu_decap" + "act_10" : "tbl_spgw_ingress_gtpu_decap" }, "default_entry" : { - "action_id" : 48, + "action_id" : 44, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12283,7 +11944,7 @@ }, { "name" : "tbl_spgw_ingress_gtpu_decap", - "id" : 20, + "id" : 16, "source_info" : { "filename" : "include/spgw.p4", "line" : 152, @@ -12299,9 +11960,9 @@ "direct_meters" : null, "action_ids" : [10], "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"], - "base_default_next" : "node_40", + "base_default_next" : "node_33", "next_tables" : { - "FabricIngress.spgw_ingress.gtpu_decap" : "node_40" + "FabricIngress.spgw_ingress.gtpu_decap" : "node_33" }, "default_entry" : { "action_id" : 10, @@ -12312,7 +11973,7 @@ }, { "name" : "FabricIngress.spgw_ingress.dl_sess_lookup", - "id" : 21, + "id" : 17, "source_info" : { "filename" : "include/spgw.p4", "line" : 70, @@ -12337,8 +11998,8 @@ "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_16", - "__MISS__" : "tbl_act_17" + "__HIT__" : "tbl_act_12", + "__MISS__" : "tbl_act_13" }, "default_entry" : { "action_id" : 0, @@ -12348,8 +12009,8 @@ } }, { - "name" : "tbl_act_16", - "id" : 22, + "name" : "tbl_act_12", + "id" : 18, "key" : [], "match_type" : "exact", "type" : "simple", @@ -12357,22 +12018,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [49], - "actions" : ["act_15"], - "base_default_next" : "node_37", + "action_ids" : [45], + "actions" : ["act_11"], + "base_default_next" : "node_30", "next_tables" : { - "act_15" : "node_37" + "act_11" : "node_30" }, "default_entry" : { - "action_id" : 49, + "action_id" : 45, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_17", - "id" : 23, + "name" : "tbl_act_13", + "id" : 19, "key" : [], "match_type" : "exact", "type" : "simple", @@ -12380,22 +12041,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [50], - "actions" : ["act_16"], - "base_default_next" : "node_37", + "action_ids" : [46], + "actions" : ["act_12"], + "base_default_next" : "node_30", "next_tables" : { - "act_16" : "node_37" + "act_12" : "node_30" }, "default_entry" : { - "action_id" : 50, + "action_id" : 46, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_18", - "id" : 24, + "name" : "tbl_act_14", + "id" : 20, "source_info" : { "filename" : "include/spgw.p4", "line" : 154, @@ -12409,22 +12070,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [51], - "actions" : ["act_17"], - "base_default_next" : "node_40", + "action_ids" : [47], + "actions" : ["act_13"], + "base_default_next" : "node_33", "next_tables" : { - "act_17" : "node_40" + "act_13" : "node_33" }, "default_entry" : { - "action_id" : 51, + "action_id" : 47, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_19", - "id" : 25, + "name" : "tbl_act_15", + "id" : 21, "source_info" : { "filename" : "include/spgw.p4", "line" : 156, @@ -12438,22 +12099,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [52], - "actions" : ["act_18"], - "base_default_next" : "node_40", + "action_ids" : [48], + "actions" : ["act_14"], + "base_default_next" : "node_33", "next_tables" : { - "act_18" : "node_40" + "act_14" : "node_33" }, "default_entry" : { - "action_id" : 52, + "action_id" : 48, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_20", - "id" : 26, + "name" : "tbl_act_16", + "id" : 22, "source_info" : { "filename" : "include/spgw.p4", "line" : 175, @@ -12467,14 +12128,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [54], - "actions" : ["act_20"], - "base_default_next" : "node_42", + "action_ids" : [50], + "actions" : ["act_16"], + "base_default_next" : "node_35", "next_tables" : { - "act_20" : "node_42" + "act_16" : "node_35" }, "default_entry" : { - "action_id" : 54, + "action_id" : 50, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12482,7 +12143,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 27, + "id" : 23, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -12493,7 +12154,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -12525,7 +12186,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 28, + "id" : 24, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -12536,7 +12197,7 @@ { "match_type" : "exact", "name" : "mpls_label", - "target" : ["scalars", "fabric_metadata_t._mpls_label8"], + "target" : ["scalars", "fabric_metadata_t._mpls_label4"], "mask" : null } ], @@ -12562,10 +12223,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 29, + "id" : 25, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -12580,7 +12241,7 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [19, 20, 5], @@ -12593,14 +12254,14 @@ }, "default_entry" : { "action_id" : 5, - "action_const" : true, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.acl.acl", - "id" : 30, + "id" : 26, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -12617,19 +12278,19 @@ { "match_type" : "ternary", "name" : "ip_proto", - "target" : ["scalars", "fabric_metadata_t._ip_proto16"], + "target" : ["scalars", "fabric_metadata_t._ip_proto12"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport17"], + "target" : ["scalars", "fabric_metadata_t._l4_sport13"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport18"], + "target" : ["scalars", "fabric_metadata_t._l4_dport14"], "mask" : null }, { @@ -12653,7 +12314,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t._last_eth_type0"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -12689,13 +12350,13 @@ "direct_meters" : null, "action_ids" : [21, 22, 23, 24, 25], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_50", + "base_default_next" : "node_43", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_50", - "FabricIngress.acl.punt_to_cpu" : "node_50", - "FabricIngress.acl.set_clone_session_id" : "node_50", - "FabricIngress.acl.drop" : "node_50", - "FabricIngress.acl.nop_acl" : "node_50" + "FabricIngress.acl.set_next_id_acl" : "node_43", + "FabricIngress.acl.punt_to_cpu" : "node_43", + "FabricIngress.acl.set_clone_session_id" : "node_43", + "FabricIngress.acl.drop" : "node_43", + "FabricIngress.acl.nop_acl" : "node_43" }, "default_entry" : { "action_id" : 25, @@ -12706,10 +12367,10 @@ }, { "name" : "FabricIngress.next.xconnect", - "id" : 31, + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 116, + "line" : 119, "column" : 10, "source_fragment" : "xconnect" }, @@ -12723,7 +12384,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -12750,10 +12411,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 32, + "id" : 28, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -12761,7 +12422,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -12784,10 +12445,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 33, + "id" : 29, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -12795,7 +12456,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -12821,10 +12482,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 34, + "id" : 30, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -12832,7 +12493,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -12844,10 +12505,10 @@ "direct_meters" : null, "action_ids" : [26, 6], "actions" : ["FabricIngress.next.set_vlan", "nop"], - "base_default_next" : "node_55", + "base_default_next" : "node_48", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_55", - "nop" : "node_55" + "FabricIngress.next.set_vlan" : "node_48", + "nop" : "node_48" }, "default_entry" : { "action_id" : 6, @@ -12857,8 +12518,8 @@ } }, { - "name" : "tbl_act_21", - "id" : 35, + "name" : "tbl_act_17", + "id" : 31, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -12872,22 +12533,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [55], - "actions" : ["act_21"], - "base_default_next" : "node_57", + "action_ids" : [51], + "actions" : ["act_17"], + "base_default_next" : "node_50", "next_tables" : { - "act_21" : "node_57" + "act_17" : "node_50" }, "default_entry" : { - "action_id" : 55, + "action_id" : 51, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_22", - "id" : 36, + "name" : "tbl_act_18", + "id" : 32, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -12901,14 +12562,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [56], - "actions" : ["act_22"], + "action_ids" : [52], + "actions" : ["act_18"], "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source", "next_tables" : { - "act_22" : "FabricIngress.process_set_source_sink.tb_set_source" + "act_18" : "FabricIngress.process_set_source_sink.tb_set_source" }, "default_entry" : { - "action_id" : 56, + "action_id" : 52, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -12916,7 +12577,7 @@ }, { "name" : "FabricIngress.process_set_source_sink.tb_set_source", - "id" : 37, + "id" : 33, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 46, @@ -12958,7 +12619,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -12976,15 +12637,15 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] } ] } @@ -13096,7 +12757,7 @@ "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -13119,7 +12780,7 @@ "id" : 5, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -13142,80 +12803,11 @@ } }, "true_next" : "tbl_act_6", - "false_next" : "node_16" - }, - { - "name" : "node_16", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_7", - "false_next" : "node_18" - }, - { - "name" : "node_18", - "id" : 7, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_19", - "false_next" : "tbl_act_10" + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { "name" : "node_19", - "id" : 8, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] - } - } - }, - "true_next" : "tbl_act_8", - "false_next" : "tbl_act_9" - }, - { - "name" : "node_26", - "id" : 9, + "id" : 6, "source_info" : { "filename" : "include/spgw.p4", "line" : 144, @@ -13237,8 +12829,8 @@ "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup" }, { - "name" : "node_30", - "id" : 10, + "name" : "node_23", + "id" : 7, "source_info" : { "filename" : "include/spgw.p4", "line" : 148, @@ -13263,12 +12855,12 @@ } } }, - "true_next" : "tbl_act_14", - "false_next" : "tbl_act_15" + "true_next" : "tbl_act_10", + "false_next" : "tbl_act_11" }, { - "name" : "node_37", - "id" : 11, + "name" : "node_30", + "id" : 8, "expression" : { "type" : "expression", "value" : { @@ -13280,12 +12872,12 @@ } } }, - "true_next" : "tbl_act_18", - "false_next" : "tbl_act_19" + "true_next" : "tbl_act_14", + "false_next" : "tbl_act_15" }, { - "name" : "node_40", - "id" : 12, + "name" : "node_33", + "id" : 9, "expression" : { "type" : "expression", "value" : { @@ -13304,12 +12896,12 @@ } } }, - "true_next" : "tbl_act_20", - "false_next" : "node_42" + "true_next" : "tbl_act_16", + "false_next" : "node_35" }, { - "name" : "node_42", - "id" : 13, + "name" : "node_35", + "id" : 10, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -13327,7 +12919,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] } } }, @@ -13337,15 +12929,15 @@ } } }, - "true_next" : "node_43", + "true_next" : "node_36", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_43", - "id" : 14, + "name" : "node_36", + "id" : 11, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -13355,7 +12947,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -13364,14 +12956,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_45" + "false_next" : "node_38" }, { - "name" : "node_45", - "id" : 15, + "name" : "node_38", + "id" : 12, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -13381,7 +12973,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -13390,14 +12982,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_47" + "false_next" : "node_40" }, { - "name" : "node_47", - "id" : 16, + "name" : "node_40", + "id" : 13, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -13407,7 +12999,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -13419,8 +13011,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_50", - "id" : 17, + "name" : "node_43", + "id" : 14, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -13438,7 +13030,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] } } }, @@ -13452,8 +13044,8 @@ "true_next" : "FabricIngress.next.xconnect" }, { - "name" : "node_55", - "id" : 18, + "name" : "node_48", + "id" : 15, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -13474,12 +13066,12 @@ } } }, - "true_next" : "tbl_act_21", - "false_next" : "node_57" + "true_next" : "tbl_act_17", + "false_next" : "node_50" }, { - "name" : "node_57", - "id" : 19, + "name" : "node_50", + "id" : 16, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -13500,7 +13092,7 @@ } } }, - "true_next" : "tbl_act_22", + "true_next" : "tbl_act_18", "false_next" : "FabricIngress.process_set_source_sink.tb_set_source" } ] @@ -13514,11 +13106,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_62", + "init_table" : "node_55", "tables" : [ { - "name" : "tbl_act_23", - "id" : 38, + "name" : "tbl_act_19", + "id" : 34, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -13532,22 +13124,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [101], - "actions" : ["act_23"], - "base_default_next" : "node_64", + "action_ids" : [97], + "actions" : ["act_19"], + "base_default_next" : "node_57", "next_tables" : { - "act_23" : "node_64" + "act_19" : "node_57" }, "default_entry" : { - "action_id" : 101, + "action_id" : 97, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_24", - "id" : 39, + "name" : "tbl_act_20", + "id" : 35, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -13561,25 +13153,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [102], - "actions" : ["act_24"], - "base_default_next" : "node_66", + "action_ids" : [98], + "actions" : ["act_20"], + "base_default_next" : "node_59", "next_tables" : { - "act_24" : "node_66" + "act_20" : "node_59" }, "default_entry" : { - "action_id" : 102, + "action_id" : 98, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_25", - "id" : 40, + "name" : "tbl_act_21", + "id" : 36, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -13590,14 +13182,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [103], - "actions" : ["act_25"], - "base_default_next" : "node_68", + "action_ids" : [99], + "actions" : ["act_21"], + "base_default_next" : "node_61", "next_tables" : { - "act_25" : "node_68" + "act_21" : "node_61" }, "default_entry" : { - "action_id" : 103, + "action_id" : 99, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13605,10 +13197,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 41, + "id" : 37, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -13619,14 +13211,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [97], + "action_ids" : [93], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 97, + "action_id" : 93, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13634,10 +13226,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 42, + "id" : 38, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -13648,14 +13240,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [98], + "action_ids" : [94], "actions" : ["FabricEgress.egress_next.set_mpls"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 98, + "action_id" : 94, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13663,10 +13255,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 43, + "id" : 39, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -13674,7 +13266,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -13690,46 +13282,46 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [100, 59], + "action_ids" : [96, 55], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_26", - "__MISS__" : "tbl_act_27" + "__HIT__" : "tbl_act_22", + "__MISS__" : "tbl_act_23" }, "default_entry" : { - "action_id" : 59, + "action_id" : 55, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_26", - "id" : 44, + "name" : "tbl_act_22", + "id" : 40, "key" : [], "match_type" : "exact", "type" : "simple", "max_size" : 1024, "with_counters" : false, "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [104], - "actions" : ["act_26"], - "base_default_next" : "node_75", + "direct_meters" : null, + "action_ids" : [100], + "actions" : ["act_22"], + "base_default_next" : "node_68", "next_tables" : { - "act_26" : "node_75" + "act_22" : "node_68" }, "default_entry" : { - "action_id" : 104, + "action_id" : 100, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_27", - "id" : 45, + "name" : "tbl_act_23", + "id" : 41, "key" : [], "match_type" : "exact", "type" : "simple", @@ -13737,14 +13329,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [105], - "actions" : ["act_27"], - "base_default_next" : "node_75", + "action_ids" : [101], + "actions" : ["act_23"], + "base_default_next" : "node_68", "next_tables" : { - "act_27" : "node_75" + "act_23" : "node_68" }, "default_entry" : { - "action_id" : 105, + "action_id" : 101, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13752,10 +13344,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 46, + "id" : 42, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -13766,25 +13358,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [99], + "action_ids" : [95], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_78", + "base_default_next" : "node_71", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_78" + "FabricEgress.egress_next.push_vlan" : "node_71" }, "default_entry" : { - "action_id" : 99, + "action_id" : 95, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_28", - "id" : 47, + "name" : "tbl_act_24", + "id" : 43, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -13795,25 +13387,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [107], - "actions" : ["act_29"], - "base_default_next" : "node_80", + "action_ids" : [103], + "actions" : ["act_25"], + "base_default_next" : "node_73", "next_tables" : { - "act_29" : "node_80" + "act_25" : "node_73" }, "default_entry" : { - "action_id" : 107, + "action_id" : 103, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_29", - "id" : 48, + "name" : "tbl_act_25", + "id" : 44, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -13824,25 +13416,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [106], - "actions" : ["act_28"], - "base_default_next" : "node_86", + "action_ids" : [102], + "actions" : ["act_24"], + "base_default_next" : "node_79", "next_tables" : { - "act_28" : "node_86" + "act_24" : "node_79" }, "default_entry" : { - "action_id" : 106, + "action_id" : 102, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_30", - "id" : 49, + "name" : "tbl_act_26", + "id" : 45, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -13853,25 +13445,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [109], - "actions" : ["act_31"], - "base_default_next" : "node_84", + "action_ids" : [105], + "actions" : ["act_27"], + "base_default_next" : "node_77", "next_tables" : { - "act_31" : "node_84" + "act_27" : "node_77" }, "default_entry" : { - "action_id" : 109, + "action_id" : 105, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_31", - "id" : 50, + "name" : "tbl_act_27", + "id" : 46, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -13882,14 +13474,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [108], - "actions" : ["act_30"], - "base_default_next" : "node_86", + "action_ids" : [104], + "actions" : ["act_26"], + "base_default_next" : "node_79", "next_tables" : { - "act_30" : "node_86" + "act_26" : "node_79" }, "default_entry" : { - "action_id" : 108, + "action_id" : 104, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13897,7 +13489,7 @@ }, { "name" : "tbl_spgw_egress_gtpu_encap", - "id" : 51, + "id" : 47, "source_info" : { "filename" : "include/spgw.p4", "line" : 228, @@ -13911,14 +13503,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [62], + "action_ids" : [58], "actions" : ["FabricEgress.spgw_egress.gtpu_encap"], - "base_default_next" : "node_88", + "base_default_next" : "node_81", "next_tables" : { - "FabricEgress.spgw_egress.gtpu_encap" : "node_88" + "FabricEgress.spgw_egress.gtpu_encap" : "node_81" }, "default_entry" : { - "action_id" : 62, + "action_id" : 58, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -13926,7 +13518,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "id" : 52, + "id" : 48, "source_info" : { "filename" : "include/int/int_source.p4", "line" : 66, @@ -13949,13 +13541,13 @@ { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport17"], + "target" : ["scalars", "fabric_metadata_t._l4_sport13"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport18"], + "target" : ["scalars", "fabric_metadata_t._l4_dport14"], "mask" : null } ], @@ -13965,23 +13557,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [63, 57], + "action_ids" : [59, 53], "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"], - "base_default_next" : "node_91", + "base_default_next" : "node_84", "next_tables" : { - "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_91", - "nop" : "node_91" + "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_84", + "nop" : "node_84" }, "default_entry" : { - "action_id" : 57, + "action_id" : 53, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_32", - "id" : 53, + "name" : "tbl_act_28", + "id" : 49, "key" : [], "match_type" : "exact", "type" : "simple", @@ -13989,14 +13581,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [110], - "actions" : ["act_32"], + "action_ids" : [106], + "actions" : ["act_28"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", "next_tables" : { - "act_32" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" + "act_28" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert" }, "default_entry" : { - "action_id" : 110, + "action_id" : 106, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -14004,7 +13596,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert", - "id" : 54, + "id" : 50, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 315, @@ -14025,23 +13617,23 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [64, 58], + "action_ids" : [60, 54], "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"], - "base_default_next" : "node_94", + "base_default_next" : "node_87", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_94", - "nop" : "node_94" + "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_87", + "nop" : "node_87" }, "default_entry" : { - "action_id" : 58, + "action_id" : 54, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_33", - "id" : 55, + "name" : "tbl_act_29", + "id" : 51, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 420, @@ -14055,14 +13647,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [111], - "actions" : ["act_33"], - "base_default_next" : "node_96", + "action_ids" : [107], + "actions" : ["act_29"], + "base_default_next" : "node_89", "next_tables" : { - "act_33" : "node_96" + "act_29" : "node_89" }, "default_entry" : { - "action_id" : 111, + "action_id" : 107, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -14070,7 +13662,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003", - "id" : 56, + "id" : 52, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 331, @@ -14091,7 +13683,7 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 60], + "action_ids" : [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 56], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"], "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", "next_tables" : { @@ -14114,7 +13706,7 @@ "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407" }, "default_entry" : { - "action_id" : 60, + "action_id" : 56, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -14134,7 +13726,7 @@ } ], "action_entry" : { - "action_id" : 65, + "action_id" : 61, "action_data" : [] }, "priority" : 1 @@ -14153,7 +13745,7 @@ } ], "action_entry" : { - "action_id" : 66, + "action_id" : 62, "action_data" : [] }, "priority" : 2 @@ -14172,7 +13764,7 @@ } ], "action_entry" : { - "action_id" : 67, + "action_id" : 63, "action_data" : [] }, "priority" : 3 @@ -14191,7 +13783,7 @@ } ], "action_entry" : { - "action_id" : 68, + "action_id" : 64, "action_data" : [] }, "priority" : 4 @@ -14210,7 +13802,7 @@ } ], "action_entry" : { - "action_id" : 69, + "action_id" : 65, "action_data" : [] }, "priority" : 5 @@ -14229,7 +13821,7 @@ } ], "action_entry" : { - "action_id" : 70, + "action_id" : 66, "action_data" : [] }, "priority" : 6 @@ -14248,7 +13840,7 @@ } ], "action_entry" : { - "action_id" : 71, + "action_id" : 67, "action_data" : [] }, "priority" : 7 @@ -14267,7 +13859,7 @@ } ], "action_entry" : { - "action_id" : 72, + "action_id" : 68, "action_data" : [] }, "priority" : 8 @@ -14286,7 +13878,7 @@ } ], "action_entry" : { - "action_id" : 73, + "action_id" : 69, "action_data" : [] }, "priority" : 9 @@ -14305,7 +13897,7 @@ } ], "action_entry" : { - "action_id" : 74, + "action_id" : 70, "action_data" : [] }, "priority" : 10 @@ -14324,7 +13916,7 @@ } ], "action_entry" : { - "action_id" : 75, + "action_id" : 71, "action_data" : [] }, "priority" : 11 @@ -14343,7 +13935,7 @@ } ], "action_entry" : { - "action_id" : 76, + "action_id" : 72, "action_data" : [] }, "priority" : 12 @@ -14362,7 +13954,7 @@ } ], "action_entry" : { - "action_id" : 77, + "action_id" : 73, "action_data" : [] }, "priority" : 13 @@ -14381,7 +13973,7 @@ } ], "action_entry" : { - "action_id" : 78, + "action_id" : 74, "action_data" : [] }, "priority" : 14 @@ -14400,7 +13992,7 @@ } ], "action_entry" : { - "action_id" : 79, + "action_id" : 75, "action_data" : [] }, "priority" : 15 @@ -14419,7 +14011,7 @@ } ], "action_entry" : { - "action_id" : 80, + "action_id" : 76, "action_data" : [] }, "priority" : 16 @@ -14428,7 +14020,7 @@ }, { "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407", - "id" : 57, + "id" : 53, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 375, @@ -14449,30 +14041,30 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 61], + "action_ids" : [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 57], "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"], - "base_default_next" : "tbl_act_34", + "base_default_next" : "tbl_act_30", "next_tables" : { - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_34", - "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_34", - "NoAction" : "tbl_act_34" + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_30", + "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_30", + "NoAction" : "tbl_act_30" }, "default_entry" : { - "action_id" : 61, + "action_id" : 57, "action_const" : false, "action_data" : [], "action_entry_const" : false @@ -14492,7 +14084,7 @@ } ], "action_entry" : { - "action_id" : 81, + "action_id" : 77, "action_data" : [] }, "priority" : 1 @@ -14511,7 +14103,7 @@ } ], "action_entry" : { - "action_id" : 82, + "action_id" : 78, "action_data" : [] }, "priority" : 2 @@ -14530,7 +14122,7 @@ } ], "action_entry" : { - "action_id" : 83, + "action_id" : 79, "action_data" : [] }, "priority" : 3 @@ -14549,7 +14141,7 @@ } ], "action_entry" : { - "action_id" : 84, + "action_id" : 80, "action_data" : [] }, "priority" : 4 @@ -14568,7 +14160,7 @@ } ], "action_entry" : { - "action_id" : 85, + "action_id" : 81, "action_data" : [] }, "priority" : 5 @@ -14587,7 +14179,7 @@ } ], "action_entry" : { - "action_id" : 86, + "action_id" : 82, "action_data" : [] }, "priority" : 6 @@ -14606,7 +14198,7 @@ } ], "action_entry" : { - "action_id" : 87, + "action_id" : 83, "action_data" : [] }, "priority" : 7 @@ -14625,7 +14217,7 @@ } ], "action_entry" : { - "action_id" : 88, + "action_id" : 84, "action_data" : [] }, "priority" : 8 @@ -14644,7 +14236,7 @@ } ], "action_entry" : { - "action_id" : 89, + "action_id" : 85, "action_data" : [] }, "priority" : 9 @@ -14663,7 +14255,7 @@ } ], "action_entry" : { - "action_id" : 90, + "action_id" : 86, "action_data" : [] }, "priority" : 10 @@ -14682,7 +14274,7 @@ } ], "action_entry" : { - "action_id" : 91, + "action_id" : 87, "action_data" : [] }, "priority" : 11 @@ -14701,7 +14293,7 @@ } ], "action_entry" : { - "action_id" : 92, + "action_id" : 88, "action_data" : [] }, "priority" : 12 @@ -14720,7 +14312,7 @@ } ], "action_entry" : { - "action_id" : 93, + "action_id" : 89, "action_data" : [] }, "priority" : 13 @@ -14739,7 +14331,7 @@ } ], "action_entry" : { - "action_id" : 94, + "action_id" : 90, "action_data" : [] }, "priority" : 14 @@ -14758,7 +14350,7 @@ } ], "action_entry" : { - "action_id" : 95, + "action_id" : 91, "action_data" : [] }, "priority" : 15 @@ -14777,7 +14369,7 @@ } ], "action_entry" : { - "action_id" : 96, + "action_id" : 92, "action_data" : [] }, "priority" : 16 @@ -14785,8 +14377,8 @@ ] }, { - "name" : "tbl_act_34", - "id" : 58, + "name" : "tbl_act_30", + "id" : 54, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 425, @@ -14800,22 +14392,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [113], - "actions" : ["act_35"], - "base_default_next" : "node_100", + "action_ids" : [109], + "actions" : ["act_31"], + "base_default_next" : "node_93", "next_tables" : { - "act_35" : "node_100" + "act_31" : "node_93" }, "default_entry" : { - "action_id" : 113, + "action_id" : 109, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_35", - "id" : 59, + "name" : "tbl_act_31", + "id" : 55, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 428, @@ -14829,22 +14421,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [112], - "actions" : ["act_34"], - "base_default_next" : "node_102", + "action_ids" : [108], + "actions" : ["act_30"], + "base_default_next" : "node_95", "next_tables" : { - "act_34" : "node_102" + "act_30" : "node_95" }, "default_entry" : { - "action_id" : 112, + "action_id" : 108, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_36", - "id" : 60, + "name" : "tbl_act_32", + "id" : 56, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 431, @@ -14858,22 +14450,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [114], - "actions" : ["act_36"], - "base_default_next" : "node_104", + "action_ids" : [110], + "actions" : ["act_32"], + "base_default_next" : "node_97", "next_tables" : { - "act_36" : "node_104" + "act_32" : "node_97" }, "default_entry" : { - "action_id" : 114, + "action_id" : 110, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_37", - "id" : 61, + "name" : "tbl_act_33", + "id" : 57, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 434, @@ -14887,14 +14479,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [115], - "actions" : ["act_37"], + "action_ids" : [111], + "actions" : ["act_33"], "base_default_next" : null, "next_tables" : { - "act_37" : null + "act_33" : null }, "default_entry" : { - "action_id" : 115, + "action_id" : 111, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -14904,8 +14496,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_62", - "id" : 20, + "name" : "node_55", + "id" : 17, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -14923,7 +14515,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] } } }, @@ -14933,12 +14525,12 @@ } } }, - "true_next" : "tbl_act_23", - "false_next" : "node_64" + "true_next" : "tbl_act_19", + "false_next" : "node_57" }, { - "name" : "node_64", - "id" : 21, + "name" : "node_57", + "id" : 18, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -14959,15 +14551,15 @@ } } }, - "true_next" : "tbl_act_24", - "false_next" : "node_66" + "true_next" : "tbl_act_20", + "false_next" : "node_59" }, { - "name" : "node_66", - "id" : 22, + "name" : "node_59", + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -14986,7 +14578,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] } } }, @@ -15012,15 +14604,15 @@ } } }, - "true_next" : "tbl_act_25", - "false_next" : "node_68" + "true_next" : "tbl_act_21", + "false_next" : "node_61" }, { - "name" : "node_68", - "id" : 23, + "name" : "node_61", + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -15030,7 +14622,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, "right" : { "type" : "hexstr", @@ -15038,15 +14630,15 @@ } } }, - "true_next" : "node_69", + "true_next" : "node_62", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_69", - "id" : 24, + "name" : "node_62", + "id" : 21, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -15065,11 +14657,11 @@ "false_next" : "FabricEgress.egress_next.egress_vlan" }, { - "name" : "node_75", - "id" : 25, + "name" : "node_68", + "id" : 22, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -15091,15 +14683,15 @@ } } }, - "true_next" : "node_76", - "false_next" : "node_78" + "true_next" : "node_69", + "false_next" : "node_71" }, { - "name" : "node_76", - "id" : 26, + "name" : "node_69", + "id" : 23, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -15109,7 +14701,7 @@ "op" : "!=", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, "right" : { "type" : "hexstr", @@ -15118,14 +14710,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "node_78" + "false_next" : "node_71" }, { - "name" : "node_78", - "id" : 27, + "name" : "node_71", + "id" : 24, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -15140,15 +14732,15 @@ } } }, - "true_next" : "tbl_act_28", - "false_next" : "node_82" + "true_next" : "tbl_act_24", + "false_next" : "node_75" }, { - "name" : "node_80", - "id" : 28, + "name" : "node_73", + "id" : 25, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -15166,15 +14758,15 @@ } } }, - "true_next" : "tbl_act_29", - "false_next" : "node_86" + "true_next" : "tbl_act_25", + "false_next" : "node_79" }, { - "name" : "node_82", - "id" : 29, + "name" : "node_75", + "id" : 26, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -15189,15 +14781,15 @@ } } }, - "true_next" : "tbl_act_30", - "false_next" : "node_86" + "true_next" : "tbl_act_26", + "false_next" : "node_79" }, { - "name" : "node_84", - "id" : 30, + "name" : "node_77", + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -15215,12 +14807,12 @@ } } }, - "true_next" : "tbl_act_31", - "false_next" : "node_86" + "true_next" : "tbl_act_27", + "false_next" : "node_79" }, { - "name" : "node_86", - "id" : 31, + "name" : "node_79", + "id" : 28, "source_info" : { "filename" : "include/spgw.p4", "line" : 227, @@ -15233,7 +14825,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, "right" : { "type" : "hexstr", @@ -15242,11 +14834,11 @@ } }, "true_next" : "tbl_spgw_egress_gtpu_encap", - "false_next" : "node_88" + "false_next" : "node_81" }, { - "name" : "node_88", - "id" : 32, + "name" : "node_81", + "id" : 29, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 102, @@ -15322,11 +14914,11 @@ } }, "false_next" : null, - "true_next" : "node_89" + "true_next" : "node_82" }, { - "name" : "node_89", - "id" : 33, + "name" : "node_82", + "id" : 30, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 106, @@ -15344,7 +14936,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_source24"] + "value" : ["scalars", "fabric_metadata_t._int_meta_source20"] } } }, @@ -15355,11 +14947,11 @@ } }, "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source", - "false_next" : "node_91" + "false_next" : "node_84" }, { - "name" : "node_91", - "id" : 34, + "name" : "node_84", + "id" : 31, "source_info" : { "filename" : "include/int/int_main.p4", "line" : 110, @@ -15378,11 +14970,11 @@ } }, "false_next" : null, - "true_next" : "tbl_act_32" + "true_next" : "tbl_act_28" }, { - "name" : "node_94", - "id" : 35, + "name" : "node_87", + "id" : 32, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 419, @@ -15400,7 +14992,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"] + "value" : ["scalars", "fabric_metadata_t._int_meta_transit21"] } } }, @@ -15410,12 +15002,12 @@ } } }, - "true_next" : "tbl_act_33", - "false_next" : "node_96" + "true_next" : "tbl_act_29", + "false_next" : "node_89" }, { - "name" : "node_96", - "id" : 36, + "name" : "node_89", + "id" : 33, "expression" : { "type" : "expression", "value" : { @@ -15438,8 +15030,8 @@ "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003" }, { - "name" : "node_100", - "id" : 37, + "name" : "node_93", + "id" : 34, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 427, @@ -15457,12 +15049,12 @@ } } }, - "true_next" : "tbl_act_35", - "false_next" : "node_102" + "true_next" : "tbl_act_31", + "false_next" : "node_95" }, { - "name" : "node_102", - "id" : 38, + "name" : "node_95", + "id" : 35, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 430, @@ -15480,12 +15072,12 @@ } } }, - "true_next" : "tbl_act_36", - "false_next" : "node_104" + "true_next" : "tbl_act_32", + "false_next" : "node_97" }, { - "name" : "node_104", - "id" : 39, + "name" : "node_97", + "id" : 36, "source_info" : { "filename" : "include/int/int_transit.p4", "line" : 433, @@ -15504,7 +15096,7 @@ } }, "false_next" : null, - "true_next" : "tbl_act_37" + "true_next" : "tbl_act_33" } ] } diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt similarity index 97% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt index 1a88a4bd404..a41f4f93618 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt @@ -91,12 +91,6 @@ tables { bitwidth: 12 match_type: TERNARY } - match_fields { - id: 4 - name: "inner_vlan_id" - bitwidth: 12 - match_type: TERNARY - } action_refs { id: 16836487 } @@ -130,20 +124,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -230,8 +218,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -961,17 +947,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318801025 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json similarity index 89% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json index 0f6a8391668..47759c70054 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json @@ -4,40 +4,38 @@ "name" : "scalars_0", "id" : 0, "fields" : [ - ["tmp_0", 4, false], + ["tmp_2", 16, false], + ["tmp_3", 16, false], + ["tmp_4", 4, false], ["tmp", 8, false], + ["tmp_0", 32, false], ["tmp_1", 32, false], - ["tmp_2", 32, false], ["spgw_ingress_tmp", 1, false], ["spgw_ingress_tmp_0", 1, false], ["spgw_normalizer_hasReturned", 1, false], ["spgw_ingress_hasReturned", 1, false], ["egress_next_tmp", 1, false], - ["fabric_metadata_t._last_eth_type0", 16, false], - ["fabric_metadata_t._is_ipv41", 1, false], - ["fabric_metadata_t._is_ipv62", 1, false], - ["fabric_metadata_t._is_mpls3", 1, false], - ["fabric_metadata_t._ip_eth_type4", 16, false], - ["fabric_metadata_t._vlan_id5", 12, false], - ["fabric_metadata_t._vlan_pri6", 3, false], - ["fabric_metadata_t._vlan_cfi7", 1, false], - ["fabric_metadata_t._mpls_label8", 20, false], - ["fabric_metadata_t._mpls_ttl9", 8, false], - ["fabric_metadata_t._skip_forwarding10", 1, false], - ["fabric_metadata_t._skip_next11", 1, false], - ["fabric_metadata_t._fwd_type12", 3, false], - ["fabric_metadata_t._next_id13", 32, false], - ["fabric_metadata_t._is_multicast14", 1, false], - ["fabric_metadata_t._is_controller_packet_out15", 1, false], - ["fabric_metadata_t._ip_proto16", 8, false], - ["fabric_metadata_t._l4_sport17", 16, false], - ["fabric_metadata_t._l4_dport18", 16, false], - ["fabric_metadata_t._spgw_direction19", 2, false], - ["fabric_metadata_t._spgw_ipv4_len20", 16, false], - ["fabric_metadata_t._spgw_teid21", 32, false], - ["fabric_metadata_t._spgw_s1u_enb_addr22", 32, false], - ["fabric_metadata_t._spgw_s1u_sgw_addr23", 32, false], - ["_padding_0", 7, false] + ["fabric_metadata_t._ip_eth_type0", 16, false], + ["fabric_metadata_t._vlan_id1", 12, false], + ["fabric_metadata_t._vlan_pri2", 3, false], + ["fabric_metadata_t._vlan_cfi3", 1, false], + ["fabric_metadata_t._mpls_label4", 20, false], + ["fabric_metadata_t._mpls_ttl5", 8, false], + ["fabric_metadata_t._skip_forwarding6", 1, false], + ["fabric_metadata_t._skip_next7", 1, false], + ["fabric_metadata_t._fwd_type8", 3, false], + ["fabric_metadata_t._next_id9", 32, false], + ["fabric_metadata_t._is_multicast10", 1, false], + ["fabric_metadata_t._is_controller_packet_out11", 1, false], + ["fabric_metadata_t._ip_proto12", 8, false], + ["fabric_metadata_t._l4_sport13", 16, false], + ["fabric_metadata_t._l4_dport14", 16, false], + ["fabric_metadata_t._spgw_direction15", 2, false], + ["fabric_metadata_t._spgw_ipv4_len16", 16, false], + ["fabric_metadata_t._spgw_teid17", 32, false], + ["fabric_metadata_t._spgw_s1u_enb_addr18", 32, false], + ["fabric_metadata_t._spgw_s1u_sgw_addr19", 32, false], + ["_padding_0", 2, false] ] }, { @@ -74,23 +72,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "mpls_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "mpls_t", + "id" : 5, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -100,7 +104,7 @@ }, { "name" : "ipv4_t", - "id" : 5, + "id" : 6, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -119,7 +123,7 @@ }, { "name" : "udp_t", - "id" : 6, + "id" : 7, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -129,7 +133,7 @@ }, { "name" : "gtpu_t", - "id" : 7, + "id" : 8, "fields" : [ ["version", 3, false], ["pt", 1, false], @@ -144,7 +148,7 @@ }, { "name" : "tcp_t", - "id" : 8, + "id" : 9, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -161,7 +165,7 @@ }, { "name" : "icmp_t", - "id" : 9, + "id" : 10, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -173,7 +177,7 @@ }, { "name" : "packet_out_header_t", - "id" : 10, + "id" : 11, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -181,7 +185,7 @@ }, { "name" : "packet_in_header_t", - "id" : 11, + "id" : 12, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -225,85 +229,92 @@ "pi_omit" : true }, { - "name" : "mpls", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "mpls", + "id" : 6, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_ipv4", - "id" : 6, + "id" : 7, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu_udp", - "id" : 7, + "id" : 8, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "gtpu", - "id" : 8, + "id" : 9, "header_type" : "gtpu_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_ipv4", - "id" : 9, + "id" : 10, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "inner_udp", - "id" : 10, + "id" : 11, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 11, + "id" : 12, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 12, + "id" : 13, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 13, + "id" : 14, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 14, + "id" : 15, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 15, + "id" : 16, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 16, + "id" : 17, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true @@ -411,11 +422,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -424,11 +435,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "tmp_2"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -453,28 +464,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_2"] } ] }, @@ -490,21 +489,22 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_3"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" } ], "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, { "type" : "hexstr", "value" : "0x8100", @@ -514,13 +514,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_3"] } ] }, @@ -540,17 +540,40 @@ ], "transitions" : [ { - "type" : "hexstr", - "value" : "0x0800", + "value" : "default", "mask" : null, - "next_state" : "pre_parse_ipv4" - }, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8847", "mask" : null, "next_state" : "parse_mpls" }, + { + "type" : "hexstr", + "value" : "0x0800", + "mask" : null, + "next_state" : "parse_ipv4" + }, { "value" : "default", "mask" : null, @@ -560,13 +583,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_mpls", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -581,30 +604,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_mpls3"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "field", @@ -617,7 +617,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "field", @@ -630,7 +630,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] }, { "type" : "lookahead", @@ -656,47 +656,10 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_4"] } ] }, - { - "name" : "pre_parse_ipv4", - "id" : 6, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_ipv41"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv4", "id" : 7, @@ -714,7 +677,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", @@ -727,7 +690,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] }, { "type" : "hexstr", @@ -786,7 +749,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -799,7 +762,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -835,7 +798,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -848,7 +811,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1044,7 +1007,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", @@ -1057,7 +1020,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] }, { "type" : "field", @@ -1086,11 +1049,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"] + "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"] } ], "meter_arrays" : [], @@ -1126,7 +1089,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -1155,21 +1118,9 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 5, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 6, + "id" : 5, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -1181,7 +1132,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 7, + "id" : 6, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -1193,43 +1144,43 @@ }, { "name" : "FabricIngress.next.xconnect_counter", - "id" : 8, + "id" : 7, "is_direct" : true, "binding" : "FabricIngress.next.xconnect", "source_info" : { "filename" : "include/control/next.p4", - "line" : 103, + "line" : 107, "column" : 50, "source_fragment" : "xconnect_counter" } }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 9, + "id" : 8, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 10, + "id" : 9, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 11, + "id" : 10, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -1241,7 +1192,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 12, + "id" : 11, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -1253,12 +1204,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 13, + "id" : 12, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -1581,7 +1532,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid17"] }, { "type" : "runtime_data", @@ -1600,7 +1551,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"] }, { "type" : "runtime_data", @@ -1619,7 +1570,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"] }, { "type" : "runtime_data", @@ -1645,7 +1596,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] }, { "type" : "expression", @@ -1674,7 +1625,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -1721,7 +1672,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -1752,7 +1703,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, { "type" : "runtime_data", @@ -1761,7 +1712,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 33, "source_fragment" : "= fwd_type; ..." } @@ -1783,7 +1734,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1814,7 +1765,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "hexstr", @@ -1833,7 +1784,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1864,7 +1815,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1901,7 +1852,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -1946,7 +1897,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -2028,7 +1979,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] }, { "type" : "expression", @@ -2075,7 +2026,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "runtime_data", @@ -2119,25 +2070,6 @@ "column" : 5, "source_fragment" : "standard_metadata.egress_spec = port_num; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, @@ -2156,7 +2088,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._next_id13"] + "value" : ["scalars", "fabric_metadata_t._next_id9"] }, { "type" : "runtime_data", @@ -2165,7 +2097,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 112, + "line" : 115, "column" : 32, "source_fragment" : "= next_id; ..." } @@ -2307,7 +2239,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, { "type" : "runtime_data", @@ -2404,7 +2336,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -2414,7 +2346,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] }, { "type" : "expression", @@ -2433,7 +2365,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 37, "source_fragment" : "= true; ..." } @@ -2692,7 +2624,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] }, { "type" : "expression", @@ -2738,7 +2670,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, { "type" : "field", @@ -2747,7 +2679,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." } @@ -2757,7 +2689,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] }, { "type" : "field", @@ -2766,7 +2698,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 37, "source_fragment" : "= hdr.vlan_tag.pri; ..." } @@ -2776,7 +2708,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] }, { "type" : "field", @@ -2785,7 +2717,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 37, "source_fragment" : "= hdr.vlan_tag.cfi; ..." } @@ -2802,7 +2734,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] }, { "type" : "hexstr", @@ -2811,7 +2743,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..." } @@ -2828,19 +2760,23 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["scalars", "spgw_ingress_tmp"] }, { - "type" : "hexstr", - "value" : "0x8847" + "type" : "expression", + "value" : { + "type" : "expression", + "value" : { + "op" : "b2d", + "left" : null, + "right" : { + "type" : "bool", + "value" : true + } + } + } } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." - } + ] } ] }, @@ -2854,115 +2790,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_9", - "id" : 41, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "= hdr.vlan_tag.eth_type; ..." - } - } - ] - }, - { - "name" : "act_10", - "id" : 42, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "= hdr.ethernet.eth_type; ..." - } - } - ] - }, - { - "name" : "act_11", - "id" : 43, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "spgw_ingress_tmp"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ] - } - ] - }, - { - "name" : "act_12", - "id" : 44, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "spgw_ingress_tmp"] + "value" : ["scalars", "spgw_ingress_tmp"] }, { "type" : "expression", @@ -2983,8 +2811,8 @@ ] }, { - "name" : "act_13", - "id" : 45, + "name" : "act_9", + "id" : 41, "runtime_data" : [], "primitives" : [ { @@ -3005,8 +2833,8 @@ ] }, { - "name" : "act_14", - "id" : 46, + "name" : "act_10", + "id" : 42, "runtime_data" : [], "primitives" : [ { @@ -3014,7 +2842,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3023,7 +2851,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 143, + "line" : 147, "column" : 36, "source_fragment" : "2w1; ..." } @@ -3031,8 +2859,8 @@ ] }, { - "name" : "act_15", - "id" : 47, + "name" : "act_11", + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -3061,8 +2889,8 @@ ] }, { - "name" : "act_16", - "id" : 48, + "name" : "act_12", + "id" : 44, "runtime_data" : [], "primitives" : [ { @@ -3091,8 +2919,8 @@ ] }, { - "name" : "act_17", - "id" : 49, + "name" : "act_13", + "id" : 45, "runtime_data" : [], "primitives" : [ { @@ -3100,7 +2928,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3109,7 +2937,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 144, + "line" : 148, "column" : 38, "source_fragment" : "2w2; ..." } @@ -3117,8 +2945,8 @@ ] }, { - "name" : "act_18", - "id" : 50, + "name" : "act_14", + "id" : 46, "runtime_data" : [], "primitives" : [ { @@ -3126,7 +2954,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, { "type" : "hexstr", @@ -3135,7 +2963,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 142, + "line" : 146, "column" : 37, "source_fragment" : "2w0; ..." } @@ -3172,8 +3000,8 @@ ] }, { - "name" : "act_19", - "id" : 51, + "name" : "act_15", + "id" : 47, "runtime_data" : [], "primitives" : [ { @@ -3202,8 +3030,8 @@ ] }, { - "name" : "act_20", - "id" : 52, + "name" : "act_16", + "id" : 48, "runtime_data" : [], "primitives" : [ { @@ -3211,7 +3039,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] }, { "type" : "field", @@ -3228,8 +3056,8 @@ ] }, { - "name" : "act_21", - "id" : 53, + "name" : "act_17", + "id" : 49, "runtime_data" : [], "primitives" : [ { @@ -3237,7 +3065,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] }, { "type" : "expression", @@ -3273,7 +3101,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_0"] } ], "source_info" : { @@ -3286,8 +3114,8 @@ ] }, { - "name" : "act_22", - "id" : 54, + "name" : "act_18", + "id" : 50, "runtime_data" : [], "primitives" : [ { @@ -3295,7 +3123,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] }, { "type" : "expression", @@ -3331,7 +3159,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_2"] + "value" : ["scalars", "tmp_1"] } ], "source_info" : { @@ -3345,13 +3173,13 @@ }, { "name" : "nop", - "id" : 55, + "id" : 51, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.spgw_egress.gtpu_encap", - "id" : 56, + "id" : 52, "runtime_data" : [], "primitives" : [ { @@ -3402,7 +3230,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 125, + "line" : 129, "column" : 28, "source_fragment" : "5; ..." } @@ -3558,7 +3386,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 138, + "line" : 142, "column" : 32, "source_fragment" : "64; ..." } @@ -3577,7 +3405,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 122, + "line" : 126, "column" : 25, "source_fragment" : "17; ..." } @@ -3591,7 +3419,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"] } ], "source_info" : { @@ -3610,7 +3438,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"] + "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"] } ], "source_info" : { @@ -3711,7 +3539,7 @@ "op" : "+", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] }, "right" : { "type" : "hexstr", @@ -3910,7 +3738,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"] + "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"] } ], "source_info" : { @@ -3929,7 +3757,7 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_teid21"] + "value" : ["scalars", "fabric_metadata_t._spgw_teid17"] } ], "source_info" : { @@ -3943,7 +3771,7 @@ }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 57, + "id" : 53, "runtime_data" : [], "primitives" : [ { @@ -3956,7 +3784,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -3966,25 +3794,25 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"] + "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, - "column" : 38, - "source_fragment" : "= fabric_metadata.ip_eth_type; ..." + "line" : 272, + "column" : 8, + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..." } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 58, + "id" : 54, "runtime_data" : [], "primitives" : [ { @@ -3997,7 +3825,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -4011,12 +3839,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..." } @@ -4035,7 +3863,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -4054,7 +3882,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -4068,12 +3896,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"] + "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..." } @@ -4083,7 +3911,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -4092,7 +3920,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -4101,7 +3929,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 59, + "id" : 55, "runtime_data" : [], "primitives" : [ { @@ -4114,7 +3942,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -4128,12 +3956,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"] + "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..." } @@ -4147,12 +3975,12 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_pri6"] + "value" : ["scalars", "fabric_metadata_t._vlan_pri2"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..." } @@ -4165,15 +3993,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..." + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -4185,61 +4013,23 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] } ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 60, + "id" : 56, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t._last_eth_type0"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..." - } - }, { "op" : "remove_header", "parameters" : [ @@ -4250,7 +4040,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -4258,8 +4048,8 @@ ] }, { - "name" : "act_23", - "id" : 61, + "name" : "act_19", + "id" : 57, "runtime_data" : [], "primitives" : [ { @@ -4275,8 +4065,8 @@ ] }, { - "name" : "act_24", - "id" : 62, + "name" : "act_20", + "id" : 58, "runtime_data" : [], "primitives" : [ { @@ -4326,8 +4116,8 @@ ] }, { - "name" : "act_25", - "id" : 63, + "name" : "act_21", + "id" : 59, "runtime_data" : [], "primitives" : [ { @@ -4340,7 +4130,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4348,8 +4138,8 @@ ] }, { - "name" : "act_26", - "id" : 64, + "name" : "act_22", + "id" : 60, "runtime_data" : [], "primitives" : [ { @@ -4378,8 +4168,8 @@ ] }, { - "name" : "act_27", - "id" : 65, + "name" : "act_23", + "id" : 61, "runtime_data" : [], "primitives" : [ { @@ -4408,8 +4198,8 @@ ] }, { - "name" : "act_28", - "id" : 66, + "name" : "act_24", + "id" : 62, "runtime_data" : [], "primitives" : [ { @@ -4422,7 +4212,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4430,8 +4220,8 @@ ] }, { - "name" : "act_29", - "id" : 67, + "name" : "act_25", + "id" : 63, "runtime_data" : [], "primitives" : [ { @@ -4471,7 +4261,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -4479,8 +4269,8 @@ ] }, { - "name" : "act_30", - "id" : 68, + "name" : "act_26", + "id" : 64, "runtime_data" : [], "primitives" : [ { @@ -4493,7 +4283,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -4501,8 +4291,8 @@ ] }, { - "name" : "act_31", - "id" : 69, + "name" : "act_27", + "id" : 65, "runtime_data" : [], "primitives" : [ { @@ -4542,7 +4332,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -4741,7 +4531,7 @@ "id" : 6, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -4770,7 +4560,7 @@ "id" : 7, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -4783,9 +4573,9 @@ "direct_meters" : null, "action_ids" : [38], "actions" : ["act_6"], - "base_default_next" : "node_16", + "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_6" : "node_16" + "act_6" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { "action_id" : 38, @@ -4795,129 +4585,13 @@ } }, { - "name" : "tbl_act_7", + "name" : "FabricIngress.filtering.ingress_port_vlan", "id" : 8, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [39], - "actions" : ["act_7"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_7" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 39, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_8", - "id" : 9, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [40], - "actions" : ["act_8"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_8" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 40, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_9", - "id" : 10, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [41], - "actions" : ["act_9"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_9" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 41, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_10", - "id" : 11, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [42], - "actions" : ["act_10"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_10" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 42, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 12, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 53, - "column" : 10, - "source_fragment" : "ingress_port_vlan" + "line" : 53, + "column" : 10, + "source_fragment" : "ingress_port_vlan" }, "key" : [ { @@ -4937,12 +4611,6 @@ "name" : "vlan_id", "target" : ["vlan_tag", "vlan_id"], "mask" : null - }, - { - "match_type" : "ternary", - "name" : "inner_vlan_id", - "target" : ["inner_vlan_tag", "vlan_id"], - "mask" : null } ], "match_type" : "ternary", @@ -4968,10 +4636,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 13, + "id" : 9, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -4989,21 +4657,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t._is_ipv41"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t._is_ipv62"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t._is_mpls3"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"], "mask" : null } ], @@ -5015,9 +4677,9 @@ "direct_meters" : null, "action_ids" : [14], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "tbl_act_11", + "base_default_next" : "tbl_act_7", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "tbl_act_11" + "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7" }, "default_entry" : { "action_id" : 14, @@ -5027,8 +4689,8 @@ } }, { - "name" : "tbl_act_11", - "id" : 14, + "name" : "tbl_act_7", + "id" : 10, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5036,14 +4698,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [51], - "actions" : ["act_19"], - "base_default_next" : "node_26", + "action_ids" : [47], + "actions" : ["act_15"], + "base_default_next" : "node_19", "next_tables" : { - "act_19" : "node_26" + "act_15" : "node_19" }, "default_entry" : { - "action_id" : 51, + "action_id" : 47, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5051,7 +4713,7 @@ }, { "name" : "FabricIngress.spgw_ingress.s1u_filter_table", - "id" : 15, + "id" : 11, "source_info" : { "filename" : "include/spgw.p4", "line" : 83, @@ -5076,8 +4738,8 @@ "actions" : ["nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_12", - "__MISS__" : "tbl_act_13" + "__HIT__" : "tbl_act_8", + "__MISS__" : "tbl_act_9" }, "default_entry" : { "action_id" : 1, @@ -5087,8 +4749,8 @@ } }, { - "name" : "tbl_act_12", - "id" : 16, + "name" : "tbl_act_8", + "id" : 12, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5096,22 +4758,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [43], - "actions" : ["act_11"], - "base_default_next" : "node_30", + "action_ids" : [39], + "actions" : ["act_7"], + "base_default_next" : "node_23", "next_tables" : { - "act_11" : "node_30" + "act_7" : "node_23" }, "default_entry" : { - "action_id" : 43, + "action_id" : 39, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_13", - "id" : 17, + "name" : "tbl_act_9", + "id" : 13, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5119,22 +4781,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [44], - "actions" : ["act_12"], - "base_default_next" : "node_30", + "action_ids" : [40], + "actions" : ["act_8"], + "base_default_next" : "node_23", "next_tables" : { - "act_12" : "node_30" + "act_8" : "node_23" }, "default_entry" : { - "action_id" : 44, + "action_id" : 40, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 18, + "name" : "tbl_act_10", + "id" : 14, "source_info" : { "filename" : "include/spgw.p4", "line" : 149, @@ -5148,22 +4810,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [45], - "actions" : ["act_13"], - "base_default_next" : "tbl_act_15", + "action_ids" : [41], + "actions" : ["act_9"], + "base_default_next" : "tbl_act_11", "next_tables" : { - "act_13" : "tbl_act_15" + "act_9" : "tbl_act_11" }, "default_entry" : { - "action_id" : 45, + "action_id" : 41, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 19, + "name" : "tbl_act_11", + "id" : 15, "source_info" : { "filename" : "include/spgw.p4", "line" : 151, @@ -5177,14 +4839,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [46], - "actions" : ["act_14"], + "action_ids" : [42], + "actions" : ["act_10"], "base_default_next" : "tbl_spgw_ingress_gtpu_decap", "next_tables" : { - "act_14" : "tbl_spgw_ingress_gtpu_decap" + "act_10" : "tbl_spgw_ingress_gtpu_decap" }, "default_entry" : { - "action_id" : 46, + "action_id" : 42, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5192,7 +4854,7 @@ }, { "name" : "tbl_spgw_ingress_gtpu_decap", - "id" : 20, + "id" : 16, "source_info" : { "filename" : "include/spgw.p4", "line" : 152, @@ -5208,9 +4870,9 @@ "direct_meters" : null, "action_ids" : [9], "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"], - "base_default_next" : "node_40", + "base_default_next" : "node_33", "next_tables" : { - "FabricIngress.spgw_ingress.gtpu_decap" : "node_40" + "FabricIngress.spgw_ingress.gtpu_decap" : "node_33" }, "default_entry" : { "action_id" : 9, @@ -5221,7 +4883,7 @@ }, { "name" : "FabricIngress.spgw_ingress.dl_sess_lookup", - "id" : 21, + "id" : 17, "source_info" : { "filename" : "include/spgw.p4", "line" : 70, @@ -5246,8 +4908,8 @@ "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_16", - "__MISS__" : "tbl_act_17" + "__HIT__" : "tbl_act_12", + "__MISS__" : "tbl_act_13" }, "default_entry" : { "action_id" : 0, @@ -5257,8 +4919,8 @@ } }, { - "name" : "tbl_act_16", - "id" : 22, + "name" : "tbl_act_12", + "id" : 18, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5266,22 +4928,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [47], - "actions" : ["act_15"], - "base_default_next" : "node_37", + "action_ids" : [43], + "actions" : ["act_11"], + "base_default_next" : "node_30", "next_tables" : { - "act_15" : "node_37" + "act_11" : "node_30" }, "default_entry" : { - "action_id" : 47, + "action_id" : 43, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_17", - "id" : 23, + "name" : "tbl_act_13", + "id" : 19, "key" : [], "match_type" : "exact", "type" : "simple", @@ -5289,22 +4951,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [48], - "actions" : ["act_16"], - "base_default_next" : "node_37", + "action_ids" : [44], + "actions" : ["act_12"], + "base_default_next" : "node_30", "next_tables" : { - "act_16" : "node_37" + "act_12" : "node_30" }, "default_entry" : { - "action_id" : 48, + "action_id" : 44, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_18", - "id" : 24, + "name" : "tbl_act_14", + "id" : 20, "source_info" : { "filename" : "include/spgw.p4", "line" : 154, @@ -5318,22 +4980,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [49], - "actions" : ["act_17"], - "base_default_next" : "node_40", + "action_ids" : [45], + "actions" : ["act_13"], + "base_default_next" : "node_33", "next_tables" : { - "act_17" : "node_40" + "act_13" : "node_33" }, "default_entry" : { - "action_id" : 49, + "action_id" : 45, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_19", - "id" : 25, + "name" : "tbl_act_15", + "id" : 21, "source_info" : { "filename" : "include/spgw.p4", "line" : 156, @@ -5347,22 +5009,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [50], - "actions" : ["act_18"], - "base_default_next" : "node_40", + "action_ids" : [46], + "actions" : ["act_14"], + "base_default_next" : "node_33", "next_tables" : { - "act_18" : "node_40" + "act_14" : "node_33" }, "default_entry" : { - "action_id" : 50, + "action_id" : 46, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_20", - "id" : 26, + "name" : "tbl_act_16", + "id" : 22, "source_info" : { "filename" : "include/spgw.p4", "line" : 175, @@ -5376,14 +5038,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [52], - "actions" : ["act_20"], - "base_default_next" : "node_42", + "action_ids" : [48], + "actions" : ["act_16"], + "base_default_next" : "node_35", "next_tables" : { - "act_20" : "node_42" + "act_16" : "node_35" }, "default_entry" : { - "action_id" : 52, + "action_id" : 48, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5391,7 +5053,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 27, + "id" : 23, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -5402,7 +5064,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -5434,7 +5096,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 28, + "id" : 24, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -5445,7 +5107,7 @@ { "match_type" : "exact", "name" : "mpls_label", - "target" : ["scalars", "fabric_metadata_t._mpls_label8"], + "target" : ["scalars", "fabric_metadata_t._mpls_label4"], "mask" : null } ], @@ -5471,10 +5133,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 29, + "id" : 25, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -5489,7 +5151,7 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [17, 18, 4], @@ -5502,14 +5164,14 @@ }, "default_entry" : { "action_id" : 4, - "action_const" : true, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.acl.acl", - "id" : 30, + "id" : 26, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -5526,19 +5188,19 @@ { "match_type" : "ternary", "name" : "ip_proto", - "target" : ["scalars", "fabric_metadata_t._ip_proto16"], + "target" : ["scalars", "fabric_metadata_t._ip_proto12"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_sport", - "target" : ["scalars", "fabric_metadata_t._l4_sport17"], + "target" : ["scalars", "fabric_metadata_t._l4_sport13"], "mask" : null }, { "match_type" : "ternary", "name" : "l4_dport", - "target" : ["scalars", "fabric_metadata_t._l4_dport18"], + "target" : ["scalars", "fabric_metadata_t._l4_dport14"], "mask" : null }, { @@ -5562,7 +5224,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t._last_eth_type0"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -5598,13 +5260,13 @@ "direct_meters" : null, "action_ids" : [19, 20, 21, 22, 23], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_50", + "base_default_next" : "node_43", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_50", - "FabricIngress.acl.punt_to_cpu" : "node_50", - "FabricIngress.acl.set_clone_session_id" : "node_50", - "FabricIngress.acl.drop" : "node_50", - "FabricIngress.acl.nop_acl" : "node_50" + "FabricIngress.acl.set_next_id_acl" : "node_43", + "FabricIngress.acl.punt_to_cpu" : "node_43", + "FabricIngress.acl.set_clone_session_id" : "node_43", + "FabricIngress.acl.drop" : "node_43", + "FabricIngress.acl.nop_acl" : "node_43" }, "default_entry" : { "action_id" : 23, @@ -5615,10 +5277,10 @@ }, { "name" : "FabricIngress.next.xconnect", - "id" : 31, + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 116, + "line" : 119, "column" : 10, "source_fragment" : "xconnect" }, @@ -5632,7 +5294,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -5659,10 +5321,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 32, + "id" : 28, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -5670,7 +5332,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -5693,10 +5355,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 33, + "id" : 29, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -5704,7 +5366,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -5730,10 +5392,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 34, + "id" : 30, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -5741,7 +5403,7 @@ { "match_type" : "exact", "name" : "next_id", - "target" : ["scalars", "fabric_metadata_t._next_id13"], + "target" : ["scalars", "fabric_metadata_t._next_id9"], "mask" : null } ], @@ -5753,10 +5415,10 @@ "direct_meters" : null, "action_ids" : [24, 5], "actions" : ["FabricIngress.next.set_vlan", "nop"], - "base_default_next" : "node_55", + "base_default_next" : "node_48", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_55", - "nop" : "node_55" + "FabricIngress.next.set_vlan" : "node_48", + "nop" : "node_48" }, "default_entry" : { "action_id" : 5, @@ -5766,8 +5428,8 @@ } }, { - "name" : "tbl_act_21", - "id" : 35, + "name" : "tbl_act_17", + "id" : 31, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -5781,22 +5443,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [53], - "actions" : ["act_21"], - "base_default_next" : "node_57", + "action_ids" : [49], + "actions" : ["act_17"], + "base_default_next" : "node_50", "next_tables" : { - "act_21" : "node_57" + "act_17" : "node_50" }, "default_entry" : { - "action_id" : 53, + "action_id" : 49, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, - { - "name" : "tbl_act_22", - "id" : 36, + { + "name" : "tbl_act_18", + "id" : 32, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -5810,14 +5472,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [54], - "actions" : ["act_22"], + "action_ids" : [50], + "actions" : ["act_18"], "base_default_next" : null, "next_tables" : { - "act_22" : null + "act_18" : null }, "default_entry" : { - "action_id" : 54, + "action_id" : 50, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -5830,7 +5492,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -5848,15 +5510,15 @@ }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._ip_proto16"] + "value" : ["scalars", "fabric_metadata_t._ip_proto12"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_sport17"] + "value" : ["scalars", "fabric_metadata_t._l4_sport13"] }, { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._l4_dport18"] + "value" : ["scalars", "fabric_metadata_t._l4_dport14"] } ] } @@ -5968,7 +5630,7 @@ "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -5991,7 +5653,7 @@ "id" : 5, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -6014,80 +5676,11 @@ } }, "true_next" : "tbl_act_6", - "false_next" : "node_16" - }, - { - "name" : "node_16", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_7", - "false_next" : "node_18" - }, - { - "name" : "node_18", - "id" : 7, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_19", - "false_next" : "tbl_act_10" + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { "name" : "node_19", - "id" : 8, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] - } - } - }, - "true_next" : "tbl_act_8", - "false_next" : "tbl_act_9" - }, - { - "name" : "node_26", - "id" : 9, + "id" : 6, "source_info" : { "filename" : "include/spgw.p4", "line" : 144, @@ -6109,8 +5702,8 @@ "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup" }, { - "name" : "node_30", - "id" : 10, + "name" : "node_23", + "id" : 7, "source_info" : { "filename" : "include/spgw.p4", "line" : 148, @@ -6135,12 +5728,12 @@ } } }, - "true_next" : "tbl_act_14", - "false_next" : "tbl_act_15" + "true_next" : "tbl_act_10", + "false_next" : "tbl_act_11" }, { - "name" : "node_37", - "id" : 11, + "name" : "node_30", + "id" : 8, "expression" : { "type" : "expression", "value" : { @@ -6152,12 +5745,12 @@ } } }, - "true_next" : "tbl_act_18", - "false_next" : "tbl_act_19" + "true_next" : "tbl_act_14", + "false_next" : "tbl_act_15" }, { - "name" : "node_40", - "id" : 12, + "name" : "node_33", + "id" : 9, "expression" : { "type" : "expression", "value" : { @@ -6176,12 +5769,12 @@ } } }, - "true_next" : "tbl_act_20", - "false_next" : "node_42" + "true_next" : "tbl_act_16", + "false_next" : "node_35" }, { - "name" : "node_42", - "id" : 13, + "name" : "node_35", + "id" : 10, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -6199,7 +5792,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"] + "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"] } } }, @@ -6209,15 +5802,15 @@ } } }, - "true_next" : "node_43", + "true_next" : "node_36", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_43", - "id" : 14, + "name" : "node_36", + "id" : 11, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -6227,7 +5820,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -6236,14 +5829,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_45" + "false_next" : "node_38" }, { - "name" : "node_45", - "id" : 15, + "name" : "node_38", + "id" : 12, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -6253,7 +5846,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -6262,14 +5855,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_47" + "false_next" : "node_40" }, { - "name" : "node_47", - "id" : 16, + "name" : "node_40", + "id" : 13, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -6279,7 +5872,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._fwd_type12"] + "value" : ["scalars", "fabric_metadata_t._fwd_type8"] }, "right" : { "type" : "hexstr", @@ -6291,8 +5884,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_50", - "id" : 17, + "name" : "node_43", + "id" : 14, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -6310,7 +5903,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._skip_next11"] + "value" : ["scalars", "fabric_metadata_t._skip_next7"] } } }, @@ -6324,8 +5917,8 @@ "true_next" : "FabricIngress.next.xconnect" }, { - "name" : "node_55", - "id" : 18, + "name" : "node_48", + "id" : 15, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -6346,12 +5939,12 @@ } } }, - "true_next" : "tbl_act_21", - "false_next" : "node_57" + "true_next" : "tbl_act_17", + "false_next" : "node_50" }, { - "name" : "node_57", - "id" : 19, + "name" : "node_50", + "id" : 16, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -6373,7 +5966,7 @@ } }, "false_next" : null, - "true_next" : "tbl_act_22" + "true_next" : "tbl_act_18" } ] }, @@ -6386,11 +5979,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_61", + "init_table" : "node_54", "tables" : [ { - "name" : "tbl_act_23", - "id" : 37, + "name" : "tbl_act_19", + "id" : 33, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -6404,22 +5997,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [61], - "actions" : ["act_23"], - "base_default_next" : "node_63", + "action_ids" : [57], + "actions" : ["act_19"], + "base_default_next" : "node_56", "next_tables" : { - "act_23" : "node_63" + "act_19" : "node_56" }, "default_entry" : { - "action_id" : 61, + "action_id" : 57, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_24", - "id" : 38, + "name" : "tbl_act_20", + "id" : 34, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -6433,25 +6026,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [62], - "actions" : ["act_24"], - "base_default_next" : "node_65", + "action_ids" : [58], + "actions" : ["act_20"], + "base_default_next" : "node_58", "next_tables" : { - "act_24" : "node_65" + "act_20" : "node_58" }, "default_entry" : { - "action_id" : 62, + "action_id" : 58, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_25", - "id" : 39, + "name" : "tbl_act_21", + "id" : 35, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6462,14 +6055,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [63], - "actions" : ["act_25"], - "base_default_next" : "node_67", + "action_ids" : [59], + "actions" : ["act_21"], + "base_default_next" : "node_60", "next_tables" : { - "act_25" : "node_67" + "act_21" : "node_60" }, "default_entry" : { - "action_id" : 63, + "action_id" : 59, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6477,10 +6070,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 40, + "id" : 36, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -6491,14 +6084,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [57], + "action_ids" : [53], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 57, + "action_id" : 53, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6506,10 +6099,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 41, + "id" : 37, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -6520,14 +6113,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [58], + "action_ids" : [54], "actions" : ["FabricEgress.egress_next.set_mpls"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 58, + "action_id" : 54, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6535,10 +6128,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 42, + "id" : 38, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -6546,7 +6139,7 @@ { "match_type" : "exact", "name" : "vlan_id", - "target" : ["scalars", "fabric_metadata_t._vlan_id5"], + "target" : ["scalars", "fabric_metadata_t._vlan_id1"], "mask" : null }, { @@ -6562,23 +6155,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [60, 55], + "action_ids" : [56, 51], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_26", - "__MISS__" : "tbl_act_27" + "__HIT__" : "tbl_act_22", + "__MISS__" : "tbl_act_23" }, "default_entry" : { - "action_id" : 55, + "action_id" : 51, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_26", - "id" : 43, + "name" : "tbl_act_22", + "id" : 39, "key" : [], "match_type" : "exact", "type" : "simple", @@ -6586,22 +6179,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [64], - "actions" : ["act_26"], - "base_default_next" : "node_74", + "action_ids" : [60], + "actions" : ["act_22"], + "base_default_next" : "node_67", "next_tables" : { - "act_26" : "node_74" + "act_22" : "node_67" }, "default_entry" : { - "action_id" : 64, + "action_id" : 60, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_27", - "id" : 44, + "name" : "tbl_act_23", + "id" : 40, "key" : [], "match_type" : "exact", "type" : "simple", @@ -6609,14 +6202,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [65], - "actions" : ["act_27"], - "base_default_next" : "node_74", + "action_ids" : [61], + "actions" : ["act_23"], + "base_default_next" : "node_67", "next_tables" : { - "act_27" : "node_74" + "act_23" : "node_67" }, "default_entry" : { - "action_id" : 65, + "action_id" : 61, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6624,10 +6217,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 45, + "id" : 41, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -6638,25 +6231,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [59], + "action_ids" : [55], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_77", + "base_default_next" : "node_70", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_77" + "FabricEgress.egress_next.push_vlan" : "node_70" }, "default_entry" : { - "action_id" : 59, + "action_id" : 55, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_28", - "id" : 46, + "name" : "tbl_act_24", + "id" : 42, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -6667,25 +6260,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [67], - "actions" : ["act_29"], - "base_default_next" : "node_79", + "action_ids" : [63], + "actions" : ["act_25"], + "base_default_next" : "node_72", "next_tables" : { - "act_29" : "node_79" + "act_25" : "node_72" }, "default_entry" : { - "action_id" : 67, + "action_id" : 63, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_29", - "id" : 47, + "name" : "tbl_act_25", + "id" : 43, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6696,25 +6289,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [66], - "actions" : ["act_28"], - "base_default_next" : "node_85", + "action_ids" : [62], + "actions" : ["act_24"], + "base_default_next" : "node_78", "next_tables" : { - "act_28" : "node_85" + "act_24" : "node_78" }, "default_entry" : { - "action_id" : 66, + "action_id" : 62, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_30", - "id" : 48, + "name" : "tbl_act_26", + "id" : 44, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -6725,25 +6318,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [69], - "actions" : ["act_31"], - "base_default_next" : "node_83", + "action_ids" : [65], + "actions" : ["act_27"], + "base_default_next" : "node_76", "next_tables" : { - "act_31" : "node_83" + "act_27" : "node_76" }, "default_entry" : { - "action_id" : 69, + "action_id" : 65, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_31", - "id" : 49, + "name" : "tbl_act_27", + "id" : 45, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -6754,14 +6347,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [68], - "actions" : ["act_30"], - "base_default_next" : "node_85", + "action_ids" : [64], + "actions" : ["act_26"], + "base_default_next" : "node_78", "next_tables" : { - "act_30" : "node_85" + "act_26" : "node_78" }, "default_entry" : { - "action_id" : 68, + "action_id" : 64, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6769,7 +6362,7 @@ }, { "name" : "tbl_spgw_egress_gtpu_encap", - "id" : 50, + "id" : 46, "source_info" : { "filename" : "include/spgw.p4", "line" : 228, @@ -6783,14 +6376,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [56], + "action_ids" : [52], "actions" : ["FabricEgress.spgw_egress.gtpu_encap"], "base_default_next" : null, "next_tables" : { "FabricEgress.spgw_egress.gtpu_encap" : null }, "default_entry" : { - "action_id" : 56, + "action_id" : 52, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -6800,8 +6393,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_61", - "id" : 20, + "name" : "node_54", + "id" : 17, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -6819,7 +6412,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"] + "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"] } } }, @@ -6829,12 +6422,12 @@ } } }, - "true_next" : "tbl_act_23", - "false_next" : "node_63" + "true_next" : "tbl_act_19", + "false_next" : "node_56" }, { - "name" : "node_63", - "id" : 21, + "name" : "node_56", + "id" : 18, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -6855,15 +6448,15 @@ } } }, - "true_next" : "tbl_act_24", - "false_next" : "node_65" + "true_next" : "tbl_act_20", + "false_next" : "node_58" }, { - "name" : "node_65", - "id" : 22, + "name" : "node_58", + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -6882,7 +6475,7 @@ "left" : null, "right" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._is_multicast14"] + "value" : ["scalars", "fabric_metadata_t._is_multicast10"] } } }, @@ -6908,15 +6501,15 @@ } } }, - "true_next" : "tbl_act_25", - "false_next" : "node_67" + "true_next" : "tbl_act_21", + "false_next" : "node_60" }, { - "name" : "node_67", - "id" : 23, + "name" : "node_60", + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -6926,7 +6519,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._mpls_label8"] + "value" : ["scalars", "fabric_metadata_t._mpls_label4"] }, "right" : { "type" : "hexstr", @@ -6934,15 +6527,15 @@ } } }, - "true_next" : "node_68", + "true_next" : "node_61", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_68", - "id" : 24, + "name" : "node_61", + "id" : 21, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -6961,11 +6554,11 @@ "false_next" : "FabricEgress.egress_next.egress_vlan" }, { - "name" : "node_74", - "id" : 25, + "name" : "node_67", + "id" : 22, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -6987,15 +6580,15 @@ } } }, - "true_next" : "node_75", - "false_next" : "node_77" + "true_next" : "node_68", + "false_next" : "node_70" }, { - "name" : "node_75", - "id" : 26, + "name" : "node_68", + "id" : 23, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -7005,7 +6598,7 @@ "op" : "!=", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._vlan_id5"] + "value" : ["scalars", "fabric_metadata_t._vlan_id1"] }, "right" : { "type" : "hexstr", @@ -7014,14 +6607,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "node_77" + "false_next" : "node_70" }, { - "name" : "node_77", - "id" : 27, + "name" : "node_70", + "id" : 24, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -7036,15 +6629,15 @@ } } }, - "true_next" : "tbl_act_28", - "false_next" : "node_81" + "true_next" : "tbl_act_24", + "false_next" : "node_74" }, { - "name" : "node_79", - "id" : 28, + "name" : "node_72", + "id" : 25, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -7062,15 +6655,15 @@ } } }, - "true_next" : "tbl_act_29", - "false_next" : "node_85" + "true_next" : "tbl_act_25", + "false_next" : "node_78" }, { - "name" : "node_81", - "id" : 29, + "name" : "node_74", + "id" : 26, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -7085,15 +6678,15 @@ } } }, - "true_next" : "tbl_act_30", - "false_next" : "node_85" + "true_next" : "tbl_act_26", + "false_next" : "node_78" }, { - "name" : "node_83", - "id" : 30, + "name" : "node_76", + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -7111,12 +6704,12 @@ } } }, - "true_next" : "tbl_act_31", - "false_next" : "node_85" + "true_next" : "tbl_act_27", + "false_next" : "node_78" }, { - "name" : "node_85", - "id" : 31, + "name" : "node_78", + "id" : 28, "source_info" : { "filename" : "include/spgw.p4", "line" : 227, @@ -7129,7 +6722,7 @@ "op" : "==", "left" : { "type" : "field", - "value" : ["scalars", "fabric_metadata_t._spgw_direction19"] + "value" : ["scalars", "fabric_metadata_t._spgw_direction15"] }, "right" : { "type" : "hexstr", diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt similarity index 96% rename from pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt index 2fca1c075b5..1ec23e4db5c 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt @@ -67,12 +67,6 @@ tables { bitwidth: 12 match_type: TERNARY } - match_fields { - id: 4 - name: "inner_vlan_id" - bitwidth: 12 - match_type: TERNARY - } action_refs { id: 16836487 } @@ -106,20 +100,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -206,8 +194,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -808,17 +794,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318801025 diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json similarity index 87% rename from pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json index a51ce3aad17..aeae27bc4e8 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json @@ -4,14 +4,12 @@ "name" : "scalars_0", "id" : 0, "fields" : [ - ["tmp_0", 4, false], + ["tmp_0", 16, false], + ["tmp_1", 16, false], + ["tmp_2", 4, false], ["tmp", 32, false], - ["tmp_1", 32, false], + ["tmp_3", 32, false], ["egress_next_tmp", 1, false], - ["fabric_metadata_t.last_eth_type", 16, false], - ["fabric_metadata_t.is_ipv4", 1, false], - ["fabric_metadata_t.is_ipv6", 1, false], - ["fabric_metadata_t.is_mpls", 1, false], ["fabric_metadata_t.ip_eth_type", 16, false], ["fabric_metadata_t.vlan_id", 12, false], ["fabric_metadata_t.vlan_pri", 3, false], @@ -26,8 +24,7 @@ ["fabric_metadata_t.is_controller_packet_out", 1, false], ["fabric_metadata_t.ip_proto", 8, false], ["fabric_metadata_t.l4_sport", 16, false], - ["fabric_metadata_t.l4_dport", 16, false], - ["_padding_0", 5, false] + ["fabric_metadata_t.l4_dport", 16, false] ] }, { @@ -64,23 +61,29 @@ "id" : 2, "fields" : [ ["dst_addr", 48, false], - ["src_addr", 48, false], - ["eth_type", 16, false] + ["src_addr", 48, false] ] }, { "name" : "vlan_tag_t", "id" : 3, "fields" : [ + ["eth_type", 16, false], ["pri", 3, false], ["cfi", 1, false], - ["vlan_id", 12, false], - ["eth_type", 16, false] + ["vlan_id", 12, false] ] }, { - "name" : "mpls_t", + "name" : "eth_type_t", "id" : 4, + "fields" : [ + ["value", 16, false] + ] + }, + { + "name" : "mpls_t", + "id" : 5, "fields" : [ ["label", 20, false], ["tc", 3, false], @@ -90,7 +93,7 @@ }, { "name" : "ipv4_t", - "id" : 5, + "id" : 6, "fields" : [ ["version", 4, false], ["ihl", 4, false], @@ -109,7 +112,7 @@ }, { "name" : "tcp_t", - "id" : 6, + "id" : 7, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -126,7 +129,7 @@ }, { "name" : "udp_t", - "id" : 7, + "id" : 8, "fields" : [ ["sport", 16, false], ["dport", 16, false], @@ -136,7 +139,7 @@ }, { "name" : "icmp_t", - "id" : 8, + "id" : 9, "fields" : [ ["icmp_type", 8, false], ["icmp_code", 8, false], @@ -148,7 +151,7 @@ }, { "name" : "packet_out_header_t", - "id" : 9, + "id" : 10, "fields" : [ ["egress_port", 9, false], ["_pad", 7, false] @@ -156,7 +159,7 @@ }, { "name" : "packet_in_header_t", - "id" : 10, + "id" : 11, "fields" : [ ["ingress_port", 9, false], ["_pad", 7, false] @@ -200,50 +203,57 @@ "pi_omit" : true }, { - "name" : "mpls", + "name" : "eth_type", "id" : 5, + "header_type" : "eth_type_t", + "metadata" : false, + "pi_omit" : true + }, + { + "name" : "mpls", + "id" : 6, "header_type" : "mpls_t", "metadata" : false, "pi_omit" : true }, { "name" : "ipv4", - "id" : 6, + "id" : 7, "header_type" : "ipv4_t", "metadata" : false, "pi_omit" : true }, { "name" : "tcp", - "id" : 7, + "id" : 8, "header_type" : "tcp_t", "metadata" : false, "pi_omit" : true }, { "name" : "udp", - "id" : 8, + "id" : 9, "header_type" : "udp_t", "metadata" : false, "pi_omit" : true }, { "name" : "icmp", - "id" : 9, + "id" : 10, "header_type" : "icmp_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_out", - "id" : 10, + "id" : 11, "header_type" : "packet_out_header_t", "metadata" : false, "pi_omit" : true }, { "name" : "packet_in", - "id" : 11, + "id" : 12, "header_type" : "packet_in_header_t", "metadata" : false, "pi_omit" : true @@ -351,11 +361,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] + "value" : ["scalars", "fabric_metadata_t.vlan_id"] }, { - "type" : "field", - "value" : ["ethernet", "eth_type"] + "type" : "hexstr", + "value" : "0x0ffe" } ], "op" : "set" @@ -364,11 +374,11 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.vlan_id"] + "value" : ["scalars", "tmp_0"] }, { - "type" : "hexstr", - "value" : "0x0ffe" + "type" : "lookahead", + "value" : [0, 16] } ], "op" : "set" @@ -393,28 +403,16 @@ "mask" : null, "next_state" : "parse_vlan_tag" }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["ethernet", "eth_type"] + "value" : ["scalars", "tmp_0"] } ] }, @@ -430,21 +428,22 @@ } ], "op" : "extract" + }, + { + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "tmp_1"] + }, + { + "type" : "lookahead", + "value" : [0, 16] + } + ], + "op" : "set" } ], "transitions" : [ - { - "type" : "hexstr", - "value" : "0x0800", - "mask" : null, - "next_state" : "pre_parse_ipv4" - }, - { - "type" : "hexstr", - "value" : "0x8847", - "mask" : null, - "next_state" : "parse_mpls" - }, { "type" : "hexstr", "value" : "0x8100", @@ -454,13 +453,13 @@ { "value" : "default", "mask" : null, - "next_state" : null + "next_state" : "parse_eth_type" } ], "transition_key" : [ { "type" : "field", - "value" : ["vlan_tag", "eth_type"] + "value" : ["scalars", "tmp_1"] } ] }, @@ -480,17 +479,40 @@ ], "transitions" : [ { - "type" : "hexstr", - "value" : "0x0800", + "value" : "default", "mask" : null, - "next_state" : "pre_parse_ipv4" - }, + "next_state" : "parse_eth_type" + } + ], + "transition_key" : [] + }, + { + "name" : "parse_eth_type", + "id" : 5, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "eth_type" + } + ], + "op" : "extract" + } + ], + "transitions" : [ { "type" : "hexstr", "value" : "0x8847", "mask" : null, "next_state" : "parse_mpls" }, + { + "type" : "hexstr", + "value" : "0x0800", + "mask" : null, + "next_state" : "parse_ipv4" + }, { "value" : "default", "mask" : null, @@ -500,13 +522,13 @@ "transition_key" : [ { "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] + "value" : ["eth_type", "value"] } ] }, { "name" : "parse_mpls", - "id" : 5, + "id" : 6, "parser_ops" : [ { "parameters" : [ @@ -517,29 +539,6 @@ ], "op" : "extract" }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.is_mpls"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - }, { "parameters" : [ { @@ -570,7 +569,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] }, { "type" : "lookahead", @@ -596,47 +595,10 @@ "transition_key" : [ { "type" : "field", - "value" : ["scalars", "tmp_0"] + "value" : ["scalars", "tmp_2"] } ] }, - { - "name" : "pre_parse_ipv4", - "id" : 6, - "parser_ops" : [ - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.is_ipv4"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "b2d", - "left" : null, - "right" : { - "type" : "bool", - "value" : true - } - } - } - } - ], - "op" : "set" - } - ], - "transitions" : [ - { - "value" : "default", - "mask" : null, - "next_state" : "parse_ipv4" - } - ], - "transition_key" : [] - }, { "name" : "parse_ipv4", "id" : 7, @@ -845,11 +807,11 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 276, + "line" : 265, "column" : 8, "source_fragment" : "FabricDeparser" }, - "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "ipv4", "tcp", "udp", "icmp"] + "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp"] } ], "meter_arrays" : [], @@ -873,7 +835,7 @@ "binding" : "FabricIngress.filtering.fwd_classifier", "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 83, + "line" : 85, "column" : 50, "source_fragment" : "fwd_classifier_counter" } @@ -902,21 +864,9 @@ "source_fragment" : "mpls_counter" } }, - { - "name" : "FabricIngress.forwarding.routing_v4_counter", - "id" : 4, - "is_direct" : true, - "binding" : "FabricIngress.forwarding.routing_v4", - "source_info" : { - "filename" : "include/control/forwarding.p4", - "line" : 87, - "column" : 50, - "source_fragment" : "routing_v4_counter" - } - }, { "name" : "FabricIngress.acl.acl_counter", - "id" : 5, + "id" : 4, "is_direct" : true, "binding" : "FabricIngress.acl.acl", "source_info" : { @@ -928,7 +878,7 @@ }, { "name" : "FabricIngress.next.next_vlan_counter", - "id" : 6, + "id" : 5, "is_direct" : true, "binding" : "FabricIngress.next.next_vlan", "source_info" : { @@ -940,43 +890,43 @@ }, { "name" : "FabricIngress.next.xconnect_counter", - "id" : 7, + "id" : 6, "is_direct" : true, "binding" : "FabricIngress.next.xconnect", "source_info" : { "filename" : "include/control/next.p4", - "line" : 103, + "line" : 107, "column" : 50, "source_fragment" : "xconnect_counter" } }, { "name" : "FabricIngress.next.hashed_counter", - "id" : 8, + "id" : 7, "is_direct" : true, "binding" : "FabricIngress.next.hashed", "source_info" : { "filename" : "include/control/next.p4", - "line" : 178, + "line" : 184, "column" : 50, "source_fragment" : "hashed_counter" } }, { "name" : "FabricIngress.next.multicast_counter", - "id" : 9, + "id" : 8, "is_direct" : true, "binding" : "FabricIngress.next.multicast", "source_info" : { "filename" : "include/control/next.p4", - "line" : 222, + "line" : 228, "column" : 50, "source_fragment" : "multicast_counter" } }, { "name" : "FabricIngress.port_counters_control.egress_port_counter", - "id" : 10, + "id" : 9, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 26, @@ -988,7 +938,7 @@ }, { "name" : "FabricIngress.port_counters_control.ingress_port_counter", - "id" : 11, + "id" : 10, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 27, @@ -1000,12 +950,12 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan_counter", - "id" : 12, + "id" : 11, "is_direct" : true, "binding" : "FabricEgress.egress_next.egress_vlan", "source_info" : { "filename" : "include/control/next.p4", - "line" : 310, + "line" : 313, "column" : 50, "source_fragment" : "egress_vlan_counter" } @@ -1306,7 +1256,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 86, + "line" : 88, "column" : 8, "source_fragment" : "fabric_metadata.fwd_type = fwd_type" } @@ -1664,25 +1614,6 @@ "column" : 5, "source_fragment" : "standard_metadata.egress_spec = port_num; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, @@ -1710,7 +1641,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 112, + "line" : 115, "column" : 8, "source_fragment" : "fabric_metadata.next_id = next_id" } @@ -1949,7 +1880,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 225, + "line" : 231, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = group_id" } @@ -1978,7 +1909,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 226, + "line" : 232, "column" : 8, "source_fragment" : "fabric_metadata.is_multicast = true" } @@ -2084,7 +2015,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 12, "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id" } @@ -2103,7 +2034,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 111, + "line" : 112, "column" : 12, "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri" } @@ -2122,7 +2053,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 112, + "line" : 113, "column" : 12, "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi" } @@ -2148,7 +2079,7 @@ ], "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 12, "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1" } @@ -2165,18 +2096,50 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] + "value" : ["scalars", "tmp"] }, { - "type" : "hexstr", - "value" : "0x8847" + "type" : "expression", + "value" : { + "type" : "expression", + "value" : { + "op" : "&", + "left" : { + "type" : "field", + "value" : ["standard_metadata", "egress_spec"] + }, + "right" : { + "type" : "hexstr", + "value" : "0xffffffff" + } + } + } } ], "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 108, - "column" : 31, - "source_fragment" : "0x8847; ..." + "filename" : "include/control/port_counter.p4", + "line" : 31, + "column" : 38, + "source_fragment" : "(bit<32>)standard_metadata.egress_spec" + } + }, + { + "op" : "count", + "parameters" : [ + { + "type" : "counter_array", + "value" : "FabricIngress.port_counters_control.egress_port_counter" + }, + { + "type" : "field", + "value" : ["scalars", "tmp"] + } + ], + "source_info" : { + "filename" : "include/control/port_counter.p4", + "line" : 31, + "column" : 12, + "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)" } } ] @@ -2191,143 +2154,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] - }, - { - "type" : "field", - "value" : ["inner_vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 20, - "source_fragment" : "fabric_metadata.last_eth_type = hdr.inner_vlan_tag.eth_type" - } - } - ] - }, - { - "name" : "act_4", - "id" : 32, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 20, - "source_fragment" : "fabric_metadata.last_eth_type = hdr.vlan_tag.eth_type" - } - } - ] - }, - { - "name" : "act_5", - "id" : 33, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] - }, - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 16, - "source_fragment" : "fabric_metadata.last_eth_type = hdr.ethernet.eth_type" - } - } - ] - }, - { - "name" : "act_6", - "id" : 34, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "tmp"] - }, - { - "type" : "expression", - "value" : { - "type" : "expression", - "value" : { - "op" : "&", - "left" : { - "type" : "field", - "value" : ["standard_metadata", "egress_spec"] - }, - "right" : { - "type" : "hexstr", - "value" : "0xffffffff" - } - } - } - } - ], - "source_info" : { - "filename" : "include/control/port_counter.p4", - "line" : 31, - "column" : 38, - "source_fragment" : "(bit<32>)standard_metadata.egress_spec" - } - }, - { - "op" : "count", - "parameters" : [ - { - "type" : "counter_array", - "value" : "FabricIngress.port_counters_control.egress_port_counter" - }, - { - "type" : "field", - "value" : ["scalars", "tmp"] - } - ], - "source_info" : { - "filename" : "include/control/port_counter.p4", - "line" : 31, - "column" : 12, - "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)" - } - } - ] - }, - { - "name" : "act_7", - "id" : 35, - "runtime_data" : [], - "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] }, { "type" : "expression", @@ -2363,7 +2190,7 @@ }, { "type" : "field", - "value" : ["scalars", "tmp_1"] + "value" : ["scalars", "tmp_3"] } ], "source_info" : { @@ -2377,13 +2204,13 @@ }, { "name" : "nop", - "id" : 36, + "id" : 32, "runtime_data" : [], "primitives" : [] }, { "name" : "FabricEgress.egress_next.pop_mpls_if_present", - "id" : 37, + "id" : 33, "runtime_data" : [], "primitives" : [ { @@ -2396,7 +2223,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 264, + "line" : 270, "column" : 8, "source_fragment" : "hdr.mpls.setInvalid()" } @@ -2406,7 +2233,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] + "value" : ["eth_type", "value"] }, { "type" : "field", @@ -2415,16 +2242,16 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 266, + "line" : 272, "column" : 8, - "source_fragment" : "fabric_metadata.last_eth_type = fabric_metadata.ip_eth_type" + "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type" } } ] }, { "name" : "FabricEgress.egress_next.set_mpls", - "id" : 38, + "id" : 34, "runtime_data" : [], "primitives" : [ { @@ -2437,7 +2264,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 271, + "line" : 277, "column" : 8, "source_fragment" : "hdr.mpls.setValid()" } @@ -2456,7 +2283,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 272, + "line" : 278, "column" : 8, "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label" } @@ -2475,7 +2302,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 273, + "line" : 279, "column" : 8, "source_fragment" : "hdr.mpls.tc = 3w0" } @@ -2494,7 +2321,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 274, + "line" : 280, "column" : 8, "source_fragment" : "hdr.mpls.bos = 1w1" } @@ -2513,7 +2340,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 275, + "line" : 281, "column" : 8, "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl" } @@ -2523,7 +2350,7 @@ "parameters" : [ { "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] + "value" : ["eth_type", "value"] }, { "type" : "hexstr", @@ -2532,7 +2359,7 @@ ], "source_info" : { "filename" : "include/control/../define.p4", - "line" : 108, + "line" : 112, "column" : 31, "source_fragment" : "0x8847; ..." } @@ -2541,7 +2368,7 @@ }, { "name" : "FabricEgress.egress_next.push_vlan", - "id" : 39, + "id" : 35, "runtime_data" : [], "primitives" : [ { @@ -2554,7 +2381,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 283, + "line" : 289, "column" : 8, "source_fragment" : "hdr.vlan_tag.setValid()" } @@ -2573,7 +2400,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 284, + "line" : 290, "column" : 8, "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi" } @@ -2592,7 +2419,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 285, + "line" : 291, "column" : 8, "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri" } @@ -2605,15 +2432,15 @@ "value" : ["vlan_tag", "eth_type"] }, { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] + "type" : "hexstr", + "value" : "0x8100" } ], "source_info" : { - "filename" : "include/control/next.p4", - "line" : 286, - "column" : 8, - "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type" + "filename" : "include/control/../define.p4", + "line" : 111, + "column" : 31, + "source_fragment" : "0x8100; ..." } }, { @@ -2630,56 +2457,18 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 287, + "line" : 293, "column" : 8, "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id" } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "hexstr", - "value" : "0x8100" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 107, - "column" : 31, - "source_fragment" : "0x8100; ..." - } } ] }, { "name" : "FabricEgress.egress_next.pop_vlan", - "id" : 40, + "id" : 36, "runtime_data" : [], "primitives" : [ - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["ethernet", "eth_type"] - }, - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.last_eth_type"] - } - ], - "source_info" : { - "filename" : "include/control/next.p4", - "line" : 313, - "column" : 8, - "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type" - } - }, { "op" : "remove_header", "parameters" : [ @@ -2690,7 +2479,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 314, + "line" : 316, "column" : 8, "source_fragment" : "hdr.vlan_tag.setInvalid()" } @@ -2698,8 +2487,8 @@ ] }, { - "name" : "act_8", - "id" : 41, + "name" : "act_4", + "id" : 37, "runtime_data" : [], "primitives" : [ { @@ -2715,8 +2504,8 @@ ] }, { - "name" : "act_9", - "id" : 42, + "name" : "act_5", + "id" : 38, "runtime_data" : [], "primitives" : [ { @@ -2766,8 +2555,8 @@ ] }, { - "name" : "act_10", - "id" : 43, + "name" : "act_6", + "id" : 39, "runtime_data" : [], "primitives" : [ { @@ -2780,7 +2569,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -2788,8 +2577,8 @@ ] }, { - "name" : "act_11", - "id" : 44, + "name" : "act_7", + "id" : 40, "runtime_data" : [], "primitives" : [ { @@ -2818,8 +2607,8 @@ ] }, { - "name" : "act_12", - "id" : 45, + "name" : "act_8", + "id" : 41, "runtime_data" : [], "primitives" : [ { @@ -2848,8 +2637,8 @@ ] }, { - "name" : "act_13", - "id" : 46, + "name" : "act_9", + "id" : 42, "runtime_data" : [], "primitives" : [ { @@ -2862,7 +2651,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -2870,8 +2659,8 @@ ] }, { - "name" : "act_14", - "id" : 47, + "name" : "act_10", + "id" : 43, "runtime_data" : [], "primitives" : [ { @@ -2911,7 +2700,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 12, "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1" } @@ -2919,8 +2708,8 @@ ] }, { - "name" : "act_15", - "id" : 48, + "name" : "act_11", + "id" : 44, "runtime_data" : [], "primitives" : [ { @@ -2933,7 +2722,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" } @@ -2941,8 +2730,8 @@ ] }, { - "name" : "act_16", - "id" : 49, + "name" : "act_12", + "id" : 45, "runtime_data" : [], "primitives" : [ { @@ -2982,7 +2771,7 @@ ], "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 16, "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1" } @@ -3036,7 +2825,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 110, + "line" : 111, "column" : 36, "source_fragment" : "= hdr.vlan_tag.vlan_id; ..." }, @@ -3065,7 +2854,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 126, + "line" : 127, "column" : 37, "source_fragment" : "=" }, @@ -3078,128 +2867,12 @@ "direct_meters" : null, "action_ids" : [29], "actions" : ["act_1"], - "base_default_next" : "node_8", - "next_tables" : { - "act_1" : "node_8" - }, - "default_entry" : { - "action_id" : 29, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_2", - "id" : 3, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 131, - "column" : 42, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [30], - "actions" : ["act_2"], "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", "next_tables" : { - "act_2" : "FabricIngress.filtering.ingress_port_vlan" + "act_1" : "FabricIngress.filtering.ingress_port_vlan" }, "default_entry" : { - "action_id" : 30, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_3", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 136, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [31], - "actions" : ["act_3"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_3" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 31, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_4", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 139, - "column" : 50, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [32], - "actions" : ["act_4"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_4" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 32, - "action_const" : true, - "action_data" : [], - "action_entry_const" : true - } - }, - { - "name" : "tbl_act_5", - "id" : 6, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 141, - "column" : 46, - "source_fragment" : "=" - }, - "key" : [], - "match_type" : "exact", - "type" : "simple", - "max_size" : 1024, - "with_counters" : false, - "support_timeout" : false, - "direct_meters" : null, - "action_ids" : [33], - "actions" : ["act_5"], - "base_default_next" : "FabricIngress.filtering.ingress_port_vlan", - "next_tables" : { - "act_5" : "FabricIngress.filtering.ingress_port_vlan" - }, - "default_entry" : { - "action_id" : 33, + "action_id" : 29, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -3207,7 +2880,7 @@ }, { "name" : "FabricIngress.filtering.ingress_port_vlan", - "id" : 7, + "id" : 3, "source_info" : { "filename" : "include/control/filtering.p4", "line" : 53, @@ -3232,12 +2905,6 @@ "name" : "vlan_id", "target" : ["vlan_tag", "vlan_id"], "mask" : null - }, - { - "match_type" : "ternary", - "name" : "inner_vlan_id", - "target" : ["inner_vlan_tag", "vlan_id"], - "mask" : null } ], "match_type" : "ternary", @@ -3263,10 +2930,10 @@ }, { "name" : "FabricIngress.filtering.fwd_classifier", - "id" : 8, + "id" : 4, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 90, + "line" : 92, "column" : 10, "source_fragment" : "fwd_classifier" }, @@ -3284,21 +2951,15 @@ "mask" : null }, { - "match_type" : "exact", - "name" : "is_ipv4", - "target" : ["scalars", "fabric_metadata_t.is_ipv4"], - "mask" : null - }, - { - "match_type" : "exact", - "name" : "is_ipv6", - "target" : ["scalars", "fabric_metadata_t.is_ipv6"], + "match_type" : "ternary", + "name" : "eth_type", + "target" : ["eth_type", "value"], "mask" : null }, { "match_type" : "exact", - "name" : "is_mpls", - "target" : ["scalars", "fabric_metadata_t.is_mpls"], + "name" : "ip_eth_type", + "target" : ["scalars", "fabric_metadata_t.ip_eth_type"], "mask" : null } ], @@ -3310,9 +2971,9 @@ "direct_meters" : null, "action_ids" : [10], "actions" : ["FabricIngress.filtering.set_forwarding_type"], - "base_default_next" : "node_17", + "base_default_next" : "node_10", "next_tables" : { - "FabricIngress.filtering.set_forwarding_type" : "node_17" + "FabricIngress.filtering.set_forwarding_type" : "node_10" }, "default_entry" : { "action_id" : 10, @@ -3323,7 +2984,7 @@ }, { "name" : "FabricIngress.forwarding.bridging", - "id" : 9, + "id" : 5, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 46, @@ -3366,7 +3027,7 @@ }, { "name" : "FabricIngress.forwarding.mpls", - "id" : 10, + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", "line" : 71, @@ -3403,10 +3064,10 @@ }, { "name" : "FabricIngress.forwarding.routing_v4", - "id" : 11, + "id" : 7, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 101, + "line" : 108, "column" : 10, "source_fragment" : "routing_v4" }, @@ -3421,7 +3082,7 @@ "match_type" : "lpm", "type" : "simple", "max_size" : 1024, - "with_counters" : true, + "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [13, 14, 2], @@ -3434,14 +3095,14 @@ }, "default_entry" : { "action_id" : 2, - "action_const" : true, + "action_const" : false, "action_data" : [], - "action_entry_const" : true + "action_entry_const" : false } }, { "name" : "FabricIngress.acl.acl", - "id" : 12, + "id" : 8, "source_info" : { "filename" : "include/control/acl.p4", "line" : 60, @@ -3494,7 +3155,7 @@ { "match_type" : "ternary", "name" : "eth_type", - "target" : ["scalars", "fabric_metadata_t.last_eth_type"], + "target" : ["eth_type", "value"], "mask" : null }, { @@ -3530,13 +3191,13 @@ "direct_meters" : null, "action_ids" : [15, 16, 17, 18, 19], "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"], - "base_default_next" : "node_25", + "base_default_next" : "node_18", "next_tables" : { - "FabricIngress.acl.set_next_id_acl" : "node_25", - "FabricIngress.acl.punt_to_cpu" : "node_25", - "FabricIngress.acl.set_clone_session_id" : "node_25", - "FabricIngress.acl.drop" : "node_25", - "FabricIngress.acl.nop_acl" : "node_25" + "FabricIngress.acl.set_next_id_acl" : "node_18", + "FabricIngress.acl.punt_to_cpu" : "node_18", + "FabricIngress.acl.set_clone_session_id" : "node_18", + "FabricIngress.acl.drop" : "node_18", + "FabricIngress.acl.nop_acl" : "node_18" }, "default_entry" : { "action_id" : 19, @@ -3547,10 +3208,10 @@ }, { "name" : "FabricIngress.next.xconnect", - "id" : 13, + "id" : 9, "source_info" : { "filename" : "include/control/next.p4", - "line" : 116, + "line" : 119, "column" : 10, "source_fragment" : "xconnect" }, @@ -3591,10 +3252,10 @@ }, { "name" : "FabricIngress.next.hashed", - "id" : 14, + "id" : 10, "source_info" : { "filename" : "include/control/next.p4", - "line" : 196, + "line" : 202, "column" : 10, "source_fragment" : "hashed" }, @@ -3625,10 +3286,10 @@ }, { "name" : "FabricIngress.next.multicast", - "id" : 15, + "id" : 11, "source_info" : { "filename" : "include/control/next.p4", - "line" : 230, + "line" : 236, "column" : 10, "source_fragment" : "multicast" }, @@ -3662,10 +3323,10 @@ }, { "name" : "FabricIngress.next.next_vlan", - "id" : 16, + "id" : 12, "source_info" : { "filename" : "include/control/next.p4", - "line" : 82, + "line" : 86, "column" : 10, "source_fragment" : "next_vlan" }, @@ -3685,10 +3346,10 @@ "direct_meters" : null, "action_ids" : [20, 3], "actions" : ["FabricIngress.next.set_vlan", "nop"], - "base_default_next" : "node_30", + "base_default_next" : "node_23", "next_tables" : { - "FabricIngress.next.set_vlan" : "node_30", - "nop" : "node_30" + "FabricIngress.next.set_vlan" : "node_23", + "nop" : "node_23" }, "default_entry" : { "action_id" : 3, @@ -3698,8 +3359,8 @@ } }, { - "name" : "tbl_act_6", - "id" : 17, + "name" : "tbl_act_2", + "id" : 13, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 31, @@ -3713,22 +3374,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [34], - "actions" : ["act_6"], - "base_default_next" : "node_32", + "action_ids" : [30], + "actions" : ["act_2"], + "base_default_next" : "node_25", "next_tables" : { - "act_6" : "node_32" + "act_2" : "node_25" }, "default_entry" : { - "action_id" : 34, + "action_id" : 30, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_7", - "id" : 18, + "name" : "tbl_act_3", + "id" : 14, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 34, @@ -3742,14 +3403,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [35], - "actions" : ["act_7"], + "action_ids" : [31], + "actions" : ["act_3"], "base_default_next" : null, "next_tables" : { - "act_7" : null + "act_3" : null }, "default_entry" : { - "action_id" : 35, + "action_id" : 31, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -3762,7 +3423,7 @@ "id" : 0, "source_info" : { "filename" : "include/control/next.p4", - "line" : 177, + "line" : 183, "column" : 57, "source_fragment" : "hashed_selector" }, @@ -3823,7 +3484,7 @@ "id" : 1, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 109, + "line" : 110, "column" : 12, "source_fragment" : "hdr.vlan_tag.isValid()" }, @@ -3846,7 +3507,7 @@ "id" : 2, "source_info" : { "filename" : "include/control/filtering.p4", - "line" : 121, + "line" : 122, "column" : 12, "source_fragment" : "!hdr.mpls.isValid()" }, @@ -3869,80 +3530,11 @@ } }, "true_next" : "tbl_act_1", - "false_next" : "node_8" - }, - { - "name" : "node_8", - "id" : 3, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 130, - "column" : 12, - "source_fragment" : "hdr.mpls.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["mpls", "$valid$"] - } - } - }, - "true_next" : "tbl_act_2", - "false_next" : "node_10" + "false_next" : "FabricIngress.filtering.ingress_port_vlan" }, { "name" : "node_10", - "id" : 4, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 133, - "column" : 16, - "source_fragment" : "hdr.vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["vlan_tag", "$valid$"] - } - } - }, - "true_next" : "node_11", - "false_next" : "tbl_act_5" - }, - { - "name" : "node_11", - "id" : 5, - "source_info" : { - "filename" : "include/control/filtering.p4", - "line" : 135, - "column" : 19, - "source_fragment" : "hdr.inner_vlan_tag.isValid()" - }, - "expression" : { - "type" : "expression", - "value" : { - "op" : "d2b", - "left" : null, - "right" : { - "type" : "field", - "value" : ["inner_vlan_tag", "$valid$"] - } - } - }, - "true_next" : "tbl_act_3", - "false_next" : "tbl_act_4" - }, - { - "name" : "node_17", - "id" : 6, + "id" : 3, "source_info" : { "filename" : "fabric.p4", "line" : 71, @@ -3970,15 +3562,15 @@ } } }, - "true_next" : "node_18", + "true_next" : "node_11", "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_18", - "id" : 7, + "name" : "node_11", + "id" : 4, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 141, + "line" : 150, "column" : 12, "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING" }, @@ -3997,14 +3589,14 @@ } }, "true_next" : "FabricIngress.forwarding.bridging", - "false_next" : "node_20" + "false_next" : "node_13" }, { - "name" : "node_20", - "id" : 8, + "name" : "node_13", + "id" : 5, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 142, + "line" : 151, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS" }, @@ -4023,14 +3615,14 @@ } }, "true_next" : "FabricIngress.forwarding.mpls", - "false_next" : "node_22" + "false_next" : "node_15" }, { - "name" : "node_22", - "id" : 9, + "name" : "node_15", + "id" : 6, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 143, + "line" : 152, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -4052,8 +3644,8 @@ "false_next" : "FabricIngress.acl.acl" }, { - "name" : "node_25", - "id" : 10, + "name" : "node_18", + "id" : 7, "source_info" : { "filename" : "fabric.p4", "line" : 75, @@ -4085,8 +3677,8 @@ "true_next" : "FabricIngress.next.xconnect" }, { - "name" : "node_30", - "id" : 11, + "name" : "node_23", + "id" : 8, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 30, @@ -4107,12 +3699,12 @@ } } }, - "true_next" : "tbl_act_6", - "false_next" : "node_32" + "true_next" : "tbl_act_2", + "false_next" : "node_25" }, { - "name" : "node_32", - "id" : 12, + "name" : "node_25", + "id" : 9, "source_info" : { "filename" : "include/control/port_counter.p4", "line" : 33, @@ -4134,7 +3726,7 @@ } }, "false_next" : null, - "true_next" : "tbl_act_7" + "true_next" : "tbl_act_3" } ] }, @@ -4147,11 +3739,11 @@ "column" : 8, "source_fragment" : "FabricEgress" }, - "init_table" : "node_36", + "init_table" : "node_29", "tables" : [ { - "name" : "tbl_act_8", - "id" : 19, + "name" : "tbl_act_4", + "id" : 15, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 41, @@ -4165,22 +3757,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [41], - "actions" : ["act_8"], - "base_default_next" : "node_38", + "action_ids" : [37], + "actions" : ["act_4"], + "base_default_next" : "node_31", "next_tables" : { - "act_8" : "node_38" + "act_4" : "node_31" }, "default_entry" : { - "action_id" : 41, + "action_id" : 37, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_9", - "id" : 20, + "name" : "tbl_act_5", + "id" : 16, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 44, @@ -4194,25 +3786,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [42], - "actions" : ["act_9"], - "base_default_next" : "node_40", + "action_ids" : [38], + "actions" : ["act_5"], + "base_default_next" : "node_33", "next_tables" : { - "act_9" : "node_40" + "act_5" : "node_33" }, "default_entry" : { - "action_id" : 42, + "action_id" : 38, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_10", - "id" : 21, + "name" : "tbl_act_6", + "id" : 17, "source_info" : { "filename" : "include/control/next.p4", - "line" : 335, + "line" : 337, "column" : 12, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -4223,14 +3815,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [43], - "actions" : ["act_10"], - "base_default_next" : "node_42", + "action_ids" : [39], + "actions" : ["act_6"], + "base_default_next" : "node_35", "next_tables" : { - "act_10" : "node_42" + "act_6" : "node_35" }, "default_entry" : { - "action_id" : 43, + "action_id" : 39, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4238,10 +3830,10 @@ }, { "name" : "tbl_egress_next_pop_mpls_if_present", - "id" : 22, + "id" : 18, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 36, "source_fragment" : "pop_mpls_if_present()" }, @@ -4252,14 +3844,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [37], + "action_ids" : [33], "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 37, + "action_id" : 33, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4267,10 +3859,10 @@ }, { "name" : "tbl_egress_next_set_mpls", - "id" : 23, + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 341, + "line" : 343, "column" : 12, "source_fragment" : "set_mpls()" }, @@ -4281,14 +3873,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [38], + "action_ids" : [34], "actions" : ["FabricEgress.egress_next.set_mpls"], "base_default_next" : "FabricEgress.egress_next.egress_vlan", "next_tables" : { "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan" }, "default_entry" : { - "action_id" : 38, + "action_id" : 34, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4296,10 +3888,10 @@ }, { "name" : "FabricEgress.egress_next.egress_vlan", - "id" : 24, + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 318, + "line" : 320, "column" : 10, "source_fragment" : "egress_vlan" }, @@ -4323,23 +3915,23 @@ "with_counters" : true, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [40, 36], + "action_ids" : [36, 32], "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"], "base_default_next" : null, "next_tables" : { - "__HIT__" : "tbl_act_11", - "__MISS__" : "tbl_act_12" + "__HIT__" : "tbl_act_7", + "__MISS__" : "tbl_act_8" }, "default_entry" : { - "action_id" : 36, + "action_id" : 32, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_11", - "id" : 25, + "name" : "tbl_act_7", + "id" : 21, "key" : [], "match_type" : "exact", "type" : "simple", @@ -4347,22 +3939,22 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [44], - "actions" : ["act_11"], - "base_default_next" : "node_49", + "action_ids" : [40], + "actions" : ["act_7"], + "base_default_next" : "node_42", "next_tables" : { - "act_11" : "node_49" + "act_7" : "node_42" }, "default_entry" : { - "action_id" : 44, + "action_id" : 40, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_12", - "id" : 26, + "name" : "tbl_act_8", + "id" : 22, "key" : [], "match_type" : "exact", "type" : "simple", @@ -4370,14 +3962,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [45], - "actions" : ["act_12"], - "base_default_next" : "node_49", + "action_ids" : [41], + "actions" : ["act_8"], + "base_default_next" : "node_42", "next_tables" : { - "act_12" : "node_49" + "act_8" : "node_42" }, "default_entry" : { - "action_id" : 45, + "action_id" : 41, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4385,10 +3977,10 @@ }, { "name" : "tbl_egress_next_push_vlan", - "id" : 27, + "id" : 23, "source_info" : { "filename" : "include/control/next.p4", - "line" : 358, + "line" : 360, "column" : 20, "source_fragment" : "push_vlan()" }, @@ -4399,25 +3991,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [39], + "action_ids" : [35], "actions" : ["FabricEgress.egress_next.push_vlan"], - "base_default_next" : "node_52", + "base_default_next" : "node_45", "next_tables" : { - "FabricEgress.egress_next.push_vlan" : "node_52" + "FabricEgress.egress_next.push_vlan" : "node_45" }, "default_entry" : { - "action_id" : 39, + "action_id" : 35, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_13", - "id" : 28, + "name" : "tbl_act_9", + "id" : 24, "source_info" : { "filename" : "include/control/next.p4", - "line" : 367, + "line" : 369, "column" : 25, "source_fragment" : "=" }, @@ -4428,25 +4020,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [47], - "actions" : ["act_14"], - "base_default_next" : "node_54", + "action_ids" : [43], + "actions" : ["act_10"], + "base_default_next" : "node_47", "next_tables" : { - "act_14" : "node_54" + "act_10" : "node_47" }, "default_entry" : { - "action_id" : 47, + "action_id" : 43, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_14", - "id" : 29, + "name" : "tbl_act_10", + "id" : 25, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 35, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -4457,25 +4049,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [46], - "actions" : ["act_13"], + "action_ids" : [42], + "actions" : ["act_9"], "base_default_next" : null, "next_tables" : { - "act_13" : null + "act_9" : null }, "default_entry" : { - "action_id" : 46, + "action_id" : 42, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_15", - "id" : 30, + "name" : "tbl_act_11", + "id" : 26, "source_info" : { "filename" : "include/control/next.p4", - "line" : 371, + "line" : 373, "column" : 29, "source_fragment" : "=" }, @@ -4486,25 +4078,25 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [49], - "actions" : ["act_16"], - "base_default_next" : "node_58", + "action_ids" : [45], + "actions" : ["act_12"], + "base_default_next" : "node_51", "next_tables" : { - "act_16" : "node_58" + "act_12" : "node_51" }, "default_entry" : { - "action_id" : 49, + "action_id" : 45, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { - "name" : "tbl_act_16", - "id" : 31, + "name" : "tbl_act_12", + "id" : 27, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 39, "source_fragment" : "mark_to_drop(standard_metadata)" }, @@ -4515,14 +4107,14 @@ "with_counters" : false, "support_timeout" : false, "direct_meters" : null, - "action_ids" : [48], - "actions" : ["act_15"], + "action_ids" : [44], + "actions" : ["act_11"], "base_default_next" : null, "next_tables" : { - "act_15" : null + "act_11" : null }, "default_entry" : { - "action_id" : 48, + "action_id" : 44, "action_const" : true, "action_data" : [], "action_entry_const" : true @@ -4532,8 +4124,8 @@ "action_profiles" : [], "conditionals" : [ { - "name" : "node_36", - "id" : 13, + "name" : "node_29", + "id" : 10, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 39, @@ -4561,12 +4153,12 @@ } } }, - "true_next" : "tbl_act_8", - "false_next" : "node_38" + "true_next" : "tbl_act_4", + "false_next" : "node_31" }, { - "name" : "node_38", - "id" : 14, + "name" : "node_31", + "id" : 11, "source_info" : { "filename" : "include/control/packetio.p4", "line" : 43, @@ -4587,15 +4179,15 @@ } } }, - "true_next" : "tbl_act_9", - "false_next" : "node_40" + "true_next" : "tbl_act_5", + "false_next" : "node_33" }, { - "name" : "node_40", - "id" : 15, + "name" : "node_33", + "id" : 12, "source_info" : { "filename" : "include/control/next.p4", - "line" : 333, + "line" : 335, "column" : 12, "source_fragment" : "fabric_metadata.is_multicast == true ..." }, @@ -4640,15 +4232,15 @@ } } }, - "true_next" : "tbl_act_10", - "false_next" : "node_42" + "true_next" : "tbl_act_6", + "false_next" : "node_35" }, { - "name" : "node_42", - "id" : 16, + "name" : "node_35", + "id" : 13, "source_info" : { "filename" : "include/control/next.p4", - "line" : 338, + "line" : 340, "column" : 12, "source_fragment" : "fabric_metadata.mpls_label == 0" }, @@ -4666,15 +4258,15 @@ } } }, - "true_next" : "node_43", + "true_next" : "node_36", "false_next" : "tbl_egress_next_set_mpls" }, { - "name" : "node_43", - "id" : 17, + "name" : "node_36", + "id" : 14, "source_info" : { "filename" : "include/control/next.p4", - "line" : 339, + "line" : 341, "column" : 16, "source_fragment" : "hdr.mpls.isValid()" }, @@ -4693,11 +4285,11 @@ "false_next" : "FabricEgress.egress_next.egress_vlan" }, { - "name" : "node_49", - "id" : 18, + "name" : "node_42", + "id" : 15, "source_info" : { "filename" : "include/control/next.p4", - "line" : 355, + "line" : 357, "column" : 16, "source_fragment" : "!egress_vlan.apply().hit" }, @@ -4719,15 +4311,15 @@ } } }, - "true_next" : "node_50", - "false_next" : "node_52" + "true_next" : "node_43", + "false_next" : "node_45" }, { - "name" : "node_50", - "id" : 19, + "name" : "node_43", + "id" : 16, "source_info" : { "filename" : "include/control/next.p4", - "line" : 357, + "line" : 359, "column" : 20, "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID" }, @@ -4746,14 +4338,14 @@ } }, "true_next" : "tbl_egress_next_push_vlan", - "false_next" : "node_52" + "false_next" : "node_45" }, { - "name" : "node_52", - "id" : 20, + "name" : "node_45", + "id" : 17, "source_info" : { "filename" : "include/control/next.p4", - "line" : 366, + "line" : 368, "column" : 12, "source_fragment" : "hdr.mpls.isValid()" }, @@ -4768,15 +4360,15 @@ } } }, - "true_next" : "tbl_act_13", - "false_next" : "node_56" + "true_next" : "tbl_act_9", + "false_next" : "node_49" }, { - "name" : "node_54", - "id" : 21, + "name" : "node_47", + "id" : 18, "source_info" : { "filename" : "include/control/next.p4", - "line" : 368, + "line" : 370, "column" : 16, "source_fragment" : "hdr.mpls.ttl == 0" }, @@ -4795,14 +4387,14 @@ } }, "false_next" : null, - "true_next" : "tbl_act_14" + "true_next" : "tbl_act_10" }, { - "name" : "node_56", - "id" : 22, + "name" : "node_49", + "id" : 19, "source_info" : { "filename" : "include/control/next.p4", - "line" : 370, + "line" : 372, "column" : 15, "source_fragment" : "hdr.ipv4.isValid()" }, @@ -4818,14 +4410,14 @@ } }, "false_next" : null, - "true_next" : "tbl_act_15" + "true_next" : "tbl_act_11" }, { - "name" : "node_58", - "id" : 23, + "name" : "node_51", + "id" : 20, "source_info" : { "filename" : "include/control/next.p4", - "line" : 372, + "line" : 374, "column" : 20, "source_fragment" : "hdr.ipv4.ttl == 0" }, @@ -4844,7 +4436,7 @@ } }, "false_next" : null, - "true_next" : "tbl_act_16" + "true_next" : "tbl_act_12" } ] } diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/cpu_port.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/cpu_port.txt similarity index 100% rename from pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/cpu_port.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/cpu_port.txt diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt similarity index 96% rename from pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt rename to pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt index 8d074aef5af..0419d3672cd 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt +++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt @@ -25,12 +25,6 @@ tables { bitwidth: 12 match_type: TERNARY } - match_fields { - id: 4 - name: "inner_vlan_id" - bitwidth: 12 - match_type: TERNARY - } action_refs { id: 16836487 } @@ -64,20 +58,14 @@ tables { } match_fields { id: 3 - name: "is_ipv4" - bitwidth: 1 - match_type: EXACT + name: "eth_type" + bitwidth: 16 + match_type: TERNARY } match_fields { id: 4 - name: "is_ipv6" - bitwidth: 1 - match_type: EXACT - } - match_fields { - id: 5 - name: "is_mpls" - bitwidth: 1 + name: "ip_eth_type" + bitwidth: 16 match_type: EXACT } action_refs { @@ -164,8 +152,6 @@ tables { annotations: "@defaultonly" scope: DEFAULT_ONLY } - const_default_action_id: 16819938 - direct_resource_ids: 318811107 size: 1024 } tables { @@ -733,17 +719,6 @@ direct_counters { } direct_table_id: 33574274 } -direct_counters { - preamble { - id: 318811107 - name: "FabricIngress.forwarding.routing_v4_counter" - alias: "routing_v4_counter" - } - spec { - unit: BOTH - } - direct_table_id: 33562650 -} direct_counters { preamble { id: 318801025 diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java similarity index 98% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java index bf3769406fc..a0e61946514 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricInterpreterTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric; +package org.onosproject.pipelines.fabric.impl.behaviour; import com.google.common.collect.ImmutableList; import org.junit.Before; @@ -69,7 +69,7 @@ public void testFilteringTreatmentPermitWithInternalVlan() throws Exception { .setVlanId(VLAN_100) .build(); PiAction mappedAction = interpreter.mapTreatment(treatment, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); PiActionParam param = new PiActionParam(FabricConstants.VLAN_ID, ImmutableByteSequence.copyFrom(VLAN_100.toShort())); PiAction expectedAction = PiAction.builder() diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricFilteringPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java similarity index 60% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricFilteringPipelinerTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java index e15b11740f0..18cd132202c 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricFilteringPipelinerTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java @@ -14,8 +14,9 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; +import com.google.common.collect.Lists; import org.junit.Before; import org.junit.Test; import org.onlab.packet.Ethernet; @@ -37,7 +38,10 @@ import org.onosproject.net.flowobjective.ObjectiveError; import org.onosproject.net.pi.runtime.PiAction; import org.onosproject.net.pi.runtime.PiActionParam; -import org.onosproject.pipelines.fabric.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; + +import java.util.Collection; +import java.util.List; import static org.junit.Assert.assertEquals; @@ -48,6 +52,7 @@ public class FabricFilteringPipelinerTest extends FabricPipelinerTest { public static final byte[] ONE = {1}; public static final byte[] ZERO = {0}; + public static final short EXACT_MATCH_ETH_TYPE = (short) 0xFFFF; private FilteringObjectiveTranslator translator; @Before @@ -58,49 +63,58 @@ public void setup() { /** * Creates one rule for ingress_port_vlan table and 3 rules for - * fwd_classifier table (IPv4, IPv6 and MPLS unicast) when - * the condition is VLAN + MAC. + * fwd_classifier table (IPv4, IPv6 and MPLS unicast) when the condition is + * VLAN + MAC. */ @Test public void testRouterMacAndVlanFilter() throws FabricPipelinerException { FilteringObjective filteringObjective = buildFilteringObjective(ROUTER_MAC); ObjectiveTranslation actualTranslation = translator.translate(filteringObjective); - + Collection expectedFlowRules = Lists.newArrayList(); // in port vlan flow rule - FlowRule inportFlowRuleExpected = - buildExpectedVlanInPortRule(PORT_1, - VlanId.NONE, - VlanId.NONE, - VLAN_100, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); + expectedFlowRules.add(buildExpectedVlanInPortRule( + PORT_1, + VlanId.NONE, + VlanId.NONE, + VLAN_100, + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN)); // forwarding classifier ipv4 - FlowRule classifierV4FlowRuleExpected = buildExpectedFwdClassifierRule(PORT_1, - ROUTER_MAC, - null, - Ethernet.TYPE_IPV4, - FilteringObjectiveTranslator.FWD_IPV4_ROUTING); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, + ROUTER_MAC, + null, + Ethernet.TYPE_IPV4, + FilteringObjectiveTranslator.FWD_IPV4_ROUTING)); // forwarding classifier ipv6 - FlowRule classifierV6FlowRuleExpected = buildExpectedFwdClassifierRule(PORT_1, - ROUTER_MAC, - null, - Ethernet.TYPE_IPV6, - FilteringObjectiveTranslator.FWD_IPV6_ROUTING); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, + ROUTER_MAC, + null, + Ethernet.TYPE_IPV6, + FilteringObjectiveTranslator.FWD_IPV6_ROUTING)); // forwarding classifier mpls - FlowRule classifierMplsFlowRuleExpected = buildExpectedFwdClassifierRule(PORT_1, - ROUTER_MAC, - null, - Ethernet.MPLS_UNICAST, - FilteringObjectiveTranslator.FWD_MPLS); - - ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder() - .addFlowRule(inportFlowRuleExpected) - .addFlowRule(classifierV4FlowRuleExpected) - .addFlowRule(classifierV6FlowRuleExpected) - .addFlowRule(classifierMplsFlowRuleExpected) - .build(); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, + ROUTER_MAC, + null, + Ethernet.MPLS_UNICAST, + FilteringObjectiveTranslator.FWD_MPLS)); + +// ObjectiveTranslation.Builder expectedTranslationBuilder = ObjectiveTranslation.builder() +// .addFlowRule(inportFlowRuleExpected); +// for (FlowRule flowRule : classifierV4FlowRuleExpected) { +// expectedTranslationBuilder.addFlowRule(flowRule); +// } +// for (FlowRule flowRule : classifierV6FlowRuleExpected) { +// expectedTranslationBuilder.addFlowRule(flowRule); +// } +// for (FlowRule flowRule : classifierMplsFlowRuleExpected) { +// expectedTranslationBuilder.addFlowRule(flowRule); +// } + ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules); assertEquals(expectedTranslation, actualTranslation); } @@ -127,26 +141,24 @@ public void testIpv4MulticastFwdClass() throws FabricPipelinerException { .makePermanent() .add(); ObjectiveTranslation actualTranslation = translator.translate(filteringObjective); - + List expectedFlowRules = Lists.newArrayList(); // in port vlan flow rule - FlowRule inportFlowRuleExpected = - buildExpectedVlanInPortRule(PORT_1, - VlanId.NONE, - VlanId.NONE, - VLAN_100, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); + expectedFlowRules.add(buildExpectedVlanInPortRule( + PORT_1, + VlanId.NONE, + VlanId.NONE, + VLAN_100, + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN)); // forwarding classifier - FlowRule classifierFlowRuleExpected = buildExpectedFwdClassifierRule(PORT_1, - MacAddress.IPV4_MULTICAST, - MacAddress.IPV4_MULTICAST_MASK, - Ethernet.TYPE_IPV4, - FilteringObjectiveTranslator.FWD_IPV4_ROUTING); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, + MacAddress.IPV4_MULTICAST, + MacAddress.IPV4_MULTICAST_MASK, + Ethernet.TYPE_IPV4, + FilteringObjectiveTranslator.FWD_IPV4_ROUTING)); - ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder() - .addFlowRule(inportFlowRuleExpected) - .addFlowRule(classifierFlowRuleExpected) - .build(); + ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules); assertEquals(expectedTranslation, actualTranslation); } @@ -173,33 +185,31 @@ public void testIpv6MulticastFwdClass() throws FabricPipelinerException { .makePermanent() .add(); ObjectiveTranslation actualTranslation = translator.translate(filteringObjective); - + Collection flowRules = Lists.newArrayList(); // in port vlan flow rule - FlowRule inportFlowRuleExpected = - buildExpectedVlanInPortRule(PORT_1, - VlanId.NONE, - VlanId.NONE, - VLAN_100, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); - - FlowRule classifierFlowRuleExpected = buildExpectedFwdClassifierRule(PORT_1, - MacAddress.IPV6_MULTICAST, - MacAddress.IPV6_MULTICAST_MASK, - Ethernet.TYPE_IPV6, - FilteringObjectiveTranslator.FWD_IPV6_ROUTING); - - ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder() - .addFlowRule(inportFlowRuleExpected) - .addFlowRule(classifierFlowRuleExpected) - .build(); + flowRules.add(buildExpectedVlanInPortRule( + PORT_1, + VlanId.NONE, + VlanId.NONE, + VLAN_100, + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN)); + + flowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, + MacAddress.IPV6_MULTICAST, + MacAddress.IPV6_MULTICAST_MASK, + Ethernet.TYPE_IPV6, + FilteringObjectiveTranslator.FWD_IPV6_ROUTING)); + + ObjectiveTranslation expectedTranslation = buildExpectedTranslation(flowRules); assertEquals(expectedTranslation, actualTranslation); } /** - * Creates only one rule for ingress_port_vlan table if there is no condition - * of destination mac address. - * The packet will be handled by bridging table by default. + * Creates only one rule for ingress_port_vlan table if there is no + * condition of destination mac address. The packet will be handled by + * bridging table by default. */ @Test public void testFwdBridging() throws Exception { @@ -207,12 +217,12 @@ public void testFwdBridging() throws Exception { ObjectiveTranslation actualTranslation = translator.translate(filteringObjective); // in port vlan flow rule - FlowRule flowRuleExpected = - buildExpectedVlanInPortRule(PORT_1, - VlanId.NONE, - VlanId.NONE, - VLAN_100, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); + FlowRule flowRuleExpected = buildExpectedVlanInPortRule( + PORT_1, + VlanId.NONE, + VlanId.NONE, + VLAN_100, + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); // No rules in forwarding classifier, will do default action: set fwd type to bridging @@ -243,8 +253,8 @@ public void testDenyObjective() throws FabricPipelinerException { .matchInPort(PORT_1) .matchPi(buildPiCriterionVlan(null, null)); PiAction piAction = PiAction.builder() - .withId(FabricConstants.FABRIC_INGRESS_FILTERING_DENY) - .build(); + .withId(FabricConstants.FABRIC_INGRESS_FILTERING_DENY) + .build(); FlowRule expectedFlowRule = DefaultFlowRule.builder() .withPriority(PRIORITY) .withSelector(selector.build()) @@ -265,10 +275,9 @@ public void testDenyObjective() throws FabricPipelinerException { } /** - * Test double VLAN pop filtering objective - * Creates one rule for ingress_port_vlan table and 3 rules for - * fwd_classifier table (IPv4, IPv6 and MPLS unicast) when - * the condition is MAC + VLAN + INNER_VLAN. + * Test double VLAN pop filtering objective Creates one rule for + * ingress_port_vlan table and 3 rules for fwd_classifier table (IPv4, IPv6 + * and MPLS unicast) when the condition is MAC + VLAN + INNER_VLAN. */ @Test public void testPopVlan() throws FabricPipelinerException { @@ -285,27 +294,22 @@ public void testPopVlan() throws FabricPipelinerException { .permit() .add(); ObjectiveTranslation actualTranslation = translator.translate(filteringObjective); - + Collection expectedFlowRules = Lists.newArrayList(); // Ingress port vlan rule - FlowRule inportFlowRuleExpected = buildExpectedVlanInPortRule( + expectedFlowRules.add(buildExpectedVlanInPortRule( PORT_1, VLAN_100, VLAN_200, VlanId.NONE, - FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN); + FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN)); // Forwarding classifier rules (ipv6, ipv4, mpls) - FlowRule classifierV4FlowRuleExpected = buildExpectedFwdClassifierRule( - PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV4, - FilteringObjectiveTranslator.FWD_IPV4_ROUTING); - FlowRule classifierV6FlowRuleExpected = buildExpectedFwdClassifierRule( - PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV6, - FilteringObjectiveTranslator.FWD_IPV6_ROUTING); - FlowRule classifierMplsFlowRuleExpected = buildExpectedFwdClassifierRule( - PORT_1, ROUTER_MAC, null, Ethernet.MPLS_UNICAST, - FilteringObjectiveTranslator.FWD_MPLS); - ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder() - .addFlowRule(inportFlowRuleExpected) - .addFlowRule(classifierV4FlowRuleExpected) - .addFlowRule(classifierV6FlowRuleExpected) - .addFlowRule(classifierMplsFlowRuleExpected) - .build(); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV4, + FilteringObjectiveTranslator.FWD_IPV4_ROUTING)); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV6, + FilteringObjectiveTranslator.FWD_IPV6_ROUTING)); + expectedFlowRules.addAll(buildExpectedFwdClassifierRule( + PORT_1, ROUTER_MAC, null, Ethernet.MPLS_UNICAST, + FilteringObjectiveTranslator.FWD_MPLS)); + ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules); assertEquals(expectedTranslation, actualTranslation); } @@ -340,48 +344,6 @@ public void badParamTest() { assertError(ObjectiveError.BADPARAMS, result2); } - /** - * Test the mapping between EtherType and conditions. - */ - @Test - public void testMappingEthType() { - PiCriterion expectedMappingDefault = PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .build(); - PiCriterion expectedMappingIpv6 = PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ONE) - .build(); - PiCriterion expectedMappingIpv4 = PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_MPLS, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV4, ONE) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .build(); - PiCriterion expectedMappingMpls = PiCriterion.builder() - .matchExact(FabricConstants.HDR_IS_MPLS, ONE) - .matchExact(FabricConstants.HDR_IS_IPV4, ZERO) - .matchExact(FabricConstants.HDR_IS_IPV6, ZERO) - .build(); - - - PiCriterion actualMappingIpv6 = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_IPV6); - assertEquals(expectedMappingIpv6, actualMappingIpv6); - - PiCriterion actualMappingIpv4 = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_IPV4); - assertEquals(expectedMappingIpv4, actualMappingIpv4); - - PiCriterion actualMappingMpls = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.MPLS_UNICAST); - assertEquals(expectedMappingMpls, actualMappingMpls); - - PiCriterion actualMapping = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_ARP); - assertEquals(expectedMappingDefault, actualMapping); - - - } - /* Utilities */ private void assertError(ObjectiveError error, ObjectiveTranslation actualTranslation) { @@ -459,21 +421,11 @@ private PiCriterion buildPiCriterionVlan(VlanId vlanId, return piCriterionBuilder.build(); } - private FlowRule buildExpectedFwdClassifierRule(PortNumber inPort, - MacAddress dstMac, - MacAddress dstMacMask, - short ethType, - byte fwdClass) { - TrafficSelector.Builder sbuilder = DefaultTrafficSelector.builder() - .matchInPort(inPort) - .matchPi(FilteringObjectiveTranslator.mapEthTypeFwdClassifier(ethType)); - if (dstMacMask != null) { - sbuilder.matchEthDstMasked(dstMac, dstMacMask); - } else { - sbuilder.matchEthDstMasked(dstMac, MacAddress.EXACT_MASK); - } - TrafficSelector selector = sbuilder.build(); - + private Collection buildExpectedFwdClassifierRule(PortNumber inPort, + MacAddress dstMac, + MacAddress dstMacMask, + short ethType, + byte fwdClass) { PiActionParam classParam = new PiActionParam(FabricConstants.FWD_TYPE, ImmutableByteSequence.copyFrom(fwdClass)); PiAction fwdClassifierAction = PiAction.builder() @@ -484,14 +436,76 @@ private FlowRule buildExpectedFwdClassifierRule(PortNumber inPort, .piTableAction(fwdClassifierAction) .build(); - return DefaultFlowRule.builder() - .withPriority(PRIORITY) - .withSelector(selector) - .withTreatment(treatment) - .fromApp(APP_ID) - .forDevice(DEVICE_ID) - .makePermanent() - .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER) + TrafficSelector.Builder sbuilder = DefaultTrafficSelector.builder() + .matchInPort(inPort); + if (dstMacMask != null) { + sbuilder.matchEthDstMasked(dstMac, dstMacMask); + } else { + sbuilder.matchEthDstMasked(dstMac, MacAddress.EXACT_MASK); + } + // Special case for MPLS UNICAST forwarding, need to build 2 rules for MPLS+IPv4 and MPLS+IPv6 + if (ethType == Ethernet.MPLS_UNICAST) { + return buildExpectedFwdClassifierRulesMpls(fwdClassifierAction, treatment, sbuilder); + } + sbuilder.matchPi(PiCriterion.builder() + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, ethType) + .build()); + TrafficSelector selector = sbuilder.build(); + return List.of(DefaultFlowRule.builder() + .withPriority(PRIORITY) + .withSelector(selector) + .withTreatment(treatment) + .fromApp(APP_ID) + .forDevice(DEVICE_ID) + .makePermanent() + .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER) + .build()); + } + + private Collection buildExpectedFwdClassifierRulesMpls(PiAction fwdClassifierAction, + TrafficTreatment treatment, + TrafficSelector.Builder selectorBuilder) { + + Collection flowRules = Lists.newArrayList(); + TrafficSelector selectorIpv4 = selectorBuilder + .add(PiCriterion.builder() + .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE) + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV4) + .build()) .build(); + TrafficSelector selectorIpv6 = selectorBuilder + .add(PiCriterion.builder() + .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE) + .matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV6) + .build()) + .build(); + flowRules.add(DefaultFlowRule.builder() + .withPriority(PRIORITY + 1) + .withSelector(selectorIpv4) + .withTreatment(treatment) + .fromApp(APP_ID) + .forDevice(DEVICE_ID) + .makePermanent() + .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER) + .build()); + flowRules.add(DefaultFlowRule.builder() + .withPriority(PRIORITY + 1) + .withSelector(selectorIpv6) + .withTreatment(treatment) + .fromApp(APP_ID) + .forDevice(DEVICE_ID) + .makePermanent() + .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER) + .build()); + return flowRules; + } + + private ObjectiveTranslation buildExpectedTranslation(Collection flowRules) + throws FabricPipelinerException { + ObjectiveTranslation.Builder expectedTranslationBuilder = ObjectiveTranslation.builder(); + for (FlowRule flowRule : flowRules) { + expectedTranslationBuilder.addFlowRule(flowRule); + } + return expectedTranslationBuilder.build(); } } diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipelineTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricForwardingPipelineTest.java similarity index 99% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipelineTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricForwardingPipelineTest.java index 1294b5eb8fa..3d2942fbc17 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipelineTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricForwardingPipelineTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.ImmutableList; import org.junit.Before; @@ -46,7 +46,7 @@ import org.onosproject.net.pi.model.PiTableId; import org.onosproject.net.pi.runtime.PiAction; import org.onosproject.net.pi.runtime.PiActionParam; -import org.onosproject.pipelines.fabric.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; import java.util.List; diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricNextPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java similarity index 99% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricNextPipelinerTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java index 28f699c0d70..a7d03c28eb2 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricNextPipelinerTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import com.google.common.collect.ImmutableList; import org.junit.Before; @@ -39,7 +39,7 @@ import org.onosproject.net.pi.runtime.PiActionParam; import org.onosproject.net.pi.runtime.PiActionProfileGroupId; import org.onosproject.net.pi.runtime.PiGroupKey; -import org.onosproject.pipelines.fabric.FabricConstants; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants; import java.util.List; import java.util.stream.Collectors; diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java similarity index 93% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java index 6c3551bfb9f..31db010a51a 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/FabricPipelinerTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricPipelinerTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import org.junit.Test; import org.onlab.packet.IpPrefix; @@ -27,7 +27,7 @@ import org.onosproject.net.PortNumber; import org.onosproject.net.flow.DefaultTrafficSelector; import org.onosproject.net.flow.TrafficSelector; -import org.onosproject.pipelines.fabric.FabricCapabilities; +import org.onosproject.pipelines.fabric.impl.behaviour.FabricCapabilities; import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.expect; @@ -61,6 +61,7 @@ void doSetup() { this.capabilitiesHashed = createNiceMock(FabricCapabilities.class); this.capabilitiesSimple = createNiceMock(FabricCapabilities.class); expect(capabilitiesHashed.hasHashedTable()).andReturn(true).anyTimes(); + expect(capabilitiesHashed.supportDoubleVlanTerm()).andReturn(true).anyTimes(); expect(capabilitiesSimple.hasHashedTable()).andReturn(false).anyTimes(); expect(capabilitiesSimple.supportDoubleVlanTerm()).andReturn(true).anyTimes(); replay(capabilitiesHashed); diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionTypeTest.java similarity index 98% rename from pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeTest.java rename to pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionTypeTest.java index 2121b4f0b2c..8d98d862dea 100644 --- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionTypeTest.java +++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/ForwardingFunctionTypeTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.pipelines.fabric.pipeliner; +package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner; import org.junit.Ignore; import org.junit.Test; diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/PipeconfLoader.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/PipeconfLoader.java deleted file mode 100644 index 5fca57be1ca..00000000000 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/PipeconfLoader.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright 2017-present Open Networking Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.pipelines.fabric; - -import org.onosproject.core.CoreService; -import org.onosproject.inbandtelemetry.api.IntProgrammable; -import org.onosproject.net.behaviour.Pipeliner; -import org.onosproject.net.device.PortStatisticsDiscovery; -import org.onosproject.net.pi.model.DefaultPiPipeconf; -import org.onosproject.net.pi.model.PiPipeconf; -import org.onosproject.net.pi.model.PiPipeconfId; -import org.onosproject.net.pi.model.PiPipelineInterpreter; -import org.onosproject.net.pi.model.PiPipelineModel; -import org.onosproject.net.pi.service.PiPipeconfService; -import org.onosproject.p4runtime.model.P4InfoParser; -import org.onosproject.p4runtime.model.P4InfoParserException; -import org.onosproject.pipelines.fabric.pipeliner.FabricPipeliner; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.wiring.BundleWiring; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Deactivate; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; -import org.slf4j.Logger; - -import java.io.File; -import java.io.FileNotFoundException; -import java.net.URL; -import java.util.Collection; -import java.util.Objects; -import java.util.stream.Collectors; - -import static java.lang.String.format; -import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType; -import static org.osgi.framework.wiring.BundleWiring.LISTRESOURCES_RECURSE; -import static org.slf4j.LoggerFactory.getLogger; - -/** - * Pipeconf loader for fabric.p4 which uses p4c output available in the resource - * path to automatically build pipeconfs for different profiles, target and - * platforms. - */ -@Component(immediate = true) -public class PipeconfLoader { - - // TODO: allow adding properties to pipeconf instead of adding it to driver - - private static Logger log = getLogger(PipeconfLoader.class); - - static final String PIPELINE_APP_NAME = "org.onosproject.pipelines.fabric"; - - private static final String BASE_PIPECONF_ID = "org.onosproject.pipelines"; - private static final String P4C_OUT_PATH = "/p4c-out"; - - // profile/target/platform - private static final String P4C_RES_BASE_PATH = P4C_OUT_PATH + "/%s/%s/%s/"; - - private static final String SEP = File.separator; - private static final String SPECTRUM = "spectrum"; - private static final String TOFINO = "tofino"; - private static final String BMV2 = "bmv2"; - private static final String DEFAULT_PLATFORM = "default"; - private static final String BMV2_JSON = "bmv2.json"; - private static final String P4INFO_TXT = "p4info.txt"; - private static final String CPU_PORT_TXT = "cpu_port.txt"; - private static final String SPECTRUM_BIN = "spectrum.bin"; - private static final String TOFINO_BIN = "pipe/tofino.bin"; - private static final String TOFINO_CTX_JSON = "pipe/context.json"; - private static final String INT_PROFILE_SUFFIX = "-int"; - private static final String FULL_PROFILE_SUFFIX = "-full"; - - private static final Collection PIPECONFS = buildAllPipeconf(); - - @Reference(cardinality = ReferenceCardinality.MANDATORY) - private PiPipeconfService piPipeconfService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY) - private CoreService coreService; - - @Activate - public void activate() { - coreService.registerApplication(PIPELINE_APP_NAME); - // Registers all pipeconf at component activation. - PIPECONFS.forEach(piPipeconfService::register); - } - - @Deactivate - public void deactivate() { - PIPECONFS.stream().map(PiPipeconf::id).forEach(piPipeconfService::unregister); - } - - private static Collection buildAllPipeconf() { - return FrameworkUtil - .getBundle(PipeconfLoader.class) - .adapt(BundleWiring.class) - // List all resource files in /p4c-out - .listResources(P4C_OUT_PATH, "*", LISTRESOURCES_RECURSE) - .stream() - // Filter only directories - .filter(name -> name.endsWith(SEP)) - // Derive profile, target, and platform and build pipeconf. - .map(PipeconfLoader::buildPipeconfFromPath) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - } - - private static PiPipeconf buildPipeconfFromPath(String path) { - String[] pieces = path.split(SEP); - // We expect a path of 4 elements, e.g. - // p4c-out/// - if (pieces.length != 4) { - return null; - } - String profile = pieces[1]; - String target = pieces[2]; - String platform = pieces[3]; - final DefaultPiPipeconf.Builder pipeconfBuilder; - try { - switch (target) { - case BMV2: - pipeconfBuilder = bmv2Pipeconf(profile, platform); - break; - case SPECTRUM: - pipeconfBuilder = spectrumPipeconf(profile, platform); - break; - case TOFINO: - pipeconfBuilder = tofinoPipeconf(profile, platform); - break; - default: - log.warn("Unknown target '{}', skipping pipeconf build...", - target); - return null; - } - } catch (FileNotFoundException e) { - log.warn("Unable to build pipeconf at {} because file is missing: {}", - path, e.getMessage()); - return null; - } - // Add IntProgrammable behaviour for INT-enabled profiles. - if (profile.endsWith(INT_PROFILE_SUFFIX) || profile.endsWith(FULL_PROFILE_SUFFIX)) { - pipeconfBuilder.addBehaviour(IntProgrammable.class, FabricIntProgrammable.class); - } - return pipeconfBuilder.build(); - } - - private static DefaultPiPipeconf.Builder bmv2Pipeconf( - String profile, String platform) - throws FileNotFoundException { - final URL bmv2JsonUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + BMV2_JSON, profile, BMV2, platform)); - final URL p4InfoUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + P4INFO_TXT, profile, BMV2, platform)); - final URL cpuPortUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + CPU_PORT_TXT, profile, BMV2, platform)); - if (bmv2JsonUrl == null) { - throw new FileNotFoundException(BMV2_JSON); - } - if (p4InfoUrl == null) { - throw new FileNotFoundException(P4INFO_TXT); - } - if (cpuPortUrl == null) { - throw new FileNotFoundException(CPU_PORT_TXT); - } - return basePipeconfBuilder(profile, platform, p4InfoUrl, cpuPortUrl) - .addBehaviour(PortStatisticsDiscovery.class, - FabricPortStatisticsDiscovery.class) - .addExtension(ExtensionType.BMV2_JSON, bmv2JsonUrl); - } - - private static DefaultPiPipeconf.Builder spectrumPipeconf(String profile, String platform) - throws FileNotFoundException { - final URL spectrumBinUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + SPECTRUM_BIN, profile, SPECTRUM, platform)); - final URL p4InfoUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + P4INFO_TXT, profile, SPECTRUM, platform)); - final URL cpuPortUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + CPU_PORT_TXT, profile, SPECTRUM, platform)); - if (spectrumBinUrl == null) { - throw new FileNotFoundException(SPECTRUM_BIN); - } - if (p4InfoUrl == null) { - throw new FileNotFoundException(P4INFO_TXT); - } - if (cpuPortUrl == null) { - throw new FileNotFoundException(CPU_PORT_TXT); - } - return basePipeconfBuilder( - profile, platform, p4InfoUrl, cpuPortUrl) - .addExtension(ExtensionType.SPECTRUM_BIN, spectrumBinUrl); - } - - private static DefaultPiPipeconf.Builder tofinoPipeconf( - String profile, String platform) - throws FileNotFoundException { - final URL tofinoBinUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + TOFINO_BIN, profile, TOFINO, platform)); - final URL contextJsonUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + TOFINO_CTX_JSON, profile, TOFINO, platform)); - final URL p4InfoUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + P4INFO_TXT, profile, TOFINO, platform)); - final URL cpuPortUrl = PipeconfLoader.class.getResource(format( - P4C_RES_BASE_PATH + CPU_PORT_TXT, profile, TOFINO, platform)); - if (tofinoBinUrl == null) { - throw new FileNotFoundException(TOFINO_BIN); - } - if (contextJsonUrl == null) { - throw new FileNotFoundException(TOFINO_CTX_JSON); - } - if (p4InfoUrl == null) { - throw new FileNotFoundException(P4INFO_TXT); - } - if (cpuPortUrl == null) { - throw new FileNotFoundException(CPU_PORT_TXT); - } - return basePipeconfBuilder(profile, platform, p4InfoUrl, cpuPortUrl) - .addExtension(ExtensionType.TOFINO_BIN, tofinoBinUrl) - .addExtension(ExtensionType.TOFINO_CONTEXT_JSON, contextJsonUrl); - } - - private static DefaultPiPipeconf.Builder basePipeconfBuilder( - String profile, String platform, URL p4InfoUrl, URL cpuPortUrl) { - final String pipeconfId = platform.equals(DEFAULT_PLATFORM) - // Omit platform if default, e.g. with BMv2 pipeconf - ? format("%s.%s", BASE_PIPECONF_ID, profile) - : format("%s.%s.%s", BASE_PIPECONF_ID, profile, platform); - final PiPipelineModel model = parseP4Info(p4InfoUrl); - return DefaultPiPipeconf.builder() - .withId(new PiPipeconfId(pipeconfId)) - .withPipelineModel(model) - .addBehaviour(PiPipelineInterpreter.class, - FabricInterpreter.class) - .addBehaviour(Pipeliner.class, - FabricPipeliner.class) - .addExtension(ExtensionType.P4_INFO_TEXT, p4InfoUrl) - .addExtension(ExtensionType.CPU_PORT_TXT, cpuPortUrl); - } - - private static PiPipelineModel parseP4Info(URL p4InfoUrl) { - try { - return P4InfoParser.parse(p4InfoUrl); - } catch (P4InfoParserException e) { - throw new IllegalStateException(e); - } - } -} diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java index 41265d1ff3b..b248decdda1 100644 --- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java +++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIs.java @@ -102,7 +102,11 @@ public void readFrom(ChannelBuffer channelBuffer) { this.setMetric(channelBuffer.readUnsignedMedium()); int nTlvPresent = channelBuffer.readByte(); if (nTlvPresent > 0) { - while (channelBuffer.readableBytes() > IsisUtil.TWO_BYTES) { + /* ntlvPresent=0 infers that all Sub TLVs, + for a particular neighbor, + have been parsed and the loop has to be terminated + */ + while (channelBuffer.readableBytes() > IsisUtil.TWO_BYTES && nTlvPresent > 0) { TlvHeader tlvHeader = new TlvHeader(); tlvHeader.setTlvType(channelBuffer.readByte()); tlvHeader.setTlvLength(channelBuffer.readByte()); @@ -115,10 +119,18 @@ public void readFrom(ChannelBuffer channelBuffer) { if (subTlv != null) { this.addSubTlv(subTlv); } + /*As one Sub TLV is parsed, its length is + subtracted from total length to be read + */ + nTlvPresent = nTlvPresent - (tlvLength + IsisUtil.TWO_BYTES); } } else { if (channelBuffer.readableBytes() >= tlvLength) { channelBuffer.readBytes(tlvLength); + /*As one Sub TLV is parsed, its length is + subtracted from total length to be read + */ + nTlvPresent = nTlvPresent - (tlvLength + IsisUtil.TWO_BYTES); } } } @@ -151,4 +163,4 @@ public String toString() { .add("teSubTlv", teSubTlv) .toString(); } -} \ No newline at end of file +} diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIsTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIsTest.java new file mode 100644 index 00000000000..72c93c0e0b6 --- /dev/null +++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/tlv/NeighborForExtendedIsTest.java @@ -0,0 +1,112 @@ +/* + * Copyright 2016-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.isis.io.isispacket.tlv; + +import org.easymock.EasyMock; +import org.jboss.netty.buffer.ChannelBuffer; +import org.jboss.netty.buffer.ChannelBuffers; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +/** + * Unit test class for NeighborForExtendedIs. + * + * Here we have passed a byte array containing data for 2 neighbors along with + * their Sub TLVs. The test case checks whether the code is able to parse the Sub TLVs + * for each neighbor or not. Along with this it also checks for neighbor id and metric + * assigned to each neighbor. + */ +public class NeighborForExtendedIsTest { + private final byte[] tlv = { + (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x02, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x0a, (byte) 0x3f, (byte) 0x06, (byte) 0x04, (byte) 0x14, (byte) 0x14, (byte) 0x14, + (byte) 0xbe, (byte) 0x08, (byte) 0x04, (byte) 0x14, (byte) 0x14, (byte) 0x14, (byte) 0xd1, (byte) 0x09, + (byte) 0x04, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x0a, (byte) 0x04, (byte) 0x49, + (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x0b, (byte) 0x20, (byte) 0x49, (byte) 0x98, (byte) 0x96, + (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, + (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, + (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, + (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x12, (byte) 0x03, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x01, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x0a, (byte) 0x3f, (byte) 0x06, (byte) 0x04, (byte) 0x1e, + (byte) 0x1e, (byte) 0x1e, (byte) 0xce, (byte) 0x08, (byte) 0x04, (byte) 0x1e, (byte) 0x1e, (byte) 0x1e, + (byte) 0xa9, (byte) 0x09, (byte) 0x04, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x0a, + (byte) 0x04, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x0b, (byte) 0x20, (byte) 0x49, + (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, + (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, + (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, + (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x49, (byte) 0x98, (byte) 0x96, (byte) 0x80, (byte) 0x12, + (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00 + }; + + //tlv2 bytes are for testing the else part of readFrom() method + private final byte[] tlv2 = { + (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x00, (byte) 0x10, (byte) 0x02, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x0a, (byte) 0x06, (byte) 0x2D, (byte) 0x04, (byte) 0x14, (byte) 0x14, (byte) 0x14, + (byte) 0xbe, (byte) 0x2D, (byte) 0xd1, (byte) 0x14, (byte) 0x14, (byte) 0x14, (byte) 0xd1, (byte) 0x09 + }; + private final String neighborId1 = "1000.1000.1002.00"; + private final String neighborId2 = "1000.1000.1001.00"; + private final int metric = 10; + private final int subTlvLength = 6; + private NeighborForExtendedIs neighborForExtendedIs; + private ChannelBuffer channelBuffer; + + @Before + public void setUp() throws Exception { + neighborForExtendedIs = new NeighborForExtendedIs(); + channelBuffer = EasyMock.createMock(ChannelBuffer.class); + } + + @After + public void tearDown() throws Exception { + neighborForExtendedIs = null; + channelBuffer = null; + } + + /** + * Tests readFrom() method. + */ + @Test + public void testReadFrom() throws Exception { + channelBuffer = ChannelBuffers.copiedBuffer(tlv); + neighborForExtendedIs.readFrom(channelBuffer); + assertThat(neighborForExtendedIs.teSubTlv().size(), is(subTlvLength)); + assertThat(neighborForExtendedIs.neighborId(), is(neighborId1)); + assertThat(neighborForExtendedIs.metric(), is(metric)); + + neighborForExtendedIs = new NeighborForExtendedIs(); + neighborForExtendedIs.readFrom(channelBuffer); + assertThat(neighborForExtendedIs.teSubTlv().size(), is(subTlvLength)); + assertThat(neighborForExtendedIs.neighborId(), is(neighborId2)); + assertThat(neighborForExtendedIs.metric(), is(metric)); + } + + /** + * Tests else condition of readFrom() method. + */ + @Test + public void testElsePartOfReadFrom() throws Exception { + channelBuffer = ChannelBuffers.copiedBuffer(tlv2); + neighborForExtendedIs = new NeighborForExtendedIs(); + neighborForExtendedIs.readFrom(channelBuffer); + assertThat(neighborForExtendedIs.neighborId(), is(neighborId1)); + assertThat(neighborForExtendedIs.metric(), is(metric)); + } +} diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java index e89449e622f..2a574ab34fd 100644 --- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java +++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java @@ -653,19 +653,20 @@ private String sendRequest(String request, boolean isHello, int timeout) throws // FIXME potentially re-writing chunked encoded String? request = formatXmlHeader(request); request = formatRequestMessageId(request, messageId); + int useTimeout = timeout > 0 ? timeout : replyTimeout; log.debug("Sending request to NETCONF with timeout {} for {}", - replyTimeout, deviceInfo.name()); + useTimeout, deviceInfo.name()); CompletableFuture futureReply = request(request, messageId); String rp; try { - rp = futureReply.get(replyTimeout, TimeUnit.SECONDS); + rp = futureReply.get(useTimeout, TimeUnit.SECONDS); replies.remove(messageId); // Why here??? } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new NetconfException("Interrupted waiting for reply for request" + request, e); } catch (TimeoutException e) { throw new NetconfException("Timed out waiting for reply for request " + - request + " after " + replyTimeout + " sec.", e); + request + " after " + useTimeout + " sec.", e); } catch (ExecutionException e) { log.warn("Closing session {} for {} due to unexpected Error", sessionID, deviceInfo, e); stopClient(); diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java index 01b4f1ac3ad..4ee0372c455 100644 --- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java +++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFChannelHandler.java @@ -1633,7 +1633,7 @@ private void dispatchMessage(OFMessage m) { processMessages(tc); } } catch (InterruptedException e) { - log.error("executor thread InterruptedException: {}", e); + log.warn("Dispatcher interrupted"); Thread.currentThread().interrupt(); // interrupted. gracefully shutting down return; diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java index 874bf38cde7..a6b9bb0b440 100644 --- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java +++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java @@ -42,6 +42,7 @@ import org.onlab.packet.ndp.NeighborSolicitation; import org.onlab.packet.ndp.RouterAdvertisement; import org.onlab.packet.ndp.RouterSolicitation; +import org.onlab.util.PredictableExecutor; import org.onlab.util.Tools; import org.onosproject.cfg.ComponentConfigService; import org.onosproject.core.ApplicationId; @@ -185,7 +186,9 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid ExecutorService deviceEventHandler; private ExecutorService probeEventHandler; - private ExecutorService packetHandler; + // Packet workers - 0 will leverage available processors + private static final int DEFAULT_THREADS = 0; + private PredictableExecutor packetWorkers; @Reference(cardinality = ReferenceCardinality.MANDATORY) protected NetworkConfigService netcfgService; @@ -215,8 +218,8 @@ public void activate(ComponentContext context) { "device-event-handler", log)); probeEventHandler = newSingleThreadScheduledExecutor(groupedThreads("onos/host-loc-provider", "probe-event-handler", log)); - packetHandler = newSingleThreadScheduledExecutor(groupedThreads("onos/host-loc-provider", - "packet-handler", log)); + packetWorkers = new PredictableExecutor(DEFAULT_THREADS, groupedThreads("onos/host-loc-provider", + "packet-worker-%d", log)); providerService = providerRegistry.register(this); packetService.addProcessor(processor, PacketProcessor.advisor(1)); deviceService.addListener(deviceListener); @@ -238,7 +241,7 @@ public void deactivate() { deviceService.removeListener(deviceListener); deviceEventHandler.shutdown(); probeEventHandler.shutdown(); - packetHandler.shutdown(); + packetWorkers.shutdown(); providerService = null; registry.unregisterConfigFactory(hostLearningConfig); netcfgService.removeListener(cfgListener); @@ -525,18 +528,22 @@ private void updateHostIp(HostId hid, IpAddress ip) { @Override public void process(PacketContext context) { - packetHandler.execute(() -> processPacketInternal(context)); - } - - private void processPacketInternal(PacketContext context) { + // Verify valid context if (context == null) { return; } - + // Verify valid Ethernet packet Ethernet eth = context.inPacket().parsed(); if (eth == null) { return; } + // Dispatch to a worker thread + HostId hostId = HostId.hostId(eth.getSourceMAC(), VlanId.vlanId(eth.getVlanID())); + packetWorkers.execute(() -> processPacketInternal(context), hostId.hashCode()); + } + + private void processPacketInternal(PacketContext context) { + Ethernet eth = context.inPacket().parsed(); MacAddress srcMac = eth.getSourceMAC(); if (srcMac.isBroadcast() || srcMac.isMulticast()) { diff --git a/tools/build/bazel/bazel_version.bzl b/tools/build/bazel/bazel_version.bzl index 9a0046e0cee..5ee548988ce 100644 --- a/tools/build/bazel/bazel_version.bzl +++ b/tools/build/bazel/bazel_version.bzl @@ -22,6 +22,6 @@ def check_bazel_version(): return versions = native.bazel_version.split(".") - if not int(versions[1]) >= 27: - fail("\nBazel version %s is not supported; please use 0.27.* official release!\n\n" % + if not int(versions[0]) >= 1: + fail("\nBazel version %s is not supported; please use 1.0.* official release!\n\n" % native.bazel_version) diff --git a/tools/build/bazel/modules.bzl b/tools/build/bazel/modules.bzl index b74f85705a7..3a37146b67a 100644 --- a/tools/build/bazel/modules.bzl +++ b/tools/build/bazel/modules.bzl @@ -109,6 +109,7 @@ ONOS_DRIVERS = [ "//drivers/polatis/openflow:onos-drivers-polatis-openflow-oar", "//drivers/odtn-driver:onos-drivers-odtn-driver-oar", "//drivers/stratum:onos-drivers-stratum-oar", + "//drivers/zte:onos-drivers-zte-oar", ] ONOS_PROVIDERS = [ diff --git a/tools/build/bazel/protobuf_workspace.bzl b/tools/build/bazel/protobuf_workspace.bzl index 98e31be5af8..e7dc0637f01 100644 --- a/tools/build/bazel/protobuf_workspace.bzl +++ b/tools/build/bazel/protobuf_workspace.bzl @@ -1,7 +1,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -PROTOBUF_VERSION = "3.9.0" -SHA = "8eb5ca331ab8ca0da2baea7fc0607d86c46c80845deca57109a5d637ccb93bb4" +PROTOBUF_VERSION = "3.10.0" +SHA = "33cba8b89be6c81b1461f1c438424f7a1aa4e31998dbe9ed6f8319583daac8c7" def generate_protobuf(): http_archive( diff --git a/tools/build/conf/src/main/resources/onos/suppressions.xml b/tools/build/conf/src/main/resources/onos/suppressions.xml index d1c613b64aa..c4e43e2d4a5 100644 --- a/tools/build/conf/src/main/resources/onos/suppressions.xml +++ b/tools/build/conf/src/main/resources/onos/suppressions.xml @@ -32,6 +32,7 @@ + @@ -60,8 +61,4 @@ - - - - diff --git a/tools/build/libgen/pom.xml b/tools/build/libgen/pom.xml index 3cfa16269dc..1c31598778d 100644 --- a/tools/build/libgen/pom.xml +++ b/tools/build/libgen/pom.xml @@ -56,7 +56,7 @@ com.fasterxml.jackson.core jackson-databind - 2.9.5 + 2.9.10.1 org.eclipse.aether diff --git a/tools/build/publish-target-list b/tools/build/publish-target-list index 772872ab34e..7d9a87bad3e 100644 --- a/tools/build/publish-target-list +++ b/tools/build/publish-target-list @@ -17,6 +17,7 @@ //drivers/utilities:onos-drivers-utilities //drivers/default:onos-drivers-default //drivers/netconf:onos-drivers-netconf + //pipelines/fabric/api:onos-pipelines-fabric-api //protocols/bgp/api:onos-protocols-bgp-api //protocols/bgp/bgpio:onos-protocols-bgp-bgpio //protocols/grpc/api:onos-protocols-grpc-api diff --git a/tools/dev/bin/onos-gen-p4-constants b/tools/dev/bin/onos-gen-p4-constants index 5f1cb282726..30d706ab913 100755 --- a/tools/dev/bin/onos-gen-p4-constants +++ b/tools/dev/bin/onos-gen-p4-constants @@ -32,7 +32,7 @@ import org.onosproject.net.pi.model.PiCounterId; import org.onosproject.net.pi.model.PiMatchFieldId; import org.onosproject.net.pi.model.PiTableId;''' -PKG_FMT = 'package org.onosproject.pipelines.%s;' +PKG_FMT = 'package org.onosproject.pipelines.%s.impl.behaviour;' CLASS_OPEN = 'public final class %s {' CLASS_CLOSE = '}' diff --git a/tools/gui/package-lock.json b/tools/gui/package-lock.json new file mode 100755 index 00000000000..61a72e4e5eb --- /dev/null +++ b/tools/gui/package-lock.json @@ -0,0 +1,9933 @@ +{ + "name": "onos-gui-build", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@bazel/hide-bazel-files": { + "version": "0.39.1", + "resolved": "https://registry.npmjs.org/@bazel/hide-bazel-files/-/hide-bazel-files-0.39.1.tgz", + "integrity": "sha512-nmILMfF8wD3hR3+r0MUCqPahgBYszLKFBcrbnmYthG6Oujgy1NpYMjeWj7Hjt3pJMkT1MgQP/VipLu2gQyMc0Q==", + "dev": true + }, + "@gulp-sourcemaps/identity-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", + "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", + "dev": true, + "requires": { + "acorn": "^5.0.3", + "css": "^2.2.1", + "normalize-path": "^2.1.1", + "source-map": "^0.6.0", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } + } + }, + "babel": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz", + "integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=", + "dev": true, + "requires": { + "readable-stream": "~2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "dev": true + }, + "body-parser": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz", + "integrity": "sha1-1JfgS8E7P5qL2McLsM3Bby4CiJg=", + "dev": true, + "requires": { + "bytes": "1.0.0", + "depd": "0.4.5", + "iconv-lite": "0.4.4", + "media-typer": "0.3.0", + "on-finished": "2.1.0", + "qs": "2.2.4", + "raw-body": "1.3.0", + "type-is": "~1.5.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "depd": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/depd/-/depd-0.4.5.tgz", + "integrity": "sha1-GmZLUziLSmVz6K5ntfdnxpPKl/E=", + "dev": true + }, + "ee-first": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz", + "integrity": "sha1-jJshKJjYzZ8alDZlDOe+ICyen/A=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz", + "integrity": "sha1-6V8uQdsHNfwhZS94J6XuMuY8g6g=", + "dev": true + }, + "on-finished": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz", + "integrity": "sha1-DFOfCSkej/rd4MiiWFD7LO3HAi0=", + "dev": true, + "requires": { + "ee-first": "1.0.5" + } + }, + "qs": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.2.4.tgz", + "integrity": "sha1-Lp+800tUDjQhySTs0B6QqpdTGcg=", + "dev": true + }, + "raw-body": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz", + "integrity": "sha1-l4IwoValVI9C7vFN4i0PT2EAg9E=", + "dev": true, + "requires": { + "bytes": "1", + "iconv-lite": "0.4.4" + } + } + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "bower": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz", + "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-sync": { + "version": "2.26.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.7.tgz", + "integrity": "sha512-lY3emme0OyvA2ujEMpRmyRy9LY6gHLuTr2/ABxhIm3lADOiRXzP4dgekvnDrQqZ/Ec2Fz19lEjm6kglSG5766w==", + "dev": true, + "requires": { + "browser-sync-client": "^2.26.6", + "browser-sync-ui": "^2.26.4", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^2.0.4", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "^3", + "localtunnel": "1.9.2", + "micromatch": "^3.1.10", + "opn": "5.3.0", + "portscanner": "2.1.1", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "2.1.1", + "ua-parser-js": "0.7.17", + "yargs": "6.4.0" + } + }, + "browser-sync-client": { + "version": "2.26.6", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.6.tgz", + "integrity": "sha512-mGrkZdNzttKdf/16I+y+2dTQxoMCIpKbVIMJ/uP8ZpnKu9f9qa/2CYVtLtbjZG8nsM14EwiCrjuFTGBEnT3Gjw==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6" + } + }, + "browser-sync-ui": { + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.4.tgz", + "integrity": "sha512-u20P3EsZoM8Pt+puoi3BU3KlbQAH1lAcV+/O4saF26qokrBqIDotmGonfWwoRbUmdxZkM9MBmA0K39ZTG1h4sA==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^2.0.4", + "stream-throttle": "^0.1.3" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "^4.5.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "connect-livereload": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.4.1.tgz", + "integrity": "sha1-D4oagWvJuv+uRjfM6pF0Yv41kXo=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", + "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decomment": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.2.tgz", + "integrity": "sha512-sblyUmOJZxiL7oJ2ogJS6jtl/67+CTOW87SrYE/96u3PhDYikYoLCdLzcnceToiQejOLlqNnLCkaxx/+nE/ehg==", + "dev": true, + "requires": { + "esprima": "4.0.1" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true, + "requires": { + "tfunk": "^3.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "~1.3.0" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-client": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", + "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.51", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz", + "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-symbol": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz", + "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.51" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "eslint-config-google": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.9.1.tgz", + "integrity": "sha512-5A83D+lH0PA81QMESKbLJd/a3ic8tPZtwUmqNrxMRo54nfFaUvtt89q/+icQ+fd66c2xQHn0KyFkzJDoAUfpZA==", + "dev": true + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" + }, + "dependencies": { + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "^0.1.0" + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" + } + }, + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "faye-websocket": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz", + "integrity": "sha1-zEB0x/Sk39A69U3WXDVLE1EyzhE=", + "dev": true, + "requires": { + "websocket-driver": ">=0.3.6" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "fork-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", + "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "~0.1.0" + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "^0.5.1" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "^0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + } + } + }, + "gulp-bower": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/gulp-bower/-/gulp-bower-0.0.13.tgz", + "integrity": "sha1-fKTjxaWZ0I+torHAVMzozeTnQjU=", + "dev": true, + "requires": { + "bower": "^1.3.12", + "gulp-util": "^3.0.1", + "inquirer": "^0.11.2", + "through2": "0.6.2", + "walk": "2.3.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "inquirer": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", + "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=", + "dev": true, + "requires": { + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^1.0.1", + "figures": "^1.3.5", + "lodash": "^3.3.1", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "^1.3.0" + } + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.2.tgz", + "integrity": "sha1-UyZYJMVV5/zcQRHc3FLH3mRjbHU=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.28 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "gulp-eslint": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-4.0.2.tgz", + "integrity": "sha512-fcFUQzFsN6dJ6KZlG+qPOEkqfcevRUXgztkYCvhNvJeSvOicC8ucutN4qR/ID8LmNZx9YPIkBzazTNnVvbh8wg==", + "dev": true, + "requires": { + "eslint": "^4.0.0", + "fancy-log": "^1.3.2", + "plugin-error": "^1.0.0" + } + }, + "gulp-if": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", + "integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=", + "dev": true, + "requires": { + "gulp-match": "^1.0.3", + "ternary-stream": "^2.0.1", + "through2": "^2.0.1" + } + }, + "gulp-match": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.1.0.tgz", + "integrity": "sha512-DlyVxa1Gj24DitY2OjEsS+X6tDpretuxD6wTfhXE/Rw2hweqc1f6D/XtsJmoiCwLWfXgR87W9ozEityPCVzGtQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.3" + } + }, + "gulp-sourcemaps": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz", + "integrity": "sha512-SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "1.X", + "@gulp-sourcemaps/map-sources": "1.X", + "acorn": "5.X", + "convert-source-map": "1.X", + "css": "2.X", + "debug-fabulous": "1.X", + "detect-newline": "2.X", + "graceful-fs": "4.X", + "source-map": "~0.6.0", + "strip-bom-string": "1.X", + "through2": "2.X" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-strip-comments": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/gulp-strip-comments/-/gulp-strip-comments-2.5.2.tgz", + "integrity": "sha512-lb1bW7rsPWDD8f4ZPSguDvmCdjKmjr5HR4yZb9ros3sLl5AfW7oUj8KzY9/VRisT7dG8dL7hVHzNpQEVxfwZGQ==", + "dev": true, + "requires": { + "decomment": "^0.9.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.3" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + } + } + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "gulp-webserver": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/gulp-webserver/-/gulp-webserver-0.9.1.tgz", + "integrity": "sha1-4JmSFl2XxYZWFtZCoWAVKbA2cGQ=", + "dev": true, + "requires": { + "connect": "^3.0.1", + "connect-livereload": "^0.4.0", + "gulp-util": "^2.2.19", + "isarray": "0.0.1", + "node.extend": "^1.0.10", + "open": "^0.0.5", + "proxy-middleware": "^0.5.0", + "serve-index": "^1.1.4", + "serve-static": "^1.3.0", + "through2": "^0.5.1", + "tiny-lr": "0.1.4", + "watch": "^0.11.0" + }, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true, + "requires": { + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" + } + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "gulp-util": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", + "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", + "dev": true, + "requires": { + "chalk": "^0.5.0", + "dateformat": "^1.0.7-1.2.3", + "lodash._reinterpolate": "^2.4.1", + "lodash.template": "^2.4.1", + "minimist": "^0.2.0", + "multipipe": "^0.1.0", + "through2": "^0.5.0", + "vinyl": "^0.2.1" + } + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true, + "requires": { + "ansi-regex": "^0.2.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", + "integrity": "sha1-TxInqlqHEfxjL1sHofRgequLMiI=", + "dev": true + }, + "lodash.escape": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", + "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", + "dev": true, + "requires": { + "lodash._escapehtmlchar": "~2.4.1", + "lodash._reunescapedhtml": "~2.4.1", + "lodash.keys": "~2.4.1" + } + }, + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "lodash.template": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", + "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", + "dev": true, + "requires": { + "lodash._escapestringchar": "~2.4.1", + "lodash._reinterpolate": "~2.4.1", + "lodash.defaults": "~2.4.1", + "lodash.escape": "~2.4.1", + "lodash.keys": "~2.4.1", + "lodash.templatesettings": "~2.4.1", + "lodash.values": "~2.4.1" + } + }, + "lodash.templatesettings": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", + "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", + "dev": true, + "requires": { + "lodash._reinterpolate": "~2.4.1", + "lodash.escape": "~2.4.1" + } + }, + "minimist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", + "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true, + "requires": { + "ansi-regex": "^0.2.1" + } + }, + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true + }, + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true, + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~3.0.0" + } + }, + "vinyl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", + "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", + "dev": true, + "requires": { + "clone-stats": "~0.0.1" + } + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "handlebars": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.5.tgz", + "integrity": "sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "dev": true, + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", + "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "dev": true, + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "karma": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "chokidar": "^1.4.1", + "colors": "^1.1.0", + "combine-lists": "^1.0.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "expand-braces": "^0.1.1", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^3.8.0", + "log4js": "^0.6.31", + "mime": "^1.3.4", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "1.7.3", + "source-map": "^0.5.3", + "tmp": "0.0.31", + "useragent": "^2.1.12" + }, + "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "~2.1.11", + "negotiator": "0.6.1" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "engine.io": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + } + } + }, + "engine.io-client": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + } + } + }, + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "socket.io": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "dev": true, + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "dev": true, + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + } + } + }, + "socket.io-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "dev": true, + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "ws": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "dev": true, + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "dev": true + } + } + }, + "karma-babel-preprocessor": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/karma-babel-preprocessor/-/karma-babel-preprocessor-6.0.1.tgz", + "integrity": "sha1-euHT5klQ2+EfQht0BAqwj7WmbCE=", + "dev": true, + "requires": { + "babel-core": "^6.0.0" + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.2.tgz", + "integrity": "sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw==", + "dev": true, + "requires": { + "dateformat": "^1.0.6", + "istanbul": "^0.4.0", + "lodash": "^4.17.0", + "minimatch": "^3.0.0", + "source-map": "^0.5.1" + }, + "dependencies": { + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + } + } + }, + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "dev": true + }, + "karma-junit-reporter": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz", + "integrity": "sha1-T5xAzt+xo5X4rvh2q/lhiZF8Y5Y=", + "dev": true, + "requires": { + "path-is-absolute": "^1.0.0", + "xmlbuilder": "8.2.2" + } + }, + "karma-mocha-reporter": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", + "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "karma-ng-html2js-preprocessor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-ng-html2js-preprocessor/-/karma-ng-html2js-preprocessor-1.0.0.tgz", + "integrity": "sha1-ENjIz6pBNvHIp22RpMvO7evsSjE=", + "dev": true + }, + "karma-phantomjs-launcher": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", + "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", + "dev": true, + "requires": { + "lodash": "^4.0.1", + "phantomjs-prebuilt": "^2.1.7" + }, + "dependencies": { + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + } + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + } + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "limiter": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz", + "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "localtunnel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.2.tgz", + "integrity": "sha512-NEKF7bDJE9U3xzJu3kbayF0WTvng6Pww7tzqNb/XtEARYwqw7CKEX7BvOMg98FtE9es2CRizl61gkV3hS8dqYg==", + "dev": true, + "requires": { + "axios": "0.19.0", + "debug": "4.1.1", + "openurl": "1.1.1", + "yargs": "6.6.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + } + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._escapehtmlchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", + "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", + "dev": true, + "requires": { + "lodash._htmlescapes": "~2.4.1" + } + }, + "lodash._escapestringchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", + "integrity": "sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._htmlescapes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", + "integrity": "sha1-MtFL8IRLbeb4tioFG09nwii2JMs=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", + "dev": true + }, + "lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._reunescapedhtml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", + "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", + "dev": true, + "requires": { + "lodash._htmlescapes": "~2.4.1", + "lodash.keys": "~2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + } + } + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "dev": true, + "requires": { + "lodash._objecttypes": "~2.4.1" + } + }, + "lodash.defaults": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", + "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", + "dev": true, + "requires": { + "lodash._objecttypes": "~2.4.1", + "lodash.keys": "~2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + } + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "dev": true, + "requires": { + "lodash._objecttypes": "~2.4.1" + } + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "lodash.values": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", + "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", + "dev": true, + "requires": { + "lodash.keys": "~2.4.1" + }, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + } + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log4js": { + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "dev": true, + "requires": { + "readable-stream": "~1.0.2", + "semver": "~4.3.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "~0.10.2" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memoizee": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", + "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.45", + "es6-weak-map": "^2.0.2", + "event-emitter": "^0.3.5", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "^0.1.5" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node.extend": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.8.tgz", + "integrity": "sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA==", + "dev": true, + "requires": { + "has": "^1.0.3", + "is": "^3.2.1" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", + "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=", + "dev": true + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "phantomjs": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-2.1.7.tgz", + "integrity": "sha1-xpEPZ5NcNyhbYRQyn8LyfV8+MTQ=", + "dev": true, + "requires": { + "extract-zip": "~1.5.0", + "fs-extra": "~0.26.4", + "hasha": "^2.2.0", + "kew": "~0.7.0", + "progress": "~1.1.8", + "request": "~2.67.0", + "request-progress": "~2.0.1", + "which": "~1.2.2" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "concat-stream": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + } + }, + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + }, + "extract-zip": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", + "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "dev": true, + "requires": { + "concat-stream": "1.5.0", + "debug": "0.7.4", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + } + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "dev": true, + "requires": { + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + } + }, + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "qs": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.1.tgz", + "integrity": "sha1-gB/uAw4LlFDWOFrcSKTMVbRK7fw=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "request": { + "version": "2.67.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "bl": "~1.0.0", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc3", + "har-validator": "~2.0.2", + "hawk": "~3.1.0", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.0", + "qs": "~5.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.2.0", + "tunnel-agent": "~0.4.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "tough-cookie": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proxy-middleware": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.5.1.tgz", + "integrity": "sha1-2iTV1Ywd3xPa0jfH7KUDhJ6uqQM=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "mute-stream": "0.0.5" + }, + "dependencies": { + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", + "dev": true + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ternary-stream": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.1.1.tgz", + "integrity": "sha512-j6ei9hxSoyGlqTmoMjOm+QNvUKDOIY6bNl4Uh1lhBvl6yjPW2iLqxDUYyfDPZknQ4KdRziFl+ec99iT4l7g0cw==", + "dev": true, + "requires": { + "duplexify": "^3.5.0", + "fork-stream": "^0.0.4", + "merge-stream": "^1.0.0", + "through2": "^2.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "object-path": "^0.9.0" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "tiny-lr": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.1.4.tgz", + "integrity": "sha1-bkHX5n39CHjl4LN+N6BtZ+MJ/00=", + "dev": true, + "requires": { + "body-parser": "~1.8.0", + "debug": "~0.8.1", + "faye-websocket": "~0.7.2", + "parseurl": "~1.3.0", + "qs": "~2.2.3" + }, + "dependencies": { + "debug": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA=", + "dev": true + }, + "qs": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.2.5.tgz", + "integrity": "sha1-EIirr53MCuWuRbcJ5sa1iIsjkjw=", + "dev": true + } + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz", + "integrity": "sha1-uTaKWTzG730GReeLL0xky+zQXpA=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.0.9" + }, + "dependencies": { + "mime-db": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", + "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=", + "dev": true + }, + "mime-types": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", + "dev": true, + "requires": { + "mime-db": "~1.12.0" + } + } + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "uglify-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.4.tgz", + "integrity": "sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA==", + "dev": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", + "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", + "dev": true, + "requires": { + "natives": "^1.1.3" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.1" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "walk": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.3.tgz", + "integrity": "sha1-tMDoxCRkwW274dcWZnZerAeBnl8=", + "dev": true, + "requires": { + "foreachasync": "3.x" + } + }, + "watch": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.11.0.tgz", + "integrity": "sha1-6NugkbdFZ5mjr1eXi5hud+EyBAY=", + "dev": true + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", + "dev": true + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.1.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +} diff --git a/tools/gui/package.json b/tools/gui/package.json index 1e9e030a349..fa0d987f8eb 100644 --- a/tools/gui/package.json +++ b/tools/gui/package.json @@ -38,7 +38,8 @@ "karma-mocha-reporter": "^2.2.3", "karma-ng-html2js-preprocessor": "^1.0.0", "karma-phantomjs-launcher": "^1.0.4", - "phantomjs": "^2.1.7" + "phantomjs": "^2.1.7", + "@bazel/hide-bazel-files": "latest" }, "babel": { "presets": [ diff --git a/tools/package/etc/org.apache.karaf.command.acl.onos.cfg b/tools/package/etc/org.apache.karaf.command.acl.onos.cfg index a35b13af762..837f3337fe5 100644 --- a/tools/package/etc/org.apache.karaf.command.acl.onos.cfg +++ b/tools/package/etc/org.apache.karaf.command.acl.onos.cfg @@ -106,6 +106,7 @@ flow-analysis = viewer flows = viewer fpm-connections = admin fpm-push-routes = admin +fpm-set-accept-routes = admin gateway-add = admin gateway-delete = admin gateways = viewer diff --git a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java index 5fd07bffdfa..fb249a9985b 100644 --- a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java +++ b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java @@ -514,13 +514,13 @@ public boolean equals(final Object obj) { */ @Override public String toString() { - final StringBuilder sb = new StringBuilder("\n"); - final IPacket pkt = this.getPayload(); if (pkt instanceof ARP) { sb.append("arp"); + } else if (pkt instanceof MPLS) { + sb.append("mpls"); } else if (pkt instanceof LLDP) { sb.append("lldp"); } else if (pkt instanceof ICMP) { @@ -530,11 +530,7 @@ public String toString() { } else if (pkt instanceof DHCP) { sb.append("dhcp"); } else { - /* - * When we don't know the protocol, we print using - * the well known hex format instead of a decimal - * value. - */ + // Just print the ethertype sb.append(String.format(HEX_PROTO, Integer.toHexString(this.getEtherType() & 0xffff))); } @@ -567,6 +563,12 @@ public String toString() { sb.append("\nnw_dst: "); sb.append(IPv4.fromIPv4Address(IPv4.toIPv4Address(p .getTargetProtocolAddress()))); + } else if (pkt instanceof MPLS) { + final MPLS p = (MPLS) pkt; + sb.append("\nmpls: "); + sb.append(this.etherType == MPLS_UNICAST ? "unicast" : "multicast"); + sb.append("\nmpls_label: "); + sb.append(p.label); } else if (pkt instanceof LLDP) { sb.append("lldp packet"); } else if (pkt instanceof ICMP) { @@ -593,7 +595,6 @@ public String toString() { sb.append(((TCP) payload).getSourcePort()); sb.append("\ntp_dst: "); sb.append(((TCP) payload).getDestinationPort()); - } else if (payload instanceof UDP) { sb.append("\ntp_src: "); sb.append(((UDP) payload).getSourcePort()); @@ -705,7 +706,6 @@ public String toString() { } else { sb.append("\nunknown packet"); } - return sb.toString(); } diff --git a/utils/misc/src/main/java/org/onlab/packet/MPLS.java b/utils/misc/src/main/java/org/onlab/packet/MPLS.java index 948075b8e36..07ead0c764b 100644 --- a/utils/misc/src/main/java/org/onlab/packet/MPLS.java +++ b/utils/misc/src/main/java/org/onlab/packet/MPLS.java @@ -30,13 +30,15 @@ public class MPLS extends BasePacket { public static final int HEADER_LENGTH = 4; public static final byte PROTOCOL_IPV4 = 0x1; + public static final byte PROTOCOL_IPV6 = 0x2; public static final byte PROTOCOL_MPLS = 0x6; // mutable for Testing static Map> protocolDeserializerMap = ImmutableMap.>builder() - .put(PROTOCOL_IPV4, IPv4.deserializer()) - .put(PROTOCOL_MPLS, MPLS.deserializer()) - .build(); + .put(PROTOCOL_IPV6, IPv6.deserializer()) + .put(PROTOCOL_IPV4, IPv4.deserializer()) + .put(PROTOCOL_MPLS, MPLS.deserializer()) + .build(); protected int label; //20bits protected byte bos; //1bit @@ -108,6 +110,22 @@ public void setTtl(byte ttl) { this.ttl = ttl; } + @Override + public IPacket setPayload(final IPacket payload) { + // We implicitly assume that traffic can be only of these three types + if (payload instanceof MPLS) { + this.bos = 0; + this.protocol = PROTOCOL_MPLS; + } else if (payload instanceof IPv6) { + this.bos = 1; + this.protocol = PROTOCOL_IPV6; + } else { + this.bos = 1; + this.protocol = PROTOCOL_IPV4; + } + return super.setPayload(payload); + } + /** * Deserializer function for MPLS packets. * @@ -124,7 +142,11 @@ public static Deserializer deserializer() { mpls.label = ((mplsheader & 0xfffff000) >>> 12); mpls.bos = (byte) ((mplsheader & 0x00000100) >> 8); mpls.ttl = (byte) (mplsheader & 0x000000ff); - mpls.protocol = (mpls.bos == 1) ? PROTOCOL_IPV4 : PROTOCOL_MPLS; + + ByteBuffer duplicate = bb.duplicate(); + short protocol = (short) ((duplicate.get() & 0xf0) >> 4); + mpls.protocol = (mpls.bos == 1) ? protocol == 4 ? + PROTOCOL_IPV4 : PROTOCOL_IPV6 : PROTOCOL_MPLS; Deserializer deserializer; if (protocolDeserializerMap.containsKey(mpls.protocol)) { diff --git a/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java b/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java index 2be1ee2ffdc..279091ca826 100644 --- a/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java +++ b/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java @@ -15,6 +15,8 @@ */ package org.onlab.util; +import com.google.common.util.concurrent.MoreExecutors; + import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -67,6 +69,18 @@ public static PredictableExecutor newPredictableExecutor(int buckets, ThreadFact * @param threadFactory {@link ThreadFactory} to use to create threads */ public PredictableExecutor(int buckets, ThreadFactory threadFactory) { + this(buckets, threadFactory, false); + } + + /** + * Creates {@link PredictableExecutor} instance. + * Meant for testing purposes. + * + * @param buckets number of buckets or 0 to match available processors + * @param threadFactory {@link ThreadFactory} to use to create threads + * @param directExec direct executors + */ + public PredictableExecutor(int buckets, ThreadFactory threadFactory, boolean directExec) { checkArgument(buckets >= 0, "number of buckets must be non zero"); checkNotNull(threadFactory); if (buckets == 0) { @@ -75,7 +89,7 @@ public PredictableExecutor(int buckets, ThreadFactory threadFactory) { this.backends = new ArrayList<>(buckets); for (int i = 0; i < buckets; ++i) { - this.backends.add(backendExecutorService(threadFactory)); + this.backends.add(backendExecutorService(threadFactory, directExec)); } } @@ -93,10 +107,11 @@ public PredictableExecutor(ThreadFactory threadFactory) { * Creates a single thread {@link ExecutorService} to use in the backend. * * @param threadFactory {@link ThreadFactory} to use to create threads - * @return single thread {@link ExecutorService} + * @param direct direct executors + * @return single thread {@link ExecutorService} or direct executor */ - protected ExecutorService backendExecutorService(ThreadFactory threadFactory) { - return Executors.newSingleThreadExecutor(threadFactory); + protected ExecutorService backendExecutorService(ThreadFactory threadFactory, boolean direct) { + return direct ? MoreExecutors.newDirectExecutorService() : Executors.newSingleThreadExecutor(threadFactory); } diff --git a/utils/misc/src/test/java/org/onlab/packet/MplsTest.java b/utils/misc/src/test/java/org/onlab/packet/MplsTest.java index 4c247fabfe4..6231636e8fa 100644 --- a/utils/misc/src/test/java/org/onlab/packet/MplsTest.java +++ b/utils/misc/src/test/java/org/onlab/packet/MplsTest.java @@ -21,10 +21,18 @@ import org.junit.Test; import java.nio.ByteBuffer; -import java.util.HashMap; +import static junit.framework.TestCase.assertNotNull; +import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.onlab.packet.ICMP.TYPE_ECHO_REQUEST; +import static org.onlab.packet.ICMP6.ECHO_REQUEST; +import static org.onlab.packet.IPv4.PROTOCOL_ICMP; +import static org.onlab.packet.MPLS.PROTOCOL_IPV4; +import static org.onlab.packet.MPLS.PROTOCOL_IPV6; +import static org.onlab.packet.MPLS.PROTOCOL_MPLS; /** * Unit tests for MPLS class. @@ -36,22 +44,91 @@ public class MplsTest { private int label = 1048575; private byte bos = 1; private byte ttl = 20; - private byte protocol = MPLS.PROTOCOL_IPV4; + private byte protocol = PROTOCOL_IPV4; private byte[] bytes; + private byte[] truncatedBytes; + + // Define packets to deserialize + private static final MacAddress SRC_MAC = MacAddress.valueOf("00:00:00:00:00:01"); + private static final MacAddress DST_MAC = MacAddress.valueOf("00:00:00:00:00:02"); + + private static final ICMPEcho ICMP_ECHO = new ICMPEcho() + .setIdentifier((short) 0) + .setSequenceNum((short) 0); + + private static final ICMP ICMP = (ICMP) new ICMP() + .setIcmpType(TYPE_ECHO_REQUEST) + .setPayload(ICMP_ECHO); + + private static final Ip4Address SRC_IPV4 = Ip4Address.valueOf("10.0.1.1"); + private static final Ip4Address DST_IPV4 = Ip4Address.valueOf("10.0.0.254"); + + private static final IPv4 IPV4 = (IPv4) new IPv4() + .setDestinationAddress(DST_IPV4.toInt()) + .setSourceAddress(SRC_IPV4.toInt()) + .setTtl((byte) 64) + .setProtocol(PROTOCOL_ICMP) + .setPayload(ICMP); + + private static final ICMP6 ICMP6 = new ICMP6() + .setIcmpType(ECHO_REQUEST); + + private static final Ip6Address SRC_IPV6 = Ip6Address.valueOf("2000::101"); + private static final Ip6Address DST_IPV6 = Ip6Address.valueOf("2000::ff"); + + private static final IPv6 IPV6 = (IPv6) new IPv6() + .setDestinationAddress(DST_IPV6.toOctets()) + .setSourceAddress(SRC_IPV6.toOctets()) + .setHopLimit((byte) 255) + .setNextHeader(IPv6.PROTOCOL_ICMP6) + .setPayload(ICMP6); + + private static final MPLS MPLS_IPV4 = new MPLS(); + private static final MPLS MPLS_BOS_IPV4 = new MPLS(); + private static final MPLS MPLS_IPV6 = new MPLS(); + private static final MPLS MPLS_BOS_IPV6 = new MPLS(); + + private static final Ethernet ETH_IPV4 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.MPLS_UNICAST) + .setDestinationMACAddress(DST_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(MPLS_IPV4); + + private static final Ethernet ETH_IPV6 = (Ethernet) new Ethernet() + .setEtherType(Ethernet.MPLS_UNICAST) + .setDestinationMACAddress(DST_MAC) + .setSourceMACAddress(SRC_MAC) + .setPayload(MPLS_IPV6); @Before public void setUp() throws Exception { - // Replace normal deserializer map with an empty map. This will cause - // the DataDeserializer to be used which will silently handle 0-byte input. - MPLS.protocolDeserializerMap = new HashMap<>(); - + // Setup packets deserializer = MPLS.deserializer(); - ByteBuffer bb = ByteBuffer.allocate(MPLS.HEADER_LENGTH); + byte[] ipv4 = IPV4.serialize(); + ByteBuffer bb = ByteBuffer.allocate(MPLS.HEADER_LENGTH + IPV4.getTotalLength()); bb.putInt(((label & 0x000fffff) << 12) | ((bos & 0x1) << 8 | (ttl & 0xff))); + bb.put(ipv4); bytes = bb.array(); + + bb = ByteBuffer.allocate(MPLS.HEADER_LENGTH); + bb.putInt(((label & 0x000fffff) << 12) | ((bos & 0x1) << 8 | (ttl & 0xff))); + + truncatedBytes = bb.array(); + + MPLS_BOS_IPV4.setLabel(101); + MPLS_BOS_IPV4.setPayload(IPV4); + MPLS_IPV4.setLabel(1); + MPLS_IPV4.setPayload(MPLS_BOS_IPV4); + ETH_IPV4.setPayload(MPLS_IPV4); + + MPLS_BOS_IPV6.setLabel(201); + MPLS_BOS_IPV6.setPayload(IPV6); + MPLS_IPV6.setLabel(2); + MPLS_IPV6.setPayload(MPLS_BOS_IPV6); + ETH_IPV6.setPayload(MPLS_IPV6); } @Test @@ -61,7 +138,7 @@ public void testDeserializeBadInput() throws Exception { @Test public void testDeserializeTruncated() throws Exception { - PacketTestUtils.testDeserializeTruncated(deserializer, bytes); + PacketTestUtils.testDeserializeTruncated(deserializer, truncatedBytes); } /** @@ -90,4 +167,78 @@ public void testToStringMpls() throws Exception { assertTrue(StringUtils.contains(str, "ttl=" + ttl)); assertTrue(StringUtils.contains(str, "protocol=" + protocol)); } + + @Test + public void testIpv4OverMplsDeserialize() throws Exception { + // Serialize + byte[] packet = ETH_IPV4.serialize(); + assertThat(MPLS_IPV4.protocol, is(PROTOCOL_MPLS)); + assertThat(MPLS_IPV4.bos, is((byte) 0)); + assertThat(MPLS_BOS_IPV4.protocol, is(PROTOCOL_IPV4)); + assertThat(MPLS_BOS_IPV4.bos, is((byte) 1)); + // Deserialize + Ethernet ethernet; + ethernet = Ethernet.deserializer().deserialize(packet, 0, packet.length); + + // Verify + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_IPV4.getSourceMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_IPV4.getDestinationMAC())); + assertThat(ethernet.getEtherType(), is(Ethernet.MPLS_UNICAST)); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(1)); + assertThat(mpls.getTtl(), is((byte) 0)); + assertThat(mpls.protocol, is(PROTOCOL_MPLS)); + assertThat(mpls.bos, is((byte) 0)); + assertTrue(mpls.getPayload() instanceof MPLS); + mpls = (MPLS) mpls.getPayload(); + assertThat(mpls.getLabel(), is(101)); + assertThat(mpls.getTtl(), is((byte) 0)); + assertThat(mpls.protocol, is(PROTOCOL_IPV4)); + assertThat(mpls.bos, is((byte) 1)); + IPv4 ip = (IPv4) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(SRC_IPV4.toInt())); + assertThat(ip.getDestinationAddress(), is(DST_IPV4.toInt())); + assertTrue(ip.getPayload() instanceof ICMP); + ICMP icmp = (ICMP) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(TYPE_ECHO_REQUEST)); + } + + @Test + public void testIpv6OverMplsDeserialize() throws Exception { + // Serialize + byte[] packet = ETH_IPV6.serialize(); + assertThat(MPLS_IPV6.protocol, is(PROTOCOL_MPLS)); + assertThat(MPLS_IPV6.bos, is((byte) 0)); + assertThat(MPLS_BOS_IPV6.protocol, is(PROTOCOL_IPV6)); + assertThat(MPLS_BOS_IPV6.bos, is((byte) 1)); + // Deserialize + Ethernet ethernet; + ethernet = Ethernet.deserializer().deserialize(packet, 0, packet.length); + + // Verify + assertNotNull(ethernet); + assertThat(ethernet.getSourceMAC(), is(ETH_IPV6.getSourceMAC())); + assertThat(ethernet.getDestinationMAC(), is(ETH_IPV6.getDestinationMAC())); + assertThat(ethernet.getEtherType(), is(Ethernet.MPLS_UNICAST)); + assertTrue(ethernet.getPayload() instanceof MPLS); + MPLS mpls = (MPLS) ethernet.getPayload(); + assertThat(mpls.getLabel(), is(2)); + assertThat(mpls.getTtl(), is((byte) 0)); + assertThat(mpls.protocol, is(PROTOCOL_MPLS)); + assertThat(mpls.bos, is((byte) 0)); + assertTrue(mpls.getPayload() instanceof MPLS); + mpls = (MPLS) mpls.getPayload(); + assertThat(mpls.getLabel(), is(201)); + assertThat(mpls.getTtl(), is((byte) 0)); + assertThat(mpls.protocol, is(PROTOCOL_IPV6)); + assertThat(mpls.bos, is((byte) 1)); + IPv6 ip = (IPv6) mpls.getPayload(); + assertThat(ip.getSourceAddress(), is(SRC_IPV6.toOctets())); + assertThat(ip.getDestinationAddress(), is(DST_IPV6.toOctets())); + assertTrue(ip.getPayload() instanceof ICMP6); + ICMP6 icmp = (ICMP6) ip.getPayload(); + assertThat(icmp.getIcmpType(), is(ECHO_REQUEST)); + } } diff --git a/web/gui/BUILD b/web/gui/BUILD index 1834586a564..57680d93478 100644 --- a/web/gui/BUILD +++ b/web/gui/BUILD @@ -97,12 +97,14 @@ genrule( name = "_onos-gui-npm-install", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", + "@gui1_npm//:node_modules", "//tools/gui:tools-gui-gulp", ], - outs = ["onos-gui-npm-install.jar"], + outs = [ + "onos-gui-npm-install.jar", + "onos-gui1-npm-install.log", + ], cmd = " ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + # npm config cache to the sandbos @@ -112,10 +114,11 @@ genrule( " mkdir -p tools/gui &&" + " cd tools/gui &&" + " jar xf ../../$(location //tools/gui:tools-gui-gulp) &&" + - " $$NPM $$NPM_ARGS install --no-cache --loglevel=error >npm-install.out 2>&1 &&" + + " $$NPM $$NPM_ARGS install --no-cache --loglevel=error > $$ROOT/$(location onos-gui1-npm-install.log) 2>&1 &&" + " find . -name package.json | while read pjson; do egrep -v '/execroot/' $$pjson > ptmp; mv ptmp $$pjson; done &&" + " find package.json gulpfile.babel.js node_modules gulp-tasks -type f -exec touch -t 201806280000 {} \; &&" + - " jar Mcf $$ROOT/$@ package.json gulpfile.babel.js node_modules gulp-tasks", + " jar Mcf $$ROOT/$(location onos-gui-npm-install.jar) package.json gulpfile.babel.js node_modules gulp-tasks &&" + + " touch $$ROOT/$(location onos-gui1-npm-install.log)", # to get the log always as the 2nd file ) """ @@ -125,28 +128,32 @@ genrule( genrule( name = "_onos-gui-npm-build", srcs = [ + "@nodejs//:npm", "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", ":_onos-gui-npm-install", ":_web_app_all", ], - outs = ["onos-gui-npm-build.jar"], - cmd = "(ROOT=`pwd` &&" + + outs = [ + "onos-gui-npm-build.jar", + "onos-gui1-npm-build.log", + ], + cmd = "ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + " export BABEL_DISABLE_CACHE=1 &&" + + " INSTALL_FILES=($(locations :_onos-gui-npm-install)) &&" + # An array of filenames - sorted by time created ' if [[ ! -z $${HTTP_PROXY-} ]]; then NPM_ARGS="--proxy $$HTTP_PROXY --without-ssl --insecure"; else NPM_ARGS=""; fi &&' + " NPM=$(location @nodejs//:bin/npm) &&" + " (mkdir -p web/gui && cd web/gui && jar xf ../../$(location :_web_app_all)) &&" + " mkdir -p tools/gui && cd tools/gui &&" + - " jar xf $$ROOT/$(location :_onos-gui-npm-install) &&" + + " jar xf $$ROOT/$${INSTALL_FILES[0]} &&" + " chmod a+x ./node_modules/gulp/bin/gulp.js &&" + - " $$ROOT/$$NPM $$NPM_ARGS run build --no-cache --loglevel=error >npm-build.out &&" + + " $$ROOT/$$NPM $$NPM_ARGS run build --no-cache --loglevel=error > $$ROOT/$(location onos-gui1-npm-build.log) &&" + " cd ../../web/gui/src/main/webapp &&" + " find dist vendor data README.md _doc _dev app/fw app/*.css app/*.js app/*.txt -type f -exec touch -t 201806280000 {} \; &&" + - " jar Mcf $$ROOT/$@ dist vendor data README.md _doc _dev app/fw app/*.css app/*.js app/*.txt)", + " jar Mcf $$ROOT/$(location onos-gui-npm-build.jar) dist vendor data README.md _doc _dev app/fw app/*.css app/*.js app/*.txt &&" + + " touch $$ROOT/$(location onos-gui1-npm-build.log)", # to get the log always as the 2nd file ) """ @@ -254,9 +261,10 @@ genrule( ], outs = ["onos-gui.jar"], cmd = " ROOT=`pwd` &&" + + " BUILD_FILES=($(locations :_onos-gui-npm-build)) &&" + # An array of filenames - sorted by time created " mkdir -p gui/WEB-INF/classes &&" + " cd gui &&" + - " jar xf $$ROOT/$(location :_onos-gui-npm-build) &&" + + " jar xf $$ROOT/$${BUILD_FILES[0]} &&" + " (cd WEB-INF/classes && mkdir -p app/view && cd app/view && jar xf $$ROOT/$(location :_app_view_tar)) &&" + " for i in $(locations :_root_level_files); do cp $$ROOT/$$i .; done &&" + " for i in $(locations :_web_inf_classes_files); do cp $$ROOT/$$i ./WEB-INF/classes/; done &&" + diff --git a/web/gui2-fw-lib/BUILD b/web/gui2-fw-lib/BUILD index bbf39175f64..796b46aa023 100644 --- a/web/gui2-fw-lib/BUILD +++ b/web/gui2-fw-lib/BUILD @@ -166,16 +166,16 @@ genrule( """ Install npm packages listed in package.json in web/gui2 - See bazel-genfiles/web/gui2/onos-gui2-npm-install.log for details of the 'npm install' + See bazel-out/k8-fastbuild/bin/web/gui2/onos-gui2-npm-install.log for details of the 'npm install' """ genrule( name = "onos-gui2-fw-npm-install", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", + "@gui2_npm//:node_modules/@angular/cli/bin/ng", + "@gui2_npm//:node_modules", ":_root_level_files", ], outs = [ @@ -189,9 +189,11 @@ genrule( ' if [[ ! -z $${HTTP_PROXY-} ]]; then NPM_ARGS="--proxy $$HTTP_PROXY --without-ssl --insecure"; else NPM_ARGS=""; fi &&' + " NPM=$(location @nodejs//:bin/npm) &&" + " export PATH=$$ROOT/$$(dirname $${NPM}):$$PATH &&" + - " npm -v > $$ROOT/$(location onos-gui2-npm-install.log) 2>&1 &&" + - " cd web/gui2-fw-lib && " + - " npm $$NPM_ARGS install --no-cache >> $$ROOT/$(location onos-gui2-npm-install.log) 2>&1 &&" + + " $$NPM version > $$ROOT/$(location onos-gui2-npm-install.log) 2>&1 &&" + + " NM=external/gui2_npm/node_modules &&" + + " echo $$NM > $$ROOT/$(location onos-gui2-npm-install.log) 2>&1 &&" + + # " ../../$(location @nodejs//:npm) $$NPM_ARGS install --no-cache >> $$ROOT/$(location onos-gui2-npm-install.log) 2>&1 &&" + + " cd external/gui2_npm &&" + " jar Mcf $$ROOT/$(location onos-gui2-npm-install.jar) node_modules &&" + " touch $$ROOT/$(location onos-gui2-npm-install.log)", # to get the log always as the 2nd file message = "NodeJS npm install", @@ -200,17 +202,17 @@ genrule( """ Run ng build to create outputs in production mode - See bazel-genfiles/web/gui2/onos-gui2-ng-build-prod.log for details of the Angular CLI output + See bazel-out/k8-fastbuild/bin/web/gui2/onos-gui2-ng-build-prod.log for details of the Angular CLI output """ genrule( name = "onos-gui2-fw-ng-build", srcs = [ - "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", + "@nodejs//:bin/npm", ":onos-gui2-fw-npm-install", + "@gui2_npm//:node_modules/@angular/cli/bin/ng", + "@gui2_npm//:node_modules", "//web/gui:onos-gui-data-for-gui2", ":_root_level_files", ":_gui2_fw_lib_src", @@ -222,20 +224,21 @@ genrule( cmd = "ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + + # " NG=$(location @gui2_npm//:node_modules/@angular/cli/bin/ng) &&" + " INSTALL_FILES=($(locations :onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " cd web/gui2-fw-lib &&" + " jar xf $$ROOT/$${INSTALL_FILES[0]} &&" + " chmod +x $$ROOT/web/gui2-fw-lib/node_modules/@angular/cli/bin/ng &&" + " export PATH=$$ROOT/$$(dirname $${NODE}):$$ROOT/web/gui2-fw-lib/node_modules/@angular/cli/bin:$$PATH &&" + " node -v > ../../$(location gui2-fw-ng-build-prod.log) &&" + - " npm -v >> ../../$(location gui2-fw-ng-build-prod.log) &&" + + " $$ROOT/$(location @nodejs//:bin/npm) version >> ../../$(location gui2-fw-ng-build-prod.log) &&" + " ng version >> ../../$(location gui2-fw-ng-build-prod.log);" + " ng build --prod gui2-fw-lib >> $$ROOT/$(location gui2-fw-ng-build-prod.log) 2>&1 ||" + " if [ $$? -eq 0 ]; then echo 'Successfully built GUI FW library';" + " else " + " echo 'Error running \'ng build gui2-fw-lib\' on \'//web/gui2-fw-lib:onos-gui2-fw-ng-build\'. \\\n" + - " See bazel-genfiles/web/gui2-fw-lib/gui2-fw-ng-build-prod.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-fw-lib/gui2-fw-ng-build-prod.log for more details' >&2;" + " exit 1;" + " fi;" + # see https://github.com/angular/angular-cli/issues/11071 - Angular CLI does not yet copy across assets @@ -243,7 +246,7 @@ genrule( " mkdir -p dist/gui2-fw-lib/assets &&" + " mv web/gui/src/main/webapp/data/img/loading dist/gui2-fw-lib/assets &&" + " cp README.md LICENSE dist/gui2-fw-lib &&" + - " npm pack ./dist/gui2-fw-lib >> $$ROOT/$(location gui2-fw-ng-build-prod.log) 2>&1 &&" + + " $$ROOT/$(location @nodejs//:bin/npm) pack ./dist/gui2-fw-lib >> $$ROOT/$(location gui2-fw-ng-build-prod.log) 2>&1 &&" + " mv gui2-fw-lib-*.tgz $$ROOT/$(location gui2-fw-lib-ver.tgz) &&" + " touch $$ROOT/$(location gui2-fw-ng-build-prod.log)", # to get the log always as the 2nd file message = "GUI FW Lib build", @@ -252,17 +255,15 @@ genrule( """ Run 'ng test' to run Angular test and 'ng lint' for checkstyle - See bazel-genfiles/web/gui2/onos-gui2-fw-ng-lint.log or - bazel-genfiles/web/gui2/onos-gui2-fw-ng-test.log for details of the Angular CLI output + See bazel-out/k8-fastbuild/bin/web/gui2/onos-gui2-fw-ng-lint.log or + bazel-out/k8-fastbuild/bin/web/gui2/onos-gui2-fw-ng-test.log for details of the Angular CLI output """ genrule( name = "_onos-gui2-fw-ng-test", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", ":onos-gui2-fw-npm-install", "//web/gui:onos-gui-data-for-gui2", ":_root_level_files", @@ -278,7 +279,7 @@ genrule( cmd = " ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations :onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " mkdir -p web/gui2-fw-lib &&" + " cd web/gui2-fw-lib &&" + @@ -290,13 +291,14 @@ genrule( " chmod +x $$ROOT/web/gui2-fw-lib/node_modules/@angular/cli/bin/ng &&" + " export PATH=$$ROOT/$$(dirname $${NODE}):$$ROOT/web/gui2-fw-lib/node_modules/@angular/cli/bin:$$PATH &&" + " node -v > ../../$(location onos-gui2-fw-ng-ver.log) &&" + - " npm -v >> ../../$(location onos-gui2-fw-ng-ver.log) &&" + + " $$ROOT/$(location @nodejs//:bin/npm) -v >> ../../$(location onos-gui2-fw-ng-ver.log) &&" + " ng version >> ../../$(location onos-gui2-fw-ng-ver.log);" + " ng lint gui2-fw-lib > ../../$(location onos-gui2-fw-ng-lint.log) 2>&1 ||" + " if [ $$? -eq 0 ]; then echo 'Successfully ran lint';" + " else " + " echo 'Error running \'ng lint\' on \'//web/gui2-fw-lib:_onos-gui2-fw-ng-test\'. \\\n" + - " See bazel-genfiles/web/gui2-fw-lib/onos-gui2-fw-ng-lint.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-fw-lib/onos-gui2-fw-ng-lint.log for more details' >&2;" + + " cat ../../$(location onos-gui2-fw-ng-lint.log) >&2 ||" + " exit 1;" + " fi;" + " if [ -f /usr/bin/chromium-browser ]; then " + # Add to this for Mac and Chrome @@ -316,7 +318,7 @@ genrule( " if [ $$? -eq 0 ]; then echo 'Successfully ran tests';" + " else " + " echo 'Error running \'ng test\' on \'//web/gui2-fw-lib:onos-gui2-fw-ng-test\'. \\\n" + - " See bazel-genfiles/web/gui2-fw-lib/onos-gui2-fw-ng-test.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-fw-lib/onos-gui2-fw-ng-test.log for more details' >&2;" + #" tail -n 100 ../../$(location onos-gui2-fw-ng-test.log) >&2;" + " exit 1;" + " fi;", diff --git a/web/gui2-fw-lib/package-lock.json b/web/gui2-fw-lib/package-lock.json index 0988ae4c9ab..d678bea9a0f 100644 --- a/web/gui2-fw-lib/package-lock.json +++ b/web/gui2-fw-lib/package-lock.json @@ -1,4500 +1,3946 @@ { "name": "gui2-fw-lib-app", - "version": "2.0.0", + "version": "2.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.6.8.tgz", - "integrity": "sha512-ZKTm/zC61iY9IBHOEAKoMSzZpvhkmv+1O/HHzpHEuR551jCzu6vSyCmMY9Z7GBcccscCV+hjeSMwgFrFRcqlkw==", + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.17.tgz", + "integrity": "sha512-QbuWJhjh78Pb/9574OIjR38hhJCRBd0BtdrRRdTjP7By6liXURnA/OH6iZ9o1jA8It1NvoJQtM2flr8dQf83Mw==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.8", - "rxjs": "6.3.3" + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/build-angular": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.6.8.tgz", - "integrity": "sha512-VGqYAk8jpISraz2UHfsDre270NOUmV0CTSZw2p9sm5g/XIr5m+IHetFZz3gpoAr9+If2aFTs8Rt3sGdCRzwBqA==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.6.8", - "@angular-devkit/build-optimizer": "0.6.8", - "@angular-devkit/core": "0.6.8", - "@ngtools/webpack": "6.0.8", - "ajv": "6.4.0", - "autoprefixer": "8.6.5", - "cache-loader": "1.2.5", - "chalk": "2.2.2", - "circular-dependency-plugin": "5.0.2", + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.17.tgz", + "integrity": "sha512-mZD4DRk8EUHw17tmL3hWFrXmNo7WlXbOsuait7+dG6YPSkVUjpozIk2frks6rOsOMXgFcIf4quIojca25wZySg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/build-optimizer": "0.803.17", + "@angular-devkit/build-webpack": "0.803.17", + "@angular-devkit/core": "8.3.17", + "@babel/core": "7.5.5", + "@babel/preset-env": "7.5.5", + "@ngtools/webpack": "8.3.17", + "ajv": "6.10.2", + "autoprefixer": "9.6.1", + "browserslist": "4.6.6", + "cacache": "12.0.2", + "caniuse-lite": "1.0.30000989", + "circular-dependency-plugin": "5.2.0", "clean-css": "4.2.1", - "copy-webpack-plugin": "4.6.0", - "file-loader": "1.1.11", - "glob": "7.1.3", - "html-webpack-plugin": "3.2.0", - "istanbul": "0.4.5", + "copy-webpack-plugin": "5.0.4", + "core-js": "3.2.1", + "file-loader": "4.2.0", + "find-cache-dir": "3.0.0", + "glob": "7.1.4", "istanbul-instrumenter-loader": "3.0.1", - "karma-source-map-support": "1.3.0", - "less": "3.8.1", - "less-loader": "4.1.0", - "license-webpack-plugin": "1.5.0", - "lodash": "4.17.11", - "memory-fs": "0.4.1", - "mini-css-extract-plugin": "0.4.4", + "jest-worker": "24.9.0", + "karma-source-map-support": "1.4.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.2", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.8.0", "minimatch": "3.0.4", - "node-sass": "4.10.0", - "opn": "5.4.0", + "open": "6.4.0", "parse5": "4.0.0", - "portfinder": "1.0.19", - "postcss": "6.0.23", - "postcss-import": "11.1.0", - "postcss-loader": "2.1.6", - "postcss-url": "7.3.2", - "raw-loader": "0.5.1", - "resolve": "1.8.1", - "rxjs": "6.3.3", - "sass-loader": "7.1.0", - "silent-error": "1.1.1", - "source-map-support": "0.5.9", - "stats-webpack-plugin": "0.6.2", - "style-loader": "0.21.0", + "postcss": "7.0.17", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "3.1.0", + "regenerator-runtime": "0.13.3", + "rxjs": "6.4.0", + "sass": "1.22.9", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "source-map": "0.7.3", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.13", + "speed-measure-webpack-plugin": "1.3.1", + "style-loader": "1.0.0", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "tree-kill": "1.2.0", - "uglifyjs-webpack-plugin": "1.3.0", - "url-loader": "1.1.2", - "webpack": "4.8.3", - "webpack-dev-middleware": "3.4.0", - "webpack-dev-server": "3.1.10", - "webpack-merge": "4.1.4", - "webpack-sources": "1.3.0", - "webpack-subresource-integrity": "1.2.0" + "terser": "4.3.9", + "terser-webpack-plugin": "1.4.1", + "tree-kill": "1.2.1", + "webpack": "4.39.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.9.0", + "webpack-merge": "4.2.1", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.2.0" + }, + "dependencies": { + "core-js": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/build-ng-packagr": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.6.8.tgz", - "integrity": "sha512-xcv3BwfB4PkL34PwXt2F+UpkxDajGRoPBGVj7FCD+Js4OY3S2G94BcdnDdOcwZzV+vjf5ZUxRC0IJ80YLJFSRQ==", + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.803.17.tgz", + "integrity": "sha512-nID6aLUeuwMj0vj+pYehOaifUpIt7fW9DYjSRJOQmhhqh+SeJCBUPf3+9f4GAYa1yLkuiEUgS7Pt0m6zig7tdg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.6.8", - "@angular-devkit/core": "0.6.8", - "resolve": "1.8.1", - "rxjs": "6.3.3" + "@angular-devkit/architect": "0.803.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/build-optimizer": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.6.8.tgz", - "integrity": "sha512-of5syQbv3uNPp4AQkfRecfnp8AE8kvffbfYi+FFPZ6OGr7e59T1fGwk6+Zgb2qQFQg8HO2tzWI/uygtLIqmbmw==", + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.17.tgz", + "integrity": "sha512-nKZMbKKC5i7VH8DO0p+WxwNB58simCma5rE2W8jD1+bUSiBK57D/I3Dn7Otp7C9REtLw3rXXEkhM0vMTmTHWGQ==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "tslib": "1.10.0", + "typescript": "3.5.3", + "webpack-sources": "1.4.3" + } + }, + "@angular-devkit/build-webpack": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.17.tgz", + "integrity": "sha512-sXE6QhpCEErzs6DVXPJD0FpEHVQGbvxIrSkWOvPNxn3y6mJodp3scDvtBCR/T+u5mr6NELO07NCIHjpXcMfyPA==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7", - "typescript": "2.9.2", - "webpack-sources": "1.3.0" + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" }, "dependencies": { - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } } } }, "@angular-devkit/core": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.8.tgz", - "integrity": "sha512-rkIa1OSVWTt4g9leLSK/PsqOj3HZbDKHbZjqlslyfVa3AyCeiumFoOgViOVXlYgPX3HHDbE5uH24nyUWSD8uww==", + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.17.tgz", + "integrity": "sha512-cR2H/7OxxqagwGfzxwNWDOYN4QpOZ56Fei9JED/2p/K/5UDAowl20o3qP9mTfia/lEhFeyjMBcM8gsHxhJNYJQ==", "dev": true, "requires": { - "ajv": "6.4.0", - "chokidar": "2.0.4", - "rxjs": "6.3.3", - "source-map": "0.5.7" + "ajv": "6.10.2", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/schematics": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.0.4.tgz", - "integrity": "sha512-KUsqNKScv+VPNKiumMFn0hvU//+iBgz3j6by1Gjz2OuiGewyFo3PYqXLJuIeNdDU9cwLjmMc97i3Lji9Nc8QNw==", + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.17.tgz", + "integrity": "sha512-1ttzYGnw5Ux7Nfr/TGyWx3C/rarq5l+dn+5SpKof/8ctvQU1gJaswF492ngPs/jDjaPq5MucKYoX+wTUJHnUhg==", "dev": true, "requires": { - "@angular-devkit/core": "7.0.4", - "rxjs": "6.3.3" + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" }, "dependencies": { - "@angular-devkit/core": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.4.tgz", - "integrity": "sha512-LzMXoUPLFAPJUCcTeaYrJZNao0otH15RtrpMRTOcgR9TqnnptQqIiRty4T2xQnl4ud33yHOVZ5FoANwDq1rQvQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" + "tslib": "^1.9.0" } } } }, "@angular/animations": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.0.2.tgz", - "integrity": "sha512-4EqCmfqbqIrMMf9WPiUpVqV+19z6BDtaRPAC6QXU6lcl0Lq67fw6a0yJ6ZvFXThPot3L6NNxmvbO2inzpiVV9A==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.13.tgz", + "integrity": "sha512-ZE4UZsQ6HDW1ZIj9tL45PVosCcG4Ke7ihV7eWCE1VgLZKDDxTOPbLf1UeEiszUYptMLGH3eGMNBKo85mOlkH8w==", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/cli": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.0.4.tgz", - "integrity": "sha512-Fo4XfVp1V/CrP99j+WoV7YA54CyDF8d8GSK9OJJDYk2cBAYgbWu6+EjfhSdXar21cyUoLFG9+OyWUJUNUL7hAg==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.4", - "@angular-devkit/core": "7.0.4", - "@angular-devkit/schematics": "7.0.4", - "@schematics/angular": "7.0.4", - "@schematics/update": "0.10.4", - "inquirer": "6.2.0", - "opn": "5.3.0", - "rxjs": "6.3.3", - "semver": "5.5.1", - "symbol-observable": "1.2.0" + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.17.tgz", + "integrity": "sha512-1R4IlPnrm6B9drhrCHTu9fBFIqCvOXK1zqYLsdobz6KfdkBcLSFqRqRfgEqADLChkxMo4tedtsftkuqY5Xinrg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17", + "@schematics/angular": "8.3.17", + "@schematics/update": "0.803.17", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.5.1", + "npm-package-arg": "6.1.0", + "npm-pick-manifest": "3.0.2", + "open": "6.4.0", + "pacote": "9.5.5", + "read-package-tree": "5.3.1", + "rimraf": "3.0.0", + "semver": "6.3.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.10.4.tgz", - "integrity": "sha512-GuWSZfzxdEeAOnSOs7g3oUYaRv9qmEKynCQaLroqRWRCki5YrCa2PsoxN3kLyqyRlQAM2abVs3SnZn+Imj5eaQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.4", - "rxjs": "6.3.3" - } - }, - "@angular-devkit/core": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.4.tgz", - "integrity": "sha512-LzMXoUPLFAPJUCcTeaYrJZNao0otH15RtrpMRTOcgR9TqnnptQqIiRty4T2xQnl4ud33yHOVZ5FoANwDq1rQvQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "opn": { - "version": "5.3.0", - "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", "dev": true, "requires": { - "punycode": "2.1.1" + "glob": "^7.1.3" } } } }, "@angular/common": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.0.2.tgz", - "integrity": "sha512-AamMjesc88a4c2cc3QI4N/rYY/unZ+py3VenXIRaAJCpM9PROF0klXdcu8wQ+kuwf2Ba+gkqtuAHIS8dsc5YFg==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.13.tgz", + "integrity": "sha512-I9cTcjUi88L+Mb/a/ZzUrdDcn3YgFFK9LubxaPjAfr6+G7IZ//MY5HuvG8Y41yKprXVVvQCbQ1yQD+GGRSCkaA==", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/compiler": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.0.2.tgz", - "integrity": "sha512-nyXX91a/sav+Nf99P7oy6ALuZsxlFhu1HEf24sdH3Ga45X3OL4oFCCfHjjDADyhq1SiRd/25Z8j1C4aeN6MJzQ==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.13.tgz", + "integrity": "sha512-u2NWCvEn4SjbMvn2PG6sYcf+rR5u3aYMv3/mNQ9k+2UmCIu3yJrcuCzebjo5SdlDVqKD2vzbyMZnr8VB9OcceQ==", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "@angular/compiler-cli": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.0.2.tgz", - "integrity": "sha512-xGXJ3MHn1LOYrvM9ix5sRp7r6dYsjLj+okUMDcNeYYEQyT7S/qEFZomhdrPydoXSUitjmXbskSUpGzZ6mzBBXQ==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.13.tgz", + "integrity": "sha512-ryW2Kozx/oHJrtdeIhgZ24RIU7Za3YIOHS9EMCQ8xMo+ZlSI+t2zOlLAXzK4PVWEjuTtQlKbT0KqilgU0QsHJg==", "dev": true, "requires": { - "canonical-path": "0.0.2", - "chokidar": "1.7.0", - "convert-source-map": "1.6.0", - "dependency-graph": "0.7.2", - "magic-string": "0.25.1", - "minimist": "1.2.0", - "reflect-metadata": "0.1.12", - "shelljs": "0.8.2", - "source-map": "0.6.1", - "yargs": "9.0.1" + "canonical-path": "1.0.0", + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { - "is-extglob": "1.0.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "is-glob": { + "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.14", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-extendable": "^0.1.0" } }, - "strip-ansi": { + "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", "dev": true, + "optional": true, "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "@angular/core": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.0.2.tgz", - "integrity": "sha512-KxK0y3ywFd0uGIHzQRKtj7DD6f8IhntQxBrBFLxNOLwzpb5v8B7HkzHUB/Tnflvo4hFetdGEinS6pO7dikWLTQ==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/forms": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.0.2.tgz", - "integrity": "sha512-FPowca8nJxt0gdnwsPaYdyhTnOALhIKJ8Z5EqdAkE5+v3/v76SG3WhUvYE5JFb4P/Ui8zY6htXsvVC7HNMLMBA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/http": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.0.2.tgz", - "integrity": "sha512-b2A7iriK727+zLIf4btdb29uit57IVd+00kFcbq8qWPM09CKe6x1Jbt9OOfPye/+beMFosX7IXByVWGjtk0IRQ==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/language-service": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.0.2.tgz", - "integrity": "sha512-u62XiZGDdjuu6Va+3BQTLhsIx2MLS8qKXjVXrtm3z5zRyKrN5ISlutTfR/pg5ZatVKeaA8cAY3vS/e7PN6KD8g==", - "dev": true - }, - "@angular/platform-browser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.0.2.tgz", - "integrity": "sha512-D5aDflV80MxzEC9FhBSrFoge9tftRapOTZJyWOAreWFfQGEA/3PG4VZPsLn09I0cXpN1s8+co9HEsrrhrmD+Sg==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/platform-browser-dynamic": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.0.2.tgz", - "integrity": "sha512-Bvo7dSA+N5REzpZRdo70PZHgzzf9+SWqfqjMo4XLY/+5jXoJ5Wbi34SstDnUGHecW21cwGtzmi0pI92zeSvNCw==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/router": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.0.2.tgz", - "integrity": "sha512-0auIIjNZgYvYGTPvogsvHfn9/V9oS4tG3PKqmSU9kX/GoHUOvqDxEBtb0vjnlxyQ3dzdBxDSGGa6zhN+0yy9PQ==", - "requires": { - "tslib": "1.9.3" - } - }, - "@compodoc/compodoc": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.6.tgz", - "integrity": "sha512-/ZDGaZ5+91MfMR+1XGlLfbWdpoVKm7IriMTTZMWk5mdhaXQn3aSHO4KjjIEU2EoMp4e/XGqJ+dJQ/inG/77Ahw==", - "dev": true, - "requires": { - "@compodoc/ngd-transformer": "2.0.0", - "chalk": "2.4.1", - "cheerio": "1.0.0-rc.2", - "chokidar": "2.0.4", - "colors": "1.3.2", - "commander": "2.19.0", - "cosmiconfig": "5.0.6", - "fancy-log": "1.3.2", - "findit2": "2.2.3", - "fs-extra": "7.0.0", - "glob": "7.1.3", - "handlebars": "4.0.10", - "html-entities": "1.2.1", - "i18next": "12.0.0", - "inside": "1.0.0", - "json5": "2.1.0", - "live-server": "1.2.0", - "lodash": "4.17.11", - "lunr": "2.3.5", - "marked": "0.4.0", - "opencollective": "1.0.3", - "os-name": "2.0.1", - "traverse": "0.6.6", - "ts-simple-ast": "12.4.0", - "uuid": "3.3.2" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "cosmiconfig": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", - "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" - } - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "dev": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - } - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, - "requires": { - "minimist": "1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "abbrev": { + "version": "1.1.1", + "bundled": true, "dev": true, "optional": true - } - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "@compodoc/ngd-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz", - "integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==", - "dev": true, - "requires": { - "ansi-colors": "1.1.0", - "fancy-log": "1.3.2", - "typescript": "2.9.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - } - } - }, - "@compodoc/ngd-transformer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.0.0.tgz", - "integrity": "sha512-9J0KkmuuuvDHxH0oREgrgbqdEFqcltQXIBofeYdIyMKzI3A+pN1Ji4zfi7x1ql0Ax7qQKemp8XWP+cCpP0qY+w==", - "dev": true, - "requires": { - "@compodoc/ngd-core": "2.0.0", - "dot": "1.1.2", - "fs-extra": "4.0.3", - "viz.js": "1.8.2" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "4.1.14", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - } - } - }, - "@dsherret/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-H2R13IvZdM6gei2vOGSzF7HdMyw=", - "dev": true, - "requires": { - "is-absolute": "1.0.0", - "is-negated-glob": "1.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@ngtools/json-schema": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", - "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", - "dev": true - }, - "@ngtools/webpack": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.0.8.tgz", - "integrity": "sha512-jorGpTd82ILbyUwg4JQekovHFaYwSMlZan4f7x+sd3+2WgyL3Z1+ZbVSGKvXZWKS/mAVx7eLkRikzJkuC4FgHw==", - "dev": true, - "requires": { - "@angular-devkit/core": "0.6.8", - "tree-kill": "1.2.0", - "webpack-sources": "1.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@schematics/angular": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.0.4.tgz", - "integrity": "sha512-OIUnOmst5dkxJtC4YBDFy/8WmNQpPHytO18yRt6QywUrtewTyL+b4CNImAfk6Rpqk+Ww/7UUIQRAmSeHtD/izg==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.4", - "@angular-devkit/schematics": "7.0.4", - "typescript": "3.1.3" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.4.tgz", - "integrity": "sha512-LzMXoUPLFAPJUCcTeaYrJZNao0otH15RtrpMRTOcgR9TqnnptQqIiRty4T2xQnl4ud33yHOVZ5FoANwDq1rQvQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "typescript": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.3.tgz", - "integrity": "sha512-+81MUSyX+BaSo+u2RbozuQk/UWx6hfG0a5gHu4ANEM4sU96XbuIyAB+rWBW1u70c6a5QuZfuYICn3s2UjuHUpA==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - } - } - }, - "@schematics/update": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.10.4.tgz", - "integrity": "sha512-0fdiZq2DRopAquc4XOpTFGJaAXtinl9kUgeUfX/sHBcbjKqCyArdEgA7wYfJAXMGuSyZatAOGVougwNRBIjcDQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.4", - "@angular-devkit/schematics": "7.0.4", - "npm-registry-client": "8.6.0", - "rxjs": "6.3.3", - "semver": "5.5.1", - "semver-intersect": "1.4.0" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.4.tgz", - "integrity": "sha512-LzMXoUPLFAPJUCcTeaYrJZNao0otH15RtrpMRTOcgR9TqnnptQqIiRty4T2xQnl4ud33yHOVZ5FoANwDq1rQvQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - } - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/jasmine": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.9.tgz", - "integrity": "sha512-8dPZwjosElZOGGYw1nwTvOEMof4gjwAWNFS93nBI091BoEfd5drnHOLRMiRF/LOPuMTn5LgEdv0bTUO8QFVuHQ==", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.5.tgz", - "integrity": "sha512-1awkm/O4pQCR9hI2F80HmIOda/L+ogkSL8Arj1k00eue5VLY5ooewhSOyF/cUJE0S+/34uD5EYY3zmd6fu2OCA==", - "dev": true, - "requires": { - "@types/jasmine": "2.8.9" - } - }, - "@types/node": { - "version": "8.9.5", - "resolved": "http://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "resolved": "http://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "2.53.43", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", - "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", - "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==", - "dev": true, - "requires": { - "@webassemblyjs/helper-wasm-bytecode": "1.4.3", - "@webassemblyjs/wast-parser": "1.4.3", - "debug": "3.2.6", - "webassemblyjs": "1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "ms": "2.1.1" + "binary-extensions": "^1.0.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz", - "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz", - "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==", - "dev": true, - "requires": { - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "ms": "2.1.1" + "kind-of": "^3.0.2" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yargs": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", + "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, - "@webassemblyjs/helper-code-frame": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz", - "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==", - "dev": true, + "@angular/core": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.13.tgz", + "integrity": "sha512-W8HN0lUQV4Sq85l17nhRIXeIfcw1ZdpgGm6to98pl0y9l/1srfzWfTnofuwCJC7gedt5AMrYJGUaNiDbByosFw==", "requires": { - "@webassemblyjs/wast-printer": "1.4.3" + "tslib": "^1.9.0" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz", - "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==", - "dev": true + "@angular/forms": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.13.tgz", + "integrity": "sha512-l7lHD4kbWK70KY0Xp4IpSa106ZzSgPMwRYMFKd9qhYaJ7v0Y7Shh7Z/ZDCOP730maj9WULnpy5X4eeozWXgvgg==", + "requires": { + "tslib": "^1.9.0" + } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz", - "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==", + "@angular/http": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz", + "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/language-service": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.13.tgz", + "integrity": "sha512-uVkqC5oxul6Jqyxzy0o4DN1TpmcmUWIi7WnDBu+aJVQFp/kqxmkNuJQvugdouxlIYdHC/SwLeVnBIplRjGH5cw==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz", - "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==", - "dev": true, + "@angular/platform-browser": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.13.tgz", + "integrity": "sha512-1lPbeLQIbbafjq9ul3IA8s2fMJ/EXeMJ74ouTolVXoPPur9ZPRLX9FqBAO1K4QzkAWhRlyf6qIC+mDZfJILwZw==", "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/helper-buffer": "1.4.3", - "@webassemblyjs/helper-wasm-bytecode": "1.4.3", - "@webassemblyjs/wasm-gen": "1.4.3", - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "tslib": "^1.9.0" } }, - "@webassemblyjs/leb128": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz", - "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==", - "dev": true, + "@angular/platform-browser-dynamic": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.13.tgz", + "integrity": "sha512-KP5psUKujAO8jZKHi6LRC+N7hE/epiGOhYZxdher1sCi81sYoZmqrEWkVZ4VKhov/4aC409CocDXcF7nmHV8tg==", "requires": { - "leb": "0.3.0" + "tslib": "^1.9.0" } }, - "@webassemblyjs/validation": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz", - "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==", + "@angular/router": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.13.tgz", + "integrity": "sha512-9CqnachtdASnEmRMtrG/R3c5nDCjjlCU4n0W/xt5+LlveyuUVvAT/CFUC38km4Df3lIvqap8mSpxzGaEzCL+wQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3" + "@babel/highlight": "^7.0.0" } }, - "@webassemblyjs/wasm-edit": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz", - "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==", + "@babel/core": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", + "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/helper-buffer": "1.4.3", - "@webassemblyjs/helper-wasm-bytecode": "1.4.3", - "@webassemblyjs/helper-wasm-section": "1.4.3", - "@webassemblyjs/wasm-gen": "1.4.3", - "@webassemblyjs/wasm-opt": "1.4.3", - "@webassemblyjs/wasm-parser": "1.4.3", - "@webassemblyjs/wast-printer": "1.4.3", - "debug": "3.2.6" + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { - "ms": "2.1.1" + "minimist": "^1.2.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, - "@webassemblyjs/wasm-gen": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz", - "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/helper-wasm-bytecode": "1.4.3", - "@webassemblyjs/leb128": "1.4.3" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz", - "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==", + "@babel/generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/helper-buffer": "1.4.3", - "@webassemblyjs/wasm-gen": "1.4.3", - "@webassemblyjs/wasm-parser": "1.4.3", - "debug": "3.2.6" + "@babel/types": "^7.6.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, - "@webassemblyjs/wasm-parser": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz", - "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==", + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/helper-wasm-bytecode": "1.4.3", - "@webassemblyjs/leb128": "1.4.3", - "@webassemblyjs/wasm-parser": "1.4.3", - "webassemblyjs": "1.4.3" + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wast-parser": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz", - "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/floating-point-hex-parser": "1.4.3", - "@webassemblyjs/helper-code-frame": "1.4.3", - "@webassemblyjs/helper-fsm": "1.4.3", - "long": "3.2.0", - "webassemblyjs": "1.4.3" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wast-printer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz", - "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==", + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/wast-parser": "1.4.3", - "long": "3.2.0" + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "@babel/helper-define-map": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", + "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", "dev": true, "requires": { - "mime-types": "2.1.21", - "negotiator": "0.6.1" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" } }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "dev": true, "requires": { - "acorn": "5.7.3" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "adm-zip": { - "version": "0.4.4", - "resolved": "http://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", - "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", - "dev": true + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "@babel/types": "^7.4.4" } }, - "ajv": { - "version": "6.4.0", - "resolved": "http://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", - "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", + "@babel/helper-member-expression-to-functions": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", "dev": true, "requires": { - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1", - "uri-js": "3.0.2" + "@babel/types": "^7.5.5" } }, - "ajv-errors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", - "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", - "dev": true + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true + "@babel/helper-module-transforms": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", + "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + } }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "@babel/types": "^7.0.0" } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", "dev": true }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "@babel/helper-regex": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", "dev": true, "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "lodash": "^4.17.13" } }, - "ansi-colors": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.1.tgz", - "integrity": "sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ==", - "dev": true + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true + "@babel/helper-replace-supers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + } }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "color-convert": "1.9.3" + "@babel/types": "^7.4.4" } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" } }, - "apache-crypt": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", - "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", + "@babel/helpers": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", "dev": true, "requires": { - "unix-crypt-td-js": "1.0.0" + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" } }, - "apache-md5": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", - "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", - "dev": true - }, - "app-root-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", - "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "@babel/parser": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", "dev": true }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", + "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "dev": true, "requires": { - "array-uniq": "1.0.3" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", + "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", "dev": true, - "optional": true + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", + "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "dev": true, "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "@babel/helper-plugin-utils": "^7.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "autoprefixer": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", - "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "dev": true, "requires": { - "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000904", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-polyfill": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", - "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "@babel/plugin-transform-block-scoping": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", + "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "@babel/plugin-transform-classes": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", "dev": true, "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "@babel/plugin-transform-destructuring": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", + "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "@babel/plugin-transform-dotall-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", + "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } + "@babel/helper-plugin-utils": "^7.0.0" } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", "dev": true, "requires": { - "callsite": "1.0.0" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "dev": true - }, - "blob": { - "version": "0.0.4", - "resolved": "http://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", - "dev": true + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", "dev": true, "requires": { - "inherits": "2.0.3" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "@babel/plugin-transform-modules-amd": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", "dev": true, "requires": { - "minimist": "1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, - "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", - "dev": true + "@babel/plugin-transform-modules-commonjs": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", + "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "@babel/plugin-transform-modules-systemjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "dev": true, "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "1.6.16" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - } + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", + "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", "dev": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "regexpu-core": "^4.6.0" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "@babel/plugin-transform-object-super": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.2.2", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", "dev": true, "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "@babel/plugin-transform-property-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "@babel/helper-plugin-utils": "^7.0.0" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "@babel/plugin-transform-reserved-words": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "@babel/plugin-transform-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", + "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "dev": true, "requires": { - "pako": "1.0.6" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", + "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000904", - "electron-to-chromium": "1.3.83" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" } }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "@babel/preset-env": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz", + "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==", "dev": true, "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.5.5", + "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.5.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.5.5", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "@babel/runtime": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", + "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", "dev": true, "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" + "regenerator-runtime": "^0.13.2" } }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "3.5.2", - "chownr": "1.1.1", - "glob": "7.1.3", - "graceful-fs": "4.1.14", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "cache-loader": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.5.tgz", - "integrity": "sha512-enWKEQ4kO3YreDFd7AtVRjtJBmNiqh/X9hVDReu0C4qm8gsGmySkwuWtdc+N5O+vq5FzxL1mIZc30NyXCB7o/Q==", + "@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "schema-utils": "0.4.7" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "@babel/traverse": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" } }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "@babel/types": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } }, - "caniuse-lite": { - "version": "1.0.30000904", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000904.tgz", - "integrity": "sha512-M4sXvogCoY5Fp6fuXIaQG/MIexlEFQ3Lgwban+KlqiQUbUIkSmjAB8ZJIP79aj2cdqz2F1Lb+Z+5GwHvCrbLtg==", - "dev": true - }, - "canonical-path": { - "version": "0.0.2", - "resolved": "http://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", - "integrity": "sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ=", - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "@bazel/hide-bazel-files": { + "version": "0.39.1", + "resolved": "https://registry.npmjs.org/@bazel/hide-bazel-files/-/hide-bazel-files-0.39.1.tgz", + "integrity": "sha512-nmILMfF8wD3hR3+r0MUCqPahgBYszLKFBcrbnmYthG6Oujgy1NpYMjeWj7Hjt3pJMkT1MgQP/VipLu2gQyMc0Q==", "dev": true }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", - "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "@compodoc/compodoc": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.11.tgz", + "integrity": "sha512-3PGTf64Eug1SIcdQole2KkVftBMFjKzecBytLHy4+MQYcblAQM0O3a4GoxuWwN7cTawVq4eqSJTtf6My1I/oHA==", + "dev": true, + "requires": { + "@compodoc/ngd-transformer": "^2.0.0", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.3", + "chokidar": "^3.1.1", + "colors": "^1.4.0", + "commander": "^3.0.2", + "cosmiconfig": "^5.2.1", + "decache": "^4.5.1", + "fancy-log": "^1.3.3", + "findit2": "^2.2.3", + "fs-extra": "^8.0.1", + "glob": "^7.1.4", + "handlebars": "^4.3.3", + "html-entities": "^1.2.1", + "i18next": "^17.0.16", + "inside": "^1.0.0", + "json5": "^2.1.0", + "live-server": "^1.2.1", + "lodash": "^4.17.15", + "loglevel": "^1.6.4", + "loglevel-plugin-prefix": "^0.8.4", + "lunr": "^2.3.6", + "marked": "^0.7.0", + "minimist": "^1.2.0", + "opencollective-postinstall": "^2.0.2", + "os-name": "^3.1.0", + "pdfmake": "^0.1.60", + "semver": "^6.3.0", + "traverse": "^0.6.6", + "ts-simple-ast": "12.4.0", + "uuid": "^3.3.3" }, "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "minimist": "^1.2.0" } } } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", - "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "@compodoc/ngd-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz", + "integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.2", - "htmlparser2": "3.10.0", - "lodash": "4.17.11", - "parse5": "3.0.3" + "ansi-colors": "^1.0.1", + "fancy-log": "^1.3.2", + "typescript": "^2.4.2" }, "dependencies": { - "domelementtype": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.5.1", - "entities": "1.1.2", - "inherits": "2.0.3", - "readable-stream": "3.0.6" - } - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { - "@types/node": "8.9.5" + "ansi-wrap": "^0.1.0" } }, - "readable-stream": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", - "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + } + } + }, + "@compodoc/ngd-transformer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.0.0.tgz", + "integrity": "sha512-9J0KkmuuuvDHxH0oREgrgbqdEFqcltQXIBofeYdIyMKzI3A+pN1Ji4zfi7x1ql0Ax7qQKemp8XWP+cCpP0qY+w==", + "dev": true, + "requires": { + "@compodoc/ngd-core": "~2.0.0", + "dot": "^1.1.1", + "fs-extra": "^4.0.1", + "viz.js": "^1.8.0" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "inherits": "2.0.3", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-H2R13IvZdM6gei2vOGSzF7HdMyw=", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" } }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz", - "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==", - "dev": true - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "circular-dependency-plugin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", - "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "@ngtools/webpack": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.17.tgz", + "integrity": "sha512-p25r68mDut9TGwaBMX98loTlq00gos++LRINgi4wRBAYbYmQQ2GDQw+1hWicx9V+gNEJ21Vm96miUoiQJwxNsg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "@angular-devkit/core": "8.3.17", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.1", + "webpack-sources": "1.4.3" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "tslib": "^1.9.0" } } } }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@schematics/angular": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.17.tgz", + "integrity": "sha512-Ot++j7vpEBKUD+D6eQxIJto+PYR2HPR9hmBoshZ2nt1/mU3OPEpIMIO/OBnbVtGmuzKXdq2n2NvbPtnhlxWplA==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17" + } + }, + "@schematics/update": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.17.tgz", + "integrity": "sha512-42CqIcm0i1BfBXYm6YuE8Q6kEEb0ATYiPYJQTgmb+bZSF2Sl9eAzPBaackW2EwVK1JP3Rdyl2S31OwGvgAk6xA==", "dev": true, "requires": { - "source-map": "0.6.1" + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.5", + "rxjs": "6.4.0", + "semver": "6.3.0", + "semver-intersect": "1.4.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } } } }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "defer-to-connect": "^1.0.1" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", + "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", "dev": true }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", "dev": true, "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" + "@types/jasmine": "*" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, - "code-block-writer": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-7.2.2.tgz", - "integrity": "sha512-8SyXM1bWsMDCzvCoTdnDBhnnUbHntxcba4ApBIO3S3QX0M2Iq0xZCzs6SYdBOGaSUi4drysvrAK15JoXhlpsvQ==", + "@types/node": { + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", "dev": true }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "codelyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", - "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", "dev": true, "requires": { - "app-root-path": "2.1.0", - "css-selector-tokenizer": "0.7.1", - "cssauron": "1.4.0", - "semver-dsl": "1.0.1", - "source-map": "0.5.7", - "sprintf-js": "1.1.1" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", - "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", - "dev": true - } + "@types/node": "*" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "@types/selenium-webdriver": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", + "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", "dev": true }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", "dev": true }, - "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", "dev": true }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", "dev": true, "requires": { - "lodash": "4.17.11" + "@webassemblyjs/wast-printer": "1.8.5" } }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" } }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } }, - "compressible": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", - "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "dev": true, "requires": { - "mime-db": "1.37.0" + "@xtuc/ieee754": "^1.2.0" } }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", "dev": true, "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.15", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.2", - "vary": "1.1.2" + "@xtuc/long": "4.2.2" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", "dev": true, "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" } }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.14", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" } }, - "connect": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.1.tgz", - "integrity": "sha1-bTDXpjx/FwhXprOqazY9lz3KWI4=", + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", "dev": true, "requires": { - "debug": "2.2.0", - "finalhandler": "0.5.1", - "parseurl": "1.3.2", - "utils-merge": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "finalhandler": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", - "integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=", - "dev": true, - "requires": { - "debug": "2.2.0", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true - } + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" } }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", "dev": true, "requires": { - "date-now": "0.1.4" + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "acorn": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", "dev": true }, - "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.3.0", - "serialize-javascript": "1.5.0" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + } } }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", + "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "adm-zip": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", + "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", "dev": true }, - "cors": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", - "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" - } + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - } + "es6-promisify": "^5.0.0" } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" + "humanize-ms": "^1.2.1" } }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "capture-stack-trace": "1.0.1" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" + "type-fest": "^0.5.2" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "ansi-wrap": "0.1.0" } }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", "dev": true }, - "css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "css-select": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.2", - "domutils": "1.5.1", - "nth-check": "1.0.2" + "color-convert": "^1.9.0" } }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "css-what": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", - "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", - "dev": true - }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "apache-crypt": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", + "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", "dev": true, "requires": { - "through": "2.3.8" + "unix-crypt-td-js": "^1.0.0" } }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "apache-md5": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", + "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", "dev": true }, - "cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", + "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "default-require-extensions": "^1.0.0" } }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "d3": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.7.0.tgz", - "integrity": "sha512-8KEIfx+dFm8PlbJN9PI0suazrZ41QcaAufsKE9PRcqYPWLngHIyWJZX96n6IQKePGgeSu0l7rtlueSSNq8Zc3g==", - "requires": { - "d3-array": "1.2.4", - "d3-axis": "1.0.12", - "d3-brush": "1.0.6", - "d3-chord": "1.0.6", - "d3-collection": "1.0.7", - "d3-color": "1.2.3", - "d3-contour": "1.3.2", - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-dsv": "1.0.10", - "d3-ease": "1.0.5", - "d3-fetch": "1.1.2", - "d3-force": "1.1.2", - "d3-format": "1.3.2", - "d3-geo": "1.11.3", - "d3-hierarchy": "1.1.8", - "d3-interpolate": "1.3.2", - "d3-path": "1.0.7", - "d3-polygon": "1.0.5", - "d3-quadtree": "1.0.5", - "d3-random": "1.1.2", - "d3-scale": "2.1.2", - "d3-scale-chromatic": "1.3.3", - "d3-selection": "1.3.2", - "d3-shape": "1.2.2", - "d3-time": "1.0.10", - "d3-time-format": "2.1.3", - "d3-timer": "1.0.9", - "d3-transition": "1.1.3", - "d3-voronoi": "1.1.4", - "d3-zoom": "1.7.3" + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" } }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, - "d3-brush": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.6.tgz", - "integrity": "sha512-lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-interpolate": "1.3.2", - "d3-selection": "1.3.2", - "d3-transition": "1.1.3" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1.2.4", - "d3-path": "1.0.7" - } + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true }, - "d3-color": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.3.tgz", - "integrity": "sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw==" + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, "requires": { - "d3-array": "1.2.4" + "array-uniq": "^1.0.1" } }, - "d3-dispatch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.5.tgz", - "integrity": "sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g==" + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true }, - "d3-drag": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.3.tgz", - "integrity": "sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-selection": "1.3.2" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, - "d3-dsv": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.10.tgz", - "integrity": "sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g==", - "requires": { - "commander": "2.19.0", - "iconv-lite": "0.4.24", - "rw": "1.3.3" - } + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true }, - "d3-ease": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz", - "integrity": "sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ==" + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true }, - "d3-fetch": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", - "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, "requires": { - "d3-dsv": "1.0.10" + "safer-buffer": "~2.1.0" } }, - "d3-force": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.2.tgz", - "integrity": "sha512-p1vcHAUF1qH7yR+e8ip7Bs61AHjLeKkIn8Z2gzwU2lwEf2wkSpWdjXG0axudTHsVFnYGlMkFaEsVy2l8tAg1Gw==", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, "requires": { - "d3-collection": "1.0.7", - "d3-dispatch": "1.0.5", - "d3-quadtree": "1.0.5", - "d3-timer": "1.0.9" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "d3-format": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.3.2.tgz", - "integrity": "sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ==" - }, - "d3-geo": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.3.tgz", - "integrity": "sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ==", - "requires": { - "d3-array": "1.2.4" - } - }, - "d3-hierarchy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", - "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==" - }, - "d3-interpolate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz", - "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==", - "requires": { - "d3-color": "1.2.3" - } - }, - "d3-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.7.tgz", - "integrity": "sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA==" - }, - "d3-polygon": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.5.tgz", - "integrity": "sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w==" - }, - "d3-quadtree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.5.tgz", - "integrity": "sha512-U2tjwDFbZ75JRAg8A+cqMvqPg1G3BE7UTJn3h8DHjY/pnsAfWdbJKgyfcy7zKjqGtLAmI0q8aDSeG1TVIKRaHQ==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.1.2.tgz", - "integrity": "sha512-bESpd64ylaKzCDzvULcmHKZTlzA/6DGSVwx7QSDj/EnX9cpSevsdiwdHFYI9ouo9tNBbV3v5xztHS2uFeOzh8Q==", - "requires": { - "d3-array": "1.2.4", - "d3-collection": "1.0.7", - "d3-format": "1.3.2", - "d3-interpolate": "1.3.2", - "d3-time": "1.0.10", - "d3-time-format": "2.1.3" - } - }, - "d3-scale-chromatic": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz", - "integrity": "sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw==", - "requires": { - "d3-color": "1.2.3", - "d3-interpolate": "1.3.2" - } - }, - "d3-selection": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.3.2.tgz", - "integrity": "sha512-OoXdv1nZ7h2aKMVg3kaUFbLLK5jXUFAMLD/Tu5JA96mjf8f2a9ZUESGY+C36t8R1WFeWk/e55hy54Ml2I62CRQ==" - }, - "d3-shape": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.2.tgz", - "integrity": "sha512-hUGEozlKecFZ2bOSNt7ENex+4Tk9uc/m0TtTEHBvitCBxUNjhzm5hS2GrrVRD/ae4IylSmxGeqX5tWC2rASMlQ==", - "requires": { - "d3-path": "1.0.7" - } - }, - "d3-time": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.10.tgz", - "integrity": "sha512-hF+NTLCaJHF/JqHN5hE8HVGAXPStEq6/omumPE/SxyHVrR7/qQxusFDo0t0c/44+sCGHthC7yNGFZIEgju0P8g==" - }, - "d3-time-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.3.tgz", - "integrity": "sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA==", - "requires": { - "d3-time": "1.0.10" - } - }, - "d3-timer": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz", - "integrity": "sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg==" - }, - "d3-transition": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.3.tgz", - "integrity": "sha512-tEvo3qOXL6pZ1EzcXxFcPNxC/Ygivu5NoBY6mbzidATAeML86da+JfVIUzon3dNM6UX6zjDx+xbYDmMVtTSjuA==", + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, "requires": { - "d3-color": "1.2.3", - "d3-dispatch": "1.0.5", - "d3-ease": "1.0.5", - "d3-interpolate": "1.3.2", - "d3-selection": "1.3.2", - "d3-timer": "1.0.9" + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, - "d3-zoom": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.3.tgz", - "integrity": "sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-interpolate": "1.3.2", - "d3-selection": "1.3.2", - "d3-transition": "1.1.3" - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "dev": true, + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=", "dev": true }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "requires": { - "ms": "2.0.0" + "lodash": "^4.17.14" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "deep-equal": { + "async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "default-gateway": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", - "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", "dev": true, "requires": { - "execa": "0.10.0", - "ip-regex": "2.1.0" + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "2.0.0" - } + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "1.0.12" - } + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "kind-of": "6.0.2" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true } } }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", - "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "repeating": "2.0.1" + "babel-runtime": "^6.22.0" } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "object.assign": "^4.1.0" } }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "utila": "0.4.0" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.2", - "void-elements": "2.0.1" - } + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.2" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, - "domelementtype": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", - "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==", + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, - "domhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", - "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "requires": { - "domelementtype": "1.2.1" + "safe-buffer": "5.1.2" } }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.2.1" + "tweetnacl": "^0.14.3" } }, - "dot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", - "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", "dev": true }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true, "requires": { - "is-obj": "1.0.1" + "callsite": "1.0.0" } }, - "duplexer": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, - "electron-to-chromium": { - "version": "1.3.83", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz", - "integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==", + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "minimist": "^1.2.0" } }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, "requires": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true, - "requires": { - "mime-types": "2.1.21", - "negotiator": "0.6.1" - } + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true }, "debug": { - "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true } } }, - "engine.io-client": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "1.1.2", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "ms": "0.7.2" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", "dev": true } } }, - "engine.io-parser": { - "version": "1.3.2", - "resolved": "http://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "memory-fs": "0.4.1", - "tapable": "1.1.0" + "fill-range": "^7.0.1" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", "dev": true, "requires": { - "prr": "1.0.1" + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" } }, - "error-ex": { + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "brotli": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "base64-js": "^1.1.2" } }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } } }, - "es-to-primitive": { + "browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "es6-promise": "4.2.5" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "dev": true, + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - } + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "browserslist": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", + "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", "dev": true, "requires": { - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } + "caniuse-lite": "^1.0.30000984", + "electron-to-chromium": "^1.3.191", + "node-releases": "^1.1.25" } }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "browserstack": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", + "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, - "estree-walker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", - "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", "dev": true }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" - } + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true }, - "eventemitter3": { + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", "dev": true }, - "events": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "1.0.2" + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", + "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "pump": "^3.0.0" } + }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true } } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", "dev": true, "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" }, "dependencies": { - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", "dev": true, "requires": { - "expand-range": "0.1.1" + "@types/node": "*" } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + } + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" + "is-glob": "^4.0.1" } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -4503,5463 +3949,7410 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" + "is-descriptor": "^0.1.0" } } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { - "fill-range": "2.2.4" + "source-map": "~0.6.0" }, "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", - "qs": "6.5.2", - "range-parser": "1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - } + "restore-cursor": "^3.1.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "ansi-regex": "^3.0.0" } } } }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-block-writer": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-7.3.1.tgz", + "integrity": "sha512-3Jfe6ZmmGzvdQWFo3MUzobn3WdX++jc3Tj0rsviJWYPnP7NGMFEE4qheNeOXeJgB1TTgxYT8XuNvhS/u596yGg==", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", + "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "app-root-path": "^2.1.0", + "css-selector-tokenizer": "^0.7.0", + "cssauron": "^1.4.0", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-glob": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.3.tgz", - "integrity": "sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.3", - "micromatch": "3.1.10" + "color-name": "1.1.3" } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "delayed-stream": "~1.0.0" } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "mime-db": ">= 1.40.0 < 2" } }, - "file-loader": { - "version": "1.1.11", - "resolved": "http://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", - "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.7" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "glob": "7.1.3", - "minimatch": "3.0.4" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "fill-range": { + "configstore": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "is-extendable": "0.1.1" + "pify": "^3.0.0" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true } } }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "find-cache-dir": { + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "safe-buffer": "5.1.2" } }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "locate-path": "2.0.0" + "safe-buffer": "~5.1.1" } }, - "findit2": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", - "integrity": "sha1-WKRmaX34piBc39vzlVNri9d3pfY=", + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", "dev": true }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, - "follow-redirects": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==", + "dev": true, + "requires": { + "cacache": "^11.3.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + } + } + }, + "core-js": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", + "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==" + }, + "core-js-compat": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", + "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", "dev": true, "requires": { - "debug": "3.1.0" + "browserslist": "^4.7.2", + "semver": "^6.3.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "browserslist": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", + "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", "dev": true, "requires": { - "ms": "2.0.0" + "caniuse-lite": "^1.0.30001004", + "electron-to-chromium": "^1.3.295", + "node-releases": "^1.1.38" } + }, + "caniuse-lite": { + "version": "1.0.30001008", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", + "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", + "dev": true } } }, - "for-in": { + "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "requires": { - "for-in": "1.0.2" + "object-assign": "^4", + "vary": "^1" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "map-cache": "0.2.2" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "null-check": "1.0.0" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, - "fs.realpath": { + "crypto-js": { + "version": "3.1.9-1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", + "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=", + "dev": true + }, + "crypto-random-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", "dev": true, - "optional": true, "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { + "regexpu-core": { "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, - "optional": true, "requires": { - "ms": "2.0.0" + "jsesc": "~0.5.0" } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true } } }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "through": "X.X.X" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "1.2.1" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", "dev": true }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "d3": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.12.0.tgz", + "integrity": "sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.3.tgz", + "integrity": "sha512-v8bbYyCFKjyCzFk/tdWqXwDykY8YWqhXYjcYxfILIit085VZOpj4XJKOMccTsvWxgzSLMJQg5SiqHjslsipEDg==", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } + "d3-array": "1", + "d3-path": "1" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, + "d3-color": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.0.tgz", + "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==" + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", "requires": { - "ini": "1.3.5" + "d3-array": "^1.1.1" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "d3-dispatch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.5.tgz", + "integrity": "sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g==" }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, + "d3-drag": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.4.tgz", + "integrity": "sha512-ICPurDETFAelF1CTHdIyiUM4PsyZLaM+7oIBhmyP+cuVjze5vDZ8V//LdOFjg0jGnFIZD/Sfmk0r95PSiu78rw==", "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "d3-dispatch": "1", + "d3-selection": "1" } }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, + "d3-dsv": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.1.1.tgz", + "integrity": "sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw==", "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "minimatch": "3.0.4" + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" } }, - "got": { - "version": "6.7.1", - "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "d3-ease": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz", + "integrity": "sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ==" + }, + "d3-fetch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", + "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", + "requires": { + "d3-dsv": "1" } }, - "graceful-fs": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.14.tgz", - "integrity": "sha512-ns/IGcSmmGNPP085JCheg0Nombh1QPvSCnlx+2V+byQWRQEIL4ZB5jXJMNIHOFVS1roi85HIi5Ka0h43iWXfcQ==", - "dev": true + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true + "d3-format": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.1.tgz", + "integrity": "sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g==" }, - "handlebars": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", - "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", - "dev": true, + "d3-geo": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.6.tgz", + "integrity": "sha512-z0J8InXR9e9wcgNtmVnPTj0TU8nhYT6lD/ak9may2PdKqXIeHUr8UbFLoCtrPYNsjv6YaLvSDQVl578k6nm7GA==", "requires": { - "async": "2.6.1", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "d3-array": "1" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "d3-hierarchy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", + "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==" }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, + "d3-interpolate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz", + "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - } + "d3-color": "1" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, + "d3-path": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.8.tgz", + "integrity": "sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg==" + }, + "d3-polygon": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.5.tgz", + "integrity": "sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w==" + }, + "d3-quadtree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.6.tgz", + "integrity": "sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA==" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", "requires": { - "function-bind": "1.1.1" + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", "requires": { - "ansi-regex": "2.1.1" + "d3-color": "1", + "d3-interpolate": "1" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", - "dev": true, + "d3-selection": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.0.tgz", + "integrity": "sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg==" + }, + "d3-shape": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.5.tgz", + "integrity": "sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==", "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "d3-path": "1" } }, - "has-cors": { + "d3-time": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "d3-time-format": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.1.tgz", + "integrity": "sha512-VA6WqORO1+H1SvSzgl2oT0z3niANh3opa8Cencpen1LFthw/bEX71R/DgjPlWw78J4UHmD0jCPP1W0HpwMkhjg==", + "requires": { + "d3-time": "1" + } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "d3-timer": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz", + "integrity": "sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg==" }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, + "d3-transition": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.2.0.tgz", + "integrity": "sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw==", "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "assert-plus": "^1.0.0" } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "ms": "^2.1.1" } }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decache": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz", + "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "callsite": "^1.0.0" } }, - "he": { + "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "mimic-response": "^1.0.0" } }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz", + "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz", + "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==", "dev": true }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "camel-case": "3.0.0", - "clean-css": "4.2.1", - "commander": "2.17.1", - "he": "1.2.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.4.9" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - } + "object-keys": "^1.0.12" } }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "http://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "html-minifier": "3.5.21", - "loader-utils": "0.2.17", - "lodash": "4.17.11", - "pretty-error": "2.1.1", - "tapable": "1.1.0", - "toposort": "1.0.7", - "util.promisify": "1.0.0" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "htmlparser2": { - "version": "3.3.0", - "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", - "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "requires": { - "domelementtype": "1.2.1", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" }, "dependencies": { - "domutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", - "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", - "dev": true, - "requires": { - "domelementtype": "1.2.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true } } }, - "http-auth": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", - "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "apache-crypt": "1.2.1", - "apache-md5": "1.1.2", - "bcryptjs": "2.4.3", - "uuid": "3.3.2" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "repeating": "^2.0.0" } }, - "http-parser-js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", - "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", "dev": true }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.9", - "requires-port": "1.0.0" + "asap": "^2.0.0", + "wrappy": "1" } }, - "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.0", - "lodash": "4.17.11", - "micromatch": "3.1.10" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.15.2" + "path-type": "^3.0.0" } }, - "https-browserify": { + "dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, - "https-proxy-agent": { + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, - "i18next": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-12.0.0.tgz", - "integrity": "sha512-Zy/nFpmBZxgmi6k9HkHbf+MwvAwiY5BDzNjNfvyLPKyalc2YBwwZtblESDlTKLDO8XSv23qYRY2uZcADDlRSjQ==", + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, "requires": { - "safer-buffer": "2.1.2" + "domelementtype": "1" } }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", + "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", "dev": true }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, - "optional": true + "requires": { + "readable-stream": "^2.0.2" + } }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { - "import-from": "2.1.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "import-lazy": { + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.302", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.302.tgz", + "integrity": "sha512-1qConyiVEbj4xZRBXqtGR003+9tV0rJF0PS6aeO0Ln/UL637js9hdwweCl07meh/kJoI2N4W8q3R3g3F5z46ww==", + "dev": true + }, + "elliptic": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "dev": true, "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "ms": "2.0.0" } }, - "p-limit": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "p-try": "2.0.0" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "p-limit": "2.0.0" + "ms": "2.0.0" } }, - "p-try": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "find-up": "3.0.0" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "dev": true, "requires": { - "repeating": "2.0.1" + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" } }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, - "injection-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.1.tgz", - "integrity": "sha512-zHI+E+dM0PXix5FFTO1Y4/UOyAzE7zG1l/QwAn4jchTThOoBq+UYRFK4AVG7lQgFL+go62SbrzSsjXy9DFEZUg==", + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", "dev": true }, - "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.2.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" } }, - "inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/inside/-/inside-1.0.0.tgz", - "integrity": "sha1-20Xpk1c82z23C5gy6ChbrUZCR3A=", - "dev": true - }, - "internal-ip": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", - "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "default-gateway": "2.7.2", - "ipaddr.js": "1.8.0" + "is-arrayish": "^0.2.1" } }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", "dev": true, "requires": { - "loose-envify": "1.4.0" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-relative": "1.0.0", - "is-windows": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "es5-ext": { + "version": "0.10.52", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", + "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.2", + "next-tick": "~1.0.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "binary-extensions": "1.12.0" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "ci-info": "1.6.0" + "es6-promise": "^4.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "kind-of": "3.2.2" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "d": "1", + "es5-ext": "~0.10.14" } } } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "is-primitive": "2.0.0" + "estraverse": "^4.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "d": "1", + "es5-ext": "~0.10.14" } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" } }, - "is-glob": { + "eventemitter3": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "original": "^1.0.0" } }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "is-module": { + "execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dev": true, "requires": { - "kind-of": "3.2.2" + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "is-buffer": "1.1.6" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true } } }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "ext": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", + "integrity": "sha512-/KLjJdTNyDepCihrk4HQt57nAE1IRCEo5jUt+WgWGCr1oARhibDvmI2DMcSNWood1T9AUWwq+jaV1wvRqaXfnA==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", + "dev": true + } + } }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "is-plain-object": { + "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "isobject": "3.0.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "is-promise": { + "falafel": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", "dev": true, "requires": { - "has": "1.0.3" + "acorn": "^5.0.0", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", "dev": true, "requires": { - "is-unc-path": "1.0.0" + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "requires": { - "has-symbols": "1.0.0" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "unc-path-regex": "0.1.2" + "websocket-driver": ">=0.5.1" } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "file-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", + "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", "dev": true, "requires": { - "buffer-alloc": "1.2.0" + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.12", - "js-yaml": "3.12.0", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.1", - "wordwrap": "1.0.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "ms": "2.0.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } } } }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "find-cache-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", + "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", "dev": true, "requires": { - "async": "2.6.1", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.1", - "istanbul-lib-hook": "1.2.2", - "istanbul-lib-instrument": "1.10.2", - "istanbul-lib-report": "1.1.5", - "istanbul-lib-source-maps": "1.2.6", - "istanbul-reports": "1.5.1", - "js-yaml": "3.12.0", - "mkdirp": "0.5.1", - "once": "1.4.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "pkg-dir": "^4.1.0" }, "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "lodash": "4.17.11" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } - } - } - }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", - "dev": true, - "requires": { - "convert-source-map": "1.6.0", - "istanbul-lib-instrument": "1.10.2", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "p-locate": "^4.1.0" } }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "make-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", + "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "ajv": "5.5.2" + "find-up": "^4.0.0" } } } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", "dev": true }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "append-transform": "0.4.0" + "locate-path": "^3.0.0" } }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "findit2": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", + "integrity": "sha1-WKRmaX34piBc39vzlVNri9d3pfY=", + "dev": true + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.1", - "semver": "5.6.0" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "follow-redirects": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", + "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.6", - "supports-color": "3.2.3" + "debug": "^3.0.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "has-flag": "1.0.0" + "ms": "^2.1.1" } } } }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "fontkit": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.0.tgz", + "integrity": "sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ==", "dev": true, "requires": { - "debug": "3.2.6", - "istanbul-lib-coverage": "1.2.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "babel-runtime": "^6.11.6", + "brfs": "^1.4.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.0", + "clone": "^1.0.1", + "deep-equal": "^1.0.0", + "dfa": "^1.0.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.0.0", + "unicode-trie": "^0.3.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", "dev": true, "requires": { - "ms": "2.1.1" + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } } } }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "handlebars": "4.0.12" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "exit": "0.1.2", - "glob": "7.1.3", - "jasmine-core": "2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - } + "map-cache": "^0.2.2" } }, - "jasmine-core": { - "version": "2.99.1", - "resolved": "http://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "colors": "1.1.2" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - } + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "fsevents": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz", + "integrity": "sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==", + "dev": true, + "optional": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "graceful-fs": "4.1.14" + "assert-plus": "^1.0.0" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "jszip": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", - "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "core-js": "2.3.0", - "es6-promise": "3.0.2", - "lie": "3.1.1", - "pako": "1.0.6", - "readable-stream": "2.0.6" - }, - "dependencies": { - "core-js": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", - "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", - "dev": true - }, - "es6-promise": { - "version": "3.0.2", - "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "karma": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", - "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", - "dev": true, - "requires": { - "bluebird": "3.5.2", - "body-parser": "1.18.3", - "chokidar": "1.7.0", - "colors": "1.3.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.5.7", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.3", - "graceful-fs": "4.1.14", - "http-proxy": "1.17.0", - "isbinaryfile": "3.0.3", - "lodash": "3.10.1", - "log4js": "0.6.38", - "mime": "1.6.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "socket.io": "1.7.3", - "source-map": "0.5.7", - "tmp": "0.0.31", - "useragent": "2.3.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "1.3.2", - "utils-merge": "1.0.1" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "is-extglob": "^2.1.0" } } } }, - "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "fs-access": "1.0.1", - "which": "1.3.1" + "ini": "^1.3.4" } }, - "karma-coverage-istanbul-reporter": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", - "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", - "dev": true, - "requires": { - "istanbul-api": "1.3.7", - "minimatch": "3.0.4" - } - }, - "karma-firefox-launcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz", - "integrity": "sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA==", - "dev": true - }, - "karma-jasmine": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "http://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "karma-jasmine": "1.1.2" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, - "karma-source-map-support": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", - "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "source-map-support": "0.5.9" + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "4.0.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "leb": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", - "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=", + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, - "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "handlebars": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", + "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", "dev": true, "requires": { - "clone": "2.1.2", - "errno": "0.1.7", - "graceful-fs": "4.1.14", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.88.0", - "source-map": "0.6.1" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true + "dev": true } } }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "clone": "2.1.2", - "loader-utils": "1.1.0", - "pify": "3.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "function-bind": "^1.1.1" } }, - "license-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-Of/H79rZqm2aeg4RnP9SMSh19qkKemoLT5VaJV58uH5AxeYWEcBgGFs753JEJ/Hm6BPvQVfIlrrjoBwYj8p7Tw==", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ejs": "2.6.1" + "ansi-regex": "^2.0.0" } }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", "dev": true, "requires": { - "immediate": "3.0.6" + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } } }, - "live-server": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.0.tgz", - "integrity": "sha1-RJhkS7+Bpm8Y3Y3/3vYcTBw3TKM=", + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "chokidar": "1.7.0", - "colors": "1.3.2", - "connect": "3.5.1", - "cors": "2.8.4", - "event-stream": "4.0.1", - "faye-websocket": "0.11.1", - "http-auth": "3.1.3", - "morgan": "1.9.1", - "object-assign": "4.1.1", - "opn": "5.4.0", - "proxy-middleware": "0.15.0", - "send": "0.16.2", - "serve-index": "1.9.1" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" - } - }, - "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "is-buffer": "^1.1.5" } } } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", "dev": true }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", "dev": true }, - "log4js": { - "version": "0.6.38", - "resolved": "http://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "semver": { - "version": "4.3.6", - "resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true } } }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + } }, - "long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, - "lunr": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.5.tgz", - "integrity": "sha512-EtnfmHsHJTr3u24sito9JctSxej5Ds0SgUD2Lm+qRHyLgM7BGesFlW14eNh1mil0fV5Muh8gf3dBBXzADlUlzQ==", - "dev": true + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, - "macos-release": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz", - "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "magic-string": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", - "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { - "sourcemap-codec": "1.4.3" + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { - "pify": "3.0.0" + "ms": "^2.0.0" } }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", - "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "i18next": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-17.3.1.tgz", + "integrity": "sha512-4nY+yaENaoZKmpbiDXPzucVHCN3hN9Z9Zk7LyQXVOKVIpnYOJ3L/yxHJlBPtJDq3PGgjFwA0QBFm/26Z0iDT5A==", "dev": true, "requires": { - "p-defer": "1.0.0" + "@babel/runtime": "^7.3.1" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", "dev": true, "requires": { - "object-visit": "1.0.1" + "minimatch": "^3.0.4" } }, - "marked": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", - "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==", - "dev": true + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "import-from": "^2.1.0" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "map-age-cleaner": "0.1.2", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "resolve-from": "^3.0.0" } }, - "meow": { - "version": "3.7.0", - "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "dev": true }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "injection-js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.2.tgz", + "integrity": "sha512-9K4fW2NNPG3JCvORx5G/T6q/PZYIr43RFgxBvtk3OV4omh5iqvpK4cChuBfhgPnRbXSgZRfuROh0XG5KNA8Xlg==", + "dev": true + }, + "inquirer": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", + "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/inside/-/inside-1.0.0.tgz", + "integrity": "sha1-20Xpk1c82z23C5gy6ChbrUZCR3A=", + "dev": true + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "requires": { - "mime-db": "1.37.0" + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true }, - "mini-css-extract-plugin": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz", - "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0", - "webpack-sources": "1.3.0" + "kind-of": "^3.0.2" }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "ajv": "6.4.0", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" + "is-buffer": "^1.1.5" } } } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "binary-extensions": "^2.0.0" } }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "mississippi": { + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.3" + "ci-info": "^2.0.0" } }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "kind-of": "^3.0.2" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-buffer": "^1.1.5" } } } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true }, - "morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", - "dev": true, - "requires": { - "basic-auth": "2.0.1", - "debug": "2.6.9", - "depd": "1.1.2", - "on-finished": "2.3.0", - "on-headers": "1.0.1" - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "number-is-nan": "^1.0.0" } }, - "ms": { + "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.3" + "is-extglob": "^2.1.1" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } } }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", "dev": true }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, - "ng-packagr": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-3.0.6.tgz", - "integrity": "sha512-gVhJdrf0RNygxBLk6Qfby7l+y6pIjpVikyS95wuKPwzihvW14cz/KNKQOwNPbKCeVwPhVxflpH2atW5vxsq9cQ==", - "dev": true, - "requires": { - "@ngtools/json-schema": "1.1.0", - "autoprefixer": "8.6.5", - "browserslist": "3.2.8", - "chalk": "2.4.1", - "commander": "2.19.0", - "fs-extra": "6.0.1", - "glob": "7.1.3", - "injection-js": "2.2.1", - "less": "3.8.1", - "node-sass": "4.10.0", - "node-sass-tilde-importer": "1.0.2", - "postcss": "6.0.23", - "postcss-clean": "1.1.0", - "postcss-url": "7.3.2", - "read-pkg-up": "3.0.0", - "rimraf": "2.6.2", - "rollup": "0.59.4", - "rollup-plugin-commonjs": "9.2.0", - "rollup-plugin-node-resolve": "3.4.0", - "rollup-plugin-sourcemaps": "0.4.2", - "rxjs": "6.3.3", - "strip-bom": "3.0.0", - "stylus": "0.54.5", - "uglify-js": "3.4.9", - "update-notifier": "2.5.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "requires": { - "graceful-fs": "4.1.14", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.14", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "is-path-inside": "^2.1.0" } }, - "node-fetch": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", - "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "path-is-inside": "^1.0.2" } }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.14", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } + "isobject": "^3.0.1" } }, - "node-libs-browser": { + "is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-sass": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz", - "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==", - "dev": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.3", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.11.1", - "node-gyp": "3.8.0", - "npmlog": "4.1.2", - "request": "2.88.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.1", - "true-case-path": "1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "node-sass-tilde-importer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz", - "integrity": "sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==", - "dev": true, - "requires": { - "find-parent-dir": "0.3.0" - } + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "is-reference": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", "dev": true, "requires": { - "abbrev": "1.0.9" + "@types/estree": "0.0.39" } }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "has": "^1.0.1" } }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "is-unc-path": "^1.0.0" } }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.6.0", - "validate-npm-package-name": "3.0.0" + "has-symbols": "^1.0.0" } }, - "npm-registry-client": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", - "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "graceful-fs": "4.1.14", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.88.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.6.0", - "slide": "1.1.6", - "ssri": "5.3.0" - } + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { - "path-key": "2.0.1" + "unc-path-regex": "^0.1.2" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, - "nth-check": { + "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "1.0.0" - } + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "ajv": "^5.0.0" } } } }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", "dev": true, "requires": { - "isobject": "3.0.1" + "append-transform": "^0.4.0" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "for-in": "1.0.2" + "has-flag": "^1.0.0" } } } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "opencollective": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", - "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", "dev": true, "requires": { - "babel-polyfill": "6.23.0", - "chalk": "1.1.3", - "inquirer": "3.0.6", - "minimist": "1.2.0", - "node-fetch": "1.6.3", - "opn": "4.0.2" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "external-editor": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "inquirer": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", - "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "chalk": "1.1.3", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx": "4.1.0", - "string-width": "2.1.1", - "strip-ansi": "3.0.1", - "through": "2.3.8" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "opn": { - "version": "4.0.2", - "resolved": "http://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "ms": "^2.1.1" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "handlebars": "^4.0.3" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" }, "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true } } }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "colors": "1.1.2" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + } } }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", "dev": true, "requires": { - "url-parse": "1.4.3" + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "lcid": "1.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "os-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz", - "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=", - "dev": true, - "requires": { - "macos-release": "1.1.0", - "win-release": "1.1.1" - } + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, - "os-tmpdir": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "p-try": "1.0.0" + "minimist": "^1.2.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "p-limit": "1.3.0" + "graceful-fs": "^4.1.6" } }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.6.0" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "jszip": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", + "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" } }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "karma": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz", + "integrity": "sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.1.0", + "connect": "^3.6.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.14", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, "requires": { - "no-case": "2.3.2" + "fs-access": "^1.0.0", + "which": "^1.2.1" } }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "karma-coverage-istanbul-reporter": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", + "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17" + "istanbul-api": "^1.3.1", + "minimatch": "^3.0.4" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "karma-firefox-launcher": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz", + "integrity": "sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ==", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "is-wsl": "^2.1.0" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } } } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.2" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", "dev": true }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", "dev": true, "requires": { - "better-assert": "1.0.2" + "karma-jasmine": "^1.0.2" } }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "requires": { - "better-assert": "1.0.2" + "source-map-support": "^0.5.5" } }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "better-assert": "1.0.2" + "json-buffer": "3.0.0" } }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { + "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "through": "2.3.8" + "package-json": "^6.3.0" } }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "invert-kv": "^2.0.0" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "less": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", "dev": true, "requires": { - "pinkie": "2.0.4" + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } } }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "less-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", + "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", "dev": true, "requires": { - "find-up": "2.1.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" } }, - "portfinder": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.19.tgz", - "integrity": "sha512-23aeQKW9KgHe6citUrG3r9HjeX6vls0h713TAa+CwTKZwNIr/pD2ApaxYF4Um3ZZyq4ar+Siv3+fhoHaIwSOSw==", + "less-plugin-npm-import": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz", + "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=", "dev": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" + "promise": "~7.0.1", + "resolve": "~1.1.6" }, "dependencies": { - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "promise": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", + "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "asap": "~2.0.3" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true } } }, - "postcss-clean": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-clean/-/postcss-clean-1.1.0.tgz", - "integrity": "sha512-83g3GqMbCM5NL6MlbbPLJ/m2NrUepBF44MoDk4Gt04QGXeXKh9+ilQa0DzLnYnvqYHQCw83nckuEzBFr2muwbg==", - "dev": true, - "requires": { - "clean-css": "4.2.1", - "postcss": "6.0.23" - } - }, - "postcss-import": { - "version": "11.1.0", - "resolved": "http://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1", - "read-cache": "1.0.0", - "resolve": "1.8.1" - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.23", - "postcss-load-config": "2.0.0", - "schema-utils": "0.4.7" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "postcss-url": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.2.tgz", - "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", + "license-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", "dev": true, "requires": { - "mime": "1.6.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "postcss": "6.0.23", - "xxhashjs": "0.2.2" + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" } }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, "requires": { - "renderkid": "2.0.2", - "utila": "0.4.0" + "immediate": "~3.0.5" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.0.2.tgz", + "integrity": "sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w==", "dev": true, - "optional": true, "requires": { - "asap": "2.0.6" + "base64-js": "0.0.8", + "brfs": "^2.0.2", + "unicode-trie": "^1.0.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + } } }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "protractor": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.3.2.tgz", - "integrity": "sha512-pw4uwwiy5lHZjIguxNpkEwJJa7hVz+bJsvaTI+IbXlfn2qXwzbF8eghW/RmrZwE2sGx82I8etb8lVjQ+JrjejA==", + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", "dev": true, "requires": { - "@types/node": "6.14.1", - "@types/q": "0.0.32", - "@types/selenium-webdriver": "2.53.43", - "blocking-proxy": "1.0.1", - "chalk": "1.1.3", - "glob": "7.1.3", - "jasmine": "2.8.0", - "jasminewd2": "2.2.0", - "optimist": "0.6.1", - "q": "1.4.1", - "saucelabs": "1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "0.4.18", - "webdriver-js-extender": "1.0.0", - "webdriver-manager": "12.1.0" + "chokidar": "^2.0.4", + "colors": "^1.4.0", + "connect": "^3.6.6", + "cors": "^2.8.5", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "^4.1.1", + "opn": "^6.0.0", + "proxy-middleware": "^0.15.0", + "send": "^0.17.1", + "serve-index": "^1.9.1" }, "dependencies": { - "@types/node": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.1.tgz", - "integrity": "sha512-lfydm+Ul6buYjF6AmcenFjqVYB+tpNlGlwWLr43J1Cok4ybLQimrM8rdB1MdrjtyWdYRceZNgsAeSRZhFxNajQ==", - "dev": true - }, - "adm-zip": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", - "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "source-map": "0.5.7" + "is-extendable": "^0.1.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } }, - "webdriver-manager": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.0.tgz", - "integrity": "sha512-oEc5fmkpz6Yh6udhwir5m0eN5mgRPq9P/NU5YWuT3Up5slt6Zz+znhLU7q4+8rwCZz/Qq3Fgpr/4oao7NPCm2A==", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "adm-zip": "0.4.11", - "chalk": "1.1.3", - "del": "2.2.2", - "glob": "7.1.3", - "ini": "1.3.5", - "minimist": "1.2.0", - "q": "1.4.1", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.6.0", - "xml2js": "0.4.19" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } - } - } - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.6.1", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "log4js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", + "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "dev": true, + "requires": { + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.4", + "streamroller": "^1.0.6" + } + }, + "loglevel": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", + "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==", + "dev": true + }, + "loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", + "dev": true + }, + "macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "dev": true + }, + "magic-string": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", + "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-fetch-happen": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.1.tgz", + "integrity": "sha512-b4dfaMvUDR67zxUq1+GN7Ke9rH5WvGRmoHuMH7l+gmUCR2tCXFP6mpeJ9Dp+jB6z8mShRopSf1vLRBhRs8Cu5w==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "dev": true, + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "ng-packagr": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.7.1.tgz", + "integrity": "sha512-NDAUcMtLyZnF3bP6JtC3ANpIQRclRDPilF7C0DsjQuIz1q0V3mT7f1PwV0jnRWy8iRpSZmJZr6AGl736gloHtQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "autoprefixer": "^9.6.0", + "browserslist": "^4.0.0", + "chalk": "^2.3.1", + "chokidar": "^3.0.0", + "clean-css": "^4.1.11", + "commander": "^3.0.0", + "fs-extra": "^8.0.0", + "glob": "^7.1.2", + "injection-js": "^2.2.1", + "less": "^3.8.0", + "less-plugin-npm-import": "^2.1.0", + "node-sass-tilde-importer": "^1.0.0", + "postcss": "^7.0.0", + "postcss-url": "^8.0.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^3.0.0", + "rollup": "1.25.2", + "rollup-plugin-commonjs": "^10.0.0", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-node-resolve": "^5.0.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "rxjs": "^6.0.0", + "sass": "^1.17.3", + "stylus": "^0.54.5", + "terser": "^4.1.2", + "update-notifier": "^3.0.0" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.39", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", + "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "node-sass-tilde-importer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz", + "integrity": "sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==", + "dev": true, + "requires": { + "find-parent-dir": "^0.3.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "npm-packlist": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", + "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "npm-registry-fetch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz", + "integrity": "sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dev": true, + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pacote": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", + "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pdfkit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.10.0.tgz", + "integrity": "sha512-mRJ6iuDzpIQ4ftKp5GvijLXNVRK86xjnyIPBraYSPrUPubNqWM5/oYmc7FZKUWz3wusRTj3PLR9HJ1X5ooqfsg==", + "dev": true, + "requires": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.0.0", + "linebreak": "^0.3.0", + "png-js": ">=0.1.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY=", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + } + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "pdfmake": { + "version": "0.1.62", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.62.tgz", + "integrity": "sha512-2QIzijdkwFBChTFu5nVmMe+fLBQTAYTPTxi4jGbUTyGxZBq7YR1I17FBk1Cs+3nrYufNKNukT6OR1RNxbovsTA==", + "dev": true, + "requires": { + "iconv-lite": "^0.5.0", + "linebreak": "^1.0.2", + "pdfkit": "^0.10.0", + "svg-to-pdfkit": "^0.1.7" + }, + "dependencies": { + "iconv-lite": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", + "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", + "integrity": "sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "png-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz", + "integrity": "sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM=", + "dev": true + }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-8.0.0.tgz", + "integrity": "sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw==", + "dev": true, + "requires": { + "mime": "^2.3.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^7.0.2", + "xxhashjs": "^0.2.1" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", + "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { @@ -9969,37 +11362,29 @@ "dev": true }, "querystringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", "dev": true }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" } }, "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -10008,63 +11393,68 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" } } } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "read-cache": { @@ -10073,127 +11463,123 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } } }, + "read-package-json": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.0.tgz", + "integrity": "sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - } + "find-up": "^3.0.0", + "read-pkg": "^5.0.0" } }, "readable-stream": { "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.14", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", "dev": true, "requires": { - "resolve": "1.8.1" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "picomatch": "^2.0.4" } }, "reflect-metadata": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", - "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, "regenerate": { @@ -10202,19 +11588,28 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", "dev": true }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "private": "^0.1.6" } }, "regex-not": { @@ -10223,53 +11618,65 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" } }, "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" } }, "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", + "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.2.8", + "safe-buffer": "^5.0.1" } }, "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.2.8" } }, "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -10280,31 +11687,12 @@ } } }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, - "renderkid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", - "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", - "dev": true, - "requires": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.4.0" - } - }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -10323,7 +11711,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -10332,26 +11720,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -10360,12 +11748,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -10379,12 +11761,12 @@ "dev": true }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-cwd": { @@ -10393,7 +11775,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -10408,14 +11790,32 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "restructure": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-0.5.4.tgz", + "integrity": "sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "browserify-optional": "^1.0.0" } }, "ret": { @@ -10425,28 +11825,24 @@ "dev": true }, "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" } }, "ripemd160": { @@ -10455,49 +11851,62 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rollup": { - "version": "0.59.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.4.tgz", - "integrity": "sha512-ISiMqq/aJa+57QxX2MRcvLESHdJ7wSavmr6U1euMr+6UgFe6KM+3QANrYy8LQofwhTC1I7BcAdlLnDiaODs1BA==", + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz", + "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "@types/node": "8.9.5" + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + } } }, "rollup-plugin-commonjs": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.0.tgz", - "integrity": "sha512-0RM5U4Vd6iHjL6rLvr3lKBwnPsaVml+qxOGaaNUWN1lSq6S33KhITOfHmvxV3z2vy9Mk4t0g4rNlVaJJsNQPWA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", "dev": true, "requires": { - "estree-walker": "0.5.2", - "magic-string": "0.25.1", - "resolve": "1.8.1", - "rollup-pluginutils": "2.3.3" + "estree-walker": "^0.6.1", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" } }, - "rollup-plugin-node-resolve": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", - "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==", + "rollup-plugin-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz", + "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==", "dev": true, "requires": { - "builtin-modules": "2.0.0", - "is-module": "1.0.0", - "resolve": "1.8.1" - }, - "dependencies": { - "builtin-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", - "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", - "dev": true - } + "rollup-pluginutils": "^2.5.0" + } + }, + "rollup-plugin-node-resolve": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", + "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==", + "dev": true, + "requires": { + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.11.1", + "rollup-pluginutils": "^2.8.1" } }, "rollup-plugin-sourcemaps": { @@ -10506,109 +11915,17 @@ "integrity": "sha1-YhJaqUCHqt97g+9N+vYptHMTXoc=", "dev": true, "requires": { - "rollup-pluginutils": "2.3.3", - "source-map-resolve": "0.5.2" + "rollup-pluginutils": "^2.0.1", + "source-map-resolve": "^0.5.0" } }, "rollup-pluginutils": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", - "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, "requires": { - "estree-walker": "0.5.2", - "micromatch": "2.3.11" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - } + "estree-walker": "^0.6.1" } }, "run-async": { @@ -10617,7 +11934,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -10626,7 +11943,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rw": { @@ -10634,18 +11951,12 @@ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true - }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -10656,11 +11967,11 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -10668,30 +11979,34 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "sass": { + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", + "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", "dev": true, "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", - "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", "dev": true, "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.6.0", - "pify": "3.0.0", - "semver": "5.6.0" + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "saucelabs": { @@ -10700,44 +12015,38 @@ "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "requires": { - "https-proxy-agent": "2.2.1" + "https-proxy-agent": "^2.2.1" } }, "sax": { "version": "0.5.8", - "resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", "dev": true }, "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "6.4.0", - "ajv-keywords": "3.2.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "scope-analyzer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.0.5.tgz", + "integrity": "sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw==", "dev": true, "requires": { - "js-base64": "2.4.9", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } + "array-from": "^2.1.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" } }, "select-hose": { @@ -10752,10 +12061,10 @@ "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "jszip": "3.1.5", - "rimraf": "2.6.2", + "jszip": "^3.1.3", + "rimraf": "^2.5.4", "tmp": "0.0.30", - "xml2js": "0.4.19" + "xml2js": "^0.4.17" }, "dependencies": { "tmp": { @@ -10764,24 +12073,24 @@ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } } } }, "selfsigned": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", - "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", "dev": true, "requires": { - "node-forge": "0.7.5" + "node-forge": "0.9.0" } }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "semver-diff": { @@ -10790,7 +12099,15 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.6.0" + "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "semver-dsl": { @@ -10799,7 +12116,15 @@ "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { - "semver": "5.6.0" + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "semver-intersect": { @@ -10808,42 +12133,67 @@ "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", "dev": true, "requires": { - "semver": "5.6.0" + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true }, "serve-index": { @@ -10852,25 +12202,66 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.21", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } } }, "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" } }, "set-blocking": { @@ -10879,16 +12270,22 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10897,7 +12294,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10909,47 +12306,43 @@ "dev": true }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "kind-of": "^6.0.2" } }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -10958,42 +12351,22 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "shelljs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", - "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", - "dev": true, - "requires": { - "glob": "7.1.3", - "interpret": "1.1.0", - "rechoir": "0.6.2" - } - }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "silent-error": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.1.tgz", - "integrity": "sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==", - "dev": true, - "requires": { - "debug": "2.6.9" - } - }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", "dev": true }, "snapdragon": { @@ -11002,23 +12375,32 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -11027,8 +12409,20 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, @@ -11038,9 +12432,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -11049,7 +12443,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -11058,7 +12452,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11067,7 +12461,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11076,9 +12470,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -11089,7 +12483,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -11098,149 +12492,129 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "dev": true, "requires": { - "debug": "2.3.3", - "engine.io": "1.8.3", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.3", - "socket.io-parser": "2.3.1" + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" }, "dependencies": { "debug": { - "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", - "dev": true, - "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true }, "socket.io-client": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", "dev": true, "requires": { "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.3", - "has-binary": "0.1.7", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", + "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, "debug": { - "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "2.0.0" } }, "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "dev": true, "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" }, "dependencies": { "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "debug": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true }, "ms": { - "version": "0.7.1", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } @@ -11251,22 +12625,22 @@ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.3" + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" }, "dependencies": { "debug": { @@ -11275,26 +12649,60 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -11302,32 +12710,42 @@ "dev": true }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + } + }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -11345,19 +12763,19 @@ "dev": true }, "sourcemap-codec": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz", - "integrity": "sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", + "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", "dev": true }, "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -11372,52 +12790,72 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", + "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.1" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" } }, "spdy-transport": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", - "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" } }, "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -11426,7 +12864,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -11436,29 +12874,38 @@ "dev": true }, "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "figgy-pudding": "^3.5.1" + } + }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dev": true, + "requires": { + "escodegen": "^1.8.1" } }, "static-extend": { @@ -11467,8 +12914,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -11477,53 +12924,73 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, - "stats-webpack-plugin": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.6.2.tgz", - "integrity": "sha1-LFlJtTHgf4eojm6k3PrFOqjHWis=", + "static-module": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.3.tgz", + "integrity": "sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ==", "dev": true, "requires": { - "lodash": "4.17.11" + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.2", + "through2": "~2.0.3" + }, + "dependencies": { + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + } } }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-combiner": { - "version": "0.2.2", - "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "dev": true, "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" + "duplexer": "~0.1.1" } }, "stream-each": { @@ -11532,8 +12999,8 @@ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { @@ -11542,11 +13009,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { @@ -11555,15 +13022,92 @@ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, + "streamroller": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", + "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.14" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string_decoder": { @@ -11572,16 +13116,16 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -11590,24 +13134,15 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -11615,13 +13150,25 @@ "dev": true }, "style-loader": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", - "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.7" + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } } }, "stylus": { @@ -11630,12 +13177,12 @@ "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", "dev": true, "requires": { - "css-parse": "1.7.0", - "debug": "2.6.9", - "glob": "7.0.6", - "mkdirp": "0.5.1", - "sax": "0.5.8", - "source-map": "0.1.43" + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" }, "dependencies": { "glob": { @@ -11644,12 +13191,12 @@ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "source-map": { @@ -11658,7 +13205,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -11669,9 +13216,9 @@ "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "lodash.clonedeep": "4.5.0", - "when": "3.6.4" + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" } }, "supports-color": { @@ -11680,7 +13227,16 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" + } + }, + "svg-to-pdfkit": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.7.tgz", + "integrity": "sha1-fbbUfkeziI3OGAYHUajeJBf4V3U=", + "dev": true, + "requires": { + "pdfkit": ">=0.8.1" } }, "symbol-observable": { @@ -11690,20 +13246,24 @@ "dev": true }, "tapable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", - "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "term-size": { @@ -11712,7 +13272,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" }, "dependencies": { "cross-spawn": { @@ -11721,9 +13281,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { @@ -11732,37 +13292,114 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "terser": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.9.tgz", + "integrity": "sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "time-stamp": { @@ -11771,28 +13408,28 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, + "tiny-inflate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz", + "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c=", + "dev": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -11808,9 +13445,9 @@ "dev": true }, "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { @@ -11819,7 +13456,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -11828,55 +13465,60 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^7.0.0" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "topojson-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", - "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.1.tgz", + "integrity": "sha512-rfGGzyqefpxOaxvV9OTF9t+1g+WhjGEbAIuCcmKYrQkxr0nttjMMyzZsK+NhLW4cTl2g1bz2jQczPUtEshpbVQ==", "requires": { - "commander": "2.19.0" + "commander": "2" } }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -11894,15 +13536,9 @@ "dev": true }, "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", "dev": true }, "trim-right": { @@ -11911,48 +13547,20 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, "ts-node": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", "dev": true, "requires": { - "arrify": "1.0.1", - "chalk": "2.4.1", - "diff": "3.5.0", - "make-error": "1.3.5", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.5.9", - "yn": "2.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "yn": "^2.0.0" } }, "ts-simple-ast": { @@ -11961,44 +13569,60 @@ "integrity": "sha512-7GJFZlyTZY7uMAEhX62ZLxdwOpGDJzc/nwpi1nRPZ7N2ICcqqrMjDtRnki15IUBv2ZjIGu6KBqk/pUqJFODFsg==", "dev": true, "requires": { - "@dsherret/to-absolute-glob": "2.0.2", - "code-block-writer": "7.2.2", - "fs-extra": "6.0.1", - "glob-parent": "3.1.0", - "globby": "8.0.1", - "is-negated-glob": "1.0.0", - "multimatch": "2.1.0", - "object-assign": "4.1.1", - "tslib": "1.9.3", + "@dsherret/to-absolute-glob": "^2.0.2", + "code-block-writer": "^7.2.0", + "fs-extra": "^6.0.1", + "glob-parent": "^3.1.0", + "globby": "^8.0.1", + "is-negated-glob": "^1.0.0", + "multimatch": "^2.1.0", + "object-assign": "^4.1.1", + "tslib": "^1.9.0", "typescript": "2.9.1" }, "dependencies": { + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, "fs-extra": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "dev": true, "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.3", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, "typescript": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", @@ -12008,34 +13632,20 @@ } }, "tsickle": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.33.1.tgz", - "integrity": "sha512-SpW2G3PvDGs4a5sMXPlWnCWHWRviWjSlI3U0734e3fU3U39VAE0NPr8M3W1cuL/OU/YXheYipGeEwtIJ5k0NHQ==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.37.0.tgz", + "integrity": "sha512-ufUZqLUNqh+kOfr52N/hJ5JbiDO32/CO7ZCteZBX9HA2kiejwEgDaJeJe1GAj2TIu683IgTA/LPKvlns6Liw0w==", "dev": true, "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.7.3" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.7.3" } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tslint": { "version": "5.9.1", @@ -12043,30 +13653,31 @@ "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.19.0", - "diff": "3.5.0", - "glob": "7.1.3", - "js-yaml": "3.12.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0", - "tslib": "1.9.3", - "tsutils": "2.29.0" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, - "dependencies": { - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } + "dependencies": { + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -12076,7 +13687,7 @@ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.8.1" } }, "tty-browserify": { @@ -12091,7 +13702,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -12100,23 +13711,35 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true + }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.24" } }, "typedarray": { @@ -12126,457 +13749,1145 @@ "dev": true }, "typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", "dev": true }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.7.tgz", + "integrity": "sha512-4sXQDzmdnoXiO+xvmTzQsfIiwrjUCSA95rSP4SEd8tDb51W2TiDOlL76Hl+Kw0Ie42PSItCW8/t6pBNCF2R48A==", "dev": true, + "optional": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.20.3", + "source-map": "~0.6.1" }, "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "optional": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, - "optional": true + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-properties": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.2.2.tgz", + "integrity": "sha512-+WhsOj19c93rPymvnPnFisbgFzrI4LjTV8ejMcCCfwS0XhdllZB4NsMFiYb4xUmpn3+aj3PM40h+wlzoG7PCnQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^1.0.0" + } + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "unicode-trie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-1.0.0.tgz", + "integrity": "sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.3.0", - "worker-farm": "1.6.0" + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" }, "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + } + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", + "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", + "dev": true, + "requires": { + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "ms": "^2.1.1" } } } }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", "dev": true }, - "union-value": { + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } } }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true } } }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "unique-slug": "2.0.1" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "builtins": "^1.0.3" } }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "viz.js": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.2.tgz", + "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==", "dev": true }, - "unix-crypt-td-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz", - "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=", + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, "requires": { - "isarray": "1.0.0" + "wrappy": "1" } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "1.3.0", - "chalk": "2.2.2", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.2.1", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", - "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "mime": "2.3.1", - "schema-utils": "1.0.0" - }, - "dependencies": { - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "6.4.0", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" - } - } - } - }, - "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", - "dev": true, - "requires": { - "querystringify": "2.1.0", - "requires-port": "1.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "1.0.4" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "tmp": "0.0.33" - } - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "viz.js": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.2.tgz", - "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.14", - "neo-async": "2.6.0" + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "wbuf": { @@ -12585,353 +14896,828 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, - "webassemblyjs": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", - "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/validation": "1.4.3", - "@webassemblyjs/wasm-parser": "1.4.3", - "@webassemblyjs/wast-parser": "1.4.3", - "long": "3.2.0" + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" } }, - "webdriver-js-extender": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", - "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", - "dev": true, - "requires": { - "@types/selenium-webdriver": "2.53.43", - "selenium-webdriver": "2.53.3" - }, - "dependencies": { - "sax": { - "version": "0.6.1", - "resolved": "http://registry.npmjs.org/sax/-/sax-0.6.1.tgz", - "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", - "dev": true - }, - "selenium-webdriver": { - "version": "2.53.3", - "resolved": "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", - "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", - "dev": true, - "requires": { - "adm-zip": "0.4.4", - "rimraf": "2.6.2", - "tmp": "0.0.24", - "ws": "1.1.2", - "xml2js": "0.4.4" - } - }, - "tmp": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", - "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "webpack": { + "version": "4.39.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", + "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", "dev": true }, - "xml2js": { + "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", - "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "sax": "0.6.1", - "xmlbuilder": "9.0.7" + "amdefine": ">=0.0.4" } } } }, - "webpack": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", - "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.4.3", - "@webassemblyjs/wasm-edit": "1.4.3", - "@webassemblyjs/wasm-parser": "1.4.3", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.4.0", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "0.1.3", - "enhanced-resolve": "4.1.0", - "eslint-scope": "3.7.3", - "loader-runner": "2.3.1", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "node-libs-browser": "2.1.0", - "schema-utils": "0.4.7", - "tapable": "1.1.0", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0" - } - }, "webpack-dev-middleware": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", - "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "2.3.1", - "range-parser": "1.2.0", - "webpack-log": "2.0.0" + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" }, "dependencies": { "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true } } }, "webpack-dev-server": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz", - "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", + "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", "dev": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.0.4", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "debug": "3.2.6", - "del": "3.0.0", - "express": "4.16.4", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "2.0.0", - "internal-ip": "3.0.1", - "ip": "1.1.5", - "killable": "1.0.1", - "loglevel": "1.6.1", - "opn": "5.4.0", - "portfinder": "1.0.19", - "schema-utils": "1.0.0", - "selfsigned": "1.10.4", - "serve-index": "1.9.1", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.4", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", "sockjs": "0.3.19", - "sockjs-client": "1.3.0", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.5.0", - "webpack-dev-middleware": "3.4.0", - "webpack-log": "2.0.0", - "yargs": "12.0.2" + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, "dev": true, + "optional": true, "requires": { - "ansi-regex": "3.0.0" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true } } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "invert-kv": "2.0.0" + "binary-extensions": "^1.0.0" } }, - "locate-path": { + "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "execa": "0.10.0", - "lcid": "2.0.0", - "mem": "4.0.0" + "kind-of": "^3.0.2" } }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "p-try": "2.0.0" + "is-buffer": "^1.1.5" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "p-limit": "2.0.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { - "ajv": "6.4.0", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" + "has-flag": "^3.0.0" } }, - "string-width": { + "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "10.1.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "camelcase": "4.1.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } @@ -12942,27 +15728,27 @@ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "requires": { - "ansi-colors": "3.2.1", - "uuid": "3.3.2" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" } }, "webpack-merge": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", - "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.5" } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -12974,22 +15760,23 @@ } }, "webpack-subresource-integrity": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.2.0.tgz", - "integrity": "sha512-bdMR4DRbINUFt+QhNfBFHURnCzT8mtHjXiclQWX/aXBpu2pM4nOb2qViyt84ZSFrVKEXkAbmz7mSoZQH/08xFg==", + "version": "1.1.0-rc.6", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", "dev": true, "requires": { - "webpack-sources": "1.3.0" + "webpack-core": "^0.6.8" } }, "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", "dev": true, "requires": { - "http-parser-js": "0.5.0", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -13010,105 +15797,87 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "1.0.2" - } - }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", "dev": true, "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } + "string-width": "^2.1.1" } }, - "win-release": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", - "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", + "windows-release": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "dev": true, "requires": { - "semver": "5.6.0" + "execa": "^1.0.0" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", + "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", "dev": true, "requires": { - "errno": "0.1.7" + "loader-utils": "^1.1.0" } }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "wrappy": { @@ -13118,32 +15887,25 @@ "dev": true }, "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { - "graceful-fs": "4.1.14", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "async-limiter": "~1.0.0" } }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", - "dev": true - }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", @@ -13151,13 +15913,14 @@ "dev": true }, "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", + "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", "dev": true, "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "util.promisify": "~1.0.0", + "xmlbuilder": "~11.0.0" }, "dependencies": { "sax": { @@ -13169,27 +15932,21 @@ } }, "xmlbuilder": { - "version": "9.0.7", - "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "xxhashjs": { @@ -13198,7 +15955,7 @@ "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", "dev": true, "requires": { - "cuint": "0.2.2" + "cuint": "^0.2.2" } }, "y18n": { @@ -13208,61 +15965,39 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - } + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yeast": { @@ -13278,9 +16013,9 @@ "dev": true }, "zone.js": { - "version": "0.8.26", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", - "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", + "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" } } } diff --git a/web/gui2-fw-lib/package.json b/web/gui2-fw-lib/package.json index 309dbe090a1..28285705f55 100644 --- a/web/gui2-fw-lib/package.json +++ b/web/gui2-fw-lib/package.json @@ -1,6 +1,6 @@ { "name": "gui2-fw-lib-app", - "version": "2.1.1", + "version": "2.3.0", "license": "MIT", "scripts": { "ng": "ng", @@ -12,28 +12,28 @@ }, "private": true, "dependencies": { - "@angular/animations": "^7.0.2", - "@angular/common": "^7.0.2", - "@angular/compiler": "^7.0.2", - "@angular/core": "^7.0.2", - "@angular/forms": "^7.0.2", + "@angular/animations": "^8.2.13", + "@angular/common": "^8.2.13", + "@angular/compiler": "^8.2.13", + "@angular/core": "^8.2.13", + "@angular/forms": "^8.2.13", "@angular/http": "^7.0.2", - "@angular/platform-browser": "^7.0.2", - "@angular/platform-browser-dynamic": "^7.0.2", - "@angular/router": "^7.0.2", + "@angular/platform-browser": "^8.2.13", + "@angular/platform-browser-dynamic": "^8.2.13", + "@angular/router": "^8.2.13", "core-js": "^2.5.4", "d3": "^5.9.2", - "rxjs": "^6.3.3", + "rxjs": "^6.4.0", "topojson-client": "^3.0.0", - "zone.js": "^0.8.26" + "zone.js": "^0.9.1" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.6.0", - "@angular-devkit/build-ng-packagr": "~0.6.0", - "ng-packagr": "^3.0.0-rc.2", - "@angular/cli": "~7.0.4", - "@angular/compiler-cli": "^7.0.2", - "@angular/language-service": "^7.0.2", + "@angular-devkit/build-angular": "^0.803.17", + "@angular-devkit/build-ng-packagr": "^0.803.17", + "@angular/cli": "^8.3.17", + "@angular/compiler-cli": "^8.2.13", + "@angular/language-service": "^8.2.13", + "@bazel/hide-bazel-files": "latest", "@compodoc/compodoc": "^1.1.3", "@types/jasmine": "~2.8.6", "@types/jasminewd2": "~2.0.3", @@ -41,16 +41,17 @@ "codelyzer": "^4.2.1", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", - "karma": "~1.7.1", + "karma": "~4.4.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~1.4.2", "karma-firefox-launcher": "^1.1.0", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", - "protractor": "~5.3.0", + "ng-packagr": "^5.7.1", + "protractor": "~5.4.2", "ts-node": "~5.0.1", + "tsickle": "^0.37.0", "tslint": "~5.9.1", - "typescript": "~3.1.6", - "tsickle": "^0.33.1" + "typescript": "~3.5.3" } } diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon.service.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon.service.ts index 673cd20f83d..e556782ce9e 100644 --- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon.service.ts +++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon.service.ts @@ -20,8 +20,6 @@ import { SvgUtilService } from './svgutil.service'; import * as d3 from 'd3'; const vboxSize = 50; -const cornerSize = vboxSize / 10; -const viewBox = '0 0 ' + vboxSize + ' ' + vboxSize; export const glyphMapping = new Map([ // Maps icon ID to the glyph ID it uses. @@ -182,73 +180,6 @@ export class IconService { return svg.select('defs'); } - /** - * Load an icon - * - * @param div A D3 selection of the '<div>' element into which icon should load - * @param glyphId Identifies the glyph to use - * @param size The dimension of icon in pixels. Defaults to 20. - * @param installGlyph If truthy, will cause the glyph to be added to - * well-known defs element. Defaults to false. - * @param svgClass The CSS class used to identify the SVG layer. - * Defaults to 'embeddedIcon'. - */ - loadIcon(div, glyphId: string = 'unknown', size: number = 20, installGlyph: boolean = true, svgClass: string = 'embeddedIcon') { - const dim = size || 20; - const svgCls = svgClass || 'embeddedIcon'; - const gid = glyphId || 'unknown'; - let g; - let svgIcon: any; - - if (installGlyph) { - this.gs.loadDefs(this.ensureIconLibDefs(), [gid], true); - } - this.log.warn('loadEmbeddedIcon. install done'); - - svgIcon = div - .append('svg') - .attr('class', svgCls) - .attr('width', dim) - .attr('height', dim) - .attr('viewBox', viewBox); - - g = svgIcon.append('g') - .attr('class', 'icon'); - - g.append('rect') - .attr('width', vboxSize) - .attr('height', vboxSize) - .attr('rx', cornerSize); - - g.append('use') - .attr('width', vboxSize) - .attr('height', vboxSize) - .attr('class', 'glyph') - .attr('xlink:href', '#' + gid); - } - - /** - * Load an icon by class. - * @param div A D3 selection of the

element into which icon should load - * @param iconCls The CSS class used to identify the icon - * @param size The dimension of icon in pixels. Defaults to 20. - * @param installGlyph If truthy, will cause the glyph to be added to - * well-known defs element. Defaults to false. - * @param svgClass The CSS class used to identify the SVG layer. - * Defaults to 'embeddedIcon'. - */ - loadIconByClass(div, iconCls: string, size: number, installGlyph: boolean, svgClass= 'embeddedIcon') { - this.loadIcon(div, glyphMapping.get(iconCls), size, installGlyph, svgClass); - div.select('svg g').classed(iconCls, true); - } - - /** - * Load an embedded icon. - */ - loadEmbeddedIcon(div, iconCls: string, size: number) { - this.loadIconByClass(div, iconCls, size, true); - } - /** * Load an icon only to the svg defs collection * @@ -266,48 +197,4 @@ export class IconService { this.gs.loadDefs(this.ensureIconLibDefs(), [glyphName], true, [iconCls]); this.log.debug('icon definition', glyphName, 'added to defs as', iconCls); } - - - /** - * Add a device icon - * - * Adds a device glyph to the specified element. - * Returns the D3 selection of the glyph (use) element. - */ - addDeviceIcon(elem, glyphId, iconDim) { - const gid = this.gs.glyphDefined(glyphId) ? glyphId : 'query'; - return elem.append('use').attr({ - 'xlink:href': '#' + gid, - width: iconDim, - height: iconDim, - }); - } - - addHostIcon(elem, radius, glyphId) { - const dim = radius * 1.5; - const xlate = -dim / 2; - const g = elem.append('g') - .attr('class', 'svgIcon hostIcon'); - - g.append('circle').attr('r', radius); - - g.append('use').attr({ - 'xlink:href': '#' + glyphId, - width: dim, - height: dim, - transform: this.sus.translate([xlate], xlate), - }); - return g; - } - - registerIconMapping(iconId, glyphId) { - if (glyphMapping[iconId]) { - this.log.warn('Icon with id', iconId, 'already mapped. Ignoring.'); - } else { - // map icon-->glyph - glyphMapping[iconId] = glyphId; - // make sure definition is installed - this.gs.loadDefs(this.ensureIconLibDefs(), [glyphId], true); - } - } } diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.html b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.html index a301c3cf510..e7e2cd47056 100644 --- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.html +++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.html @@ -17,7 +17,7 @@ - + diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.ts index db28914aa28..af736fdf29d 100644 --- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.ts +++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/svg/icon/icon.component.ts @@ -36,7 +36,7 @@ import { LogService } from '../../log.service'; './tooltip.css', './button-theme.css' ] }) -export class IconComponent implements OnInit, OnChanges { +export class IconComponent implements OnChanges { @Input() iconId: string; @Input() iconSize: number = 20; @Input() toolTip: string = undefined; @@ -53,13 +53,6 @@ export class IconComponent implements OnInit, OnChanges { this.log.debug('IconComponent constructed'); } - /** - * Icons are loaded in to the DOM under iconDefs - */ - ngOnInit() { - this.is.loadIconDef(this.iconId); - } - /** * This is needed in case the iconId changes while icon component * is displayed on screen. @@ -67,17 +60,4 @@ export class IconComponent implements OnInit, OnChanges { ngOnChanges() { this.is.loadIconDef(this.iconId); } - - /** - * Get the corresponding iconTag from the glyphMapping in the iconService - * @returns The iconTag corresponding to the iconId of this instance - */ - iconTag(): string { - const iconIdStr: string = glyphMapping.get(this.iconId); - if (iconIdStr) { - return '#' + iconIdStr; - } else { - return '#' + this.iconId; - } - } } diff --git a/web/gui2-fw-lib/src/app/app.component.html b/web/gui2-fw-lib/src/app/app.component.html index 9d666107240..80c90502143 100644 --- a/web/gui2-fw-lib/src/app/app.component.html +++ b/web/gui2-fw-lib/src/app/app.component.html @@ -15,7 +15,7 @@ -->
- +

Welcome to {{ title }}!

diff --git a/web/gui2-fw-lib/src/app/app.module.ts b/web/gui2-fw-lib/src/app/app.module.ts index 1d243f52426..dab7c376a4b 100644 --- a/web/gui2-fw-lib/src/app/app.module.ts +++ b/web/gui2-fw-lib/src/app/app.module.ts @@ -19,8 +19,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { AppComponent } from './app.component'; import { Gui2FwLibModule, ConsoleLoggerService, LogService } from 'gui2-fw-lib'; -import {HttpClientModule} from "@angular/common/http"; -import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; +import {HttpClientModule} from '@angular/common/http'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; const appRoutes: Routes = [ { path: '**', component: AppComponent } diff --git a/web/gui2-topo-lib/BUILD b/web/gui2-topo-lib/BUILD index 6fe640529f8..4239b831025 100644 --- a/web/gui2-topo-lib/BUILD +++ b/web/gui2-topo-lib/BUILD @@ -67,16 +67,14 @@ filegroup( """ Run ng build to create Topo GUI 2 library in production mode The output file gui2-topo-lib-ver.tgz is in the form that can be uploaded directly to https://www.npmjs.com/ - See bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib.log for details of the Angular CLI output + See bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib.log for details of the Angular CLI output """ genrule( name = "gui2-topo-lib-build", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -91,7 +89,7 @@ genrule( cmd = "ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " TOPOLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p web/gui2-topo-lib &&" + @@ -108,12 +106,12 @@ genrule( " if [ $$? -eq 0 ]; then echo 'Successfully ran build';" + " else " + " echo 'Error running \'ng build gui2-topo-lib\' on \'//web/gui2-topo-lib:gui2-topo-lib-build\'. \\\n" + - " See bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib.log for more details' >&2;" + #" tail -n 100 ../../$(location onos-gui2-ng-test.log) >&2;" + " exit 1;" + " fi;" + " cp README.md LICENSE dist/gui2-topo-lib && " + - " npm pack ./dist/gui2-topo-lib >> $$ROOT/$(location gui2-topo-lib.log) 2>&1 &&" + + " $$ROOT/$(location @nodejs//:bin/npm) pack ./dist/gui2-topo-lib >> $$ROOT/$(location gui2-topo-lib.log) 2>&1 &&" + " mv gui2-topo-lib-*.tgz $$ROOT/$(location gui2-topo-lib-ver.tgz) &&" + " touch $$ROOT/$(location gui2-topo-lib.log)", # to get the log always as the 2nd file, message = "Angular Topo GUI2 build", @@ -122,17 +120,15 @@ genrule( """ Run 'ng test' to run Angular test and 'ng lint' for checkstyle - See bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib-lint.log or - bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib-test.log for details of the Angular CLI output + See bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib-lint.log or + bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib-test.log for details of the Angular CLI output """ genrule( name = "_gui2-topo-lib-test-genrule", srcs = [ "@nodejs//:bin/npm", - "@nodejs//:bin/node", "@nodejs//:bin/nodejs/bin/node", - "@nodejs//:bin/nodejs/bin/npm", "//web/gui2-fw-lib:onos-gui2-fw-npm-install", "//web/gui2-fw-lib:onos-gui2-fw-ng-build", "//web/gui2-fw-lib:gui2_fw_lib_ext_css", @@ -148,7 +144,7 @@ genrule( cmd = " ROOT=`pwd` &&" + " export HOME=. &&" + " export XDG_CONFIG_HOME=$(@D)/config &&" + - " NODE=$(location @nodejs//:bin/node) &&" + + " NODE=$(location @nodejs//:bin/nodejs/bin/node) &&" + " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" + # An array of filenames - sorted by time created " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" + # An array of filenames - sorted by time created " mkdir -p web/gui2-topo-lib &&" + @@ -163,13 +159,14 @@ genrule( " chmod +x $$ROOT/web/gui2-topo-lib/node_modules/@angular/cli/bin/ng &&" + " export PATH=$$ROOT/$$(dirname $${NODE}):node_modules/@angular/cli/bin:$$PATH &&" + " node -v > ../../$(location gui2-topo-lib-ver.log) &&" + - " npm -v >> ../../$(location gui2-topo-lib-ver.log) &&" + + " $$ROOT/$(location @nodejs//:bin/npm) -v >> ../../$(location gui2-topo-lib-ver.log) &&" + " ng version >> ../../$(location gui2-topo-lib-ver.log) &&" + " ng lint gui2-topo-lib > ../../$(location gui2-topo-lib-lint.log) 2>&1 ||" + " if [ $$? -eq 0 ]; then echo 'Successfully ran lint';" + " else " + " echo 'Error running \'ng lint\' on \'//web/gui2-topo-lib:_gui2-topo-lib-test-genrule\'. \\\n" + - " See bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib-lint.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib-lint.log for more details' >&2;" + + " cat ../../$(location gui2-topo-lib-lint.log) >&2 ||" + " exit 1;" + " fi;" + " if [ -f /usr/bin/chromium-browser ]; then " + # Add to this for Mac and Chrome @@ -189,7 +186,7 @@ genrule( " if [ $$? -eq 0 ]; then echo 'Successfully ran tests';" + " else " + " echo 'Error running \'ng test gui2-topo-lib\' on \'//web/gui2-topo-lib:_gui2-topo-lib-test-genrule\'. \\\n" + - " See bazel-genfiles/web/gui2-topo-lib/gui2-topo-lib-test.log for more details' >&2;" + + " See bazel-out/k8-fastbuild/bin/web/gui2-topo-lib/gui2-topo-lib-test.log for more details' >&2;" + " exit 1;" + " fi;", message = "Angular Topo GUI2 Lib lint and test", diff --git a/web/gui2-topo-lib/package-lock.json b/web/gui2-topo-lib/package-lock.json index 376351bcee8..775fcedab86 100644 --- a/web/gui2-topo-lib/package-lock.json +++ b/web/gui2-topo-lib/package-lock.json @@ -1,11694 +1,16249 @@ { - "name": "gui2-topo-lib", - "version": "2.1.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.10.7.tgz", - "integrity": "sha512-S49LSslNRxIflHzrIrEgK7mGQ7HzETr/FU0fyTbB0vubcmfzMoYTsgYdK7SUz583lovc+UvASoUAhPJI3e35ng==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.7", - "rxjs": "6.3.3" - } - }, - "@angular-devkit/build-angular": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.10.7.tgz", - "integrity": "sha512-wjhlMWWkGSSkdwd9elKfeeEgyig/eZGyF2wY5kZmWPBdeK/GfdBLyO15qh4ppRYI2SjyRvzl0tWDOA2Y0hKL0w==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.7", - "@angular-devkit/build-optimizer": "0.10.7", - "@angular-devkit/build-webpack": "0.10.7", - "@angular-devkit/core": "7.0.7", - "@ngtools/webpack": "7.0.7", - "ajv": "6.5.3", - "autoprefixer": "9.1.5", - "circular-dependency-plugin": "5.0.2", - "clean-css": "4.2.1", - "copy-webpack-plugin": "4.5.4", - "file-loader": "2.0.0", - "glob": "7.1.3", - "istanbul": "0.4.5", - "istanbul-instrumenter-loader": "3.0.1", - "karma-source-map-support": "1.3.0", - "less": "3.8.1", - "less-loader": "4.1.0", - "license-webpack-plugin": "2.0.2", - "loader-utils": "1.1.0", - "mini-css-extract-plugin": "0.4.3", - "minimatch": "3.0.4", - "node-sass": "4.9.3", - "opn": "5.3.0", - "parse5": "4.0.0", - "portfinder": "1.0.17", - "postcss": "7.0.5", - "postcss-import": "12.0.0", - "postcss-loader": "3.0.0", - "raw-loader": "0.5.1", - "rxjs": "6.3.3", - "sass-loader": "7.1.0", - "semver": "5.5.1", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.9", - "speed-measure-webpack-plugin": "1.3.0", - "stats-webpack-plugin": "0.7.0", - "style-loader": "0.23.0", - "stylus": "0.54.5", - "stylus-loader": "3.0.2", - "terser-webpack-plugin": "1.1.0", - "tree-kill": "1.2.0", - "webpack": "4.19.1", - "webpack-dev-middleware": "3.3.0", - "webpack-dev-server": "3.1.8", - "webpack-merge": "4.1.4", - "webpack-sources": "1.2.0", - "webpack-subresource-integrity": "1.1.0-rc.6" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "name": "gui2-topo-lib", + "version": "2.3.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.17.tgz", + "integrity": "sha512-QbuWJhjh78Pb/9574OIjR38hhJCRBd0BtdrRRdTjP7By6liXURnA/OH6iZ9o1jA8It1NvoJQtM2flr8dQf83Mw==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - } - } - }, - "@angular-devkit/build-ng-packagr": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.10.7.tgz", - "integrity": "sha512-u2HYYOxfKizZ96YR+ZVOB7zuD8ByJh1AWYCOQCQKP5IXC/Ax55u8C+GA6NeKcVYKVvz1HKX/+JiEfSfJoQCJAw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.7", - "@angular-devkit/core": "7.0.7", - "rxjs": "6.3.3", - "semver": "5.5.1" - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.10.7.tgz", - "integrity": "sha512-Ztj2U21B8zRO2csQS8mLv/+WKPPLePzaqJDk53Ou2r2HV+kh9GzYvgu1UFeGf/RyEeJi+9KnJGG2wPaeNqDNxg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.6", - "typescript": "3.1.6", - "webpack-sources": "1.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.10.7.tgz", - "integrity": "sha512-sUzgIhm5yWHvRo3GF6mc1J58PCuY5nJDF2vlE8Jhlwkq+/VbJ/NVfTDYRQCeqI1jLcdMaVrVQXnXAWc4KpFNig==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.7", - "@angular-devkit/core": "7.0.7", - "rxjs": "6.3.3" - } - }, - "@angular-devkit/core": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.7.tgz", - "integrity": "sha512-M8tTT9r3nUtWI3YyiyynHIQn+lQQgeKkxVZ+rdxvyvgE3U9+wn0yep5HkFLQETTuJetu9ARRRD94sD2XL3F/3A==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "chokidar": "2.0.4", - "fast-json-stable-stringify": "2.0.0", - "rxjs": "6.3.3", - "source-map": "0.7.3" - } - }, - "@angular-devkit/schematics": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.0.7.tgz", - "integrity": "sha512-E6GHu4257PvymRjFDtpGc0ykdcIcpFIfXr73lq8qxo1SBkqH7Y1/C670elDg9nrCte8PhnhJVNiwNgNS/ZTAzQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.7", - "rxjs": "6.3.3" - } - }, - "@angular/animations": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.0.4.tgz", - "integrity": "sha512-QfFikT0FzYNMjdVg0LWTBijdu9JDJyzejnhCFlXxv+KR4zolpRK98/rU7CFW1Fg2jjL3/yL9PT1sf5I0fTJZYA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/cli": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.0.7.tgz", - "integrity": "sha512-SV3CcHa2oxDKwhOvHqZtysVRRT9pkO04Kv0Z1HEhlgIwqHyIU201R9/mo1gYmBHTNGxowKdvsGLsHQNpsHmQJw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.7", - "@angular-devkit/core": "7.0.7", - "@angular-devkit/schematics": "7.0.7", - "@schematics/angular": "7.0.7", - "@schematics/update": "0.10.7", - "inquirer": "6.2.0", - "opn": "5.3.0", - "rxjs": "6.3.3", - "semver": "5.5.1", - "symbol-observable": "1.2.0" - } - }, - "@angular/common": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.0.4.tgz", - "integrity": "sha512-akQojdqY/RBlItkDWAPI3k0Llk1wnbAp+f47yySi3cgQz9SaZ1/RLNWZV84I/cKrksb4ehorT/lTqRBojsAD1A==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/compiler": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.0.4.tgz", - "integrity": "sha512-ExDhH1cJkuJkUsgNRZyZBse0a7wWkQyG5O8HONi3Rzig9dalFEuve9jD04zfA1Jx1GTXhovqtGnF72x4kw0V8Q==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/compiler-cli": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.0.4.tgz", - "integrity": "sha512-kvhWt6OTb1Uduns9Vm+Dwd/UUBNSEU6Jgu+QOPeHr7lg+4NTyr9uQLU0DtfBP0ljOlds8esmfii5IIFTeUQw1Q==", - "dev": true, - "requires": { - "canonical-path": "1.0.0", - "chokidar": "1.7.0", - "convert-source-map": "1.6.0", - "dependency-graph": "0.7.2", - "magic-string": "0.25.2", - "minimist": "1.2.0", - "reflect-metadata": "0.1.13", - "shelljs": "0.8.3", - "source-map": "0.6.1", - "tslib": "1.9.3", - "yargs": "9.0.1" - }, - "dependencies": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } + "@angular-devkit/build-angular": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.17.tgz", + "integrity": "sha512-mZD4DRk8EUHw17tmL3hWFrXmNo7WlXbOsuait7+dG6YPSkVUjpozIk2frks6rOsOMXgFcIf4quIojca25wZySg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/build-optimizer": "0.803.17", + "@angular-devkit/build-webpack": "0.803.17", + "@angular-devkit/core": "8.3.17", + "@babel/core": "7.5.5", + "@babel/preset-env": "7.5.5", + "@ngtools/webpack": "8.3.17", + "ajv": "6.10.2", + "autoprefixer": "9.6.1", + "browserslist": "4.6.6", + "cacache": "12.0.2", + "caniuse-lite": "1.0.30000989", + "circular-dependency-plugin": "5.2.0", + "clean-css": "4.2.1", + "copy-webpack-plugin": "5.0.4", + "core-js": "3.2.1", + "file-loader": "4.2.0", + "find-cache-dir": "3.0.0", + "glob": "7.1.4", + "istanbul-instrumenter-loader": "3.0.1", + "jest-worker": "24.9.0", + "karma-source-map-support": "1.4.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.2", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.8.0", + "minimatch": "3.0.4", + "open": "6.4.0", + "parse5": "4.0.0", + "postcss": "7.0.17", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "3.1.0", + "regenerator-runtime": "0.13.3", + "rxjs": "6.4.0", + "sass": "1.22.9", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "source-map": "0.7.3", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.13", + "speed-measure-webpack-plugin": "1.3.1", + "style-loader": "1.0.0", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "terser": "4.3.9", + "terser-webpack-plugin": "1.4.1", + "tree-kill": "1.2.1", + "webpack": "4.39.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.9.0", + "webpack-merge": "4.2.1", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.2.0" + }, + "dependencies": { + "core-js": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==", + "dev": true + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + } + } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "@angular-devkit/build-ng-packagr": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.803.17.tgz", + "integrity": "sha512-nID6aLUeuwMj0vj+pYehOaifUpIt7fW9DYjSRJOQmhhqh+SeJCBUPf3+9f4GAYa1yLkuiEUgS7Pt0m6zig7tdg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true + "@angular-devkit/build-optimizer": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.17.tgz", + "integrity": "sha512-nKZMbKKC5i7VH8DO0p+WxwNB58simCma5rE2W8jD1+bUSiBK57D/I3Dn7Otp7C9REtLw3rXXEkhM0vMTmTHWGQ==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "tslib": "1.10.0", + "typescript": "3.5.3", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + } + } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } + "@angular-devkit/build-webpack": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.17.tgz", + "integrity": "sha512-sXE6QhpCEErzs6DVXPJD0FpEHVQGbvxIrSkWOvPNxn3y6mJodp3scDvtBCR/T+u5mr6NELO07NCIHjpXcMfyPA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.2", - "fsevents": "1.2.9", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" - } + "@angular-devkit/core": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.17.tgz", + "integrity": "sha512-cR2H/7OxxqagwGfzxwNWDOYN4QpOZ56Fei9JED/2p/K/5UDAowl20o3qP9mTfia/lEhFeyjMBcM8gsHxhJNYJQ==", + "dev": true, + "requires": { + "ajv": "6.10.2", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } + "@angular-devkit/schematics": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.17.tgz", + "integrity": "sha512-1ttzYGnw5Ux7Nfr/TGyWx3C/rarq5l+dn+5SpKof/8ctvQU1gJaswF492ngPs/jDjaPq5MucKYoX+wTUJHnUhg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } + "@angular/animations": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.13.tgz", + "integrity": "sha512-ZE4UZsQ6HDW1ZIj9tL45PVosCcG4Ke7ihV7eWCE1VgLZKDDxTOPbLf1UeEiszUYptMLGH3eGMNBKo85mOlkH8w==", + "requires": { + "tslib": "^1.9.0" + } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } + "@angular/cli": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.17.tgz", + "integrity": "sha512-1R4IlPnrm6B9drhrCHTu9fBFIqCvOXK1zqYLsdobz6KfdkBcLSFqRqRfgEqADLChkxMo4tedtsftkuqY5Xinrg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.17", + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17", + "@schematics/angular": "8.3.17", + "@schematics/update": "0.803.17", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.5.1", + "npm-package-arg": "6.1.0", + "npm-pick-manifest": "3.0.2", + "open": "6.4.0", + "pacote": "9.5.5", + "read-package-tree": "5.3.1", + "rimraf": "3.0.0", + "semver": "6.3.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "@angular/common": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.13.tgz", + "integrity": "sha512-I9cTcjUi88L+Mb/a/ZzUrdDcn3YgFFK9LubxaPjAfr6+G7IZ//MY5HuvG8Y41yKprXVVvQCbQ1yQD+GGRSCkaA==", + "requires": { + "tslib": "^1.9.0" + } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } + "@angular/compiler": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.13.tgz", + "integrity": "sha512-u2NWCvEn4SjbMvn2PG6sYcf+rR5u3aYMv3/mNQ9k+2UmCIu3yJrcuCzebjo5SdlDVqKD2vzbyMZnr8VB9OcceQ==", + "requires": { + "tslib": "^1.9.0" + } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "@angular/compiler-cli": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.13.tgz", + "integrity": "sha512-ryW2Kozx/oHJrtdeIhgZ24RIU7Za3YIOHS9EMCQ8xMo+ZlSI+t2zOlLAXzK4PVWEjuTtQlKbT0KqilgU0QsHJg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yargs": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", + "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } + "@angular/core": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.13.tgz", + "integrity": "sha512-W8HN0lUQV4Sq85l17nhRIXeIfcw1ZdpgGm6to98pl0y9l/1srfzWfTnofuwCJC7gedt5AMrYJGUaNiDbByosFw==", + "requires": { + "tslib": "^1.9.0" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@angular/core": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.0.4.tgz", - "integrity": "sha512-17SSmCz1wQoZKnVHF/T8UkWYPpDm5kPyoc1okkTTv8ZA2EAMMuZFFnRSAxEL5i7mNB9z5CvRqF2tRx/DbgbIRA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/forms": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.0.4.tgz", - "integrity": "sha512-W3nN9n1VY9On9+9f7PDRbzJUg+mMq1bjkhWsk/b7DfaYdmlzpG+Wd6OfArob2edsqGqH1dvTM8q8aGbWiFZ7dA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/http": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.0.4.tgz", - "integrity": "sha512-oUGT7xS7FZYajuHq0DP6MgahacB5sJTRgxiUU4uhQ/mqV7aREODVJJgw7oHDhM7Cnyzzo0B9D0zpEljKmeCLWQ==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/language-service": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.0.4.tgz", - "integrity": "sha512-CuJ2Ii97sNoN1HOZOLxG1lEHsQFi8K/RSB/k2suWPKzdM53ldSkKoYRac38zW/uqNABYItgvxb7w0Vi7HhxLsg==", - "dev": true - }, - "@angular/platform-browser": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.0.4.tgz", - "integrity": "sha512-4brYZZgsCJk1/a6JoSwaiVWO9+/T4iyE27dAgstao1nOf/jrBNKW2HnZtkWZmCCBK0WIk15wlB0Xr87OZbjNVA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/platform-browser-dynamic": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.0.4.tgz", - "integrity": "sha512-k1I53zIg8YWhtQizLfq/tWrUUdY5vHV8pGHyt0/UTGDqat5TORd6LDFfzCSux0r3qZujCOGNi9f4/AbyV8B9lw==", - "requires": { - "tslib": "1.9.3" - } - }, - "@angular/router": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.0.4.tgz", - "integrity": "sha512-nt1jJsxN+JmYZ6URamMdULUpH4aHdnNVKjWtjDI0OpdZvPx7PMFD8cfc92q0tavy2KqqexcceIb4BIC965gtpA==", - "requires": { - "tslib": "1.9.3" - } - }, - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/generator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", - "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", - "dev": true, - "requires": { - "@babel/types": "7.3.4", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "@angular/forms": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.13.tgz", + "integrity": "sha512-l7lHD4kbWK70KY0Xp4IpSa106ZzSgPMwRYMFKd9qhYaJ7v0Y7Shh7Z/ZDCOP730maj9WULnpy5X4eeozWXgvgg==", + "requires": { + "tslib": "^1.9.0" + } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.2.2", - "@babel/types": "7.3.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "7.3.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "7.3.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - } - }, - "@babel/parser": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", - "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", - "dev": true - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.3.4", - "@babel/types": "7.3.4" - } - }, - "@babel/traverse": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", - "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.3.4", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.3.4", - "@babel/types": "7.3.4", - "debug": "4.1.1", - "globals": "11.11.0", - "lodash": "4.17.11" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "@angular/http": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.0.4.tgz", + "integrity": "sha512-oUGT7xS7FZYajuHq0DP6MgahacB5sJTRgxiUU4uhQ/mqV7aREODVJJgw7oHDhM7Cnyzzo0B9D0zpEljKmeCLWQ==", + "requires": { + "tslib": "^1.9.0" + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", - "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - } - }, - "@ngtools/json-schema": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", - "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", - "dev": true - }, - "@ngtools/webpack": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.0.7.tgz", - "integrity": "sha512-ukZv/8vhiVWLsEEWF1uena8GHRVUpwbPJ+8AupW25d2nNpwfsDtTIXKzTzRYeIQFFCnHJxr04lK18CVsn1lFaQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.7", - "enhanced-resolve": "4.1.0", - "rxjs": "6.3.3", - "tree-kill": "1.2.0", - "webpack-sources": "1.2.0" - } - }, - "@schematics/angular": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.0.7.tgz", - "integrity": "sha512-xDSMAtOdKNa5uqsEfbwBVHVCjpNSmIIcadi0Rki+5Nmobf5nnQWPly1/xj5aHzT6SKuV4BIMvsBG9UgI9Ss/Iw==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.7", - "@angular-devkit/schematics": "7.0.7", - "typescript": "3.1.6" - } - }, - "@schematics/update": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.10.7.tgz", - "integrity": "sha512-E4txrdnIcNn1K0xFPmY4ywAnVj+hN2QB1wBijoAMezYTEjcKxW0g6thPfUv6qhIPcphxrCOqwl6cIELZjq2dtA==", - "dev": true, - "requires": { - "@angular-devkit/core": "7.0.7", - "@angular-devkit/schematics": "7.0.7", - "npm-registry-client": "8.6.0", - "rxjs": "6.3.3", - "semver": "5.5.1", - "semver-intersect": "1.4.0" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/jasmine": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", - "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.6.tgz", - "integrity": "sha512-2ZOKrxb8bKRmP/po5ObYnRDgFE4i+lQiEB27bAMmtMWLgJSqlIDqlLx6S0IRorpOmOPRQ6O80NujTmQAtBkeNw==", - "dev": true, - "requires": { - "@types/jasmine": "2.8.16" - } - }, - "@types/node": { - "version": "8.9.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.15.tgz", - "integrity": "sha512-5nh8/K2u9p4bk95GGCJB7KBvewaB0TUziZ9DTr+mR2I6RoO4OJVqx7rxK83hs2J1tomwtCGkhiW+Dy8EUnfB+Q==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", - "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", - "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", - "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", - "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", - "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.6" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", - "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", - "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", - "dev": true, - "requires": { - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", - "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", - "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", - "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", - "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", - "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", - "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/helper-wasm-section": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-opt": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "@webassemblyjs/wast-printer": "1.7.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", - "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", - "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", - "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", - "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/floating-point-hex-parser": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-code-frame": "1.7.6", - "@webassemblyjs/helper-fsm": "1.7.6", - "@xtuc/long": "4.2.1", - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", - "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "2.1.22", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "5.7.3" - } - }, - "adm-zip": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", - "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - } - }, - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "@angular/language-service": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.13.tgz", + "integrity": "sha512-uVkqC5oxul6Jqyxzy0o4DN1TpmcmUWIi7WnDBu+aJVQFp/kqxmkNuJQvugdouxlIYdHC/SwLeVnBIplRjGH5cw==", + "dev": true + }, + "@angular/platform-browser": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.13.tgz", + "integrity": "sha512-1lPbeLQIbbafjq9ul3IA8s2fMJ/EXeMJ74ouTolVXoPPur9ZPRLX9FqBAO1K4QzkAWhRlyf6qIC+mDZfJILwZw==", + "requires": { + "tslib": "^1.9.0" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "@angular/platform-browser-dynamic": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.13.tgz", + "integrity": "sha512-KP5psUKujAO8jZKHi6LRC+N7hE/epiGOhYZxdher1sCi81sYoZmqrEWkVZ4VKhov/4aC409CocDXcF7nmHV8tg==", + "requires": { + "tslib": "^1.9.0" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "@angular/router": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.13.tgz", + "integrity": "sha512-9CqnachtdASnEmRMtrG/R3c5nDCjjlCU4n0W/xt5+LlveyuUVvAT/CFUC38km4Df3lIvqap8mSpxzGaEzCL+wQ==", + "requires": { + "tslib": "^1.9.0" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.3" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "app-root-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", - "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", - "dev": true - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "2.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.1.5.tgz", - "integrity": "sha512-kk4Zb6RUc58ld7gdosERHMF3DzIYJc2fp5sX46qEsGXQQy5bXsu8qyLjoxuY1NuQ/cJuCYnx99BfjwnRggrYIw==", - "dev": true, - "requires": { - "browserslist": "4.4.2", - "caniuse-lite": "1.0.30000948", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.5", - "postcss-value-parser": "3.3.1" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "@babel/core": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", + "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } + "@babel/generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "dev": true, + "requires": { + "@babel/types": "^7.6.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.6.5", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/helper-define-map": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", + "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", - "dev": true - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "requires": { - "minimist": "1.2.0" - } - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "1.6.16" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.2", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.2", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.1.0" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.4" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.10" - } - }, - "browserslist": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz", - "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000948", - "electron-to-chromium": "1.3.116", - "node-releases": "1.1.10" - } - }, - "browserstack": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz", - "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==", - "dev": true, - "requires": { - "https-proxy-agent": "2.2.1" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.5", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - }, - "dependencies": { - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30000948", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000948.tgz", - "integrity": "sha512-Lw4y7oz1X5MOMZm+2IFaSISqVVQvUuD+ZUSfeYK/SlYiMjkHN/eJ2PDfJehW5NA6JjrxYSSnIWfwjeObQMEjFQ==", - "dev": true - }, - "canonical-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", - "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.2", - "braces": "2.3.2", - "fsevents": "1.2.9", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.2" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "circular-dependency-plugin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", - "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", - "dev": true - }, - "circular-json": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz", - "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dev": true, - "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codelyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", - "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", - "dev": true, - "requires": { - "app-root-path": "2.1.0", - "css-selector-tokenizer": "0.7.1", - "cssauron": "1.4.0", - "semver-dsl": "1.0.1", - "source-map": "0.5.7", - "sprintf-js": "1.1.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz", - "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "compressible": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz", - "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==", - "dev": true, - "requires": { - "mime-db": "1.38.0" - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.16", - "debug": "2.6.9", - "on-headers": "1.0.2", - "safe-buffer": "5.1.2", - "vary": "1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.4.2", - "xdg-basedir": "3.0.0" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "1.3.2", - "utils-merge": "1.0.1" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz", - "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.3.0", - "serialize-javascript": "1.6.1" - }, - "dependencies": { - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.2.2", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } + "@babel/helper-member-expression-to-functions": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5" + } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.2", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "1.0.1" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", - "dev": true, - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" - } - }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "1.0.2" - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "d3": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.9.2.tgz", - "integrity": "sha512-ydrPot6Lm3nTWH+gJ/Cxf3FcwuvesYQ5uk+j/kXEH/xbuYWYWTMAHTJQkyeuG8Y5WM5RSEYB41EctUrXQQytRQ==", - "requires": { - "d3-array": "1.2.4", - "d3-axis": "1.0.12", - "d3-brush": "1.0.6", - "d3-chord": "1.0.6", - "d3-collection": "1.0.7", - "d3-color": "1.2.3", - "d3-contour": "1.3.2", - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-dsv": "1.1.1", - "d3-ease": "1.0.5", - "d3-fetch": "1.1.2", - "d3-force": "1.2.1", - "d3-format": "1.3.2", - "d3-geo": "1.11.3", - "d3-hierarchy": "1.1.8", - "d3-interpolate": "1.3.2", - "d3-path": "1.0.7", - "d3-polygon": "1.0.5", - "d3-quadtree": "1.0.6", - "d3-random": "1.1.2", - "d3-scale": "2.2.2", - "d3-scale-chromatic": "1.3.3", - "d3-selection": "1.4.0", - "d3-shape": "1.3.4", - "d3-time": "1.0.11", - "d3-time-format": "2.1.3", - "d3-timer": "1.0.9", - "d3-transition": "1.2.0", - "d3-voronoi": "1.1.4", - "d3-zoom": "1.7.3" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "d3-brush": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.6.tgz", - "integrity": "sha512-lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-interpolate": "1.3.2", - "d3-selection": "1.4.0", - "d3-transition": "1.2.0" - } - }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1.2.4", - "d3-path": "1.0.7" - } - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.3.tgz", - "integrity": "sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw==" - }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "requires": { - "d3-array": "1.2.4" - } - }, - "d3-dispatch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.5.tgz", - "integrity": "sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g==" - }, - "d3-drag": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.3.tgz", - "integrity": "sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-selection": "1.4.0" - } - }, - "d3-dsv": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.1.1.tgz", - "integrity": "sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw==", - "requires": { - "commander": "2.17.1", - "iconv-lite": "0.4.24", - "rw": "1.3.3" - } - }, - "d3-ease": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz", - "integrity": "sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ==" - }, - "d3-fetch": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", - "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", - "requires": { - "d3-dsv": "1.1.1" - } - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1.0.7", - "d3-dispatch": "1.0.5", - "d3-quadtree": "1.0.6", - "d3-timer": "1.0.9" - } - }, - "d3-format": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.3.2.tgz", - "integrity": "sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ==" - }, - "d3-geo": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.3.tgz", - "integrity": "sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ==", - "requires": { - "d3-array": "1.2.4" - } - }, - "d3-hierarchy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", - "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==" - }, - "d3-interpolate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz", - "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==", - "requires": { - "d3-color": "1.2.3" - } - }, - "d3-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.7.tgz", - "integrity": "sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA==" - }, - "d3-polygon": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.5.tgz", - "integrity": "sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w==" - }, - "d3-quadtree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.6.tgz", - "integrity": "sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "requires": { - "d3-array": "1.2.4", - "d3-collection": "1.0.7", - "d3-format": "1.3.2", - "d3-interpolate": "1.3.2", - "d3-time": "1.0.11", - "d3-time-format": "2.1.3" - } - }, - "d3-scale-chromatic": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz", - "integrity": "sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw==", - "requires": { - "d3-color": "1.2.3", - "d3-interpolate": "1.3.2" - } - }, - "d3-selection": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.0.tgz", - "integrity": "sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg==" - }, - "d3-shape": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.4.tgz", - "integrity": "sha512-izaz4fOpOnY3CD17hkZWNxbaN70sIGagLR/5jb6RS96Y+6VqX+q1BQf1av6QSBRdfULi3Gb8Js4CzG4+KAPjMg==", - "requires": { - "d3-path": "1.0.7" - } - }, - "d3-time": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.11.tgz", - "integrity": "sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw==" - }, - "d3-time-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.3.tgz", - "integrity": "sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA==", - "requires": { - "d3-time": "1.0.11" - } - }, - "d3-timer": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz", - "integrity": "sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg==" - }, - "d3-transition": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.2.0.tgz", - "integrity": "sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw==", - "requires": { - "d3-color": "1.2.3", - "d3-dispatch": "1.0.5", - "d3-ease": "1.0.5", - "d3-interpolate": "1.3.2", - "d3-selection": "1.4.0", - "d3-timer": "1.0.9" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "d3-zoom": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.3.tgz", - "integrity": "sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg==", - "requires": { - "d3-dispatch": "1.0.5", - "d3-drag": "1.2.3", - "d3-interpolate": "1.3.2", - "d3-selection": "1.4.0", - "d3-transition": "1.2.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "date-format": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", - "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-gateway": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", - "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", - "dev": true, - "requires": { - "execa": "0.10.0", - "ip-regex": "2.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - } - } - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "requires": { - "strip-bom": "3.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/helper-module-transforms": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", + "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.3" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", - "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.2", - "void-elements": "2.0.1" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.116", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz", - "integrity": "sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA==", - "dev": true - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "3.3.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "1.0.3" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.4.1", - "tapable": "1.1.1" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es6-promise": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "4.2.6" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "eslint-scope": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.2.tgz", - "integrity": "sha512-5q1+B/ogmHl8+paxtOKx38Z8LtWkVGuNt3+GQNErqwLl6ViNp/gdJGMCjZNxZ8j/VYjDNZ2Fo+eQc1TAVPIzbg==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "estree-walker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", - "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", - "dev": true - }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true, - "requires": { - "original": "1.0.2" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", - "dev": true, - "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" - }, - "dependencies": { - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true + "@babel/helper-replace-supers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + } }, - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true, - "requires": { - "expand-range": "0.1.1" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true, - "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" - } + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.4" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" - } + "@babel/helpers": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "dev": true, + "requires": { + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" + } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "@babel/parser": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", - "qs": "6.5.2", - "range-parser": "1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "@babel/plugin-proposal-dynamic-import": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", + "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" + } }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" - } + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", + "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", + "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "7.1.3", - "minimatch": "3.0.4" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - }, - "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" - } - }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", - "dev": true - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "dev": true, - "requires": { - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.22" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true, - "requires": { - "null-check": "1.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "4.0.0", - "universalify": "0.1.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.13.0", - "node-pre-gyp": "0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } + "@babel/plugin-transform-async-to-generator": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true + "@babel/plugin-transform-block-scoping": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", + "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" + } }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true + "@babel/plugin-transform-classes": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" + } }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-destructuring": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", + "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.1" - } + "@babel/plugin-transform-dotall-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", + "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-duplicate-keys": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.3.5" - } + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - } + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } + "@babel/plugin-transform-member-expression-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } + "@babel/plugin-transform-modules-amd": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true + "@babel/plugin-transform-modules-commonjs": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", + "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-modules-systemjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", + "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", + "dev": true, + "requires": { + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true + "@babel/plugin-transform-object-super": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5" + } }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.3.5" - } + "@babel/plugin-transform-property-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "4.1.1", - "iconv-lite": "0.4.24", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.3.0", - "nopt": "4.0.1", - "npm-packlist": "1.4.1", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.3", - "semver": "5.7.0", - "tar": "4.4.8" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } + "@babel/plugin-transform-reserved-words": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.6" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } + "@babel/plugin-transform-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", + "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + "@babel/plugin-transform-unicode-regex": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", + "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + "@babel/preset-env": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz", + "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.5.5", + "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.5.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.5.5", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + } }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } + "@babel/runtime": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", + "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true + "@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" + } }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true + "@babel/traverse": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "@babel/types": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true + "@bazel/hide-bazel-files": { + "version": "0.39.1", + "resolved": "https://registry.npmjs.org/@bazel/hide-bazel-files/-/hide-bazel-files-0.39.1.tgz", + "integrity": "sha512-nmILMfF8wD3hR3+r0MUCqPahgBYszLKFBcrbnmYthG6Oujgy1NpYMjeWj7Hjt3pJMkT1MgQP/VipLu2gQyMc0Q==", + "dev": true + }, + "@compodoc/compodoc": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.11.tgz", + "integrity": "sha512-3PGTf64Eug1SIcdQole2KkVftBMFjKzecBytLHy4+MQYcblAQM0O3a4GoxuWwN7cTawVq4eqSJTtf6My1I/oHA==", + "dev": true, + "requires": { + "@compodoc/ngd-transformer": "^2.0.0", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.3", + "chokidar": "^3.1.1", + "colors": "^1.4.0", + "commander": "^3.0.2", + "cosmiconfig": "^5.2.1", + "decache": "^4.5.1", + "fancy-log": "^1.3.3", + "findit2": "^2.2.3", + "fs-extra": "^8.0.1", + "glob": "^7.1.4", + "handlebars": "^4.3.3", + "html-entities": "^1.2.1", + "i18next": "^17.0.16", + "inside": "^1.0.0", + "json5": "^2.1.0", + "live-server": "^1.2.1", + "lodash": "^4.17.15", + "loglevel": "^1.6.4", + "loglevel-plugin-prefix": "^0.8.4", + "lunr": "^2.3.6", + "marked": "^0.7.0", + "minimist": "^1.2.0", + "opencollective-postinstall": "^2.0.2", + "os-name": "^3.1.0", + "pdfmake": "^0.1.60", + "semver": "^6.3.0", + "traverse": "^0.6.6", + "ts-simple-ast": "12.4.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + } + } }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true + "@compodoc/ngd-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz", + "integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "fancy-log": "^1.3.2", + "typescript": "^2.4.2" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + } + } }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true + "@compodoc/ngd-transformer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.0.0.tgz", + "integrity": "sha512-9J0KkmuuuvDHxH0oREgrgbqdEFqcltQXIBofeYdIyMKzI3A+pN1Ji4zfi7x1ql0Ax7qQKemp8XWP+cCpP0qY+w==", + "dev": true, + "requires": { + "@compodoc/ngd-core": "~2.0.0", + "dot": "^1.1.1", + "fs-extra": "^4.0.1", + "viz.js": "^1.8.0" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true + "@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-H2R13IvZdM6gei2vOGSzF7HdMyw=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true + "@ngtools/webpack": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.17.tgz", + "integrity": "sha512-p25r68mDut9TGwaBMX98loTlq00gos++LRINgi4wRBAYbYmQQ2GDQw+1hWicx9V+gNEJ21Vm96miUoiQJwxNsg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.1", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@schematics/angular": { + "version": "8.3.17", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.17.tgz", + "integrity": "sha512-Ot++j7vpEBKUD+D6eQxIJto+PYR2HPR9hmBoshZ2nt1/mU3OPEpIMIO/OBnbVtGmuzKXdq2n2NvbPtnhlxWplA==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17" + } }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.2" - } + "@schematics/update": { + "version": "0.803.17", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.17.tgz", + "integrity": "sha512-42CqIcm0i1BfBXYm6YuE8Q6kEEb0ATYiPYJQTgmb+bZSF2Sl9eAzPBaackW2EwVK1JP3Rdyl2S31OwGvgAk6xA==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.17", + "@angular-devkit/schematics": "8.3.17", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.5", + "rxjs": "6.4.0", + "semver": "6.3.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" - } + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", + "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.6.tgz", + "integrity": "sha512-2ZOKrxb8bKRmP/po5ObYnRDgFE4i+lQiEB27bAMmtMWLgJSqlIDqlLx6S0IRorpOmOPRQ6O80NujTmQAtBkeNw==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true + "@types/selenium-webdriver": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.15.tgz", + "integrity": "sha512-5nh8/K2u9p4bk95GGCJB7KBvewaB0TUziZ9DTr+mR2I6RoO4OJVqx7rxK83hs2J1tomwtCGkhiW+Dy8EUnfB+Q==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.3" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "1.2.1" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "minimatch": "3.0.4" - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "gui2-fw-lib": { - "version": "file:../gui2-fw-lib/gui2-fw-lib-2.1.1.tgz", - "integrity": "sha512-667z5UF7smRugLD3muYVzs4jXPCZ8JBAde8YTwixoS1btVs6YzGPu4NXMUxdxJn/JbpRf6YXcnfRTgPmSQRX9w==", - "requires": { - "tslib": "1.9.3" - } - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", - "dev": true, - "requires": { - "async": "2.6.2", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "6.10.0", - "har-schema": "2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - } - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.5.0" - } - }, - "http-parser-js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", - "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", - "dev": true - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.7.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", - "dev": true, - "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.0", - "lodash": "4.17.11", - "micromatch": "3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "2.1.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.2.0" - } + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "injection-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.1.tgz", - "integrity": "sha512-zHI+E+dM0PXix5FFTO1Y4/UOyAzE7zG1l/QwAn4jchTThOoBq+UYRFK4AVG7lQgFL+go62SbrzSsjXy9DFEZUg==", - "dev": true - }, - "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "internal-ip": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", - "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", - "dev": true, - "requires": { - "default-gateway": "2.7.2", - "ipaddr.js": "1.8.0" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.4.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.13.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "1.6.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "requires": { - "buffer-alloc": "1.2.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.1.0", - "js-yaml": "3.12.2", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.1", - "wordwrap": "1.0.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } + } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "acorn": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + } + } }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", + "dev": true + }, + "adm-zip": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", + "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "istanbul-api": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz", - "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==", - "dev": true, - "requires": { - "async": "2.6.2", - "compare-versions": "3.4.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "2.0.3", - "istanbul-lib-hook": "2.0.3", - "istanbul-lib-instrument": "3.1.0", - "istanbul-lib-report": "2.0.4", - "istanbul-lib-source-maps": "3.0.2", - "istanbul-reports": "2.1.1", - "js-yaml": "3.12.2", - "make-dir": "1.3.0", - "minimatch": "3.0.4", - "once": "1.4.0" - } - }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", - "dev": true, - "requires": { - "convert-source-map": "1.6.0", - "istanbul-lib-instrument": "1.10.2", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - }, - "dependencies": { "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "dev": true, + "requires": { + "type-fest": "^0.5.2" + } }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", - "dev": true, - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.1", - "semver": "5.5.1" - } + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "5.5.2" - } - } - } - }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz", - "integrity": "sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==", - "dev": true, - "requires": { - "append-transform": "1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", - "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", - "dev": true, - "requires": { - "@babel/generator": "7.3.4", - "@babel/parser": "7.3.4", - "@babel/template": "7.2.2", - "@babel/traverse": "7.3.4", - "@babel/types": "7.3.4", - "istanbul-lib-coverage": "2.0.3", - "semver": "5.5.1" - } - }, - "istanbul-lib-report": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz", - "integrity": "sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "2.0.3", - "make-dir": "1.3.0", - "supports-color": "6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz", - "integrity": "sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==", - "dev": true, - "requires": { - "debug": "4.1.1", - "istanbul-lib-coverage": "2.0.3", - "make-dir": "1.3.0", - "rimraf": "2.6.3", - "source-map": "0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz", - "integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==", - "dev": true, - "requires": { - "handlebars": "4.1.0" - } - }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "7.1.3", - "jasmine-core": "2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - } - } - }, - "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", - "dev": true, - "requires": { - "colors": "1.1.2" - } - }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true - }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.2.tgz", - "integrity": "sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.0.tgz", - "integrity": "sha512-4WjbsaEtBK/DHeDZOPiPw5nzSGLDEDDreFRDEgnoMwmknPjTqa+23XuYFk6NiGbeiAeZCctiQ/X/z0lQBmDVOQ==", - "dev": true, - "requires": { - "lie": "3.3.0", - "pako": "1.0.10", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "karma": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-3.0.0.tgz", - "integrity": "sha512-ZTjyuDXVXhXsvJ1E4CnZzbCjSxD6sEdzEsFYogLuZM0yqvg/mgz+O+R1jb0J7uAQeuzdY8kJgx6hSNXLwFuHIQ==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "body-parser": "1.18.3", - "chokidar": "2.0.4", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.6.5", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "http-proxy": "1.17.0", - "isbinaryfile": "3.0.3", - "lodash": "4.17.11", - "log4js": "3.0.6", - "mime": "2.4.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.3", - "safe-buffer": "5.1.2", - "socket.io": "2.1.1", - "source-map": "0.6.1", - "tmp": "0.0.33", - "useragent": "2.2.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", - "dev": true, - "requires": { - "fs-access": "1.0.1", - "which": "1.3.1" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.5.tgz", - "integrity": "sha512-yPvAlKtY3y+rKKWbOo0CzBMVTvJEeMOgbMXuVv3yWvS8YtYKC98AU9vFF0mVBZ2RP1E9SgS90+PT6Kf14P3S4w==", - "dev": true, - "requires": { - "istanbul-api": "2.1.1", - "minimatch": "3.0.4" - } - }, - "karma-firefox-launcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz", - "integrity": "sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA==", - "dev": true - }, - "karma-jasmine": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", - "dev": true - }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", - "dev": true, - "requires": { - "karma-jasmine": "1.1.2" - } - }, - "karma-source-map-support": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", - "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", - "dev": true, - "requires": { - "source-map-support": "0.5.11" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true }, - "source-map-support": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - } - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "4.0.1" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", - "dev": true, - "requires": { - "clone": "2.1.2", - "errno": "0.1.7", - "graceful-fs": "4.1.15", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.88.0", - "source-map": "0.6.1" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "less-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", - "dev": true, - "requires": { - "clone": "2.1.2", - "loader-utils": "1.1.0", - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "less-plugin-npm-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz", - "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=", - "dev": true, - "requires": { - "promise": "7.0.4", - "resolve": "1.1.7" - }, - "dependencies": { - "promise": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", - "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=", - "dev": true, - "requires": { - "asap": "2.0.6" - } + "apache-crypt": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", + "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", + "dev": true, + "requires": { + "unix-crypt-td-js": "^1.0.0" + } }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "license-webpack-plugin": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz", - "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==", - "dev": true, - "requires": { - "webpack-sources": "1.2.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "requires": { - "immediate": "3.0.6" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "log4js": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz", - "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==", - "dev": true, - "requires": { - "circular-json": "0.5.9", - "date-format": "1.2.0", - "debug": "3.2.6", - "rfdc": "1.1.2", - "streamroller": "0.7.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "apache-md5": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", + "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", + "dev": true + }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "magic-string": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz", - "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", - "dev": true, - "requires": { - "sourcemap-codec": "1.4.4" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", - "dev": true - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.5.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" - } + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", - "dev": true - }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, - "requires": { - "mime-db": "1.38.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz", - "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0", - "webpack-sources": "1.2.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.3" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.0.tgz", - "integrity": "sha512-5DDQvN0luhXdut8SCwzm/ZuAX2W+fwhqNzfq7CZ+OJzQ6NwpcqmIGyLD1R8MEt7BeErzcsI0JLr4pND2pNp2Cw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "ng-packagr": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-4.7.1.tgz", - "integrity": "sha512-MIPKxyrnV22fS3wSfst2XjwWOonFKujVVEnIehYJhiu8GOg37bCdbbr9plsE1jRDmDAUz6M1MvdKibUrJyRp6Q==", - "dev": true, - "requires": { - "@ngtools/json-schema": "1.1.0", - "autoprefixer": "9.1.5", - "browserslist": "4.4.2", - "chalk": "2.4.2", - "chokidar": "2.0.4", - "clean-css": "4.2.1", - "commander": "2.17.1", - "fs-extra": "7.0.1", - "glob": "7.1.3", - "injection-js": "2.2.1", - "less": "3.8.1", - "less-plugin-npm-import": "2.1.0", - "node-sass": "4.9.3", - "node-sass-tilde-importer": "1.0.2", - "opencollective-postinstall": "2.0.2", - "postcss": "7.0.5", - "postcss-url": "8.0.0", - "read-pkg-up": "4.0.0", - "rimraf": "2.6.3", - "rollup": "0.67.4", - "rollup-plugin-commonjs": "9.2.1", - "rollup-plugin-json": "3.1.0", - "rollup-plugin-node-resolve": "4.0.1", - "rollup-plugin-sourcemaps": "0.4.2", - "rxjs": "6.3.3", - "stylus": "0.54.5", - "uglify-js": "3.4.9", - "update-notifier": "2.5.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "dev": true, + "requires": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "dev": true, + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.2.0" - } + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=", + "dev": true }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "requires": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + } }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.5.0", - "path-type": "3.0.0" - } + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" - } - } - } - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.3", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.0.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.11.1", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.10.tgz", - "integrity": "sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ==", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, - "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", - "dev": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.3", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.13.0", - "node-gyp": "3.8.0", - "npmlog": "4.1.2", - "request": "2.87.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.1", - "true-case-path": "1.0.3" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "4.1.5", - "which": "1.3.1" - } + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.22", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "1.4.1" - } - } - } - }, - "node-sass-tilde-importer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz", - "integrity": "sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==", - "dev": true, - "requires": { - "find-parent-dir": "0.3.0" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.0.9" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "2.7.1", - "resolve": "1.10.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "dev": true, - "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.1", - "validate-npm-package-name": "3.0.0" - } - }, - "npm-registry-client": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", - "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "graceful-fs": "4.1.15", - "normalize-package-data": "2.5.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.88.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "slide": "1.1.6", - "ssri": "5.3.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "opencollective-postinstall": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", - "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", - "dev": true - }, - "opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "1.4.4" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" - } - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17", - "safe-buffer": "5.1.2" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.2" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "portfinder": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", - "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz", - "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "5.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-import": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz", - "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==", - "dev": true, - "requires": { - "postcss": "7.0.5", - "postcss-value-parser": "3.3.1", - "read-cache": "1.0.0", - "resolve": "1.10.0" - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "postcss": "7.0.5", - "postcss-load-config": "2.0.0", - "schema-utils": "1.0.0" - } - }, - "postcss-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-8.0.0.tgz", - "integrity": "sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw==", - "dev": true, - "requires": { - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "postcss": "7.0.5", - "xxhashjs": "0.2.2" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "requires": { - "asap": "2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "protractor": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", - "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", - "dev": true, - "requires": { - "@types/q": "0.0.32", - "@types/selenium-webdriver": "3.0.15", - "blocking-proxy": "1.0.1", - "browserstack": "1.5.2", - "chalk": "1.1.3", - "glob": "7.1.3", - "jasmine": "2.8.0", - "jasminewd2": "2.2.0", - "optimist": "0.6.1", - "q": "1.4.1", - "saucelabs": "1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "0.4.18", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "12.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "webdriver-manager": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz", - "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==", - "dev": true, - "requires": { - "adm-zip": "0.4.13", - "chalk": "1.1.3", - "del": "2.2.2", - "glob": "7.1.3", - "ini": "1.3.5", - "minimist": "1.2.0", - "q": "1.4.1", - "request": "2.88.0", - "rimraf": "2.6.3", - "semver": "5.5.1", - "xml2js": "0.4.19" - } - } - } - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.4", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.4" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - } - } - }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.5.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "1.10.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "1.2.8" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.22", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, - "rfdc": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz", - "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "rollup": { - "version": "0.67.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.67.4.tgz", - "integrity": "sha512-AVuP73mkb4BBMUmksQ3Jw0jTrBTU1i7rLiUYjFxLZGb3xiFmtVEg40oByphkZAsiL0bJC3hRAJUQos/e5EBd+w==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "8.9.5" - } - }, - "rollup-plugin-commonjs": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.1.tgz", - "integrity": "sha512-X0A/Cp/t+zbONFinBhiTZrfuUaVwRIp4xsbKq/2ohA2CDULa/7ONSJTelqxon+Vds2R2t2qJTqJQucKUC8GKkw==", - "dev": true, - "requires": { - "estree-walker": "0.5.2", - "magic-string": "0.25.2", - "resolve": "1.10.0", - "rollup-pluginutils": "2.4.1" - } - }, - "rollup-plugin-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-3.1.0.tgz", - "integrity": "sha512-BlYk5VspvGpjz7lAwArVzBXR60JK+4EKtPkCHouAWg39obk9S61hZYJDBfMK+oitPdoe11i69TlxKlMQNFC/Uw==", - "dev": true, - "requires": { - "rollup-pluginutils": "2.4.1" - } - }, - "rollup-plugin-node-resolve": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.0.1.tgz", - "integrity": "sha512-fSS7YDuCe0gYqKsr5OvxMloeZYUSgN43Ypi1WeRZzQcWtHgFayV5tUSPYpxuaioIIWaBXl6NrVk0T2/sKwueLg==", - "dev": true, - "requires": { - "builtin-modules": "3.0.0", - "is-module": "1.0.0", - "resolve": "1.10.0" - }, - "dependencies": { - "builtin-modules": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz", - "integrity": "sha512-hMIeU4K2ilbXV6Uv93ZZ0Avg/M91RaKXucQ+4me2Do1txxBDyDZWCBa5bJSLqoNTRpXTLwEzIk1KmloenDDjhg==", - "dev": true - } - } - }, - "rollup-plugin-sourcemaps": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz", - "integrity": "sha1-YhJaqUCHqt97g+9N+vYptHMTXoc=", - "dev": true, - "requires": { - "rollup-pluginutils": "2.4.1", - "source-map-resolve": "0.5.2" - } - }, - "rollup-pluginutils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz", - "integrity": "sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw==", - "dev": true, - "requires": { - "estree-walker": "0.6.0", - "micromatch": "3.1.10" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.0.tgz", - "integrity": "sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==", - "dev": true - } - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", - "requires": { - "tslib": "1.9.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "1.0.0" - } + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "dev": true, + "requires": { + "base64-js": "^1.1.2" + } }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" - } + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "dev": true, + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - } + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", + "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000984", + "electron-to-chromium": "^1.3.191", + "node-releases": "^1.1.25" + } + }, + "browserstack": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz", + "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", + "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", + "dev": true + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "dependencies": { + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "*" + } + } + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-block-writer": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-7.3.1.tgz", + "integrity": "sha512-3Jfe6ZmmGzvdQWFo3MUzobn3WdX++jc3Tj0rsviJWYPnP7NGMFEE4qheNeOXeJgB1TTgxYT8XuNvhS/u596yGg==", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz", + "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", + "dev": true, + "requires": { + "app-root-path": "^2.1.0", + "css-selector-tokenizer": "^0.7.0", + "cssauron": "^1.4.0", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "dev": true, + "requires": { + "mime-db": ">= 1.40.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", + "dev": true + } + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==", + "dev": true, + "requires": { + "cacache": "^11.3.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" + }, + "core-js-compat": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", + "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", + "dev": true, + "requires": { + "browserslist": "^4.7.2", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", + "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001004", + "electron-to-chromium": "^1.3.295", + "node-releases": "^1.1.38" + } + }, + "caniuse-lite": { + "version": "1.0.30001008", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", + "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-js": { + "version": "3.1.9-1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", + "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=", + "dev": true + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "d3": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.9.2.tgz", + "integrity": "sha512-ydrPot6Lm3nTWH+gJ/Cxf3FcwuvesYQ5uk+j/kXEH/xbuYWYWTMAHTJQkyeuG8Y5WM5RSEYB41EctUrXQQytRQ==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.6.tgz", + "integrity": "sha512-lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "d3-color": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.3.tgz", + "integrity": "sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw==" + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.5.tgz", + "integrity": "sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g==" + }, + "d3-drag": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.3.tgz", + "integrity": "sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg==", + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.1.1.tgz", + "integrity": "sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + }, + "d3-ease": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz", + "integrity": "sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ==" + }, + "d3-fetch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", + "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-format": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.3.2.tgz", + "integrity": "sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ==" + }, + "d3-geo": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.3.tgz", + "integrity": "sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ==", + "requires": { + "d3-array": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", + "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==" + }, + "d3-interpolate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz", + "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.7.tgz", + "integrity": "sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA==" + }, + "d3-polygon": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.5.tgz", + "integrity": "sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w==" + }, + "d3-quadtree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.6.tgz", + "integrity": "sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA==" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-scale-chromatic": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz", + "integrity": "sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw==", + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.0.tgz", + "integrity": "sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg==" + }, + "d3-shape": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.4.tgz", + "integrity": "sha512-izaz4fOpOnY3CD17hkZWNxbaN70sIGagLR/5jb6RS96Y+6VqX+q1BQf1av6QSBRdfULi3Gb8Js4CzG4+KAPjMg==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.11.tgz", + "integrity": "sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw==" + }, + "d3-time-format": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.3.tgz", + "integrity": "sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA==", + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz", + "integrity": "sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg==" + }, + "d3-transition": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.2.0.tgz", + "integrity": "sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.3.tgz", + "integrity": "sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decache": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz", + "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==", + "dev": true, + "requires": { + "callsite": "^1.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz", + "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz", + "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", + "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", + "dev": true + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.302", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.302.tgz", + "integrity": "sha512-1qConyiVEbj4xZRBXqtGR003+9tV0rJF0PS6aeO0Ln/UL637js9hdwweCl07meh/kJoI2N4W8q3R3g3F5z46ww==", + "dev": true + }, + "elliptic": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.52", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", + "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.2", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", + "dev": true + }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "ext": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", + "integrity": "sha512-/KLjJdTNyDepCihrk4HQt57nAE1IRCEo5jUt+WgWGCr1oARhibDvmI2DMcSNWood1T9AUWwq+jaV1wvRqaXfnA==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "falafel": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", + "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", + "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", + "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findit2": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", + "integrity": "sha1-WKRmaX34piBc39vzlVNri9d3pfY=", + "dev": true + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", + "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "fontkit": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.0.tgz", + "integrity": "sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.11.6", + "brfs": "^1.4.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.0", + "clone": "^1.0.1", + "deep-equal": "^1.0.0", + "dfa": "^1.0.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.0.0", + "unicode-trie": "^0.3.0" + }, + "dependencies": { + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.1.tgz", + "integrity": "sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "gui2-fw-lib": { + "version": "file:../gui2-fw-lib/gui2-fw-lib-2.3.0.tgz", + "integrity": "sha512-nMdJh5ks3Tf5ZHDqEDlF6/I3Zgbwj5aiKRGRw0K5k1vdrosactslN5+jLHnCcedpJddC8EkLluN8pstVTFjL7Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "dev": true + }, + "handlebars": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", + "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "i18next": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-17.3.1.tgz", + "integrity": "sha512-4nY+yaENaoZKmpbiDXPzucVHCN3hN9Z9Zk7LyQXVOKVIpnYOJ3L/yxHJlBPtJDq3PGgjFwA0QBFm/26Z0iDT5A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "injection-js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.2.2.tgz", + "integrity": "sha512-9K4fW2NNPG3JCvORx5G/T6q/PZYIr43RFgxBvtk3OV4omh5iqvpK4cChuBfhgPnRbXSgZRfuROh0XG5KNA8Xlg==", + "dev": true + }, + "inquirer": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz", + "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/inside/-/inside-1.0.0.tgz", + "integrity": "sha1-20Xpk1c82z23C5gy6ChbrUZCR3A=", + "dev": true + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-reference": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39" + } + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, + "requires": { + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.0.tgz", + "integrity": "sha512-4WjbsaEtBK/DHeDZOPiPw5nzSGLDEDDreFRDEgnoMwmknPjTqa+23XuYFk6NiGbeiAeZCctiQ/X/z0lQBmDVOQ==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.4.1.tgz", + "integrity": "sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.1.0", + "connect": "^3.6.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.14", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", + "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", + "dev": true, + "requires": { + "istanbul-api": "^1.3.1", + "minimatch": "^3.0.4" + } + }, + "karma-firefox-launcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz", + "integrity": "sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA==", + "dev": true + }, + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "^1.0.2" + } + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "less": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", + "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "less-plugin-npm-import": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz", + "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=", + "dev": true, + "requires": { + "promise": "~7.0.1", + "resolve": "~1.1.6" + }, + "dependencies": { + "promise": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", + "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "license-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.0.2.tgz", + "integrity": "sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w==", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "brfs": "^2.0.2", + "unicode-trie": "^1.0.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + } + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "requires": { + "chokidar": "^2.0.4", + "colors": "^1.4.0", + "connect": "^3.6.6", + "cors": "^2.8.5", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "^4.1.1", + "opn": "^6.0.0", + "proxy-middleware": "^0.15.0", + "send": "^0.17.1", + "serve-index": "^1.9.1" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "log4js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", + "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "dev": true, + "requires": { + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.4", + "streamroller": "^1.0.6" + } + }, + "loglevel": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", + "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==", + "dev": true + }, + "loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", + "dev": true + }, + "macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "dev": true + }, + "magic-string": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", + "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-fetch-happen": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.1.tgz", + "integrity": "sha512-b4dfaMvUDR67zxUq1+GN7Ke9rH5WvGRmoHuMH7l+gmUCR2tCXFP6mpeJ9Dp+jB6z8mShRopSf1vLRBhRs8Cu5w==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", + "dev": true + }, + "mime-types": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "dev": true, + "requires": { + "mime-db": "~1.38.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "dev": true, + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "ng-packagr": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.7.1.tgz", + "integrity": "sha512-NDAUcMtLyZnF3bP6JtC3ANpIQRclRDPilF7C0DsjQuIz1q0V3mT7f1PwV0jnRWy8iRpSZmJZr6AGl736gloHtQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "autoprefixer": "^9.6.0", + "browserslist": "^4.0.0", + "chalk": "^2.3.1", + "chokidar": "^3.0.0", + "clean-css": "^4.1.11", + "commander": "^3.0.0", + "fs-extra": "^8.0.0", + "glob": "^7.1.2", + "injection-js": "^2.2.1", + "less": "^3.8.0", + "less-plugin-npm-import": "^2.1.0", + "node-sass-tilde-importer": "^1.0.0", + "postcss": "^7.0.0", + "postcss-url": "^8.0.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^3.0.0", + "rollup": "1.25.2", + "rollup-plugin-commonjs": "^10.0.0", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-node-resolve": "^5.0.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "rxjs": "^6.0.0", + "sass": "^1.17.3", + "stylus": "^0.54.5", + "terser": "^4.1.2", + "update-notifier": "^3.0.0" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "rimraf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.39", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", + "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "node-sass-tilde-importer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz", + "integrity": "sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==", + "dev": true, + "requires": { + "find-parent-dir": "^0.3.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", + "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-registry-fetch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz", + "integrity": "sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dev": true, + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pacote": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.5.tgz", + "integrity": "sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pdfkit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.10.0.tgz", + "integrity": "sha512-mRJ6iuDzpIQ4ftKp5GvijLXNVRK86xjnyIPBraYSPrUPubNqWM5/oYmc7FZKUWz3wusRTj3PLR9HJ1X5ooqfsg==", + "dev": true, + "requires": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.0.0", + "linebreak": "^0.3.0", + "png-js": ">=0.1.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY=", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + } + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "pdfmake": { + "version": "0.1.62", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.62.tgz", + "integrity": "sha512-2QIzijdkwFBChTFu5nVmMe+fLBQTAYTPTxi4jGbUTyGxZBq7YR1I17FBk1Cs+3nrYufNKNukT6OR1RNxbovsTA==", + "dev": true, + "requires": { + "iconv-lite": "^0.5.0", + "linebreak": "^1.0.2", + "pdfkit": "^0.10.0", + "svg-to-pdfkit": "^0.1.7" + }, + "dependencies": { + "iconv-lite": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", + "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", + "integrity": "sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==", + "dev": true }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "sass-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", - "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", - "dev": true, - "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.6.0", - "pify": "3.0.0", - "semver": "5.5.1" - }, - "dependencies": { "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "requires": { - "https-proxy-agent": "2.2.1" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.0" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "2.5.1", - "source-map": "0.4.4" - }, - "dependencies": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "png-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-0.1.1.tgz", + "integrity": "sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM=", + "dev": true + }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-8.0.0.tgz", + "integrity": "sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw==", + "dev": true, + "requires": { + "mime": "^2.3.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^7.0.2", + "xxhashjs": "^0.2.1" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", + "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz", + "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "read-package-json": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.0.tgz", + "integrity": "sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^5.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "registry-auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", + "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", + "dev": true, + "requires": { + "rc": "^1.2.8", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "restructure": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-0.5.4.tgz", + "integrity": "sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=", + "dev": true, + "requires": { + "browserify-optional": "^1.0.0" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz", + "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + } + } + }, + "rollup-plugin-commonjs": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz", + "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==", + "dev": true, + "requires": { + "rollup-pluginutils": "^2.5.0" + } + }, + "rollup-plugin-node-resolve": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", + "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==", + "dev": true, + "requires": { + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.11.1", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-sourcemaps": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz", + "integrity": "sha1-YhJaqUCHqt97g+9N+vYptHMTXoc=", + "dev": true, + "requires": { + "rollup-pluginutils": "^2.0.1", + "source-map-resolve": "^0.5.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", + "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scope-analyzer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.0.5.tgz", + "integrity": "sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw==", + "dev": true, + "requires": { + "array-from": "^2.1.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "dev": true, + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "requires": { - "jszip": "3.2.0", - "rimraf": "2.6.3", - "tmp": "0.0.30", - "xml2js": "0.4.19" - }, - "dependencies": { - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - } - } - }, - "selfsigned": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", - "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", - "dev": true, - "requires": { - "node-forge": "0.7.5" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, - "semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, - "semver-intersect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", - "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + } + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", + "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "spdy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", + "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dev": true, + "requires": { + "escodegen": "^1.8.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "static-module": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.3.tgz", + "integrity": "sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.2", + "through2": "~2.0.3" + }, + "dependencies": { + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "dev": true + } + } }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", - "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.22", - "parseurl": "1.3.2" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dev": true, - "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shelljs": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", - "dev": true, - "requires": { - "glob": "7.1.3", - "interpret": "1.2.0", - "rechoir": "0.6.2" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "streamroller": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", + "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.14" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "dev": true, - "requires": { - "debug": "3.1.0", - "engine.io": "3.2.1", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", - "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", - "dev": true - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" - } - }, - "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.4" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", - "dev": true, - "requires": { - "async": "2.6.2", - "loader-utils": "1.1.0" - } - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz", - "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.3" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.3" - } - }, - "spdx-license-ids": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", - "dev": true - }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.1" - } - }, - "spdy-transport": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", - "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" - } - }, - "speed-measure-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-b9Yd0TrzceMVYSbuamM1sFsGM1oVfyFTM22gOoyLhymNvBVApuYpkdFOgYkKJpN/KhTpcCYcTGHg7X+FJ33Vvw==", - "dev": true, - "requires": { - "chalk": "2.4.2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "stats-webpack-plugin": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz", - "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "streamroller": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", - "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", - "dev": true, - "requires": { - "date-format": "1.2.0", - "debug": "3.2.6", - "mkdirp": "0.5.1", - "readable-stream": "2.3.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-loader": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz", - "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.7" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.4.0" - } - } - } - }, - "stylus": { - "version": "0.54.5", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", - "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", - "dev": true, - "requires": { - "css-parse": "1.7.0", - "debug": "2.6.9", - "glob": "7.0.6", - "mkdirp": "0.5.1", - "sax": "0.5.8", - "source-map": "0.1.43" - }, - "dependencies": { - "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } }, - "sax": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", - "dev": true + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "lodash.clonedeep": "4.5.0", - "when": "3.6.4" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "tapable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", - "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "0.7.0" - } - }, - "terser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", - "dev": true, - "requires": { - "commander": "2.19.0", - "source-map": "0.6.1", - "source-map-support": "0.5.11" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } }, - "source-map-support": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - } - } - }, - "terser-webpack-plugin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", - "dev": true, - "requires": { - "cacache": "11.3.2", - "find-cache-dir": "2.1.0", - "schema-utils": "1.0.0", - "serialize-javascript": "1.6.1", - "source-map": "0.6.1", - "terser": "3.17.0", - "webpack-sources": "1.2.0", - "worker-farm": "1.6.0" - }, - "dependencies": { - "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "2.1.0", - "pkg-dir": "3.0.0" - } + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "schema-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz", + "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "3.0.3" - } + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "4.0.1", - "semver": "5.6.0" - } + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } + "svg-to-pdfkit": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.7.tgz", + "integrity": "sha1-fbbUfkeziI3OGAYHUajeJBf4V3U=", + "dev": true, + "requires": { + "pdfkit": ">=0.8.1" + } }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.2.0" - } + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "3.0.0" - } + "terser": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.9.tgz", + "integrity": "sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } + "terser-webpack-plugin": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "3.5.1" - } + "tiny-inflate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz", + "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c=", + "dev": true }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "topojson-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", - "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", - "requires": { - "commander": "2.17.1" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, - "ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "buffer-from": "1.1.1", - "diff": "3.5.0", - "make-error": "1.3.5", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.5.11", - "yn": "2.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true }, - "source-map-support": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - } - } - }, - "tsickle": { - "version": "0.34.3", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.34.3.tgz", - "integrity": "sha512-mb1v3nsr6rYaZky22xj0d6qv4ogAR40Bc6r37jwWOg3bEIO/ZppEFZiEADs/NNVLcWTPgmNmPZgaX5CfAH6oXA==", - "dev": true, - "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.7.3" - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.2", - "commander": "2.17.1", - "diff": "3.5.0", - "glob": "7.1.3", - "js-yaml": "3.12.2", - "minimatch": "3.0.4", - "resolve": "1.10.0", - "semver": "5.5.1", - "tslib": "1.9.3", - "tsutils": "2.29.0" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.22" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", - "dev": true - }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "dev": true, - "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.6.1", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.2.0", - "worker-farm": "1.6.0" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.4.0" - } + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - } - } - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "2.0.1" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "1.3.0", - "chalk": "2.4.2", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.2.1", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, - "url-parse": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", - "dev": true, - "requires": { - "querystringify": "2.1.0", - "requires-port": "1.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "1.0.4" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", - "dev": true, - "requires": { - "lru-cache": "2.2.4", - "tmp": "0.0.33" - }, - "dependencies": { - "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", - "dev": true - } - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.15", - "neo-async": "2.6.0" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.1" - } - }, - "webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "requires": { - "@types/selenium-webdriver": "3.0.15", - "selenium-webdriver": "3.6.0" - } - }, - "webpack": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz", - "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/wasm-edit": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.5.3", - "ajv-keywords": "3.4.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.2", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "node-libs-browser": "2.2.0", - "schema-utils": "0.4.7", - "tapable": "1.1.1", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.2.0" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.4.0" - } - } - } - }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true, - "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" - }, - "dependencies": { - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "topojson-client": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", + "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", + "requires": { + "commander": "2" + } }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz", - "integrity": "sha512-5C5gXtOo1I6+0AEg4UPglYEtu3Rai6l5IiO6aUu65scHXz29dc3oIWMiRwvcNLXgL0HwRkRxa9N02ZjFt4hY8w==", - "dev": true, - "requires": { - "loud-rejection": "1.6.0", - "memory-fs": "0.4.1", - "mime": "2.4.0", - "range-parser": "1.2.0", - "url-join": "4.0.0", - "webpack-log": "2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz", - "integrity": "sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.0.4", - "compression": "1.7.3", - "connect-history-api-fallback": "1.6.0", - "debug": "3.2.6", - "del": "3.0.0", - "express": "4.16.4", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "2.0.0", - "internal-ip": "3.0.1", - "ip": "1.1.5", - "killable": "1.0.1", - "loglevel": "1.6.1", - "opn": "5.3.0", - "portfinder": "1.0.17", - "schema-utils": "1.0.0", - "selfsigned": "1.10.4", - "serve-index": "1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.1.5", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.5.0", - "webpack-dev-middleware": "3.2.0", - "webpack-log": "2.0.0", - "yargs": "12.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "tree-kill": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "ts-node": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", + "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "yn": "^2.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } + "ts-simple-ast": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/ts-simple-ast/-/ts-simple-ast-12.4.0.tgz", + "integrity": "sha512-7GJFZlyTZY7uMAEhX62ZLxdwOpGDJzc/nwpi1nRPZ7N2ICcqqrMjDtRnki15IUBv2ZjIGu6KBqk/pUqJFODFsg==", + "dev": true, + "requires": { + "@dsherret/to-absolute-glob": "^2.0.2", + "code-block-writer": "^7.2.0", + "fs-extra": "^6.0.1", + "glob-parent": "^3.1.0", + "globby": "^8.0.1", + "is-negated-glob": "^1.0.0", + "multimatch": "^2.1.0", + "object-assign": "^4.1.1", + "tslib": "^1.9.0", + "typescript": "2.9.1" + }, + "dependencies": { + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "typescript": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", + "integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==", + "dev": true + } + } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } + "tsickle": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.37.0.tgz", + "integrity": "sha512-ufUZqLUNqh+kOfr52N/hJ5JbiDO32/CO7ZCteZBX9HA2kiejwEgDaJeJe1GAj2TIu683IgTA/LPKvlns6Liw0w==", + "dev": true, + "requires": { + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.7.3" + } }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" + }, + "dependencies": { + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + } + } }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.3" - } + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "3.0.0" - } + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } + } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + }, + "uglify-js": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.7.tgz", + "integrity": "sha512-4sXQDzmdnoXiO+xvmTzQsfIiwrjUCSA95rSP4SEd8tDb51W2TiDOlL76Hl+Kw0Ie42PSItCW8/t6pBNCF2R48A==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-properties": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.2.2.tgz", + "integrity": "sha512-+WhsOj19c93rPymvnPnFisbgFzrI4LjTV8ejMcCCfwS0XhdllZB4NsMFiYb4xUmpn3+aj3PM40h+wlzoG7PCnQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^1.0.0" + } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "2.0.0" - } + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "unicode-trie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-1.0.0.tgz", + "integrity": "sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + } + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } }, - "mem": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.2.0.tgz", - "integrity": "sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.0.0", - "p-is-promise": "2.0.0" - } + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } }, - "mimic-fn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.0.0.tgz", - "integrity": "sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA==", - "dev": true + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.2.0" - } + "universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", + "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", + "dev": true, + "requires": { + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.2.0" - } + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "viz.js": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.2.tgz", + "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==", + "dev": true + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webpack": { + "version": "4.39.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", + "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } }, "webpack-dev-middleware": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz", - "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==", - "dev": true, - "requires": { - "loud-rejection": "1.6.0", - "memory-fs": "0.4.1", - "mime": "2.4.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "url-join": "4.0.0", - "webpack-log": "2.0.0" - } + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "10.1.0" - } + "webpack-dev-server": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", + "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.4", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "3.2.4", - "uuid": "3.3.2" - } - }, - "webpack-merge": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", - "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", - "dev": true, - "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "webpack-subresource-integrity": { - "version": "1.1.0-rc.6", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", - "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", - "dev": true, - "requires": { - "webpack-core": "0.6.9" - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": "0.5.0", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "1.0.2" - } - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dev": true, - "requires": { - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "webpack-merge": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", - "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "dev": true, - "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dev": true, - "requires": { - "cuint": "0.2.2" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "webpack-subresource-integrity": { + "version": "1.1.0-rc.6", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", + "dev": true, + "requires": { + "webpack-core": "^0.6.8" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "windows-release": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "dev": true, + "requires": { + "execa": "^1.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", + "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "requires": { + "cuint": "^0.2.2" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", + "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" } - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", - "dev": true - }, - "zone.js": { - "version": "0.8.29", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", - "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" } - } } diff --git a/web/gui2-topo-lib/package.json b/web/gui2-topo-lib/package.json index 1483c7397a4..bf863d22344 100644 --- a/web/gui2-topo-lib/package.json +++ b/web/gui2-topo-lib/package.json @@ -1,56 +1,57 @@ { - "name": "gui2-topo-lib", - "version": "2.1.1", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e" - }, - "private": true, - "dependencies": { - "@angular/animations": "~7.0.0", - "@angular/common": "~7.0.0", - "@angular/compiler": "~7.0.0", - "@angular/core": "~7.0.0", - "@angular/forms": "~7.0.0", - "@angular/http": "~7.0.0", - "@angular/platform-browser": "~7.0.0", - "@angular/platform-browser-dynamic": "~7.0.0", - "@angular/router": "~7.0.0", - "core-js": "^2.5.4", - "d3": "^5.9.2", - "gui2-fw-lib": "file:../gui2-fw-lib/gui2-fw-lib-2.1.1.tgz", - "rxjs": "~6.3.3", - "topojson-client": "^3.0.0", - "zone.js": "~0.8.26" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.10.0", - "@angular-devkit/build-ng-packagr": "~0.10.0", - "@angular/cli": "~7.0.4", - "@angular/compiler-cli": "~7.0.0", - "@angular/language-service": "~7.0.0", - "@types/jasmine": "~2.8.8", - "@types/jasminewd2": "~2.0.3", - "@types/node": "~8.9.4", - "codelyzer": "~4.5.0", - "jasmine-core": "~2.99.1", - "jasmine-spec-reporter": "~4.2.1", - "karma": "~3.0.0", - "karma-chrome-launcher": "~2.2.0", - "karma-firefox-launcher": "^1.1.0", - "karma-coverage-istanbul-reporter": "~2.0.1", - "karma-jasmine": "~1.1.2", - "karma-jasmine-html-reporter": "^0.2.2", - "ng-packagr": "^4.2.0", - "protractor": "~5.4.0", - "ts-node": "~7.0.0", - "tsickle": ">=0.29.0", - "tslib": "^1.9.0", - "tslint": "~5.11.0", - "typescript": "~3.1.1" - } + "name": "gui2-topo-lib", + "version": "2.3.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "^8.2.13", + "@angular/common": "^8.2.13", + "@angular/compiler": "^8.2.13", + "@angular/core": "^8.2.13", + "@angular/forms": "^8.2.13", + "@angular/http": "^7.0.2", + "@angular/platform-browser": "^8.2.13", + "@angular/platform-browser-dynamic": "^8.2.13", + "@angular/router": "^8.2.13", + "core-js": "^2.5.4", + "d3": "^5.9.2", + "rxjs": "^6.4.0", + "topojson-client": "^3.0.0", + "zone.js": "^0.9.1", + "gui2-fw-lib": "file:../gui2-fw-lib/gui2-fw-lib-2.3.0.tgz" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^0.803.17", + "@angular-devkit/build-ng-packagr": "^0.803.17", + "@angular/cli": "^8.3.17", + "@angular/compiler-cli": "^8.2.13", + "@angular/language-service": "^8.2.13", + "@bazel/hide-bazel-files": "latest", + "@compodoc/compodoc": "^1.1.3", + "@types/jasmine": "~2.8.6", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "^4.2.1", + "jasmine-core": "~2.99.1", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~4.4.1", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~1.4.2", + "karma-firefox-launcher": "^1.1.0", + "karma-jasmine": "~1.1.1", + "karma-jasmine-html-reporter": "^0.2.2", + "ng-packagr": "^5.7.1", + "protractor": "~5.4.2", + "ts-node": "~5.0.1", + "tsickle": "^0.37.0", + "tslint": "~5.9.1", + "typescript": "~3.5.3" + } } diff --git a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/mapsvg/mapsvg.component.html b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/mapsvg/mapsvg.component.html index d400ad50d90..b3997320a07 100644 --- a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/mapsvg/mapsvg.component.html +++ b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/mapsvg/mapsvg.component.html @@ -14,9 +14,8 @@ ~ limitations under the License. --> Map of {{map.id}} in SVG format - - {{ f.id }} {{f.properties?.name}} + + + {{ f.id }} {{f.properties?.name}} + diff --git a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/topology/topology.component.html b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/topology/topology.component.html index 22ab2777275..7381a42cb84 100644 --- a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/topology/topology.component.html +++ b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/topology/topology.component.html @@ -64,7 +64,7 @@ line 0) Create an SVG Grouping and apply the onosZoomableOf directive to it, passing in the whole SVG canvas (#svgZoom) --> - + A logical layer that allows the main SVG canvas to be zoomed and panned diff --git a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts index 59d91ed128c..ee543ad8451 100644 --- a/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts +++ b/web/gui2/src/main/webapp/app/view/apps/apps/apps.component.ts @@ -341,4 +341,13 @@ export class AppsComponent extends TableBaseImpl implements OnInit, OnDestroy { active: undefined }; } + + getStateAsClass(value: string) { + if (value === 'ACTIVE') { + return 'active'; + } else if (value === 'INSTALLED') { + return 'inactive'; + } + return ''; + } } diff --git a/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts b/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts index 80fec4d62e9..81f2f78587f 100644 --- a/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts +++ b/web/gui2/src/main/webapp/app/view/cluster/cluster-details.directive.ts @@ -238,7 +238,9 @@ export class ClusterDetailsDirective extends DetailsPanelBaseImpl implements OnI } addCloseBtn(div) { - this.is.loadEmbeddedIcon(div, 'close', 20); + // This whole cluster app needs to be changed over to the Angular 7 style + // It is the only one remaining that uses the d3 structure + // this.is.loadEmbeddedIcon(div, 'close', 20); div.on('click', this.closePanel); } @@ -253,7 +255,9 @@ export class ClusterDetailsDirective extends DetailsPanelBaseImpl implements OnI populateTop(details) { const propLabels = this.getLionProps(); - this.is.loadEmbeddedIcon(iconDiv, 'node', 40); + // This whole cluster app needs to be changed over to the Angular 7 style + // It is the only one remaining that uses the d3 structure + // this.is.loadEmbeddedIcon(iconDiv, 'node', 40); top.select('h2').text(details.id); const tbody = topTable.append('tbody');